@aws-cdk/toolkit-lib 1.13.0 → 1.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +2 -2
- package/lib/actions/bootstrap/index.d.ts +1 -1
- package/lib/actions/bootstrap/index.js +1 -1
- package/lib/actions/bootstrap/private/helpers.d.ts +1 -1
- package/lib/actions/bootstrap/private/helpers.js +1 -1
- package/lib/actions/diff/private/helpers.js +1 -1
- package/lib/actions/refactor/private/mapping-helpers.d.ts +1 -1
- package/lib/actions/refactor/private/mapping-helpers.js +1 -1
- package/lib/api/aws-auth/sdk-provider.d.ts +1 -1
- package/lib/api/aws-auth/sdk-provider.js +6 -6
- package/lib/api/aws-auth/sdk.d.ts +6 -0
- package/lib/api/aws-auth/sdk.js +9 -1
- package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
- package/lib/api/bootstrap/bootstrap-environment.js +1 -1
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
- package/lib/api/bootstrap/deploy-bootstrap.js +4 -4
- package/lib/api/cloud-assembly/cached-source.d.ts +1 -1
- package/lib/api/cloud-assembly/cached-source.js +1 -1
- package/lib/api/cloud-assembly/environment.d.ts +13 -6
- package/lib/api/cloud-assembly/environment.js +87 -32
- package/lib/api/cloud-assembly/private/borrowed-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/borrowed-assembly.js +1 -1
- package/lib/api/cloud-assembly/private/exec.d.ts +1 -1
- package/lib/api/cloud-assembly/private/exec.js +8 -3
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +3 -3
- package/lib/api/cloud-assembly/private/prepare-source.js +3 -2
- package/lib/api/cloud-assembly/private/readable-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/readable-assembly.js +1 -1
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/source-builder.d.ts +4 -1
- package/lib/api/cloud-assembly/source-builder.js +7 -4
- package/lib/api/cloud-assembly/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/stack-assembly.js +1 -1
- package/lib/api/cloud-assembly/stack-collection.d.ts +1 -1
- package/lib/api/cloud-assembly/stack-collection.js +5 -5
- package/lib/api/cloud-assembly/types.d.ts +1 -1
- package/lib/api/cloud-assembly/types.js +1 -1
- package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +1 -1
- package/lib/api/cloudformation/evaluate-cloudformation-template.js +1 -1
- package/lib/api/cloudformation/nested-stack-helpers.d.ts +1 -1
- package/lib/api/cloudformation/nested-stack-helpers.js +1 -1
- package/lib/api/cloudformation/template-body-parameter.d.ts +1 -1
- package/lib/api/cloudformation/template-body-parameter.js +3 -3
- package/lib/api/deployments/asset-publishing.d.ts +1 -1
- package/lib/api/deployments/asset-publishing.js +4 -4
- package/lib/api/deployments/assets.d.ts +1 -1
- package/lib/api/deployments/assets.js +2 -2
- package/lib/api/deployments/cfn-api.d.ts +1 -1
- package/lib/api/deployments/cfn-api.js +4 -4
- package/lib/api/deployments/deploy-stack.d.ts +1 -1
- package/lib/api/deployments/deploy-stack.js +1 -1
- package/lib/api/deployments/deployments.d.ts +1 -1
- package/lib/api/deployments/deployments.js +1 -1
- package/lib/api/diff/diff-formatter.d.ts +1 -1
- package/lib/api/diff/diff-formatter.js +1 -1
- package/lib/api/drift/drift-formatter.d.ts +1 -1
- package/lib/api/drift/drift-formatter.js +1 -1
- package/lib/api/environment/environment-access.d.ts +1 -1
- package/lib/api/environment/environment-access.js +1 -1
- package/lib/api/environment/environment-resources.d.ts +1 -1
- package/lib/api/environment/environment-resources.js +1 -1
- package/lib/api/environment/placeholders.d.ts +1 -1
- package/lib/api/environment/placeholders.js +3 -3
- package/lib/api/garbage-collection/garbage-collector.d.ts +1 -1
- package/lib/api/garbage-collection/garbage-collector.js +1 -1
- package/lib/api/hotswap/bedrock-agentcore-runtimes.d.ts +5 -0
- package/lib/api/hotswap/bedrock-agentcore-runtimes.js +145 -0
- package/lib/api/hotswap/hotswap-deployments.d.ts +1 -1
- package/lib/api/hotswap/hotswap-deployments.js +3 -1
- package/lib/api/io/private/messages.d.ts +1 -1
- package/lib/api/io/private/messages.js +1 -1
- package/lib/api/logs-monitor/find-cloudwatch-logs.d.ts +1 -1
- package/lib/api/logs-monitor/find-cloudwatch-logs.js +1 -1
- package/lib/api/logs-monitor/logs-monitor.d.ts +1 -1
- package/lib/api/logs-monitor/logs-monitor.js +1 -1
- package/lib/api/notices/types.d.ts +1 -1
- package/lib/api/notices/types.js +1 -1
- package/lib/api/refactoring/cloudformation.d.ts +1 -1
- package/lib/api/refactoring/cloudformation.js +1 -1
- package/lib/api/refactoring/context.d.ts +1 -1
- package/lib/api/refactoring/context.js +3 -3
- package/lib/api/refactoring/index.d.ts +1 -1
- package/lib/api/refactoring/index.js +1 -1
- package/lib/api/refactoring/stack-definitions.d.ts +4 -1
- package/lib/api/refactoring/stack-definitions.js +62 -6
- package/lib/api/resource-import/importer.d.ts +1 -1
- package/lib/api/resource-import/importer.js +1 -1
- package/lib/api/resource-import/migrator.d.ts +1 -1
- package/lib/api/resource-import/migrator.js +1 -1
- package/lib/api/resource-metadata/resource-metadata.d.ts +1 -1
- package/lib/api/resource-metadata/resource-metadata.js +1 -1
- package/lib/api/stack-events/stack-activity-monitor.d.ts +1 -1
- package/lib/api/stack-events/stack-activity-monitor.js +1 -1
- package/lib/api/streams.d.ts +5 -0
- package/lib/api/streams.js +8 -1
- package/lib/api/tags/private/util.d.ts +1 -1
- package/lib/api/tags/private/util.js +1 -1
- package/lib/api/toolkit-info.d.ts +1 -1
- package/lib/api/toolkit-info.js +1 -1
- package/lib/api/tree.d.ts +1 -1
- package/lib/api/tree.js +1 -1
- package/lib/api/work-graph/work-graph-builder.d.ts +1 -1
- package/lib/api/work-graph/work-graph-builder.js +2 -2
- package/lib/api/work-graph/work-graph-types.d.ts +1 -1
- package/lib/api/work-graph/work-graph-types.js +1 -1
- package/lib/context-providers/index.js +4 -4
- package/lib/context-providers/keys.d.ts +1 -1
- package/lib/context-providers/keys.js +1 -1
- package/lib/context-providers/load-balancers.d.ts +1 -1
- package/lib/context-providers/load-balancers.js +3 -3
- package/lib/context-providers/security-groups.d.ts +1 -1
- package/lib/context-providers/security-groups.js +1 -1
- package/lib/context-providers/vpcs.d.ts +1 -1
- package/lib/context-providers/vpcs.js +5 -5
- package/lib/payloads/bootstrap-environment-progress.d.ts +1 -1
- package/lib/payloads/bootstrap-environment-progress.js +1 -1
- package/lib/payloads/deploy.d.ts +1 -1
- package/lib/payloads/deploy.js +1 -1
- package/lib/payloads/destroy.d.ts +1 -1
- package/lib/payloads/destroy.js +1 -1
- package/lib/payloads/drift.d.ts +1 -1
- package/lib/payloads/drift.js +1 -1
- package/lib/payloads/hotswap.d.ts +1 -1
- package/lib/payloads/hotswap.js +1 -1
- package/lib/payloads/rollback.d.ts +1 -1
- package/lib/payloads/rollback.js +1 -1
- package/lib/payloads/stack-activity.d.ts +1 -1
- package/lib/payloads/stack-activity.js +1 -1
- package/lib/payloads/stack-details.d.ts +1 -1
- package/lib/payloads/stack-details.js +1 -1
- package/lib/payloads/types.d.ts +1 -1
- package/lib/payloads/types.js +1 -1
- package/lib/private/activity-printer/base.d.ts +1 -1
- package/lib/private/activity-printer/base.js +1 -1
- package/lib/toolkit/toolkit-error.d.ts +1 -1
- package/lib/toolkit/toolkit-error.js +1 -1
- package/lib/toolkit/toolkit.js +21 -7
- package/package.json +6 -4
|
@@ -8,6 +8,7 @@ const payloads_1 = require("../../payloads");
|
|
|
8
8
|
const util_2 = require("../../util");
|
|
9
9
|
const cloudformation_1 = require("../cloudformation");
|
|
10
10
|
const appsync_mapping_templates_1 = require("./appsync-mapping-templates");
|
|
11
|
+
const bedrock_agentcore_runtimes_1 = require("./bedrock-agentcore-runtimes");
|
|
11
12
|
const code_build_projects_1 = require("./code-build-projects");
|
|
12
13
|
const common_1 = require("./common");
|
|
13
14
|
const ecs_services_1 = require("./ecs-services");
|
|
@@ -30,6 +31,7 @@ const RESOURCE_DETECTORS = {
|
|
|
30
31
|
'AWS::AppSync::FunctionConfiguration': appsync_mapping_templates_1.isHotswappableAppSyncChange,
|
|
31
32
|
'AWS::AppSync::GraphQLSchema': appsync_mapping_templates_1.isHotswappableAppSyncChange,
|
|
32
33
|
'AWS::AppSync::ApiKey': appsync_mapping_templates_1.isHotswappableAppSyncChange,
|
|
34
|
+
'AWS::BedrockAgentCore::Runtime': bedrock_agentcore_runtimes_1.isHotswappableBedrockAgentCoreRuntimeChange,
|
|
33
35
|
'AWS::ECS::TaskDefinition': ecs_services_1.isHotswappableEcsServiceChange,
|
|
34
36
|
'AWS::CodeBuild::Project': code_build_projects_1.isHotswappableCodeBuildProjectChange,
|
|
35
37
|
'AWS::StepFunctions::StateMachine': stepfunctions_state_machines_1.isHotswappableStateMachineChange,
|
|
@@ -438,4 +440,4 @@ function nonHotswappableResourceMessage(subject, reason) {
|
|
|
438
440
|
}
|
|
439
441
|
return (0, util_1.format)('resource: %s, type: %s, reason: %s', chalk.bold(subject.logicalId), chalk.bold(subject.resourceType), chalk.red(reason));
|
|
440
442
|
}
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90c3dhcC1kZXBsb3ltZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvdHN3YXAtZGVwbG95bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1RkEsb0RBbUNDO0FBMUhELCtCQUE4QjtBQUM5Qix5REFBeUQ7QUFHekQsK0JBQStCO0FBRS9CLDZDQUF1RDtBQUN2RCxxQ0FBZ0Q7QUFHaEQsc0RBQXdHO0FBQ3hHLDJFQUEwRTtBQUMxRSwrREFBNkU7QUFPN0UscUNBR2tCO0FBQ2xCLGlEQUFnRTtBQUNoRSx5REFBd0U7QUFDeEUsbUVBR2lDO0FBQ2pDLGlGQUFrRjtBQUNsRiwrREFBMkQ7QUFFM0QsMkNBQXlDO0FBRXpDLHNDQUFpQztBQUVqQyw2RUFBNkU7QUFDN0UsNEdBQTRHO0FBQzVHLE1BQU0sTUFBTSxHQUE2QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFXNUQsTUFBTSxrQkFBa0IsR0FBdUM7SUFDN0QsU0FBUztJQUNULHVCQUF1QixFQUFFLHFEQUFrQztJQUMzRCxzQkFBc0IsRUFBRSxxREFBa0M7SUFDMUQsb0JBQW9CLEVBQUUscURBQWtDO0lBRXhELFVBQVU7SUFDVix3QkFBd0IsRUFBRSx1REFBMkI7SUFDckQscUNBQXFDLEVBQUUsdURBQTJCO0lBQ2xFLDZCQUE2QixFQUFFLHVEQUEyQjtJQUMxRCxzQkFBc0IsRUFBRSx1REFBMkI7SUFFbkQsMEJBQTBCLEVBQUUsNkNBQThCO0lBQzFELHlCQUF5QixFQUFFLDBEQUFvQztJQUMvRCxrQ0FBa0MsRUFBRSwrREFBZ0M7SUFDcEUsNkJBQTZCLEVBQUUsOERBQXNDO0lBQ3JFLGtCQUFrQixFQUFFLEtBQUssRUFDdkIsU0FBaUIsRUFDakIsTUFBc0IsRUFDdEIsbUJBQW1ELEVBQ3pCLEVBQUU7UUFDNUIsNEVBQTRFO1FBQzVFLElBQUksTUFBTSxJQUFBLGlFQUF5QyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQzVG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Q0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FBQyxPQUF3QixFQUFFLE1BQWM7SUFDOUUsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFBLGFBQU0sRUFDWCwwREFBMEQsRUFDMUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBQSxhQUFNLEVBQ1gsb0NBQW9DLEVBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFDaEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDbEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGNmbl9kaWZmIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBXYWl0ZXJSZXN1bHQgfSBmcm9tICdAc21pdGh5L3V0aWwtd2FpdGVyJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgQWZmZWN0ZWRSZXNvdXJjZSwgSG90c3dhcFJlc3VsdCwgUmVzb3VyY2VTdWJqZWN0LCBSZXNvdXJjZUNoYW5nZSwgTm9uSG90c3dhcHBhYmxlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHsgTm9uSG90c3dhcHBhYmxlUmVhc29uIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESywgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFjaywgTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBsb2FkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcywgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlIH0gZnJvbSAnLi9hcHBzeW5jLW1hcHBpbmctdGVtcGxhdGVzJztcbmltcG9ydCB7IGlzSG90c3dhcHBhYmxlQ29kZUJ1aWxkUHJvamVjdENoYW5nZSB9IGZyb20gJy4vY29kZS1idWlsZC1wcm9qZWN0cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEhvdHN3YXBDaGFuZ2UsXG4gIEhvdHN3YXBPcGVyYXRpb24sXG4gIFJlamVjdGVkQ2hhbmdlLFxuICBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG59IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7XG4gIElDT04sXG4gIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlLFxufSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBpc0hvdHN3YXBwYWJsZUVjc1NlcnZpY2VDaGFuZ2UgfSBmcm9tICcuL2Vjcy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBpc0hvdHN3YXBwYWJsZUxhbWJkYUZ1bmN0aW9uQ2hhbmdlIH0gZnJvbSAnLi9sYW1iZGEtZnVuY3Rpb25zJztcbmltcG9ydCB7XG4gIHNraXBDaGFuZ2VGb3JTM0RlcGxveUN1c3RvbVJlc291cmNlUG9saWN5LFxuICBpc0hvdHN3YXBwYWJsZVMzQnVja2V0RGVwbG95bWVudENoYW5nZSxcbn0gZnJvbSAnLi9zMy1idWNrZXQtZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVTdGF0ZU1hY2hpbmVDaGFuZ2UgfSBmcm9tICcuL3N0ZXBmdW5jdGlvbnMtc3RhdGUtbWFjaGluZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgSU8sIFNQQU4gfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSU1lc3NhZ2VTcGFuLCBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5cbi8vIE11c3QgdXNlIGEgcmVxdWlyZSgpIG90aGVyd2lzZSBlc2J1aWxkIGNvbXBsYWlucyBhYm91dCBjYWxsaW5nIGEgbmFtZXNwYWNlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyxAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWltcG9ydHNcbmNvbnN0IHBMaW1pdDogdHlwZW9mIGltcG9ydCgncC1saW1pdCcpID0gcmVxdWlyZSgncC1saW1pdCcpO1xuXG50eXBlIEhvdHN3YXBEZXRlY3RvciA9IChcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pID0+IFByb21pc2U8SG90c3dhcENoYW5nZVtdPjtcblxudHlwZSBIb3Rzd2FwTW9kZSA9ICdob3Rzd2FwLW9ubHknIHwgJ2ZhbGwtYmFjayc7XG5cbmNvbnN0IFJFU09VUkNFX0RFVEVDVE9SUzogeyBba2V5OiBzdHJpbmddOiBIb3Rzd2FwRGV0ZWN0b3IgfSA9IHtcbiAgLy8gTGFtYmRhXG4gICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nOiBpc0hvdHN3YXBwYWJsZUxhbWJkYUZ1bmN0aW9uQ2hhbmdlLFxuICAnQVdTOjpMYW1iZGE6OlZlcnNpb24nOiBpc0hvdHN3YXBwYWJsZUxhbWJkYUZ1bmN0aW9uQ2hhbmdlLFxuICAnQVdTOjpMYW1iZGE6OkFsaWFzJzogaXNIb3Rzd2FwcGFibGVMYW1iZGFGdW5jdGlvbkNoYW5nZSxcblxuICAvLyBBcHBTeW5jXG4gICdBV1M6OkFwcFN5bmM6OlJlc29sdmVyJzogaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlLFxuICAnQVdTOjpBcHBTeW5jOjpGdW5jdGlvbkNvbmZpZ3VyYXRpb24nOiBpc0hvdHN3YXBwYWJsZUFwcFN5bmNDaGFuZ2UsXG4gICdBV1M6OkFwcFN5bmM6OkdyYXBoUUxTY2hlbWEnOiBpc0hvdHN3YXBwYWJsZUFwcFN5bmNDaGFuZ2UsXG4gICdBV1M6OkFwcFN5bmM6OkFwaUtleSc6IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSxcblxuICAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJzogaXNIb3Rzd2FwcGFibGVFY3NTZXJ2aWNlQ2hhbmdlLFxuICAnQVdTOjpDb2RlQnVpbGQ6OlByb2plY3QnOiBpc0hvdHN3YXBwYWJsZUNvZGVCdWlsZFByb2plY3RDaGFuZ2UsXG4gICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZSc6IGlzSG90c3dhcHBhYmxlU3RhdGVNYWNoaW5lQ2hhbmdlLFxuICAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JzogaXNIb3Rzd2FwcGFibGVTM0J1Y2tldERlcGxveW1lbnRDaGFuZ2UsXG4gICdBV1M6OklBTTo6UG9saWN5JzogYXN5bmMgKFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gICAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICApOiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT4gPT4ge1xuICAgIC8vIElmIHRoZSBwb2xpY3kgaXMgZm9yIGEgUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlLCB3ZSBjYW4gaWdub3JlIHRoZSBjaGFuZ2VcbiAgICBpZiAoYXdhaXQgc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3kobG9naWNhbElkLCBjaGFuZ2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtub25Ib3Rzd2FwcGFibGVSZXNvdXJjZShjaGFuZ2UpXTtcbiAgfSxcblxuICAnQVdTOjpDREs6Ok1ldGFkYXRhJzogYXN5bmMgKCkgPT4gW10sXG59O1xuXG4vKipcbiAqIFBlcmZvcm0gYSBob3Rzd2FwIGRlcGxveW1lbnQsIHNob3J0LWNpcmN1aXRpbmcgQ2xvdWRGb3JtYXRpb24gaWYgcG9zc2libGUuXG4gKiBJZiBpdCdzIG5vdCBwb3NzaWJsZSB0byBzaG9ydC1jaXJjdWl0IHRoZSBkZXBsb3ltZW50XG4gKiAoYmVjYXVzZSB0aGUgQ0RLIFN0YWNrIGNvbnRhaW5zIGNoYW5nZXMgdGhhdCBjYW5ub3QgYmUgZGVwbG95ZWQgd2l0aG91dCBDbG91ZEZvcm1hdGlvbiksXG4gKiByZXR1cm5zIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJ5SG90c3dhcERlcGxveW1lbnQoXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBhc3NldFBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgY2xvdWRGb3JtYXRpb25TdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgc3RhY2tBcnRpZmFjdDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBob3Rzd2FwTW9kZTogSG90c3dhcE1vZGUsXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgaG90c3dhcFNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uSE9UU1dBUCkuYmVnaW4oe1xuICAgIHN0YWNrOiBzdGFja0FydGlmYWN0LFxuICAgIG1vZGU6IGhvdHN3YXBNb2RlLFxuICB9KTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBob3Rzd2FwRGVwbG95bWVudChcbiAgICBzZGtQcm92aWRlcixcbiAgICBob3Rzd2FwU3BhbixcbiAgICBhc3NldFBhcmFtcyxcbiAgICBzdGFja0FydGlmYWN0LFxuICAgIGhvdHN3YXBNb2RlLFxuICAgIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyxcbiAgKTtcblxuICBhd2FpdCBob3Rzd2FwU3Bhbi5lbmQocmVzdWx0KTtcblxuICBpZiAocmVzdWx0Py5ob3Rzd2FwcGVkID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgIG5vT3A6IHJlc3VsdC5ob3Rzd2FwcGFibGVDaGFuZ2VzLmxlbmd0aCA9PT0gMCxcbiAgICAgIHN0YWNrQXJuOiBjbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrSWQsXG4gICAgICBvdXRwdXRzOiBjbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGVyZm9ybSBhIGhvdHN3YXAgZGVwbG95bWVudCwgc2hvcnQtY2lyY3VpdGluZyBDbG91ZEZvcm1hdGlvbiBpZiBwb3NzaWJsZS5cbiAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGF0dGVtcHRlZCBob3Rzd2FwIGRlcGxveW1lbnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaG90c3dhcERlcGxveW1lbnQoXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PixcbiAgYXNzZXRQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIGhvdHN3YXBNb2RlOiBIb3Rzd2FwTW9kZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPE9taXQ8SG90c3dhcFJlc3VsdCwgJ2R1cmF0aW9uJz4+IHtcbiAgLy8gcmVzb2x2ZSB0aGUgZW52aXJvbm1lbnQsIHNvIHdlIGNhbiBzdWJzdGl0dXRlIHRoaW5ncyBsaWtlIEFXUzo6UmVnaW9uIGluIENGTiBleHByZXNzaW9uc1xuICBjb25zdCByZXNvbHZlZEVudiA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChzdGFjay5lbnZpcm9ubWVudCk7XG4gIC8vIGNyZWF0ZSBhIG5ldyBTREsgdXNpbmcgdGhlIENMSSBjcmVkZW50aWFscywgYmVjYXVzZSB0aGUgZGVmYXVsdCBvbmUgd2lsbCBub3Qgd29yayBmb3IgbmV3LXN0eWxlIHN5bnRoZXNpcyAtXG4gIC8vIGl0IGFzc3VtZXMgdGhlIGJvb3RzdHJhcCBkZXBsb3kgUm9sZSwgd2hpY2ggZG9lc24ndCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSBMYW1iZGEgZnVuY3Rpb25zXG4gIGNvbnN0IHNkayA9IChhd2FpdCBzZGtQcm92aWRlci5mb3JFbnZpcm9ubWVudChyZXNvbHZlZEVudiwgTW9kZS5Gb3JXcml0aW5nKSkuc2RrO1xuXG4gIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZSA9IGF3YWl0IGxvYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzKHN0YWNrLCBzZGspO1xuXG4gIGNvbnN0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUgPSBuZXcgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKHtcbiAgICBzdGFja0FydGlmYWN0OiBzdGFjayxcbiAgICBwYXJhbWV0ZXJzOiBhc3NldFBhcmFtcyxcbiAgICBhY2NvdW50OiByZXNvbHZlZEVudi5hY2NvdW50LFxuICAgIHJlZ2lvbjogcmVzb2x2ZWRFbnYucmVnaW9uLFxuICAgIHBhcnRpdGlvbjogKGF3YWl0IHNkay5jdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb24sXG4gICAgc2RrLFxuICAgIG5lc3RlZFN0YWNrczogY3VycmVudFRlbXBsYXRlLm5lc3RlZFN0YWNrcyxcbiAgfSk7XG5cbiAgY29uc3Qgc3RhY2tDaGFuZ2VzID0gY2ZuX2RpZmYuZnVsbERpZmYoY3VycmVudFRlbXBsYXRlLmRlcGxveWVkUm9vdFRlbXBsYXRlLCBzdGFjay50ZW1wbGF0ZSk7XG4gIGNvbnN0IHsgaG90c3dhcHBhYmxlLCBub25Ib3Rzd2FwcGFibGUgfSA9IGF3YWl0IGNsYXNzaWZ5UmVzb3VyY2VDaGFuZ2VzKFxuICAgIHN0YWNrQ2hhbmdlcyxcbiAgICBldmFsdWF0ZUNmblRlbXBsYXRlLFxuICAgIHNkayxcbiAgICBjdXJyZW50VGVtcGxhdGUubmVzdGVkU3RhY2tzLCBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICk7XG5cbiAgYXdhaXQgbG9nUmVqZWN0ZWRDaGFuZ2VzKGlvU3Bhbiwgbm9uSG90c3dhcHBhYmxlLCBob3Rzd2FwTW9kZSk7XG5cbiAgY29uc3QgaG90c3dhcHBhYmxlQ2hhbmdlcyA9IGhvdHN3YXBwYWJsZS5tYXAobyA9PiBvLmNoYW5nZSk7XG4gIGNvbnN0IG5vbkhvdHN3YXBwYWJsZUNoYW5nZXMgPSBub25Ib3Rzd2FwcGFibGUubWFwKG4gPT4gbi5jaGFuZ2UpO1xuXG4gIGF3YWl0IGlvU3Bhbi5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU0MDEubXNnKCdIb3Rzd2FwIHBsYW4gY3JlYXRlZCcsIHtcbiAgICBzdGFjayxcbiAgICBtb2RlOiBob3Rzd2FwTW9kZSxcbiAgICBob3Rzd2FwcGFibGVDaGFuZ2VzLFxuICAgIG5vbkhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gIH0pKTtcblxuICAvLyBwcmVzZXJ2ZSBjbGFzc2ljIGhvdHN3YXAgYmVoYXZpb3JcbiAgaWYgKGhvdHN3YXBNb2RlID09PSAnZmFsbC1iYWNrJykge1xuICAgIGlmIChub25Ib3Rzd2FwcGFibGVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YWNrLFxuICAgICAgICBtb2RlOiBob3Rzd2FwTW9kZSxcbiAgICAgICAgaG90c3dhcHBlZDogZmFsc2UsXG4gICAgICAgIGhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgICAgIG5vbkhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIGFwcGx5IHRoZSBzaG9ydC1jaXJjdWl0YWJsZSBjaGFuZ2VzXG4gIGF3YWl0IGFwcGx5QWxsSG90c3dhcE9wZXJhdGlvbnMoc2RrLCBpb1NwYW4sIGhvdHN3YXBwYWJsZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFjayxcbiAgICBtb2RlOiBob3Rzd2FwTW9kZSxcbiAgICBob3Rzd2FwcGVkOiB0cnVlLFxuICAgIGhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgbm9uSG90c3dhcHBhYmxlQ2hhbmdlcyxcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgaG90c3dhcHBhYmxlOiBIb3Rzd2FwT3BlcmF0aW9uW107XG4gIG5vbkhvdHN3YXBwYWJsZTogUmVqZWN0ZWRDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBDbGFzc2lmaWVzIGFsbCBjaGFuZ2VzIHRvIGFsbCByZXNvdXJjZXMgYXMgZWl0aGVyIGhvdHN3YXBwYWJsZSBvciBub3QuXG4gKiBNZXRhZGF0YSBjaGFuZ2VzIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBsaXN0IG9mIChub24paG90c3dhcHBhYmxlIHJlc291cmNlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZUNoYW5nZXMoXG4gIHN0YWNrQ2hhbmdlczogY2ZuX2RpZmYuVGVtcGxhdGVEaWZmLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIHNkazogU0RLLFxuICBuZXN0ZWRTdGFja05hbWVzOiB7IFtuZXN0ZWRTdGFja05hbWU6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0sXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxDbGFzc2lmaWVkQ2hhbmdlcz4ge1xuICBjb25zdCByZXNvdXJjZURpZmZlcmVuY2VzID0gZ2V0U3RhY2tSZXNvdXJjZURpZmZlcmVuY2VzKHN0YWNrQ2hhbmdlcyk7XG5cbiAgY29uc3QgcHJvbWlzZXM6IEFycmF5PCgpID0+IFByb21pc2U8SG90c3dhcENoYW5nZVtdPj4gPSBbXTtcbiAgY29uc3QgaG90c3dhcHBhYmxlUmVzb3VyY2VzID0gbmV3IEFycmF5PEhvdHN3YXBPcGVyYXRpb24+KCk7XG4gIGNvbnN0IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcyA9IG5ldyBBcnJheTxSZWplY3RlZENoYW5nZT4oKTtcbiAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgT2JqZWN0LmtleXMoc3RhY2tDaGFuZ2VzLm91dHB1dHMuY2hhbmdlcykpIHtcbiAgICBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZXMucHVzaCh7XG4gICAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLk9VVFBVVCxcbiAgICAgICAgZGVzY3JpcHRpb246ICdvdXRwdXQgd2FzIGNoYW5nZWQnLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ091dHB1dCcsXG4gICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vIGdhdGhlciB0aGUgcmVzdWx0cyBvZiB0aGUgZGV0ZWN0b3IgZnVuY3Rpb25zXG4gIGZvciAoY29uc3QgW2xvZ2ljYWxJZCwgY2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyhyZXNvdXJjZURpZmZlcmVuY2VzKSkge1xuICAgIGlmIChjaGFuZ2UubmV3VmFsdWU/LlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiYgY2hhbmdlLm9sZFZhbHVlPy5UeXBlID09PSAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snKSB7XG4gICAgICBjb25zdCBuZXN0ZWRIb3Rzd2FwcGFibGVSZXNvdXJjZXMgPSBhd2FpdCBmaW5kTmVzdGVkSG90c3dhcHBhYmxlQ2hhbmdlcyhcbiAgICAgICAgbG9naWNhbElkLFxuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIG5lc3RlZFN0YWNrTmFtZXMsXG4gICAgICAgIGV2YWx1YXRlQ2ZuVGVtcGxhdGUsXG4gICAgICAgIHNkayxcbiAgICAgICAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICAgICAgKTtcbiAgICAgIGhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKC4uLm5lc3RlZEhvdHN3YXBwYWJsZVJlc291cmNlcy5ob3Rzd2FwcGFibGUpO1xuICAgICAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLnB1c2goLi4ubmVzdGVkSG90c3dhcHBhYmxlUmVzb3VyY2VzLm5vbkhvdHN3YXBwYWJsZSk7XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSA9IGlzQ2FuZGlkYXRlRm9ySG90c3dhcHBpbmcobG9naWNhbElkLCBjaGFuZ2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gcnVuIHRoaXMgdGhyb3VnaCB0aGUgZGV0ZWN0b3IgZnVuY3Rpb25zLCB3ZSBjYW4gYWxyZWFkeSBqdWRnZSB0aGlzXG4gICAgaWYgKCdob3Rzd2FwcGFibGUnIGluIGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSkge1xuICAgICAgaWYgKCFob3Rzd2FwcGFibGVDaGFuZ2VDYW5kaWRhdGUuaG90c3dhcHBhYmxlKSB7XG4gICAgICAgIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlVHlwZTogc3RyaW5nID0gaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlLm5ld1ZhbHVlLlR5cGU7XG4gICAgaWYgKHJlc291cmNlVHlwZSBpbiBSRVNPVVJDRV9ERVRFQ1RPUlMpIHtcbiAgICAgIC8vIHJ1biBkZXRlY3RvciBmdW5jdGlvbnMgbGF6aWx5IHRvIHByZXZlbnQgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uc1xuICAgICAgcHJvbWlzZXMucHVzaCgoKSA9PlxuICAgICAgICBSRVNPVVJDRV9ERVRFQ1RPUlNbcmVzb3VyY2VUeXBlXShsb2dpY2FsSWQsIGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSwgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKG5vbkhvdHN3YXBwYWJsZVJlc291cmNlKGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHJlc29sdmUgYWxsIGRldGVjdG9yIHJlc3VsdHNcbiAgY29uc3QgY2hhbmdlc0RldGVjdGlvblJlc3VsdHM6IEFycmF5PEhvdHN3YXBDaGFuZ2VbXT4gPSBbXTtcbiAgZm9yIChjb25zdCBkZXRlY3RvclJlc3VsdFByb21pc2VzIG9mIHByb21pc2VzKSB7XG4gICAgLy8gQ29uc3RhbnQgc2V0IG9mIHByb21pc2VzIHBlciByZXNvdXJjZVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgIGNvbnN0IGhvdHN3YXBEZXRlY3Rpb25SZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYXdhaXQgZGV0ZWN0b3JSZXN1bHRQcm9taXNlcygpKTtcbiAgICBjaGFuZ2VzRGV0ZWN0aW9uUmVzdWx0cy5wdXNoKGhvdHN3YXBEZXRlY3Rpb25SZXN1bHRzKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgcmVzb3VyY2VEZXRlY3Rpb25SZXN1bHRzIG9mIGNoYW5nZXNEZXRlY3Rpb25SZXN1bHRzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eVJlc3VsdCBvZiByZXNvdXJjZURldGVjdGlvblJlc3VsdHMpIHtcbiAgICAgIHByb3BlcnR5UmVzdWx0LmhvdHN3YXBwYWJsZVxuICAgICAgICA/IGhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KVxuICAgICAgICA6IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhvdHN3YXBwYWJsZTogaG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICAgIG5vbkhvdHN3YXBwYWJsZTogbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNoYW5nZXMgdG8gcmVzb3VyY2VzIGluIHRoZSBnaXZlbiBTdGFjay5cbiAqXG4gKiBAcGFyYW0gc3RhY2tDaGFuZ2VzIC0gdGhlIGNvbGxlY3Rpb24gb2YgYWxsIGNoYW5nZXMgdG8gYSBnaXZlbiBTdGFja1xuICovXG5mdW5jdGlvbiBnZXRTdGFja1Jlc291cmNlRGlmZmVyZW5jZXMoc3RhY2tDaGFuZ2VzOiBjZm5fZGlmZi5UZW1wbGF0ZURpZmYpOiB7XG4gIFtsb2dpY2FsSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZTtcbn0ge1xuICAvLyB3ZSBuZWVkIHRvIGNvbGxhcHNlIGxvZ2ljYWwgSUQgcmVuYW1lIGNoYW5nZXMgaW50byBvbmUgY2hhbmdlLFxuICAvLyBhcyB0aGV5IGFyZSByZXByZXNlbnRlZCBpbiBzdGFja0NoYW5nZXMgYXMgYSBwYWlyIG9mIHR3byBjaGFuZ2VzOiBvbmUgYWRkaXRpb24gYW5kIG9uZSByZW1vdmFsXG4gIGNvbnN0IGFsbFJlc291cmNlQ2hhbmdlczogeyBbbG9nSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSB9ID0gc3RhY2tDaGFuZ2VzLnJlc291cmNlcy5jaGFuZ2VzO1xuICBjb25zdCBhbGxSZW1vdmFsQ2hhbmdlcyA9IGZpbHRlckRpY3QoYWxsUmVzb3VyY2VDaGFuZ2VzLCAocmVzQ2hhbmdlKSA9PiByZXNDaGFuZ2UuaXNSZW1vdmFsKTtcbiAgY29uc3QgYWxsTm9uUmVtb3ZhbENoYW5nZXMgPSBmaWx0ZXJEaWN0KGFsbFJlc291cmNlQ2hhbmdlcywgKHJlc0NoYW5nZSkgPT4gIXJlc0NoYW5nZS5pc1JlbW92YWwpO1xuICBmb3IgKGNvbnN0IFtsb2dJZCwgbm9uUmVtb3ZhbENoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoYWxsTm9uUmVtb3ZhbENoYW5nZXMpKSB7XG4gICAgaWYgKG5vblJlbW92YWxDaGFuZ2UuaXNBZGRpdGlvbikge1xuICAgICAgY29uc3QgYWRkQ2hhbmdlID0gbm9uUmVtb3ZhbENoYW5nZTtcbiAgICAgIC8vIHNlYXJjaCBmb3IgYW4gaWRlbnRpY2FsIHJlbW92YWwgY2hhbmdlXG4gICAgICBjb25zdCBpZGVudGljYWxSZW1vdmFsQ2hhbmdlID0gT2JqZWN0LmVudHJpZXMoYWxsUmVtb3ZhbENoYW5nZXMpLmZpbmQoKFtfLCByZW1DaGFuZ2VdKSA9PiB7XG4gICAgICAgIHJldHVybiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKHJlbUNoYW5nZSwgYWRkQ2hhbmdlKTtcbiAgICAgIH0pO1xuICAgICAgLy8gaWYgd2UgZm91bmQgb25lLCB0aGVuIHRoaXMgbWVhbnMgdGhpcyBpcyBhIHJlbmFtZSBjaGFuZ2VcbiAgICAgIGlmIChpZGVudGljYWxSZW1vdmFsQ2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IFtyZW1vdmVkTG9nSWQsIHJlbW92ZWRSZXNvdXJjZUNoYW5nZV0gPSBpZGVudGljYWxSZW1vdmFsQ2hhbmdlO1xuICAgICAgICBhbGxOb25SZW1vdmFsQ2hhbmdlc1tsb2dJZF0gPSBtYWtlUmVuYW1lRGlmZmVyZW5jZShyZW1vdmVkUmVzb3VyY2VDaGFuZ2UsIGFkZENoYW5nZSk7XG4gICAgICAgIC8vIGRlbGV0ZSB0aGUgcmVtb3ZhbCBjaGFuZ2UgdGhhdCBmb3JtcyB0aGUgcmVuYW1lIHBhaXJcbiAgICAgICAgZGVsZXRlIGFsbFJlbW92YWxDaGFuZ2VzW3JlbW92ZWRMb2dJZF07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgYXJlIGFsbCBvZiB0aGUgcmVtYWluaW5nIHJlbW92YWwgY2hhbmdlcyxcbiAgLy8gcGx1cyBhbGwgb2YgdGhlIG5vbi1yZW1vdmFsIGNoYW5nZXNcbiAgLy8gKHdlIHNhdmVkIHRoZSByZW5hbWUgY2hhbmdlcyBpbiB0aGF0IG9iamVjdCBhbHJlYWR5KVxuICByZXR1cm4ge1xuICAgIC4uLmFsbFJlbW92YWxDaGFuZ2VzLFxuICAgIC4uLmFsbE5vblJlbW92YWxDaGFuZ2VzLFxuICB9O1xufVxuXG4vKiogRmlsdGVycyBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5cyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBjYWxsYmFjayByZXR1cm5zICd0cnVlJyBmb3IgdGhlIGdpdmVuIHZhbHVlIGluIHRoZSBvYmplY3QuICovXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PFQ+KGRpY3Q6IHsgW2tleTogc3RyaW5nXTogVCB9LCBmdW5jOiAodDogVCkgPT4gYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogVCB9IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRpY3QpLnJlZHVjZShcbiAgICAoYWNjLCBba2V5LCB0XSkgPT4ge1xuICAgICAgaWYgKGZ1bmModCkpIHtcbiAgICAgICAgYWNjW2tleV0gPSB0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogVCB9LFxuICApO1xufVxuXG4vKiogRmluZHMgYW55IGhvdHN3YXBwYWJsZSBjaGFuZ2VzIGluIGFsbCBuZXN0ZWQgc3RhY2tzLiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZE5lc3RlZEhvdHN3YXBwYWJsZUNoYW5nZXMoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IHsgW25lc3RlZFN0YWNrTmFtZTogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICBzZGs6IFNESyxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPENsYXNzaWZpZWRDaGFuZ2VzPiB7XG4gIGNvbnN0IG5lc3RlZFN0YWNrID0gbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXTtcbiAgaWYgKCFuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBbXSxcbiAgICAgIG5vbkhvdHN3YXBwYWJsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjaGFuZ2U6IHtcbiAgICAgICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLk5FU1RFRF9TVEFDS19DUkVBVElPTixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnbmV3bHkgY3JlYXRlZCBuZXN0ZWQgc3RhY2tzIGNhbm5vdCBiZSBob3Rzd2FwcGVkJyxcbiAgICAgICAgICAgIHN1YmplY3Q6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBldmFsdWF0ZU5lc3RlZENmblRlbXBsYXRlID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5jcmVhdGVOZXN0ZWRFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoXG4gICAgbmVzdGVkU3RhY2sucGh5c2ljYWxOYW1lLFxuICAgIG5lc3RlZFN0YWNrLmdlbmVyYXRlZFRlbXBsYXRlLFxuICAgIGNoYW5nZS5uZXdWYWx1ZT8uUHJvcGVydGllcz8uUGFyYW1ldGVycyxcbiAgKTtcblxuICBjb25zdCBuZXN0ZWREaWZmID0gY2ZuX2RpZmYuZnVsbERpZmYoXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5kZXBsb3llZFRlbXBsYXRlLFxuICAgIG5lc3RlZFN0YWNrVGVtcGxhdGVzW2xvZ2ljYWxJZF0uZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICk7XG5cbiAgcmV0dXJuIGNsYXNzaWZ5UmVzb3VyY2VDaGFuZ2VzKFxuICAgIG5lc3RlZERpZmYsXG4gICAgZXZhbHVhdGVOZXN0ZWRDZm5UZW1wbGF0ZSxcbiAgICBzZGssXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICk7XG59XG5cbi8qKiBSZXR1cm5zICd0cnVlJyBpZiBhIHBhaXIgb2YgY2hhbmdlcyBpcyBmb3IgdGhlIHNhbWUgcmVzb3VyY2UuICovXG5mdW5jdGlvbiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKFxuICBvbGRDaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmV3Q2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBvbGRDaGFuZ2Uub2xkUmVzb3VyY2VUeXBlID09PSBuZXdDaGFuZ2UubmV3UmVzb3VyY2VUeXBlICYmXG4gICAgLy8gdGhpcyBpc24ndCBncmVhdCwgYnV0IEkgZG9uJ3Qgd2FudCB0byBicmluZyBpbiBzb21ldGhpbmcgbGlrZSB1bmRlcnNjb3JlIGp1c3QgZm9yIHRoaXMgY29tcGFyaXNvblxuICAgIEpTT04uc3RyaW5naWZ5KG9sZENoYW5nZS5vbGRQcm9wZXJ0aWVzKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3Q2hhbmdlLm5ld1Byb3BlcnRpZXMpXG4gICk7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZW5hbWVEaWZmZXJlbmNlKFxuICByZW1DaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgYWRkQ2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZShcbiAgICAvLyB3ZSBoYXZlIHRvIGZpbGwgaW4gdGhlIG9sZCB2YWx1ZSwgYmVjYXVzZSBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgYSBub24taG90c3dhcHBhYmxlIGNoYW5nZVxuICAgIHJlbUNoYW5nZS5vbGRWYWx1ZSxcbiAgICBhZGRDaGFuZ2UubmV3VmFsdWUsXG4gICAge1xuICAgICAgcmVzb3VyY2VUeXBlOiB7XG4gICAgICAgIG9sZFR5cGU6IHJlbUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUsXG4gICAgICAgIG5ld1R5cGU6IGFkZENoYW5nZS5uZXdSZXNvdXJjZVR5cGUsXG4gICAgICB9LFxuICAgICAgcHJvcGVydHlEaWZmczogKGFkZENoYW5nZSBhcyBhbnkpLnByb3BlcnR5RGlmZnMsXG4gICAgICBvdGhlckRpZmZzOiAoYWRkQ2hhbmdlIGFzIGFueSkub3RoZXJEaWZmcyxcbiAgICB9LFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBgSG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlYCBpZiB0aGUgY2hhbmdlIGlzIGhvdHN3YXBwYWJsZVxuICogUmV0dXJucyBhbiBlbXB0eSBgSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIHRvIENESzo6TWV0YWRhdGFcbiAqIFJldHVybnMgYSBgTm9uSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIG5vdCBob3Rzd2FwcGFibGVcbiAqL1xuZnVuY3Rpb24gaXNDYW5kaWRhdGVGb3JIb3Rzd2FwcGluZyhcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogY2ZuX2RpZmYuUmVzb3VyY2VEaWZmZXJlbmNlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBSZWplY3RlZENoYW5nZSB8IFJlc291cmNlQ2hhbmdlIHtcbiAgLy8gYSByZXNvdXJjZSBoYXMgYmVlbiByZW1vdmVkIE9SIGEgcmVzb3VyY2UgaGFzIGJlZW4gYWRkZWQ7IHdlIGNhbid0IHNob3J0LWNpcmN1aXQgdGhhdCBjaGFuZ2VcbiAgaWYgKCFjaGFuZ2Uub2xkVmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgIGNoYW5nZToge1xuICAgICAgICByZWFzb246IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9DUkVBVElPTixcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyB3YXMgY3JlYXRlZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2UubmV3VmFsdWUhLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBlbHNlIGlmICghY2hhbmdlLm5ld1ZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb24uUkVTT1VSQ0VfREVMRVRJT04sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgcmVzb3VyY2UgJyR7bG9naWNhbElkfScgd2FzIGRlc3Ryb3llZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2Uub2xkVmFsdWUuVHlwZSxcbiAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gYSByZXNvdXJjZSBoYXMgaGFkIGl0cyB0eXBlIGNoYW5nZWRcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSBjaGFuZ2Uub2xkVmFsdWUuVHlwZSkge1xuICAgIHJldHVybiB7XG4gICAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLlJFU09VUkNFX1RZUEVfQ0hBTkdFRCxcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBoYWQgaXRzIHR5cGUgY2hhbmdlZCBmcm9tICcke2NoYW5nZS5vbGRWYWx1ZT8uVHlwZX0nIHRvICcke2NoYW5nZS5uZXdWYWx1ZT8uVHlwZX0nYCxcbiAgICAgICAgc3ViamVjdDoge1xuICAgICAgICAgIHR5cGU6ICdSZXNvdXJjZScsXG4gICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbG9naWNhbElkLFxuICAgIG9sZFZhbHVlOiBjaGFuZ2Uub2xkVmFsdWUsXG4gICAgbmV3VmFsdWU6IGNoYW5nZS5uZXdWYWx1ZSxcbiAgICBwcm9wZXJ0eVVwZGF0ZXM6IGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMsXG4gICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlBbGxIb3Rzd2FwT3BlcmF0aW9ucyhzZGs6IFNESywgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PiwgaG90c3dhcHBhYmxlQ2hhbmdlczogSG90c3dhcE9wZXJhdGlvbltdKTogUHJvbWlzZTx2b2lkW10+IHtcbiAgaWYgKGhvdHN3YXBwYWJsZUNoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gIH1cblxuICBhd2FpdCBpb1NwYW4uZGVmYXVsdHMuaW5mbyhgXFxuJHtJQ09OfSBob3Rzd2FwcGluZyByZXNvdXJjZXM6YCk7XG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gIHJldHVybiBQcm9taXNlLmFsbChob3Rzd2FwcGFibGVDaGFuZ2VzLm1hcChob3Rzd2FwT3BlcmF0aW9uID0+IGxpbWl0KCgpID0+IHtcbiAgICByZXR1cm4gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkaywgaW9TcGFuLCBob3Rzd2FwT3BlcmF0aW9uKTtcbiAgfSkpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkazogU0RLLCBpb1NwYW46IElNZXNzYWdlU3Bhbjxhbnk+LCBob3Rzd2FwT3BlcmF0aW9uOiBIb3Rzd2FwT3BlcmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIG5vdGUgdGhlIHR5cGUgb2Ygc2VydmljZSB0aGF0IHdhcyBzdWNjZXNzZnVsbHkgaG90c3dhcHBlZCBpbiB0aGUgVXNlci1BZ2VudFxuICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBgY2RrLWhvdHN3YXAvc3VjY2Vzcy0ke2hvdHN3YXBPcGVyYXRpb24uc2VydmljZX1gO1xuICBzZGsuYXBwZW5kQ3VzdG9tVXNlckFnZW50KGN1c3RvbVVzZXJBZ2VudCk7XG4gIGNvbnN0IHJlc291cmNlVGV4dCA9IChyOiBBZmZlY3RlZFJlc291cmNlKSA9PiByLmRlc2NyaXB0aW9uID8/IGAke3IucmVzb3VyY2VUeXBlfSAnJHtyLnBoeXNpY2FsTmFtZSA/PyByLmxvZ2ljYWxJZH0nYDtcblxuICBhd2FpdCBpb1NwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k1NDAyLm1zZyhcbiAgICBob3Rzd2FwT3BlcmF0aW9uLmNoYW5nZS5yZXNvdXJjZXMubWFwKHIgPT4gZm9ybWF0KGAgICAke0lDT059ICVzYCwgY2hhbGsuYm9sZChyZXNvdXJjZVRleHQocikpKSkuam9pbignXFxuJyksXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UsXG4gICkpO1xuXG4gIC8vIGlmIHRoZSBTREsgY2FsbCBmYWlscywgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gYnkgdGhlIFNES1xuICAvLyBhbmQgd2lsbCBwcmV2ZW50IHRoZSBncmVlbiAnaG90c3dhcHBlZCEnIHRleHQgZnJvbSBiZWluZyBkaXNwbGF5ZWRcbiAgdHJ5IHtcbiAgICBhd2FpdCBob3Rzd2FwT3BlcmF0aW9uLmFwcGx5KHNkayk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLm5hbWUgPT09ICdUaW1lb3V0RXJyb3InIHx8IGUubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IFdhaXRlclJlc3VsdCA9IEpTT04ucGFyc2UoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFRvb2xraXRFcnJvcihmb3JtYXRXYWl0ZXJFcnJvclJlc3VsdChyZXN1bHQpKTtcbiAgICAgIGVycm9yLm5hbWUgPSBlLm5hbWU7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIGF3YWl0IGlvU3Bhbi5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU0MDMubXNnKFxuICAgIGhvdHN3YXBPcGVyYXRpb24uY2hhbmdlLnJlc291cmNlcy5tYXAociA9PiBmb3JtYXQoYCAgICR7SUNPTn0gJXMgJXNgLCBjaGFsay5ib2xkKHJlc291cmNlVGV4dChyKSksIGNoYWxrLmdyZWVuKCdob3Rzd2FwcGVkIScpKSkuam9pbignXFxuJyksXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UsXG4gICkpO1xuXG4gIHNkay5yZW1vdmVDdXN0b21Vc2VyQWdlbnQoY3VzdG9tVXNlckFnZW50KTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0V2FpdGVyRXJyb3JSZXN1bHQocmVzdWx0OiBXYWl0ZXJSZXN1bHQpIHtcbiAgY29uc3QgbWFpbiA9IFtcbiAgICBgUmVzb3VyY2UgaXMgbm90IGluIHRoZSBleHBlY3RlZCBzdGF0ZSBkdWUgdG8gd2FpdGVyIHN0YXR1czogJHtyZXN1bHQuc3RhdGV9YCxcbiAgICByZXN1bHQucmVhc29uID8gYCR7cmVzdWx0LnJlYXNvbn0uYCA6ICcnLFxuICBdLmpvaW4oJy4gJyk7XG5cbiAgaWYgKHJlc3VsdC5vYnNlcnZlZFJlc3BvbnNlcyAhPSBudWxsKSB7XG4gICAgY29uc3Qgb2JzZXJ2ZWRSZXNwb25zZXMgPSBPYmplY3RcbiAgICAgIC5lbnRyaWVzKHJlc3VsdC5vYnNlcnZlZFJlc3BvbnNlcylcbiAgICAgIC5tYXAoKFttc2csIGNvdW50XSkgPT4gYCAgLSAke21zZ30gKCR7Y291bnR9KWApXG4gICAgICAuam9pbignXFxuJyk7XG5cbiAgICByZXR1cm4gYCR7bWFpbn0gT2JzZXJ2ZWQgcmVzcG9uc2VzOlxcbiR7b2JzZXJ2ZWRSZXNwb25zZXN9YDtcbiAgfVxuXG4gIHJldHVybiBtYWluO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2dSZWplY3RlZENoYW5nZXMoXG4gIGlvU3BhbjogSU1lc3NhZ2VTcGFuPGFueT4sXG4gIHJlamVjdGVkQ2hhbmdlczogUmVqZWN0ZWRDaGFuZ2VbXSxcbiAgaG90c3dhcE1vZGU6IEhvdHN3YXBNb2RlLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChyZWplY3RlZENoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8qKlxuICAgKiBFS1MgU2VydmljZXMgY2FuIGhhdmUgYSB0YXNrIGRlZmluaXRpb24gdGhhdCBkb2Vzbid0IHJlZmVyIHRvIHRoZSB0YXNrIGRlZmluaXRpb24gYmVpbmcgdXBkYXRlZC5cbiAgICogV2UgaGF2ZSB0byBsb2cgdGhpcyBhcyBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIHRvIHRoZSB0YXNrIGRlZmluaXRpb24sIGJ1dCB3aGVuIHdlIGRvLFxuICAgKiB3ZSB3aW5kIHVwIGhvdHN3YXBwaW5nIHRoZSB0YXNrIGRlZmluaXRpb24gYW5kIGxvZ2dpbmcgaXQgYXMgYSBub24taG90c3dhcHBhYmxlIGNoYW5nZS5cbiAgICpcbiAgICogVGhpcyBsb2dpYyBwcmV2ZW50cyB1cyBmcm9tIGxvZ2dpbmcgdGhhdCBjaGFuZ2UgYXMgbm9uLWhvdHN3YXBwYWJsZSB3aGVuIHdlIGhvdHN3YXAgaXQuXG4gICAqL1xuICBpZiAoaG90c3dhcE1vZGUgPT09ICdob3Rzd2FwLW9ubHknKSB7XG4gICAgcmVqZWN0ZWRDaGFuZ2VzID0gcmVqZWN0ZWRDaGFuZ2VzLmZpbHRlcigoY2hhbmdlKSA9PiBjaGFuZ2UuaG90c3dhcE9ubHlWaXNpYmxlID09PSB0cnVlKTtcblxuICAgIGlmIChyZWplY3RlZENoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWVzc2FnZXMgPSBbJyddOyAvLyBzdGFydCB3aXRoIGVtcHR5IGxpbmVcblxuICBpZiAoaG90c3dhcE1vZGUgPT09ICdob3Rzd2FwLW9ubHknKSB7XG4gICAgbWVzc2FnZXMucHVzaChmb3JtYXQoJyVzICVzJywgY2hhbGsucmVkKCfimqDvuI8nKSwgY2hhbGsucmVkKCdUaGUgZm9sbG93aW5nIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlcyB3ZXJlIGZvdW5kLiBUbyByZWNvbmNpbGUgdGhlc2UgdXNpbmcgQ2xvdWRGb3JtYXRpb24sIHNwZWNpZnkgLS1ob3Rzd2FwLWZhbGxiYWNrJykpKTtcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlcy5wdXNoKGZvcm1hdCgnJXMgJXMnLCBjaGFsay5yZWQoJ+KaoO+4jycpLCBjaGFsay5yZWQoJ1RoZSBmb2xsb3dpbmcgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIHdlcmUgZm91bmQ6JykpKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgeyBjaGFuZ2UgfSBvZiByZWplY3RlZENoYW5nZXMpIHtcbiAgICBtZXNzYWdlcy5wdXNoKCcgICAgJyArIG5vbkhvdHN3YXBwYWJsZUNoYW5nZU1lc3NhZ2UoY2hhbmdlKSk7XG4gIH1cbiAgbWVzc2FnZXMucHVzaCgnJyk7IC8vIG5ld2xpbmVcblxuICBhd2FpdCBpb1NwYW4uZGVmYXVsdHMuaW5mbyhtZXNzYWdlcy5qb2luKCdcXG4nKSk7XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIE5vbkhvdHN3YXBwYWJsZUNoYW5nZVxuICovXG5mdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVDaGFuZ2VNZXNzYWdlKGNoYW5nZTogTm9uSG90c3dhcHBhYmxlQ2hhbmdlKTogc3RyaW5nIHtcbiAgY29uc3Qgc3ViamVjdCA9IGNoYW5nZS5zdWJqZWN0O1xuICBjb25zdCByZWFzb24gPSBjaGFuZ2UuZGVzY3JpcHRpb24gPz8gY2hhbmdlLnJlYXNvbjtcblxuICBzd2l0Y2ggKHN1YmplY3QudHlwZSkge1xuICAgIGNhc2UgJ091dHB1dCc6XG4gICAgICByZXR1cm4gZm9ybWF0KFxuICAgICAgICAnb3V0cHV0OiAlcywgcmVhc29uOiAlcycsXG4gICAgICAgIGNoYWxrLmJvbGQoc3ViamVjdC5sb2dpY2FsSWQpLFxuICAgICAgICBjaGFsay5yZWQocmVhc29uKSxcbiAgICAgICk7XG4gICAgY2FzZSAnUmVzb3VyY2UnOlxuICAgICAgcmV0dXJuIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlTWVzc2FnZShzdWJqZWN0LCByZWFzb24pO1xuICB9XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIG5vbi1ob3Rzd2FwcGFibGUgcmVzb3VyY2Ugc3ViamVjdFxuICovXG5mdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZU1lc3NhZ2Uoc3ViamVjdDogUmVzb3VyY2VTdWJqZWN0LCByZWFzb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChzdWJqZWN0LnJlamVjdGVkUHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZvcm1hdChcbiAgICAgICdyZXNvdXJjZTogJXMsIHR5cGU6ICVzLCByZWplY3RlZCBjaGFuZ2VzOiAlcywgcmVhc29uOiAlcycsXG4gICAgICBjaGFsay5ib2xkKHN1YmplY3QubG9naWNhbElkKSxcbiAgICAgIGNoYWxrLmJvbGQoc3ViamVjdC5yZXNvdXJjZVR5cGUpLFxuICAgICAgY2hhbGsuYm9sZChzdWJqZWN0LnJlamVjdGVkUHJvcGVydGllcyksXG4gICAgICBjaGFsay5yZWQocmVhc29uKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdChcbiAgICAncmVzb3VyY2U6ICVzLCB0eXBlOiAlcywgcmVhc29uOiAlcycsXG4gICAgY2hhbGsuYm9sZChzdWJqZWN0LmxvZ2ljYWxJZCksXG4gICAgY2hhbGsuYm9sZChzdWJqZWN0LnJlc291cmNlVHlwZSksXG4gICAgY2hhbGsucmVkKHJlYXNvbiksXG4gICk7XG59XG4iXX0=
|
|
443
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90c3dhcC1kZXBsb3ltZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhvdHN3YXAtZGVwbG95bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5RkEsb0RBbUNDO0FBNUhELCtCQUE4QjtBQUU5Qix5REFBeUQ7QUFFekQsK0JBQStCO0FBRS9CLDZDQUF1RDtBQUN2RCxxQ0FBZ0Q7QUFHaEQsc0RBQXdHO0FBQ3hHLDJFQUEwRTtBQUMxRSw2RUFBMkY7QUFDM0YsK0RBQTZFO0FBTzdFLHFDQUdrQjtBQUNsQixpREFBZ0U7QUFDaEUseURBQXdFO0FBQ3hFLG1FQUdpQztBQUNqQyxpRkFBa0Y7QUFDbEYsK0RBQTJEO0FBRTNELDJDQUF5QztBQUV6QyxzQ0FBaUM7QUFFakMsNkVBQTZFO0FBQzdFLDRHQUE0RztBQUM1RyxNQUFNLE1BQU0sR0FBNkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBVzVELE1BQU0sa0JBQWtCLEdBQXVDO0lBQzdELFNBQVM7SUFDVCx1QkFBdUIsRUFBRSxxREFBa0M7SUFDM0Qsc0JBQXNCLEVBQUUscURBQWtDO0lBQzFELG9CQUFvQixFQUFFLHFEQUFrQztJQUV4RCxVQUFVO0lBQ1Ysd0JBQXdCLEVBQUUsdURBQTJCO0lBQ3JELHFDQUFxQyxFQUFFLHVEQUEyQjtJQUNsRSw2QkFBNkIsRUFBRSx1REFBMkI7SUFDMUQsc0JBQXNCLEVBQUUsdURBQTJCO0lBRW5ELGdDQUFnQyxFQUFFLHdFQUEyQztJQUM3RSwwQkFBMEIsRUFBRSw2Q0FBOEI7SUFDMUQseUJBQXlCLEVBQUUsMERBQW9DO0lBQy9ELGtDQUFrQyxFQUFFLCtEQUFnQztJQUNwRSw2QkFBNkIsRUFBRSw4REFBc0M7SUFDckUsa0JBQWtCLEVBQUUsS0FBSyxFQUN2QixTQUFpQixFQUNqQixNQUFzQixFQUN0QixtQkFBbUQsRUFDekIsRUFBRTtRQUM1Qiw0RUFBNEU7UUFDNUUsSUFBSSxNQUFNLElBQUEsaUVBQXlDLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDNUYsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUEsZ0NBQXVCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0JBQW9CLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFO0NBQ3JDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsV0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsV0FBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLGFBQWdELEVBQ2hELFdBQXdCLEVBQ3hCLHdCQUFrRDtJQUVsRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMxRCxLQUFLLEVBQUUsYUFBYTtRQUNwQixJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGlCQUFpQixDQUNwQyxXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2IsV0FBVyxFQUNYLHdCQUF3QixDQUN6QixDQUFDO0lBRUYsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLElBQUksTUFBTSxFQUFFLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQzdDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPO1lBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxPQUFPO1NBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxpQkFBaUIsQ0FDOUIsV0FBd0IsRUFDeEIsTUFBeUIsRUFDekIsV0FBc0MsRUFDdEMsS0FBd0MsRUFDeEMsV0FBd0IsRUFDeEIsd0JBQWtEO0lBRWxELDJGQUEyRjtJQUMzRixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUUsOEdBQThHO0lBQzlHLGtHQUFrRztJQUNsRyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsYUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBRWpGLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBQSxvREFBbUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFOUUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLCtDQUE4QixDQUFDO1FBQzdELGFBQWEsRUFBRSxLQUFLO1FBQ3BCLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztRQUM1QixNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDMUIsU0FBUyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxTQUFTO1FBQ2pELEdBQUc7UUFDSCxZQUFZLEVBQUUsZUFBZSxDQUFDLFlBQVk7S0FDM0MsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdGLE1BQU0sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSx1QkFBdUIsQ0FDckUsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixHQUFHLEVBQ0gsZUFBZSxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FDdkQsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUUvRCxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWxFLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFO1FBQ25FLEtBQUs7UUFDTCxJQUFJLEVBQUUsV0FBVztRQUNqQixtQkFBbUI7UUFDbkIsc0JBQXNCO0tBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBRUosb0NBQW9DO0lBQ3BDLElBQUksV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU87Z0JBQ0wsS0FBSztnQkFDTCxJQUFJLEVBQUUsV0FBVztnQkFDakIsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLG1CQUFtQjtnQkFDbkIsc0JBQXNCO2FBQ3ZCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxNQUFNLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFM0QsT0FBTztRQUNMLEtBQUs7UUFDTCxJQUFJLEVBQUUsV0FBVztRQUNqQixVQUFVLEVBQUUsSUFBSTtRQUNoQixtQkFBbUI7UUFDbkIsc0JBQXNCO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBT0Q7OztHQUdHO0FBQ0gsS0FBSyxVQUFVLHVCQUF1QixDQUNwQyxZQUFtQyxFQUNuQyxtQkFBbUQsRUFDbkQsR0FBUSxFQUNSLGdCQUFxRSxFQUNyRSx3QkFBa0Q7SUFFbEQsTUFBTSxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV0RSxNQUFNLFFBQVEsR0FBMEMsRUFBRSxDQUFDO0lBQzNELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7SUFDNUQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztJQUM3RCxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2xFLHdCQUF3QixDQUFDLElBQUksQ0FBQztZQUM1QixZQUFZLEVBQUUsS0FBSztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLGdDQUFxQixDQUFDLE1BQU07Z0JBQ3BDLFdBQVcsRUFBRSxvQkFBb0I7Z0JBQ2pDLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxTQUFTO29CQUNULFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO2lCQUNyRDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELCtDQUErQztJQUMvQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFDdEUsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyw0QkFBNEIsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3JILE1BQU0sMkJBQTJCLEdBQUcsTUFBTSw2QkFBNkIsQ0FDckUsU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLEdBQUcsRUFDSCx3QkFBd0IsQ0FDekIsQ0FBQztZQUNGLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hFLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRTlFLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSwyQkFBMkIsR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDdEcsc0ZBQXNGO1FBQ3RGLElBQUksY0FBYyxJQUFJLDJCQUEyQixFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM5Qyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBRUQsU0FBUztRQUNYLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBVywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksWUFBWSxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdkMsd0VBQXdFO1lBQ3hFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQ2pCLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUN4SCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTix3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBQSxnQ0FBdUIsRUFBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQztJQUNILENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsTUFBTSx1QkFBdUIsR0FBMkIsRUFBRSxDQUFDO0lBQzNELEtBQUssTUFBTSxzQkFBc0IsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM5Qyx3Q0FBd0M7UUFDeEMsd0VBQXdFO1FBQ3hFLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLHVCQUF1QixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLLE1BQU0sd0JBQXdCLElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUMvRCxLQUFLLE1BQU0sY0FBYyxJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFDdEQsY0FBYyxDQUFDLFlBQVk7Z0JBQ3pCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUM1QyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLFlBQVksRUFBRSxxQkFBcUI7UUFDbkMsZUFBZSxFQUFFLHdCQUF3QjtLQUMxQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLDJCQUEyQixDQUFDLFlBQW1DO0lBR3RFLGlFQUFpRTtJQUNqRSxpR0FBaUc7SUFDakcsTUFBTSxrQkFBa0IsR0FBcUQsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDNUcsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RixNQUFNLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakcsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDN0UsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztZQUNuQyx5Q0FBeUM7WUFDekMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtnQkFDdkYsT0FBTyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekQsQ0FBQyxDQUFDLENBQUM7WUFDSCwyREFBMkQ7WUFDM0QsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUMzQixNQUFNLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDLEdBQUcsc0JBQXNCLENBQUM7Z0JBQ3JFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRix1REFBdUQ7Z0JBQ3ZELE9BQU8saUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELHNDQUFzQztJQUN0Qyx1REFBdUQ7SUFDdkQsT0FBTztRQUNMLEdBQUcsaUJBQWlCO1FBQ3BCLEdBQUcsb0JBQW9CO0tBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQseUhBQXlIO0FBQ3pILFNBQVMsVUFBVSxDQUFJLElBQTBCLEVBQUUsSUFBdUI7SUFDeEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1osR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFDRCxFQUEwQixDQUMzQixDQUFDO0FBQ0osQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxLQUFLLFVBQVUsNkJBQTZCLENBQzFDLFNBQWlCLEVBQ2pCLE1BQW1DLEVBQ25DLG9CQUF5RSxFQUN6RSxtQkFBbUQsRUFDbkQsR0FBUSxFQUNSLHdCQUFrRDtJQUVsRCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlCLE9BQU87WUFDTCxZQUFZLEVBQUUsRUFBRTtZQUNoQixlQUFlLEVBQUU7Z0JBQ2Y7b0JBQ0UsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsZ0NBQXFCLENBQUMscUJBQXFCO3dCQUNuRCxXQUFXLEVBQUUsa0RBQWtEO3dCQUMvRCxPQUFPLEVBQUU7NEJBQ1AsSUFBSSxFQUFFLFVBQVU7NEJBQ2hCLFNBQVM7NEJBQ1QsWUFBWSxFQUFFLDRCQUE0Qjs0QkFDMUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7eUJBQ3JEO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0seUJBQXlCLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQywwQ0FBMEMsQ0FDcEcsV0FBVyxDQUFDLFlBQVksRUFDeEIsV0FBVyxDQUFDLGlCQUFpQixFQUM3QixNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQ3hDLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUNsQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFDaEQsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsaUJBQWlCLENBQ2xELENBQUM7SUFFRixPQUFPLHVCQUF1QixDQUM1QixVQUFVLEVBQ1YseUJBQXlCLEVBQ3pCLEdBQUcsRUFDSCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsRUFDcEQsd0JBQXdCLENBQ3pCLENBQUM7QUFDSixDQUFDO0FBRUQsb0VBQW9FO0FBQ3BFLFNBQVMseUJBQXlCLENBQ2hDLFNBQXNDLEVBQ3RDLFNBQXNDO0lBRXRDLE9BQU8sQ0FDTCxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxlQUFlO1FBQ3ZELG9HQUFvRztRQUNwRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FDcEYsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixTQUFzQyxFQUN0QyxTQUFzQztJQUV0QyxPQUFPLElBQUksUUFBUSxDQUFDLGtCQUFrQjtJQUNwQywyR0FBMkc7SUFDM0csU0FBUyxDQUFDLFFBQVEsRUFDbEIsU0FBUyxDQUFDLFFBQVEsRUFDbEI7UUFDRSxZQUFZLEVBQUU7WUFDWixPQUFPLEVBQUUsU0FBUyxDQUFDLGVBQWU7WUFDbEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxlQUFlO1NBQ25DO1FBQ0QsYUFBYSxFQUFHLFNBQWlCLENBQUMsYUFBYTtRQUMvQyxVQUFVLEVBQUcsU0FBaUIsQ0FBQyxVQUFVO0tBQzFDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FDaEMsU0FBaUIsRUFDakIsTUFBbUMsRUFDbkMsbUJBQW1EO0lBRW5ELCtGQUErRjtJQUMvRixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JCLE9BQU87WUFDTCxZQUFZLEVBQUUsS0FBSztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLGdDQUFxQixDQUFDLGlCQUFpQjtnQkFDL0MsV0FBVyxFQUFFLGFBQWEsU0FBUyxrQ0FBa0M7Z0JBQ3JFLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUztvQkFDVCxZQUFZLEVBQUUsTUFBTSxDQUFDLFFBQVMsQ0FBQyxJQUFJO29CQUNuQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztpQkFDckQ7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPO1lBQ0wsWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUztZQUNULE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsZ0NBQXFCLENBQUMsaUJBQWlCO2dCQUMvQyxXQUFXLEVBQUUsYUFBYSxTQUFTLG9DQUFvQztnQkFDdkUsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxVQUFVO29CQUNoQixTQUFTO29CQUNULFlBQVksRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7b0JBQ2xDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO2lCQUNyRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xELE9BQU87WUFDTCxZQUFZLEVBQUUsS0FBSztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLGdDQUFxQixDQUFDLHFCQUFxQjtnQkFDbkQsV0FBVyxFQUFFLGFBQWEsU0FBUyxnQ0FBZ0MsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLFNBQVMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUc7Z0JBQ3pILE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUztvQkFDVCxZQUFZLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO29CQUNsQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztpQkFDckQ7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLFNBQVM7UUFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtRQUN2QyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztLQUNyRCxDQUFDO0FBQ0osQ0FBQztBQUVELEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxHQUFRLEVBQUUsTUFBeUIsRUFBRSxtQkFBdUM7SUFDbkgsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssYUFBSSx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6Qix3RUFBd0U7SUFDeEUsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUN4RSxPQUFPLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsS0FBSyxVQUFVLHFCQUFxQixDQUFDLEdBQVEsRUFBRSxNQUF5QixFQUFFLGdCQUFrQztJQUMxRyw4RUFBOEU7SUFDOUUsTUFBTSxlQUFlLEdBQUcsdUJBQXVCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMzQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDO0lBRXRILE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUMxQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUEsYUFBTSxFQUFDLE1BQU0sYUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUMzRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQ3hCLENBQUMsQ0FBQztJQUVILDREQUE0RDtJQUM1RCxxRUFBcUU7SUFDckUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ3pELE1BQU0sTUFBTSxHQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxNQUFNLEtBQUssR0FBRyxJQUFJLDRCQUFZLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoRSxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDcEIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQzFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSxhQUFNLEVBQUMsTUFBTSxhQUFJLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDMUksZ0JBQWdCLENBQUMsTUFBTSxDQUN4QixDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsTUFBb0I7SUFDbkQsTUFBTSxJQUFJLEdBQUc7UUFDWCwrREFBK0QsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUM3RSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUN6QyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUViLElBQUksTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsTUFBTTthQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO2FBQ2pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLEdBQUcsQ0FBQzthQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZCxPQUFPLEdBQUcsSUFBSSx5QkFBeUIsaUJBQWlCLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUMvQixNQUF5QixFQUN6QixlQUFpQyxFQUNqQyxXQUF3QjtJQUV4QixJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTztJQUNULENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSCxJQUFJLFdBQVcsS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDO1FBRXpGLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCO0lBRS9DLElBQUksV0FBVyxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSxhQUFNLEVBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyx3SEFBd0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2TCxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBQSxhQUFNLEVBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQsS0FBSyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksZUFBZSxFQUFFLENBQUM7UUFDekMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVU7SUFFN0IsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FBQyxNQUE2QjtJQUNqRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQy9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUVuRCxRQUFRLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUEsYUFBTSxFQUNYLHdCQUF3QixFQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDbEIsQ0FBQztRQUNKLEtBQUssVUFBVTtZQUNiLE9BQU8sOEJBQThCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLDhCQUE4QixDQUFDLE9BQXdCLEVBQUUsTUFBYztJQUM5RSxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUEsYUFBTSxFQUNYLDBEQUEwRCxFQUMxRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3RDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFBLGFBQU0sRUFDWCxvQ0FBb0MsRUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUNoQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUNsQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY2ZuX2RpZmYgZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSB7IFdhaXRlclJlc3VsdCB9IGZyb20gJ0BzbWl0aHkvdXRpbC13YWl0ZXInO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBBZmZlY3RlZFJlc291cmNlLCBIb3Rzd2FwUmVzdWx0LCBSZXNvdXJjZVN1YmplY3QsIFJlc291cmNlQ2hhbmdlLCBOb25Ib3Rzd2FwcGFibGVDaGFuZ2UgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgeyBOb25Ib3Rzd2FwcGFibGVSZWFzb24gfSBmcm9tICcuLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLLCBTZGtQcm92aWRlciB9IGZyb20gJy4uL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvblN0YWNrLCBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGxvYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLCBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpc0hvdHN3YXBwYWJsZUFwcFN5bmNDaGFuZ2UgfSBmcm9tICcuL2FwcHN5bmMtbWFwcGluZy10ZW1wbGF0ZXMnO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVCZWRyb2NrQWdlbnRDb3JlUnVudGltZUNoYW5nZSB9IGZyb20gJy4vYmVkcm9jay1hZ2VudGNvcmUtcnVudGltZXMnO1xuaW1wb3J0IHsgaXNIb3Rzd2FwcGFibGVDb2RlQnVpbGRQcm9qZWN0Q2hhbmdlIH0gZnJvbSAnLi9jb2RlLWJ1aWxkLXByb2plY3RzJztcbmltcG9ydCB0eXBlIHtcbiAgSG90c3dhcENoYW5nZSxcbiAgSG90c3dhcE9wZXJhdGlvbixcbiAgUmVqZWN0ZWRDaGFuZ2UsXG4gIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHtcbiAgSUNPTixcbiAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2UsXG59IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IGlzSG90c3dhcHBhYmxlRWNzU2VydmljZUNoYW5nZSB9IGZyb20gJy4vZWNzLXNlcnZpY2VzJztcbmltcG9ydCB7IGlzSG90c3dhcHBhYmxlTGFtYmRhRnVuY3Rpb25DaGFuZ2UgfSBmcm9tICcuL2xhbWJkYS1mdW5jdGlvbnMnO1xuaW1wb3J0IHtcbiAgc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3ksXG4gIGlzSG90c3dhcHBhYmxlUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlLFxufSBmcm9tICcuL3MzLWJ1Y2tldC1kZXBsb3ltZW50cyc7XG5pbXBvcnQgeyBpc0hvdHN3YXBwYWJsZVN0YXRlTWFjaGluZUNoYW5nZSB9IGZyb20gJy4vc3RlcGZ1bmN0aW9ucy1zdGF0ZS1tYWNoaW5lcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi9kZXBsb3ltZW50cyc7XG5pbXBvcnQgeyBJTywgU1BBTiB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJTWVzc2FnZVNwYW4sIElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luJztcblxuLy8gTXVzdCB1c2UgYSByZXF1aXJlKCkgb3RoZXJ3aXNlIGVzYnVpbGQgY29tcGxhaW5zIGFib3V0IGNhbGxpbmcgYSBuYW1lc3BhY2Vcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzLEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtaW1wb3J0c1xuY29uc3QgcExpbWl0OiB0eXBlb2YgaW1wb3J0KCdwLWxpbWl0JykgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG5cbnR5cGUgSG90c3dhcERldGVjdG9yID0gKFxuICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBSZXNvdXJjZUNoYW5nZSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXM6IEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyxcbikgPT4gUHJvbWlzZTxIb3Rzd2FwQ2hhbmdlW10+O1xuXG50eXBlIEhvdHN3YXBNb2RlID0gJ2hvdHN3YXAtb25seScgfCAnZmFsbC1iYWNrJztcblxuY29uc3QgUkVTT1VSQ0VfREVURUNUT1JTOiB7IFtrZXk6IHN0cmluZ106IEhvdHN3YXBEZXRlY3RvciB9ID0ge1xuICAvLyBMYW1iZGFcbiAgJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbic6IGlzSG90c3dhcHBhYmxlTGFtYmRhRnVuY3Rpb25DaGFuZ2UsXG4gICdBV1M6OkxhbWJkYTo6VmVyc2lvbic6IGlzSG90c3dhcHBhYmxlTGFtYmRhRnVuY3Rpb25DaGFuZ2UsXG4gICdBV1M6OkxhbWJkYTo6QWxpYXMnOiBpc0hvdHN3YXBwYWJsZUxhbWJkYUZ1bmN0aW9uQ2hhbmdlLFxuXG4gIC8vIEFwcFN5bmNcbiAgJ0FXUzo6QXBwU3luYzo6UmVzb2x2ZXInOiBpc0hvdHN3YXBwYWJsZUFwcFN5bmNDaGFuZ2UsXG4gICdBV1M6OkFwcFN5bmM6OkZ1bmN0aW9uQ29uZmlndXJhdGlvbic6IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSxcbiAgJ0FXUzo6QXBwU3luYzo6R3JhcGhRTFNjaGVtYSc6IGlzSG90c3dhcHBhYmxlQXBwU3luY0NoYW5nZSxcbiAgJ0FXUzo6QXBwU3luYzo6QXBpS2V5JzogaXNIb3Rzd2FwcGFibGVBcHBTeW5jQ2hhbmdlLFxuXG4gICdBV1M6OkJlZHJvY2tBZ2VudENvcmU6OlJ1bnRpbWUnOiBpc0hvdHN3YXBwYWJsZUJlZHJvY2tBZ2VudENvcmVSdW50aW1lQ2hhbmdlLFxuICAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJzogaXNIb3Rzd2FwcGFibGVFY3NTZXJ2aWNlQ2hhbmdlLFxuICAnQVdTOjpDb2RlQnVpbGQ6OlByb2plY3QnOiBpc0hvdHN3YXBwYWJsZUNvZGVCdWlsZFByb2plY3RDaGFuZ2UsXG4gICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZSc6IGlzSG90c3dhcHBhYmxlU3RhdGVNYWNoaW5lQ2hhbmdlLFxuICAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JzogaXNIb3Rzd2FwcGFibGVTM0J1Y2tldERlcGxveW1lbnRDaGFuZ2UsXG4gICdBV1M6OklBTTo6UG9saWN5JzogYXN5bmMgKFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGNoYW5nZTogUmVzb3VyY2VDaGFuZ2UsXG4gICAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICApOiBQcm9taXNlPEhvdHN3YXBDaGFuZ2VbXT4gPT4ge1xuICAgIC8vIElmIHRoZSBwb2xpY3kgaXMgZm9yIGEgUzNCdWNrZXREZXBsb3ltZW50Q2hhbmdlLCB3ZSBjYW4gaWdub3JlIHRoZSBjaGFuZ2VcbiAgICBpZiAoYXdhaXQgc2tpcENoYW5nZUZvclMzRGVwbG95Q3VzdG9tUmVzb3VyY2VQb2xpY3kobG9naWNhbElkLCBjaGFuZ2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtub25Ib3Rzd2FwcGFibGVSZXNvdXJjZShjaGFuZ2UpXTtcbiAgfSxcblxuICAnQVdTOjpDREs6Ok1ldGFkYXRhJzogYXN5bmMgKCkgPT4gW10sXG59O1xuXG4vKipcbiAqIFBlcmZvcm0gYSBob3Rzd2FwIGRlcGxveW1lbnQsIHNob3J0LWNpcmN1aXRpbmcgQ2xvdWRGb3JtYXRpb24gaWYgcG9zc2libGUuXG4gKiBJZiBpdCdzIG5vdCBwb3NzaWJsZSB0byBzaG9ydC1jaXJjdWl0IHRoZSBkZXBsb3ltZW50XG4gKiAoYmVjYXVzZSB0aGUgQ0RLIFN0YWNrIGNvbnRhaW5zIGNoYW5nZXMgdGhhdCBjYW5ub3QgYmUgZGVwbG95ZWQgd2l0aG91dCBDbG91ZEZvcm1hdGlvbiksXG4gKiByZXR1cm5zIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJ5SG90c3dhcERlcGxveW1lbnQoXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBhc3NldFBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgY2xvdWRGb3JtYXRpb25TdGFjazogQ2xvdWRGb3JtYXRpb25TdGFjayxcbiAgc3RhY2tBcnRpZmFjdDogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBob3Rzd2FwTW9kZTogSG90c3dhcE1vZGUsXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgaG90c3dhcFNwYW4gPSBhd2FpdCBpb0hlbHBlci5zcGFuKFNQQU4uSE9UU1dBUCkuYmVnaW4oe1xuICAgIHN0YWNrOiBzdGFja0FydGlmYWN0LFxuICAgIG1vZGU6IGhvdHN3YXBNb2RlLFxuICB9KTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBob3Rzd2FwRGVwbG95bWVudChcbiAgICBzZGtQcm92aWRlcixcbiAgICBob3Rzd2FwU3BhbixcbiAgICBhc3NldFBhcmFtcyxcbiAgICBzdGFja0FydGlmYWN0LFxuICAgIGhvdHN3YXBNb2RlLFxuICAgIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyxcbiAgKTtcblxuICBhd2FpdCBob3Rzd2FwU3Bhbi5lbmQocmVzdWx0KTtcblxuICBpZiAocmVzdWx0Py5ob3Rzd2FwcGVkID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdkaWQtZGVwbG95LXN0YWNrJyxcbiAgICAgIG5vT3A6IHJlc3VsdC5ob3Rzd2FwcGFibGVDaGFuZ2VzLmxlbmd0aCA9PT0gMCxcbiAgICAgIHN0YWNrQXJuOiBjbG91ZEZvcm1hdGlvblN0YWNrLnN0YWNrSWQsXG4gICAgICBvdXRwdXRzOiBjbG91ZEZvcm1hdGlvblN0YWNrLm91dHB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGVyZm9ybSBhIGhvdHN3YXAgZGVwbG95bWVudCwgc2hvcnQtY2lyY3VpdGluZyBDbG91ZEZvcm1hdGlvbiBpZiBwb3NzaWJsZS5cbiAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGF0dGVtcHRlZCBob3Rzd2FwIGRlcGxveW1lbnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaG90c3dhcERlcGxveW1lbnQoXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PixcbiAgYXNzZXRQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIGhvdHN3YXBNb2RlOiBIb3Rzd2FwTW9kZSxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPE9taXQ8SG90c3dhcFJlc3VsdCwgJ2R1cmF0aW9uJz4+IHtcbiAgLy8gcmVzb2x2ZSB0aGUgZW52aXJvbm1lbnQsIHNvIHdlIGNhbiBzdWJzdGl0dXRlIHRoaW5ncyBsaWtlIEFXUzo6UmVnaW9uIGluIENGTiBleHByZXNzaW9uc1xuICBjb25zdCByZXNvbHZlZEVudiA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChzdGFjay5lbnZpcm9ubWVudCk7XG4gIC8vIGNyZWF0ZSBhIG5ldyBTREsgdXNpbmcgdGhlIENMSSBjcmVkZW50aWFscywgYmVjYXVzZSB0aGUgZGVmYXVsdCBvbmUgd2lsbCBub3Qgd29yayBmb3IgbmV3LXN0eWxlIHN5bnRoZXNpcyAtXG4gIC8vIGl0IGFzc3VtZXMgdGhlIGJvb3RzdHJhcCBkZXBsb3kgUm9sZSwgd2hpY2ggZG9lc24ndCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwZGF0ZSBMYW1iZGEgZnVuY3Rpb25zXG4gIGNvbnN0IHNkayA9IChhd2FpdCBzZGtQcm92aWRlci5mb3JFbnZpcm9ubWVudChyZXNvbHZlZEVudiwgTW9kZS5Gb3JXcml0aW5nKSkuc2RrO1xuXG4gIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZSA9IGF3YWl0IGxvYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzKHN0YWNrLCBzZGspO1xuXG4gIGNvbnN0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUgPSBuZXcgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKHtcbiAgICBzdGFja0FydGlmYWN0OiBzdGFjayxcbiAgICBwYXJhbWV0ZXJzOiBhc3NldFBhcmFtcyxcbiAgICBhY2NvdW50OiByZXNvbHZlZEVudi5hY2NvdW50LFxuICAgIHJlZ2lvbjogcmVzb2x2ZWRFbnYucmVnaW9uLFxuICAgIHBhcnRpdGlvbjogKGF3YWl0IHNkay5jdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb24sXG4gICAgc2RrLFxuICAgIG5lc3RlZFN0YWNrczogY3VycmVudFRlbXBsYXRlLm5lc3RlZFN0YWNrcyxcbiAgfSk7XG5cbiAgY29uc3Qgc3RhY2tDaGFuZ2VzID0gY2ZuX2RpZmYuZnVsbERpZmYoY3VycmVudFRlbXBsYXRlLmRlcGxveWVkUm9vdFRlbXBsYXRlLCBzdGFjay50ZW1wbGF0ZSk7XG4gIGNvbnN0IHsgaG90c3dhcHBhYmxlLCBub25Ib3Rzd2FwcGFibGUgfSA9IGF3YWl0IGNsYXNzaWZ5UmVzb3VyY2VDaGFuZ2VzKFxuICAgIHN0YWNrQ2hhbmdlcyxcbiAgICBldmFsdWF0ZUNmblRlbXBsYXRlLFxuICAgIHNkayxcbiAgICBjdXJyZW50VGVtcGxhdGUubmVzdGVkU3RhY2tzLCBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICk7XG5cbiAgYXdhaXQgbG9nUmVqZWN0ZWRDaGFuZ2VzKGlvU3Bhbiwgbm9uSG90c3dhcHBhYmxlLCBob3Rzd2FwTW9kZSk7XG5cbiAgY29uc3QgaG90c3dhcHBhYmxlQ2hhbmdlcyA9IGhvdHN3YXBwYWJsZS5tYXAobyA9PiBvLmNoYW5nZSk7XG4gIGNvbnN0IG5vbkhvdHN3YXBwYWJsZUNoYW5nZXMgPSBub25Ib3Rzd2FwcGFibGUubWFwKG4gPT4gbi5jaGFuZ2UpO1xuXG4gIGF3YWl0IGlvU3Bhbi5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU0MDEubXNnKCdIb3Rzd2FwIHBsYW4gY3JlYXRlZCcsIHtcbiAgICBzdGFjayxcbiAgICBtb2RlOiBob3Rzd2FwTW9kZSxcbiAgICBob3Rzd2FwcGFibGVDaGFuZ2VzLFxuICAgIG5vbkhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gIH0pKTtcblxuICAvLyBwcmVzZXJ2ZSBjbGFzc2ljIGhvdHN3YXAgYmVoYXZpb3JcbiAgaWYgKGhvdHN3YXBNb2RlID09PSAnZmFsbC1iYWNrJykge1xuICAgIGlmIChub25Ib3Rzd2FwcGFibGVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YWNrLFxuICAgICAgICBtb2RlOiBob3Rzd2FwTW9kZSxcbiAgICAgICAgaG90c3dhcHBlZDogZmFsc2UsXG4gICAgICAgIGhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgICAgIG5vbkhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIGFwcGx5IHRoZSBzaG9ydC1jaXJjdWl0YWJsZSBjaGFuZ2VzXG4gIGF3YWl0IGFwcGx5QWxsSG90c3dhcE9wZXJhdGlvbnMoc2RrLCBpb1NwYW4sIGhvdHN3YXBwYWJsZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFjayxcbiAgICBtb2RlOiBob3Rzd2FwTW9kZSxcbiAgICBob3Rzd2FwcGVkOiB0cnVlLFxuICAgIGhvdHN3YXBwYWJsZUNoYW5nZXMsXG4gICAgbm9uSG90c3dhcHBhYmxlQ2hhbmdlcyxcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENsYXNzaWZpZWRDaGFuZ2VzIHtcbiAgaG90c3dhcHBhYmxlOiBIb3Rzd2FwT3BlcmF0aW9uW107XG4gIG5vbkhvdHN3YXBwYWJsZTogUmVqZWN0ZWRDaGFuZ2VbXTtcbn1cblxuLyoqXG4gKiBDbGFzc2lmaWVzIGFsbCBjaGFuZ2VzIHRvIGFsbCByZXNvdXJjZXMgYXMgZWl0aGVyIGhvdHN3YXBwYWJsZSBvciBub3QuXG4gKiBNZXRhZGF0YSBjaGFuZ2VzIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBsaXN0IG9mIChub24paG90c3dhcHBhYmxlIHJlc291cmNlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZUNoYW5nZXMoXG4gIHN0YWNrQ2hhbmdlczogY2ZuX2RpZmYuVGVtcGxhdGVEaWZmLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4gIHNkazogU0RLLFxuICBuZXN0ZWRTdGFja05hbWVzOiB7IFtuZXN0ZWRTdGFja05hbWU6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0sXG4gIGhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlczogSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuKTogUHJvbWlzZTxDbGFzc2lmaWVkQ2hhbmdlcz4ge1xuICBjb25zdCByZXNvdXJjZURpZmZlcmVuY2VzID0gZ2V0U3RhY2tSZXNvdXJjZURpZmZlcmVuY2VzKHN0YWNrQ2hhbmdlcyk7XG5cbiAgY29uc3QgcHJvbWlzZXM6IEFycmF5PCgpID0+IFByb21pc2U8SG90c3dhcENoYW5nZVtdPj4gPSBbXTtcbiAgY29uc3QgaG90c3dhcHBhYmxlUmVzb3VyY2VzID0gbmV3IEFycmF5PEhvdHN3YXBPcGVyYXRpb24+KCk7XG4gIGNvbnN0IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcyA9IG5ldyBBcnJheTxSZWplY3RlZENoYW5nZT4oKTtcbiAgZm9yIChjb25zdCBsb2dpY2FsSWQgb2YgT2JqZWN0LmtleXMoc3RhY2tDaGFuZ2VzLm91dHB1dHMuY2hhbmdlcykpIHtcbiAgICBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZXMucHVzaCh7XG4gICAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLk9VVFBVVCxcbiAgICAgICAgZGVzY3JpcHRpb246ICdvdXRwdXQgd2FzIGNoYW5nZWQnLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ091dHB1dCcsXG4gICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vIGdhdGhlciB0aGUgcmVzdWx0cyBvZiB0aGUgZGV0ZWN0b3IgZnVuY3Rpb25zXG4gIGZvciAoY29uc3QgW2xvZ2ljYWxJZCwgY2hhbmdlXSBvZiBPYmplY3QuZW50cmllcyhyZXNvdXJjZURpZmZlcmVuY2VzKSkge1xuICAgIGlmIChjaGFuZ2UubmV3VmFsdWU/LlR5cGUgPT09ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycgJiYgY2hhbmdlLm9sZFZhbHVlPy5UeXBlID09PSAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snKSB7XG4gICAgICBjb25zdCBuZXN0ZWRIb3Rzd2FwcGFibGVSZXNvdXJjZXMgPSBhd2FpdCBmaW5kTmVzdGVkSG90c3dhcHBhYmxlQ2hhbmdlcyhcbiAgICAgICAgbG9naWNhbElkLFxuICAgICAgICBjaGFuZ2UsXG4gICAgICAgIG5lc3RlZFN0YWNrTmFtZXMsXG4gICAgICAgIGV2YWx1YXRlQ2ZuVGVtcGxhdGUsXG4gICAgICAgIHNkayxcbiAgICAgICAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzLFxuICAgICAgKTtcbiAgICAgIGhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKC4uLm5lc3RlZEhvdHN3YXBwYWJsZVJlc291cmNlcy5ob3Rzd2FwcGFibGUpO1xuICAgICAgbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLnB1c2goLi4ubmVzdGVkSG90c3dhcHBhYmxlUmVzb3VyY2VzLm5vbkhvdHN3YXBwYWJsZSk7XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSA9IGlzQ2FuZGlkYXRlRm9ySG90c3dhcHBpbmcobG9naWNhbElkLCBjaGFuZ2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gcnVuIHRoaXMgdGhyb3VnaCB0aGUgZGV0ZWN0b3IgZnVuY3Rpb25zLCB3ZSBjYW4gYWxyZWFkeSBqdWRnZSB0aGlzXG4gICAgaWYgKCdob3Rzd2FwcGFibGUnIGluIGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSkge1xuICAgICAgaWYgKCFob3Rzd2FwcGFibGVDaGFuZ2VDYW5kaWRhdGUuaG90c3dhcHBhYmxlKSB7XG4gICAgICAgIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlVHlwZTogc3RyaW5nID0gaG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlLm5ld1ZhbHVlLlR5cGU7XG4gICAgaWYgKHJlc291cmNlVHlwZSBpbiBSRVNPVVJDRV9ERVRFQ1RPUlMpIHtcbiAgICAgIC8vIHJ1biBkZXRlY3RvciBmdW5jdGlvbnMgbGF6aWx5IHRvIHByZXZlbnQgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uc1xuICAgICAgcHJvbWlzZXMucHVzaCgoKSA9PlxuICAgICAgICBSRVNPVVJDRV9ERVRFQ1RPUlNbcmVzb3VyY2VUeXBlXShsb2dpY2FsSWQsIGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSwgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKG5vbkhvdHN3YXBwYWJsZVJlc291cmNlKGhvdHN3YXBwYWJsZUNoYW5nZUNhbmRpZGF0ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHJlc29sdmUgYWxsIGRldGVjdG9yIHJlc3VsdHNcbiAgY29uc3QgY2hhbmdlc0RldGVjdGlvblJlc3VsdHM6IEFycmF5PEhvdHN3YXBDaGFuZ2VbXT4gPSBbXTtcbiAgZm9yIChjb25zdCBkZXRlY3RvclJlc3VsdFByb21pc2VzIG9mIHByb21pc2VzKSB7XG4gICAgLy8gQ29uc3RhbnQgc2V0IG9mIHByb21pc2VzIHBlciByZXNvdXJjZVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgIGNvbnN0IGhvdHN3YXBEZXRlY3Rpb25SZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYXdhaXQgZGV0ZWN0b3JSZXN1bHRQcm9taXNlcygpKTtcbiAgICBjaGFuZ2VzRGV0ZWN0aW9uUmVzdWx0cy5wdXNoKGhvdHN3YXBEZXRlY3Rpb25SZXN1bHRzKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgcmVzb3VyY2VEZXRlY3Rpb25SZXN1bHRzIG9mIGNoYW5nZXNEZXRlY3Rpb25SZXN1bHRzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eVJlc3VsdCBvZiByZXNvdXJjZURldGVjdGlvblJlc3VsdHMpIHtcbiAgICAgIHByb3BlcnR5UmVzdWx0LmhvdHN3YXBwYWJsZVxuICAgICAgICA/IGhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KVxuICAgICAgICA6IG5vbkhvdHN3YXBwYWJsZVJlc291cmNlcy5wdXNoKHByb3BlcnR5UmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhvdHN3YXBwYWJsZTogaG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICAgIG5vbkhvdHN3YXBwYWJsZTogbm9uSG90c3dhcHBhYmxlUmVzb3VyY2VzLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIGNoYW5nZXMgdG8gcmVzb3VyY2VzIGluIHRoZSBnaXZlbiBTdGFjay5cbiAqXG4gKiBAcGFyYW0gc3RhY2tDaGFuZ2VzIC0gdGhlIGNvbGxlY3Rpb24gb2YgYWxsIGNoYW5nZXMgdG8gYSBnaXZlbiBTdGFja1xuICovXG5mdW5jdGlvbiBnZXRTdGFja1Jlc291cmNlRGlmZmVyZW5jZXMoc3RhY2tDaGFuZ2VzOiBjZm5fZGlmZi5UZW1wbGF0ZURpZmYpOiB7XG4gIFtsb2dpY2FsSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZTtcbn0ge1xuICAvLyB3ZSBuZWVkIHRvIGNvbGxhcHNlIGxvZ2ljYWwgSUQgcmVuYW1lIGNoYW5nZXMgaW50byBvbmUgY2hhbmdlLFxuICAvLyBhcyB0aGV5IGFyZSByZXByZXNlbnRlZCBpbiBzdGFja0NoYW5nZXMgYXMgYSBwYWlyIG9mIHR3byBjaGFuZ2VzOiBvbmUgYWRkaXRpb24gYW5kIG9uZSByZW1vdmFsXG4gIGNvbnN0IGFsbFJlc291cmNlQ2hhbmdlczogeyBbbG9nSWQ6IHN0cmluZ106IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSB9ID0gc3RhY2tDaGFuZ2VzLnJlc291cmNlcy5jaGFuZ2VzO1xuICBjb25zdCBhbGxSZW1vdmFsQ2hhbmdlcyA9IGZpbHRlckRpY3QoYWxsUmVzb3VyY2VDaGFuZ2VzLCAocmVzQ2hhbmdlKSA9PiByZXNDaGFuZ2UuaXNSZW1vdmFsKTtcbiAgY29uc3QgYWxsTm9uUmVtb3ZhbENoYW5nZXMgPSBmaWx0ZXJEaWN0KGFsbFJlc291cmNlQ2hhbmdlcywgKHJlc0NoYW5nZSkgPT4gIXJlc0NoYW5nZS5pc1JlbW92YWwpO1xuICBmb3IgKGNvbnN0IFtsb2dJZCwgbm9uUmVtb3ZhbENoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoYWxsTm9uUmVtb3ZhbENoYW5nZXMpKSB7XG4gICAgaWYgKG5vblJlbW92YWxDaGFuZ2UuaXNBZGRpdGlvbikge1xuICAgICAgY29uc3QgYWRkQ2hhbmdlID0gbm9uUmVtb3ZhbENoYW5nZTtcbiAgICAgIC8vIHNlYXJjaCBmb3IgYW4gaWRlbnRpY2FsIHJlbW92YWwgY2hhbmdlXG4gICAgICBjb25zdCBpZGVudGljYWxSZW1vdmFsQ2hhbmdlID0gT2JqZWN0LmVudHJpZXMoYWxsUmVtb3ZhbENoYW5nZXMpLmZpbmQoKFtfLCByZW1DaGFuZ2VdKSA9PiB7XG4gICAgICAgIHJldHVybiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKHJlbUNoYW5nZSwgYWRkQ2hhbmdlKTtcbiAgICAgIH0pO1xuICAgICAgLy8gaWYgd2UgZm91bmQgb25lLCB0aGVuIHRoaXMgbWVhbnMgdGhpcyBpcyBhIHJlbmFtZSBjaGFuZ2VcbiAgICAgIGlmIChpZGVudGljYWxSZW1vdmFsQ2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IFtyZW1vdmVkTG9nSWQsIHJlbW92ZWRSZXNvdXJjZUNoYW5nZV0gPSBpZGVudGljYWxSZW1vdmFsQ2hhbmdlO1xuICAgICAgICBhbGxOb25SZW1vdmFsQ2hhbmdlc1tsb2dJZF0gPSBtYWtlUmVuYW1lRGlmZmVyZW5jZShyZW1vdmVkUmVzb3VyY2VDaGFuZ2UsIGFkZENoYW5nZSk7XG4gICAgICAgIC8vIGRlbGV0ZSB0aGUgcmVtb3ZhbCBjaGFuZ2UgdGhhdCBmb3JtcyB0aGUgcmVuYW1lIHBhaXJcbiAgICAgICAgZGVsZXRlIGFsbFJlbW92YWxDaGFuZ2VzW3JlbW92ZWRMb2dJZF07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgYXJlIGFsbCBvZiB0aGUgcmVtYWluaW5nIHJlbW92YWwgY2hhbmdlcyxcbiAgLy8gcGx1cyBhbGwgb2YgdGhlIG5vbi1yZW1vdmFsIGNoYW5nZXNcbiAgLy8gKHdlIHNhdmVkIHRoZSByZW5hbWUgY2hhbmdlcyBpbiB0aGF0IG9iamVjdCBhbHJlYWR5KVxuICByZXR1cm4ge1xuICAgIC4uLmFsbFJlbW92YWxDaGFuZ2VzLFxuICAgIC4uLmFsbE5vblJlbW92YWxDaGFuZ2VzLFxuICB9O1xufVxuXG4vKiogRmlsdGVycyBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5cyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBjYWxsYmFjayByZXR1cm5zICd0cnVlJyBmb3IgdGhlIGdpdmVuIHZhbHVlIGluIHRoZSBvYmplY3QuICovXG5mdW5jdGlvbiBmaWx0ZXJEaWN0PFQ+KGRpY3Q6IHsgW2tleTogc3RyaW5nXTogVCB9LCBmdW5jOiAodDogVCkgPT4gYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogVCB9IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRpY3QpLnJlZHVjZShcbiAgICAoYWNjLCBba2V5LCB0XSkgPT4ge1xuICAgICAgaWYgKGZ1bmModCkpIHtcbiAgICAgICAgYWNjW2tleV0gPSB0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogVCB9LFxuICApO1xufVxuXG4vKiogRmluZHMgYW55IGhvdHN3YXBwYWJsZSBjaGFuZ2VzIGluIGFsbCBuZXN0ZWQgc3RhY2tzLiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZE5lc3RlZEhvdHN3YXBwYWJsZUNoYW5nZXMoXG4gIGxvZ2ljYWxJZDogc3RyaW5nLFxuICBjaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmVzdGVkU3RhY2tUZW1wbGF0ZXM6IHsgW25lc3RlZFN0YWNrTmFtZTogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuICBzZGs6IFNESyxcbiAgaG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4pOiBQcm9taXNlPENsYXNzaWZpZWRDaGFuZ2VzPiB7XG4gIGNvbnN0IG5lc3RlZFN0YWNrID0gbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXTtcbiAgaWYgKCFuZXN0ZWRTdGFjay5waHlzaWNhbE5hbWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBbXSxcbiAgICAgIG5vbkhvdHN3YXBwYWJsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgICAgICBjaGFuZ2U6IHtcbiAgICAgICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLk5FU1RFRF9TVEFDS19DUkVBVElPTixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnbmV3bHkgY3JlYXRlZCBuZXN0ZWQgc3RhY2tzIGNhbm5vdCBiZSBob3Rzd2FwcGVkJyxcbiAgICAgICAgICAgIHN1YmplY3Q6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiBldmFsdWF0ZUNmblRlbXBsYXRlLm1ldGFkYXRhRm9yKGxvZ2ljYWxJZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBldmFsdWF0ZU5lc3RlZENmblRlbXBsYXRlID0gYXdhaXQgZXZhbHVhdGVDZm5UZW1wbGF0ZS5jcmVhdGVOZXN0ZWRFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoXG4gICAgbmVzdGVkU3RhY2sucGh5c2ljYWxOYW1lLFxuICAgIG5lc3RlZFN0YWNrLmdlbmVyYXRlZFRlbXBsYXRlLFxuICAgIGNoYW5nZS5uZXdWYWx1ZT8uUHJvcGVydGllcz8uUGFyYW1ldGVycyxcbiAgKTtcblxuICBjb25zdCBuZXN0ZWREaWZmID0gY2ZuX2RpZmYuZnVsbERpZmYoXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5kZXBsb3llZFRlbXBsYXRlLFxuICAgIG5lc3RlZFN0YWNrVGVtcGxhdGVzW2xvZ2ljYWxJZF0uZ2VuZXJhdGVkVGVtcGxhdGUsXG4gICk7XG5cbiAgcmV0dXJuIGNsYXNzaWZ5UmVzb3VyY2VDaGFuZ2VzKFxuICAgIG5lc3RlZERpZmYsXG4gICAgZXZhbHVhdGVOZXN0ZWRDZm5UZW1wbGF0ZSxcbiAgICBzZGssXG4gICAgbmVzdGVkU3RhY2tUZW1wbGF0ZXNbbG9naWNhbElkXS5uZXN0ZWRTdGFja1RlbXBsYXRlcyxcbiAgICBob3Rzd2FwUHJvcGVydHlPdmVycmlkZXMsXG4gICk7XG59XG5cbi8qKiBSZXR1cm5zICd0cnVlJyBpZiBhIHBhaXIgb2YgY2hhbmdlcyBpcyBmb3IgdGhlIHNhbWUgcmVzb3VyY2UuICovXG5mdW5jdGlvbiBjaGFuZ2VzQXJlRm9yU2FtZVJlc291cmNlKFxuICBvbGRDaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgbmV3Q2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBvbGRDaGFuZ2Uub2xkUmVzb3VyY2VUeXBlID09PSBuZXdDaGFuZ2UubmV3UmVzb3VyY2VUeXBlICYmXG4gICAgLy8gdGhpcyBpc24ndCBncmVhdCwgYnV0IEkgZG9uJ3Qgd2FudCB0byBicmluZyBpbiBzb21ldGhpbmcgbGlrZSB1bmRlcnNjb3JlIGp1c3QgZm9yIHRoaXMgY29tcGFyaXNvblxuICAgIEpTT04uc3RyaW5naWZ5KG9sZENoYW5nZS5vbGRQcm9wZXJ0aWVzKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3Q2hhbmdlLm5ld1Byb3BlcnRpZXMpXG4gICk7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZW5hbWVEaWZmZXJlbmNlKFxuICByZW1DaGFuZ2U6IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZSxcbiAgYWRkQ2hhbmdlOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2UsXG4pOiBjZm5fZGlmZi5SZXNvdXJjZURpZmZlcmVuY2Uge1xuICByZXR1cm4gbmV3IGNmbl9kaWZmLlJlc291cmNlRGlmZmVyZW5jZShcbiAgICAvLyB3ZSBoYXZlIHRvIGZpbGwgaW4gdGhlIG9sZCB2YWx1ZSwgYmVjYXVzZSBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgYSBub24taG90c3dhcHBhYmxlIGNoYW5nZVxuICAgIHJlbUNoYW5nZS5vbGRWYWx1ZSxcbiAgICBhZGRDaGFuZ2UubmV3VmFsdWUsXG4gICAge1xuICAgICAgcmVzb3VyY2VUeXBlOiB7XG4gICAgICAgIG9sZFR5cGU6IHJlbUNoYW5nZS5vbGRSZXNvdXJjZVR5cGUsXG4gICAgICAgIG5ld1R5cGU6IGFkZENoYW5nZS5uZXdSZXNvdXJjZVR5cGUsXG4gICAgICB9LFxuICAgICAgcHJvcGVydHlEaWZmczogKGFkZENoYW5nZSBhcyBhbnkpLnByb3BlcnR5RGlmZnMsXG4gICAgICBvdGhlckRpZmZzOiAoYWRkQ2hhbmdlIGFzIGFueSkub3RoZXJEaWZmcyxcbiAgICB9LFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBgSG90c3dhcHBhYmxlQ2hhbmdlQ2FuZGlkYXRlYCBpZiB0aGUgY2hhbmdlIGlzIGhvdHN3YXBwYWJsZVxuICogUmV0dXJucyBhbiBlbXB0eSBgSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIHRvIENESzo6TWV0YWRhdGFcbiAqIFJldHVybnMgYSBgTm9uSG90c3dhcHBhYmxlQ2hhbmdlYCBpZiB0aGUgY2hhbmdlIGlzIG5vdCBob3Rzd2FwcGFibGVcbiAqL1xuZnVuY3Rpb24gaXNDYW5kaWRhdGVGb3JIb3Rzd2FwcGluZyhcbiAgbG9naWNhbElkOiBzdHJpbmcsXG4gIGNoYW5nZTogY2ZuX2RpZmYuUmVzb3VyY2VEaWZmZXJlbmNlLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBSZWplY3RlZENoYW5nZSB8IFJlc291cmNlQ2hhbmdlIHtcbiAgLy8gYSByZXNvdXJjZSBoYXMgYmVlbiByZW1vdmVkIE9SIGEgcmVzb3VyY2UgaGFzIGJlZW4gYWRkZWQ7IHdlIGNhbid0IHNob3J0LWNpcmN1aXQgdGhhdCBjaGFuZ2VcbiAgaWYgKCFjaGFuZ2Uub2xkVmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaG90c3dhcHBhYmxlOiBmYWxzZSxcbiAgICAgIGNoYW5nZToge1xuICAgICAgICByZWFzb246IE5vbkhvdHN3YXBwYWJsZVJlYXNvbi5SRVNPVVJDRV9DUkVBVElPTixcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyB3YXMgY3JlYXRlZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2UubmV3VmFsdWUhLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBlbHNlIGlmICghY2hhbmdlLm5ld1ZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvdHN3YXBwYWJsZTogZmFsc2UsXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgcmVhc29uOiBOb25Ib3Rzd2FwcGFibGVSZWFzb24uUkVTT1VSQ0VfREVMRVRJT04sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgcmVzb3VyY2UgJyR7bG9naWNhbElkfScgd2FzIGRlc3Ryb3llZCBieSB0aGlzIGRlcGxveW1lbnRgLFxuICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICBsb2dpY2FsSWQsXG4gICAgICAgICAgcmVzb3VyY2VUeXBlOiBjaGFuZ2Uub2xkVmFsdWUuVHlwZSxcbiAgICAgICAgICBtZXRhZGF0YTogZXZhbHVhdGVDZm5UZW1wbGF0ZS5tZXRhZGF0YUZvcihsb2dpY2FsSWQpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gYSByZXNvdXJjZSBoYXMgaGFkIGl0cyB0eXBlIGNoYW5nZWRcbiAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5UeXBlICE9PSBjaGFuZ2Uub2xkVmFsdWUuVHlwZSkge1xuICAgIHJldHVybiB7XG4gICAgICBob3Rzd2FwcGFibGU6IGZhbHNlLFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIHJlYXNvbjogTm9uSG90c3dhcHBhYmxlUmVhc29uLlJFU09VUkNFX1RZUEVfQ0hBTkdFRCxcbiAgICAgICAgZGVzY3JpcHRpb246IGByZXNvdXJjZSAnJHtsb2dpY2FsSWR9JyBoYWQgaXRzIHR5cGUgY2hhbmdlZCBmcm9tICcke2NoYW5nZS5vbGRWYWx1ZT8uVHlwZX0nIHRvICcke2NoYW5nZS5uZXdWYWx1ZT8uVHlwZX0nYCxcbiAgICAgICAgc3ViamVjdDoge1xuICAgICAgICAgIHR5cGU6ICdSZXNvdXJjZScsXG4gICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogY2hhbmdlLm5ld1ZhbHVlLlR5cGUsXG4gICAgICAgICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbG9naWNhbElkLFxuICAgIG9sZFZhbHVlOiBjaGFuZ2Uub2xkVmFsdWUsXG4gICAgbmV3VmFsdWU6IGNoYW5nZS5uZXdWYWx1ZSxcbiAgICBwcm9wZXJ0eVVwZGF0ZXM6IGNoYW5nZS5wcm9wZXJ0eVVwZGF0ZXMsXG4gICAgbWV0YWRhdGE6IGV2YWx1YXRlQ2ZuVGVtcGxhdGUubWV0YWRhdGFGb3IobG9naWNhbElkKSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlBbGxIb3Rzd2FwT3BlcmF0aW9ucyhzZGs6IFNESywgaW9TcGFuOiBJTWVzc2FnZVNwYW48YW55PiwgaG90c3dhcHBhYmxlQ2hhbmdlczogSG90c3dhcE9wZXJhdGlvbltdKTogUHJvbWlzZTx2b2lkW10+IHtcbiAgaWYgKGhvdHN3YXBwYWJsZUNoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gIH1cblxuICBhd2FpdCBpb1NwYW4uZGVmYXVsdHMuaW5mbyhgXFxuJHtJQ09OfSBob3Rzd2FwcGluZyByZXNvdXJjZXM6YCk7XG4gIGNvbnN0IGxpbWl0ID0gcExpbWl0KDEwKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gIHJldHVybiBQcm9taXNlLmFsbChob3Rzd2FwcGFibGVDaGFuZ2VzLm1hcChob3Rzd2FwT3BlcmF0aW9uID0+IGxpbWl0KCgpID0+IHtcbiAgICByZXR1cm4gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkaywgaW9TcGFuLCBob3Rzd2FwT3BlcmF0aW9uKTtcbiAgfSkpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXBwbHlIb3Rzd2FwT3BlcmF0aW9uKHNkazogU0RLLCBpb1NwYW46IElNZXNzYWdlU3Bhbjxhbnk+LCBob3Rzd2FwT3BlcmF0aW9uOiBIb3Rzd2FwT3BlcmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIG5vdGUgdGhlIHR5cGUgb2Ygc2VydmljZSB0aGF0IHdhcyBzdWNjZXNzZnVsbHkgaG90c3dhcHBlZCBpbiB0aGUgVXNlci1BZ2VudFxuICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBgY2RrLWhvdHN3YXAvc3VjY2Vzcy0ke2hvdHN3YXBPcGVyYXRpb24uc2VydmljZX1gO1xuICBzZGsuYXBwZW5kQ3VzdG9tVXNlckFnZW50KGN1c3RvbVVzZXJBZ2VudCk7XG4gIGNvbnN0IHJlc291cmNlVGV4dCA9IChyOiBBZmZlY3RlZFJlc291cmNlKSA9PiByLmRlc2NyaXB0aW9uID8/IGAke3IucmVzb3VyY2VUeXBlfSAnJHtyLnBoeXNpY2FsTmFtZSA/PyByLmxvZ2ljYWxJZH0nYDtcblxuICBhd2FpdCBpb1NwYW4ubm90aWZ5KElPLkNES19UT09MS0lUX0k1NDAyLm1zZyhcbiAgICBob3Rzd2FwT3BlcmF0aW9uLmNoYW5nZS5yZXNvdXJjZXMubWFwKHIgPT4gZm9ybWF0KGAgICAke0lDT059ICVzYCwgY2hhbGsuYm9sZChyZXNvdXJjZVRleHQocikpKSkuam9pbignXFxuJyksXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UsXG4gICkpO1xuXG4gIC8vIGlmIHRoZSBTREsgY2FsbCBmYWlscywgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gYnkgdGhlIFNES1xuICAvLyBhbmQgd2lsbCBwcmV2ZW50IHRoZSBncmVlbiAnaG90c3dhcHBlZCEnIHRleHQgZnJvbSBiZWluZyBkaXNwbGF5ZWRcbiAgdHJ5IHtcbiAgICBhd2FpdCBob3Rzd2FwT3BlcmF0aW9uLmFwcGx5KHNkayk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLm5hbWUgPT09ICdUaW1lb3V0RXJyb3InIHx8IGUubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IFdhaXRlclJlc3VsdCA9IEpTT04ucGFyc2UoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFRvb2xraXRFcnJvcihmb3JtYXRXYWl0ZXJFcnJvclJlc3VsdChyZXN1bHQpKTtcbiAgICAgIGVycm9yLm5hbWUgPSBlLm5hbWU7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIGF3YWl0IGlvU3Bhbi5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTU0MDMubXNnKFxuICAgIGhvdHN3YXBPcGVyYXRpb24uY2hhbmdlLnJlc291cmNlcy5tYXAociA9PiBmb3JtYXQoYCAgICR7SUNPTn0gJXMgJXNgLCBjaGFsay5ib2xkKHJlc291cmNlVGV4dChyKSksIGNoYWxrLmdyZWVuKCdob3Rzd2FwcGVkIScpKSkuam9pbignXFxuJyksXG4gICAgaG90c3dhcE9wZXJhdGlvbi5jaGFuZ2UsXG4gICkpO1xuXG4gIHNkay5yZW1vdmVDdXN0b21Vc2VyQWdlbnQoY3VzdG9tVXNlckFnZW50KTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0V2FpdGVyRXJyb3JSZXN1bHQocmVzdWx0OiBXYWl0ZXJSZXN1bHQpIHtcbiAgY29uc3QgbWFpbiA9IFtcbiAgICBgUmVzb3VyY2UgaXMgbm90IGluIHRoZSBleHBlY3RlZCBzdGF0ZSBkdWUgdG8gd2FpdGVyIHN0YXR1czogJHtyZXN1bHQuc3RhdGV9YCxcbiAgICByZXN1bHQucmVhc29uID8gYCR7cmVzdWx0LnJlYXNvbn0uYCA6ICcnLFxuICBdLmpvaW4oJy4gJyk7XG5cbiAgaWYgKHJlc3VsdC5vYnNlcnZlZFJlc3BvbnNlcyAhPSBudWxsKSB7XG4gICAgY29uc3Qgb2JzZXJ2ZWRSZXNwb25zZXMgPSBPYmplY3RcbiAgICAgIC5lbnRyaWVzKHJlc3VsdC5vYnNlcnZlZFJlc3BvbnNlcylcbiAgICAgIC5tYXAoKFttc2csIGNvdW50XSkgPT4gYCAgLSAke21zZ30gKCR7Y291bnR9KWApXG4gICAgICAuam9pbignXFxuJyk7XG5cbiAgICByZXR1cm4gYCR7bWFpbn0gT2JzZXJ2ZWQgcmVzcG9uc2VzOlxcbiR7b2JzZXJ2ZWRSZXNwb25zZXN9YDtcbiAgfVxuXG4gIHJldHVybiBtYWluO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2dSZWplY3RlZENoYW5nZXMoXG4gIGlvU3BhbjogSU1lc3NhZ2VTcGFuPGFueT4sXG4gIHJlamVjdGVkQ2hhbmdlczogUmVqZWN0ZWRDaGFuZ2VbXSxcbiAgaG90c3dhcE1vZGU6IEhvdHN3YXBNb2RlLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChyZWplY3RlZENoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8qKlxuICAgKiBFS1MgU2VydmljZXMgY2FuIGhhdmUgYSB0YXNrIGRlZmluaXRpb24gdGhhdCBkb2Vzbid0IHJlZmVyIHRvIHRoZSB0YXNrIGRlZmluaXRpb24gYmVpbmcgdXBkYXRlZC5cbiAgICogV2UgaGF2ZSB0byBsb2cgdGhpcyBhcyBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIHRvIHRoZSB0YXNrIGRlZmluaXRpb24sIGJ1dCB3aGVuIHdlIGRvLFxuICAgKiB3ZSB3aW5kIHVwIGhvdHN3YXBwaW5nIHRoZSB0YXNrIGRlZmluaXRpb24gYW5kIGxvZ2dpbmcgaXQgYXMgYSBub24taG90c3dhcHBhYmxlIGNoYW5nZS5cbiAgICpcbiAgICogVGhpcyBsb2dpYyBwcmV2ZW50cyB1cyBmcm9tIGxvZ2dpbmcgdGhhdCBjaGFuZ2UgYXMgbm9uLWhvdHN3YXBwYWJsZSB3aGVuIHdlIGhvdHN3YXAgaXQuXG4gICAqL1xuICBpZiAoaG90c3dhcE1vZGUgPT09ICdob3Rzd2FwLW9ubHknKSB7XG4gICAgcmVqZWN0ZWRDaGFuZ2VzID0gcmVqZWN0ZWRDaGFuZ2VzLmZpbHRlcigoY2hhbmdlKSA9PiBjaGFuZ2UuaG90c3dhcE9ubHlWaXNpYmxlID09PSB0cnVlKTtcblxuICAgIGlmIChyZWplY3RlZENoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWVzc2FnZXMgPSBbJyddOyAvLyBzdGFydCB3aXRoIGVtcHR5IGxpbmVcblxuICBpZiAoaG90c3dhcE1vZGUgPT09ICdob3Rzd2FwLW9ubHknKSB7XG4gICAgbWVzc2FnZXMucHVzaChmb3JtYXQoJyVzICVzJywgY2hhbGsucmVkKCfimqDvuI8nKSwgY2hhbGsucmVkKCdUaGUgZm9sbG93aW5nIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlcyB3ZXJlIGZvdW5kLiBUbyByZWNvbmNpbGUgdGhlc2UgdXNpbmcgQ2xvdWRGb3JtYXRpb24sIHNwZWNpZnkgLS1ob3Rzd2FwLWZhbGxiYWNrJykpKTtcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlcy5wdXNoKGZvcm1hdCgnJXMgJXMnLCBjaGFsay5yZWQoJ+KaoO+4jycpLCBjaGFsay5yZWQoJ1RoZSBmb2xsb3dpbmcgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIHdlcmUgZm91bmQ6JykpKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgeyBjaGFuZ2UgfSBvZiByZWplY3RlZENoYW5nZXMpIHtcbiAgICBtZXNzYWdlcy5wdXNoKCcgICAgJyArIG5vbkhvdHN3YXBwYWJsZUNoYW5nZU1lc3NhZ2UoY2hhbmdlKSk7XG4gIH1cbiAgbWVzc2FnZXMucHVzaCgnJyk7IC8vIG5ld2xpbmVcblxuICBhd2FpdCBpb1NwYW4uZGVmYXVsdHMuaW5mbyhtZXNzYWdlcy5qb2luKCdcXG4nKSk7XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIE5vbkhvdHN3YXBwYWJsZUNoYW5nZVxuICovXG5mdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVDaGFuZ2VNZXNzYWdlKGNoYW5nZTogTm9uSG90c3dhcHBhYmxlQ2hhbmdlKTogc3RyaW5nIHtcbiAgY29uc3Qgc3ViamVjdCA9IGNoYW5nZS5zdWJqZWN0O1xuICBjb25zdCByZWFzb24gPSBjaGFuZ2UuZGVzY3JpcHRpb24gPz8gY2hhbmdlLnJlYXNvbjtcblxuICBzd2l0Y2ggKHN1YmplY3QudHlwZSkge1xuICAgIGNhc2UgJ091dHB1dCc6XG4gICAgICByZXR1cm4gZm9ybWF0KFxuICAgICAgICAnb3V0cHV0OiAlcywgcmVhc29uOiAlcycsXG4gICAgICAgIGNoYWxrLmJvbGQoc3ViamVjdC5sb2dpY2FsSWQpLFxuICAgICAgICBjaGFsay5yZWQocmVhc29uKSxcbiAgICAgICk7XG4gICAgY2FzZSAnUmVzb3VyY2UnOlxuICAgICAgcmV0dXJuIG5vbkhvdHN3YXBwYWJsZVJlc291cmNlTWVzc2FnZShzdWJqZWN0LCByZWFzb24pO1xuICB9XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIG5vbi1ob3Rzd2FwcGFibGUgcmVzb3VyY2Ugc3ViamVjdFxuICovXG5mdW5jdGlvbiBub25Ib3Rzd2FwcGFibGVSZXNvdXJjZU1lc3NhZ2Uoc3ViamVjdDogUmVzb3VyY2VTdWJqZWN0LCByZWFzb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChzdWJqZWN0LnJlamVjdGVkUHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZvcm1hdChcbiAgICAgICdyZXNvdXJjZTogJXMsIHR5cGU6ICVzLCByZWplY3RlZCBjaGFuZ2VzOiAlcywgcmVhc29uOiAlcycsXG4gICAgICBjaGFsay5ib2xkKHN1YmplY3QubG9naWNhbElkKSxcbiAgICAgIGNoYWxrLmJvbGQoc3ViamVjdC5yZXNvdXJjZVR5cGUpLFxuICAgICAgY2hhbGsuYm9sZChzdWJqZWN0LnJlamVjdGVkUHJvcGVydGllcyksXG4gICAgICBjaGFsay5yZWQocmVhc29uKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdChcbiAgICAncmVzb3VyY2U6ICVzLCB0eXBlOiAlcywgcmVhc29uOiAlcycsXG4gICAgY2hhbGsuYm9sZChzdWJqZWN0LmxvZ2ljYWxJZCksXG4gICAgY2hhbGsuYm9sZChzdWJqZWN0LnJlc291cmNlVHlwZSksXG4gICAgY2hhbGsucmVkKHJlYXNvbiksXG4gICk7XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type * as cxapi from '@aws-cdk/
|
|
1
|
+
import type * as cxapi from '@aws-cdk/cloud-assembly-api';
|
|
2
2
|
import * as make from './message-maker';
|
|
3
3
|
import type { StackDiff, DiffResult } from '../../../payloads';
|
|
4
4
|
import type { BootstrapEnvironmentProgress } from '../../../payloads/bootstrap-environment-progress';
|
|
@@ -550,4 +550,4 @@ exports.SPAN = {
|
|
|
550
550
|
end: exports.IO.CDK_TOOLKIT_I5410,
|
|
551
551
|
},
|
|
552
552
|
};
|
|
553
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUE4QnhDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUF1QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZTtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFzQjtRQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7UUFDN0UsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFFLElB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QUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7Q0FDaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIG1ha2UgZnJvbSAnLi9tZXNzYWdlLW1ha2VyJztcbmltcG9ydCB0eXBlIHsgU3BhbkRlZmluaXRpb24gfSBmcm9tICcuL3NwYW4nO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RpZmYsIERpZmZSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9ib290c3RyYXAtZW52aXJvbm1lbnQtcHJvZ3Jlc3MnO1xuaW1wb3J0IHR5cGUgeyBNaXNzaW5nQ29udGV4dCwgVXBkYXRlZENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQnVpbGRBc3NldCwgRGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdCwgUHVibGlzaEFzc2V0LCBTdGFja0RlcGxveVByb2dyZXNzLCBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXBsb3knO1xuaW1wb3J0IHR5cGUgeyBTdGFja0Rlc3Ryb3ksIFN0YWNrRGVzdHJveVByb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZGVzdHJveSc7XG5pbXBvcnQgdHlwZSB7IERyaWZ0UmVzdWx0UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RyaWZ0JztcbmltcG9ydCB0eXBlIHsgRmVhdHVyZUZsYWdDaGFuZ2VSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZmxhZ3MnO1xuaW1wb3J0IHR5cGUgeyBBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZ2MnO1xuaW1wb3J0IHR5cGUgeyBIb3Rzd2FwRGVwbG95bWVudERldGFpbHMsIEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCwgSG90c3dhcHBhYmxlQ2hhbmdlLCBIb3Rzd2FwUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0LCBSZXNvdXJjZUltcG9ydFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9pbXBvcnQnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RldGFpbHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbGlzdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCwgQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3RvclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JlZmFjdG9yJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSb2xsYmFja1Byb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcm9sbGJhY2snO1xuaW1wb3J0IHR5cGUgeyBNZmFUb2tlblJlcXVlc3QsIFNka1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc2RrJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSwgU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3RhY2stYWN0aXZpdHknO1xuaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdGlvbkRldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zeW50aCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2VtYmx5RGF0YSxcbiAgQ29uZmlybWF0aW9uUmVxdWVzdCxcbiAgQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIEVycm9yUGF5bG9hZCxcbiAgU2luZ2xlU3RhY2ssXG4gIFN0YWNrQW5kQXNzZW1ibHlEYXRhLFxufSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVXYXRjaEV2ZW50LCBXYXRjaFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvd2F0Y2gnO1xuXG4vKipcbiAqIFdlIGhhdmUgYSByb3VnaCBzeXN0ZW0gYnkgd2hpY2ggd2UgYXNzaWduIG1lc3NhZ2UgY29kZXM6XG4gKiAtIEZpcnN0IGRpZ2l0IGdyb3VwcyBtZXNzYWdlcyBieSBhY3Rpb24sIGUuZy4gc3ludGggb3IgZGVwbG95XG4gKiAtIFgwMDAtWDAwOSBhcmUgcmVzZXJ2ZWQgZm9yIHRpbWluZ3NcbiAqIC0gWDkwMC1YOTk5IGFyZSByZXNlcnZlZCBmb3IgcmVzdWx0c1xuICovXG5leHBvcnQgY29uc3QgSU8gPSB7XG4gIC8vIHdhcm5pbmdzICYgZXJyb3JzXG4gIENES19UT09MS0lUX1cwMTAwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDcmVkZW50aWFsIHBsdWdpbiB3YXJuaW5ncycsXG4gIH0pLFxuXG4gIC8vIDE6IFN5bnRoICgxeHh4KVxuICBDREtfVE9PTEtJVF9JMTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHN5bnRoZXNpcyB0aW1lcy4nLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxMDAxOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBBc3NlbWJseSBzeW50aGVzaXMgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTkwMTogbWFrZS5yZXN1bHQ8U3RhY2tBbmRBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3RhY2sgZGF0YScsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tBbmRBc3NlbWJseURhdGEnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDI6IG1ha2UucmVzdWx0PEFzc2VtYmx5RGF0YT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTkwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsbHkgZGVwbG95ZWQgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NlbWJseURhdGEnLFxuICB9KSxcblxuICAvLyAyOiBMaXN0ICgyeHh4KVxuICBDREtfVE9PTEtJVF9JMjkwMTogbWFrZS5yZXN1bHQ8U3RhY2tEZXRhaWxzUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMjkwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXRhaWxzIG9uIHRoZSBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXRhaWxzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDM6IEltcG9ydCAmIE1pZ3JhdGVcbiAgQ0RLX1RPT0xLSVRfSTMxMDA6IG1ha2UuY29uZmlybTxSZXNvdXJjZUltcG9ydFJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTMxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgaW1wb3J0IG9mIGEgc3BlY2lmaWMgcmVzb3VyY2UnLFxuICAgIGludGVyZmFjZTogJ1Jlc291cmNlSW1wb3J0UmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMzExMDogbWFrZS5xdWVzdGlvbjxSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMzExMCcsXG4gICAgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byBpZGVudGlmeSBhIHJlc291cmNlJyxcbiAgICBpbnRlcmZhY2U6ICdSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMzkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTM5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW1wb3J0IGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNDogRGlmZiAoNDB4eCAtIDQ0eHgpXG4gIENES19UT09MS0lUX0k0MDAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEaWZmIHN0YWNrcyBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAxOiBtYWtlLnJlc3VsdDxEaWZmUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kJyxcbiAgICBpbnRlcmZhY2U6ICdEaWZmUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAyOiBtYWtlLnJlc3VsdDxTdGFja0RpZmY+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGRpZmYgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RpZmYnLFxuICB9KSxcblxuICAvLyA0OiBEcmlmdCAoNDV4eCAtIDQ5eHgpXG4gIENES19UT09MS0lUX0k0NTAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDUwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEcmlmdCBkZXRlY3Rpb24gaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDUwOTogbWFrZS5yZXN1bHQ8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiB0aGUgZHJpZnQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0NTkwOiBtYWtlLnJlc3VsdDxEcmlmdFJlc3VsdFBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiBhIHN0YWNrIGRyaWZ0JyxcbiAgICBpbnRlcmZhY2U6ICdEcmlmdFJlc3VsdFBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzQ1OTE6IG1ha2Uud2FybjxTaW5nbGVTdGFjaz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNDU5MScsXG4gICAgZGVzY3JpcHRpb246ICdNaXNzaW5nIGRyaWZ0IHJlc3VsdCBmb3J0IGEgc3RhY2suJyxcbiAgICBpbnRlcmZhY2U6ICdTaW5nbGVTdGFjaycsXG4gIH0pLFxuXG4gIC8vIDU6IERlcGxveSAmIFdhdGNoICg1eHh4KVxuICBDREtfVE9PTEtJVF9JNTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlcGxveW1lbnQgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDAxOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgdG90YWwgdGltZSBpbiBkZXBsb3kgYWN0aW9uLCBpbmNsdWRpbmcgc3ludGggYW5kIHJvbGxiYWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMjogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRpbWUgZm9yIHJlc291cmNlIG1pZ3JhdGlvbicsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzUwMjE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1MDIxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtcHR5IG5vbi1leGlzdGVudCBzdGFjaywgZGVwbG95bWVudCBpcyBza2lwcGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIyOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMicsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBleGlzdGluZyBzdGFjaywgc3RhY2sgd2lsbCBiZSBkZXN0cm95ZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZm9ybXMgYWJvdXQgYW55IGxvZyBncm91cHMgdGhhdCBhcmUgdHJhY2VkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzI6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMzogbWFrZS5pbmZvPENsb3VkV2F0Y2hMb2dFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMycsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBldmVudCByZWNlaXZlZCBmcm9tIENsb3VkIFdhdGNoJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzQ6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzQnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RvcCBtb25pdG9yaW5nIGxvZyBncm91cHMnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U1MDM1OiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAzNScsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBtb25pdG9yaW5nIGVycm9yJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcm9sbGJhY2sgZHVyaW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNjA6IG1ha2UuY29uZmlybTxEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDYwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gZGVwbG95IHNlY3VyaXR5IHNlbnNpdGl2ZSBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MTAwOiBtYWtlLmluZm88U3RhY2tEZXBsb3lQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZXBsb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVwbG95UHJvZ3Jlc3MnLFxuICB9KSxcblxuICAvLyBBc3NldHMgKDUyeHgpXG4gIENES19UT09MS0lUX0k1MjEwOiBtYWtlLnRyYWNlPEJ1aWxkQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBidWlsZGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdCdWlsZEFzc2V0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjExOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0J1aWxkaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMDogbWFrZS50cmFjZTxQdWJsaXNoQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBwdWJsaXNoaW5nIGEgc3BlY2lmaWMgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIyMScsXG4gICAgZGVzY3JpcHRpb246ICdQdWJsaXNoaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuXG4gIC8vIFdhdGNoICg1M3h4KVxuICBDREtfVE9PTEtJVF9JNTMxMDogbWFrZS5kZWJ1ZzxXYXRjaFNldHRpbmdzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBjb21wdXRlZCBzZXR0aW5ncyB1c2VkIGZvciBmaWxlIHdhdGNoaW5nJyxcbiAgICBpbnRlcmZhY2U6ICdXYXRjaFNldHRpbmdzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzExOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSB3YXRjaGluZyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMjogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQsIHN0YXJ0aW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzEzOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTMnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSBldmVudCBkZXRlY3RlZCBkdXJpbmcgYWN0aXZlIGRlcGxveW1lbnQsIGNoYW5nZXMgYXJlIHF1ZXVlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTQ6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzE0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0luaXRpYWwgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE1OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNScsXG4gICAgZGVzY3JpcHRpb246ICdRdWV1ZWQgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG5cbiAgLy8gSG90c3dhcCAoNTR4eClcbiAgQ0RLX1RPT0xLSVRfSTU0MDA6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnRBdHRlbXB0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0F0dGVtcHRpbmcgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMTogbWFrZS50cmFjZTxIb3Rzd2FwRGVwbG95bWVudERldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tcHV0ZWQgZGV0YWlscyBmb3IgdGhlIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcERlcGxveW1lbnREZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAyOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgaG90c3dhcHBhYmxlIGNoYW5nZSBpcyBwcm9jZXNzZWQgYXMgcGFydCBvZiBhIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAzOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBob3Rzd2FwcGFibGUgY2hhbmdlIGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZycsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDEwOiBtYWtlLmluZm88SG90c3dhcFJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQxMCcsXG4gICAgZGVzY3JpcHRpb246ICdIb3Rzd2FwIGRlcGxveW1lbnQgaGFzIGVuZGVkLCBhIGZ1bGwgZGVwbG95bWVudCBtaWdodCBzdGlsbCBmb2xsb3cgaWYgbmVlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwUmVzdWx0JyxcbiAgfSksXG5cbiAgLy8gU3RhY2sgTW9uaXRvciAoNTV4eClcbiAgQ0RLX1RPT0xLSVRfSTU1MDE6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogU3RhcnQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAyOiBtYWtlLmluZm88U3RhY2tBY3Rpdml0eT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBBY3Rpdml0eSBldmVudCBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQWN0aXZpdHknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU1MDM6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogRmluaXNoZWQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG5cbiAgLy8gU3VjY2VzcyAoNTl4eClcbiAgQ0RLX1RPT0xLSVRfSTU5MDA6IG1ha2UucmVzdWx0PFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXBsb3ltZW50IHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1OTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGRlcGxveW1lbnQgc3VjY2VzcyBtZXNzYWdlcycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTQwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzU0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkaXNjbG9zdXJlIG1lc3NhZ2UnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNTAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTUwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTU1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNjogUm9sbGJhY2sgKDZ4eHgpXG4gIENES19UT09MS0lUX0k2MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTYwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgcm9sbGJhY2sgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k2MTAwOiBtYWtlLmluZm88U3RhY2tSb2xsYmFja1Byb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHJvbGxiYWNrIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1JvbGxiYWNrUHJvZ3Jlc3MnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNjAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNjkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTY5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUm9sbGJhY2sgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA3OiBEZXN0cm95ICg3eHh4KVxuICBDREtfVE9PTEtJVF9JNzAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDAxOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZSBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDEwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlc3Ryb3kgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAwOiBtYWtlLmluZm88U3RhY2tEZXN0cm95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVzdHJveSBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXN0cm95UHJvZ3Jlc3MnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcxMDE6IG1ha2UudHJhY2U8U3RhY2tEZXN0cm95Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHN0YWNrIGRlc3Ryb3lpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveScsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k3OTAwOiBtYWtlLnJlc3VsdDxjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTc5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVsZXRpb24gc3VjY2VlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNzAxMDogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3MDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gbmVnYXRpdmUgY29uZmlybWF0aW9uIG9mIHJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTc5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gOC4gUmVmYWN0b3IgKDh4eHgpXG4gIENES19UT09MS0lUX0U4OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByZWZhY3RvciBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k4OTAwOiBtYWtlLnJlc3VsdDxSZWZhY3RvclJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciByZXN1bHQnLFxuICAgIGludGVyZmFjZTogJ1JlZmFjdG9yUmVzdWx0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTg5MTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k4OTEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcmVmYWN0b3InLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9XODAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzgwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgZXhlY3V0aW9uIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgfSksXG5cbiAgLy8gOTogQm9vdHN0cmFwICAmIGdjICg5eHh4KVxuICBDREtfVE9PTEtJVF9JOTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGJvb3RzdHJhcCB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTkxMDA6IG1ha2UuaW5mbzxCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcycsXG4gIH0pLFxuXG4gIC8vIGdjICg5Mnh4KVxuICBDREtfVE9PTEtJVF9JOTIxMDogbWFrZS5xdWVzdGlvbjxBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGRlbGV0aW9uIG9mIGEgYmF0Y2ggb2YgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIGZsYWdzICg5M3h4eClcbiAgQ0RLX1RPT0xLSVRfSTkzMDA6IG1ha2UuaW5mbzxGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkzMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgZmVhdHVyZSBmbGFnIGNvbmZpZ3VyYXRpb24gY2hhbmdlcycsXG4gICAgaW50ZXJmYWNlOiAnRmVhdHVyZUZsYWdDaGFuZ2VSZXF1ZXN0JyxcbiAgfSksXG5cbiAgLy8gTm90aWNlc1xuICBDREtfVE9PTEtJVF9JMDEwMDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnTm90aWNlcyBkZWNvcmF0aW9uICh0aGUgaGVhZGVyIG9yIGZvb3RlciBvZiBhIGxpc3Qgb2Ygbm90aWNlcyknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzAxMDE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1cwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGEgd2FybmluZycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMDEwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0UwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGFuIGVycm9yJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kwMTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBpbmZvcm1hdGlvbmFsJyxcbiAgfSksXG5cbiAgLy8gQXNzZW1ibHkgY29kZXNcbiAgQ0RLX0FTU0VNQkxZX0kwMDEwOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dlbmVyaWMgZW52aXJvbm1lbnQgcHJlcGFyYXRpb24gZGVidWcgbWVzc2FnZXMnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX1cwMDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfVzAwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1pdHRlZCBpZiB0aGUgZm91bmQgZnJhbWV3b3JrIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBjb250ZXh0IG92ZXJmbG93JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDA0MjogbWFrZS5kZWJ1ZzxVcGRhdGVkQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwNDInLFxuICAgIGRlc2NyaXB0aW9uOiAnV3JpdGluZyBjb250ZXh0IHVwZGF0ZXMnLFxuICAgIGludGVyZmFjZTogJ1VwZGF0ZWRDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDI0MDogbWFrZS5kZWJ1ZzxNaXNzaW5nQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAyNDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29udGV4dCBsb29rdXAgd2FzIHN0b3BwZWQgYXMgbm8gZnVydGhlciBwcm9ncmVzcyB3YXMgbWFkZS4gJyxcbiAgICBpbnRlcmZhY2U6ICdNaXNzaW5nQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDE6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZldGNoaW5nIG1pc3NpbmcgY29udGV4dC4gVGhpcyBpcyBhbiBpdGVyYXRpdmUgbWVzc2FnZSB0aGF0IG1heSBhcHBlYXIgbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgbWlzc2luZyBrZXlzLicsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAwOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Nsb3VkIGFzc2VtYmx5IG91dHB1dCBzdGFydHMnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IGxpbmVzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIHN0ZG91dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfRTEwMDI6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTEwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IGxpbmVzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIHN0ZGVycicsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTEwMDM6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMycsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgZmluaXNoZWQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMTExOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTExMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5jb21wYXRpYmxlIENESyBDTEkgdmVyc2lvbi4gVXBncmFkZSBuZWVkZWQuJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAxNTA6IG1ha2UuZGVidWc8bmV2ZXI+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMTUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZGljYXRlcyB0aGUgdXNlIG9mIGEgcHJlLXN5bnRoZXNpemVkIGNsb3VkIGFzc2VtYmx5IGRpcmVjdG9yeScsXG4gIH0pLFxuXG4gIENES19BU1NFTUJMWV9JMDMwMDogbWFrZS5pbmZvPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIGluZm8gbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAzMDE6IG1ha2UuZGVidWc8Q29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAzMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBkZWJ1ZyBtZXNzYWdlIGVtaXR0ZWQgYnkgYSBDb250ZXh0IFByb3ZpZGVyJyxcbiAgICBpbnRlcmZhY2U6ICdDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlJyxcbiAgfSksXG5cbiAgLy8gQXNzZW1ibHkgQW5ub3RhdGlvbnNcbiAgQ0RLX0FTU0VNQkxZX0k5OTk5OiBtYWtlLmluZm88Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnQW5ub3RhdGlvbnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX1c5OTk5OiBtYWtlLndhcm48Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfVzk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnV2FybmluZ3MgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0U5OTk5OiBtYWtlLmVycm9yPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0U5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Vycm9ycyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseScsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuU3ludGhlc2lzTWVzc2FnZScsXG4gIH0pLFxuXG4gIC8vIFNESyBjb2Rlc1xuICBDREtfU0RLX0kwMTAwOiBtYWtlLnRyYWNlPFNka1RyYWNlPih7XG4gICAgY29kZTogJ0NES19TREtfSTAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIHRyYWNlLiBTREsgdHJhY2VzIGFyZSBlbWl0dGVkIGFzIHRyYWNlcyB0byB0aGUgSW9Ib3N0LCBidXQgY29udGFpbiB0aGUgb3JpZ2luYWwgU0RLIGxvZ2dpbmcgbGV2ZWwuJyxcbiAgICBpbnRlcmZhY2U6ICdTZGtUcmFjZScsXG4gIH0pLFxuICBDREtfU0RLX0kxMTAwOiBtYWtlLnF1ZXN0aW9uPE1mYVRva2VuUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kxMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbiBNRkEgdG9rZW4gZm9yIGFuIE1GQSBkZXZpY2UuJyxcbiAgICBpbnRlcmZhY2U6ICdNZmFUb2tlblJlcXVlc3QnLFxuICB9KSxcbn07XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFBheWxvYWQgdHlwZSBvZiB0aGUgZW5kIG1lc3NhZ2UgbXVzdCBleHRlbmQgRHVyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNQQU4gPSB7XG4gIFNZTlRIX0FTU0VNQkxZOiB7XG4gICAgbmFtZTogJ1N5bnRoZXNpcycsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0kxMDAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTEwMDAsXG4gIH0sXG4gIERFUExPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTAwMSxcbiAgfSxcbiAgUk9MTEJBQ0tfU1RBQ0s6IHtcbiAgICBuYW1lOiAnUm9sbGJhY2snLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNjEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k2MDAwLFxuICB9LFxuICBESUZGX1NUQUNLOiB7XG4gICAgbmFtZTogJ0RpZmYnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0MDAxLFxuICB9LFxuICBEUklGVF9BUFA6IHtcbiAgICBuYW1lOiAnRHJpZnQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0NTA5LFxuICB9LFxuICBERVNUUk9ZX1NUQUNLOiB7XG4gICAgbmFtZTogJ0Rlc3Ryb3knLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNzEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k3MDAxLFxuICB9LFxuICBERVNUUk9ZX0FDVElPTjoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDEsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMCxcbiAgfSxcbiAgQk9PVFNUUkFQX1NJTkdMRToge1xuICAgIG5hbWU6ICdCb290c3RyYXAnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JOTEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k5MDAwLFxuICB9LFxuICBCVUlMRF9BU1NFVDoge1xuICAgIG5hbWU6ICdCdWlsZCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjEwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMTEsXG4gIH0sXG4gIFBVQkxJU0hfQVNTRVQ6IHtcbiAgICBuYW1lOiAnUHVibGlzaCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjIwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMjEsXG4gIH0sXG4gIEhPVFNXQVA6IHtcbiAgICBuYW1lOiAnaG90c3dhcC1kZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTU0MDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTQxMCxcbiAgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFNwYW5EZWZpbml0aW9uPGFueSwgYW55Pj47XG4iXX0=
|
|
553
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUE4QnhDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUF1QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZTtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFzQjtRQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7UUFDN0UsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFFLElB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QUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7Q0FDaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIG1ha2UgZnJvbSAnLi9tZXNzYWdlLW1ha2VyJztcbmltcG9ydCB0eXBlIHsgU3BhbkRlZmluaXRpb24gfSBmcm9tICcuL3NwYW4nO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RpZmYsIERpZmZSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9ib290c3RyYXAtZW52aXJvbm1lbnQtcHJvZ3Jlc3MnO1xuaW1wb3J0IHR5cGUgeyBNaXNzaW5nQ29udGV4dCwgVXBkYXRlZENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQnVpbGRBc3NldCwgRGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdCwgUHVibGlzaEFzc2V0LCBTdGFja0RlcGxveVByb2dyZXNzLCBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXBsb3knO1xuaW1wb3J0IHR5cGUgeyBTdGFja0Rlc3Ryb3ksIFN0YWNrRGVzdHJveVByb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZGVzdHJveSc7XG5pbXBvcnQgdHlwZSB7IERyaWZ0UmVzdWx0UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RyaWZ0JztcbmltcG9ydCB0eXBlIHsgRmVhdHVyZUZsYWdDaGFuZ2VSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZmxhZ3MnO1xuaW1wb3J0IHR5cGUgeyBBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZ2MnO1xuaW1wb3J0IHR5cGUgeyBIb3Rzd2FwRGVwbG95bWVudERldGFpbHMsIEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCwgSG90c3dhcHBhYmxlQ2hhbmdlLCBIb3Rzd2FwUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0LCBSZXNvdXJjZUltcG9ydFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9pbXBvcnQnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RldGFpbHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbGlzdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCwgQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3RvclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JlZmFjdG9yJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSb2xsYmFja1Byb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcm9sbGJhY2snO1xuaW1wb3J0IHR5cGUgeyBNZmFUb2tlblJlcXVlc3QsIFNka1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc2RrJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSwgU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3RhY2stYWN0aXZpdHknO1xuaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdGlvbkRldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zeW50aCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2VtYmx5RGF0YSxcbiAgQ29uZmlybWF0aW9uUmVxdWVzdCxcbiAgQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIEVycm9yUGF5bG9hZCxcbiAgU2luZ2xlU3RhY2ssXG4gIFN0YWNrQW5kQXNzZW1ibHlEYXRhLFxufSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVXYXRjaEV2ZW50LCBXYXRjaFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvd2F0Y2gnO1xuXG4vKipcbiAqIFdlIGhhdmUgYSByb3VnaCBzeXN0ZW0gYnkgd2hpY2ggd2UgYXNzaWduIG1lc3NhZ2UgY29kZXM6XG4gKiAtIEZpcnN0IGRpZ2l0IGdyb3VwcyBtZXNzYWdlcyBieSBhY3Rpb24sIGUuZy4gc3ludGggb3IgZGVwbG95XG4gKiAtIFgwMDAtWDAwOSBhcmUgcmVzZXJ2ZWQgZm9yIHRpbWluZ3NcbiAqIC0gWDkwMC1YOTk5IGFyZSByZXNlcnZlZCBmb3IgcmVzdWx0c1xuICovXG5leHBvcnQgY29uc3QgSU8gPSB7XG4gIC8vIHdhcm5pbmdzICYgZXJyb3JzXG4gIENES19UT09MS0lUX1cwMTAwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDcmVkZW50aWFsIHBsdWdpbiB3YXJuaW5ncycsXG4gIH0pLFxuXG4gIC8vIDE6IFN5bnRoICgxeHh4KVxuICBDREtfVE9PTEtJVF9JMTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHN5bnRoZXNpcyB0aW1lcy4nLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxMDAxOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBBc3NlbWJseSBzeW50aGVzaXMgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTkwMTogbWFrZS5yZXN1bHQ8U3RhY2tBbmRBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3RhY2sgZGF0YScsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tBbmRBc3NlbWJseURhdGEnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDI6IG1ha2UucmVzdWx0PEFzc2VtYmx5RGF0YT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTkwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsbHkgZGVwbG95ZWQgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NlbWJseURhdGEnLFxuICB9KSxcblxuICAvLyAyOiBMaXN0ICgyeHh4KVxuICBDREtfVE9PTEtJVF9JMjkwMTogbWFrZS5yZXN1bHQ8U3RhY2tEZXRhaWxzUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMjkwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXRhaWxzIG9uIHRoZSBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXRhaWxzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDM6IEltcG9ydCAmIE1pZ3JhdGVcbiAgQ0RLX1RPT0xLSVRfSTMxMDA6IG1ha2UuY29uZmlybTxSZXNvdXJjZUltcG9ydFJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTMxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgaW1wb3J0IG9mIGEgc3BlY2lmaWMgcmVzb3VyY2UnLFxuICAgIGludGVyZmFjZTogJ1Jlc291cmNlSW1wb3J0UmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMzExMDogbWFrZS5xdWVzdGlvbjxSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMzExMCcsXG4gICAgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byBpZGVudGlmeSBhIHJlc291cmNlJyxcbiAgICBpbnRlcmZhY2U6ICdSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMzkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTM5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW1wb3J0IGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNDogRGlmZiAoNDB4eCAtIDQ0eHgpXG4gIENES19UT09MS0lUX0k0MDAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEaWZmIHN0YWNrcyBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAxOiBtYWtlLnJlc3VsdDxEaWZmUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kJyxcbiAgICBpbnRlcmZhY2U6ICdEaWZmUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAyOiBtYWtlLnJlc3VsdDxTdGFja0RpZmY+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGRpZmYgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RpZmYnLFxuICB9KSxcblxuICAvLyA0OiBEcmlmdCAoNDV4eCAtIDQ5eHgpXG4gIENES19UT09MS0lUX0k0NTAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDUwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEcmlmdCBkZXRlY3Rpb24gaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDUwOTogbWFrZS5yZXN1bHQ8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiB0aGUgZHJpZnQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0NTkwOiBtYWtlLnJlc3VsdDxEcmlmdFJlc3VsdFBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiBhIHN0YWNrIGRyaWZ0JyxcbiAgICBpbnRlcmZhY2U6ICdEcmlmdFJlc3VsdFBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzQ1OTE6IG1ha2Uud2FybjxTaW5nbGVTdGFjaz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNDU5MScsXG4gICAgZGVzY3JpcHRpb246ICdNaXNzaW5nIGRyaWZ0IHJlc3VsdCBmb3J0IGEgc3RhY2suJyxcbiAgICBpbnRlcmZhY2U6ICdTaW5nbGVTdGFjaycsXG4gIH0pLFxuXG4gIC8vIDU6IERlcGxveSAmIFdhdGNoICg1eHh4KVxuICBDREtfVE9PTEtJVF9JNTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlcGxveW1lbnQgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDAxOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgdG90YWwgdGltZSBpbiBkZXBsb3kgYWN0aW9uLCBpbmNsdWRpbmcgc3ludGggYW5kIHJvbGxiYWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMjogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRpbWUgZm9yIHJlc291cmNlIG1pZ3JhdGlvbicsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzUwMjE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1MDIxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtcHR5IG5vbi1leGlzdGVudCBzdGFjaywgZGVwbG95bWVudCBpcyBza2lwcGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIyOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMicsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBleGlzdGluZyBzdGFjaywgc3RhY2sgd2lsbCBiZSBkZXN0cm95ZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZm9ybXMgYWJvdXQgYW55IGxvZyBncm91cHMgdGhhdCBhcmUgdHJhY2VkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzI6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMzogbWFrZS5pbmZvPENsb3VkV2F0Y2hMb2dFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMycsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBldmVudCByZWNlaXZlZCBmcm9tIENsb3VkIFdhdGNoJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzQ6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzQnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RvcCBtb25pdG9yaW5nIGxvZyBncm91cHMnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U1MDM1OiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAzNScsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBtb25pdG9yaW5nIGVycm9yJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcm9sbGJhY2sgZHVyaW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNjA6IG1ha2UuY29uZmlybTxEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDYwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gZGVwbG95IHNlY3VyaXR5IHNlbnNpdGl2ZSBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MTAwOiBtYWtlLmluZm88U3RhY2tEZXBsb3lQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZXBsb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVwbG95UHJvZ3Jlc3MnLFxuICB9KSxcblxuICAvLyBBc3NldHMgKDUyeHgpXG4gIENES19UT09MS0lUX0k1MjEwOiBtYWtlLnRyYWNlPEJ1aWxkQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBidWlsZGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdCdWlsZEFzc2V0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjExOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0J1aWxkaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMDogbWFrZS50cmFjZTxQdWJsaXNoQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBwdWJsaXNoaW5nIGEgc3BlY2lmaWMgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIyMScsXG4gICAgZGVzY3JpcHRpb246ICdQdWJsaXNoaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuXG4gIC8vIFdhdGNoICg1M3h4KVxuICBDREtfVE9PTEtJVF9JNTMxMDogbWFrZS5kZWJ1ZzxXYXRjaFNldHRpbmdzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBjb21wdXRlZCBzZXR0aW5ncyB1c2VkIGZvciBmaWxlIHdhdGNoaW5nJyxcbiAgICBpbnRlcmZhY2U6ICdXYXRjaFNldHRpbmdzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzExOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSB3YXRjaGluZyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMjogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQsIHN0YXJ0aW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzEzOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTMnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSBldmVudCBkZXRlY3RlZCBkdXJpbmcgYWN0aXZlIGRlcGxveW1lbnQsIGNoYW5nZXMgYXJlIHF1ZXVlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTQ6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzE0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0luaXRpYWwgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE1OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNScsXG4gICAgZGVzY3JpcHRpb246ICdRdWV1ZWQgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG5cbiAgLy8gSG90c3dhcCAoNTR4eClcbiAgQ0RLX1RPT0xLSVRfSTU0MDA6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnRBdHRlbXB0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0F0dGVtcHRpbmcgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMTogbWFrZS50cmFjZTxIb3Rzd2FwRGVwbG95bWVudERldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tcHV0ZWQgZGV0YWlscyBmb3IgdGhlIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcERlcGxveW1lbnREZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAyOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgaG90c3dhcHBhYmxlIGNoYW5nZSBpcyBwcm9jZXNzZWQgYXMgcGFydCBvZiBhIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAzOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBob3Rzd2FwcGFibGUgY2hhbmdlIGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZycsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDEwOiBtYWtlLmluZm88SG90c3dhcFJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQxMCcsXG4gICAgZGVzY3JpcHRpb246ICdIb3Rzd2FwIGRlcGxveW1lbnQgaGFzIGVuZGVkLCBhIGZ1bGwgZGVwbG95bWVudCBtaWdodCBzdGlsbCBmb2xsb3cgaWYgbmVlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwUmVzdWx0JyxcbiAgfSksXG5cbiAgLy8gU3RhY2sgTW9uaXRvciAoNTV4eClcbiAgQ0RLX1RPT0xLSVRfSTU1MDE6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogU3RhcnQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAyOiBtYWtlLmluZm88U3RhY2tBY3Rpdml0eT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBBY3Rpdml0eSBldmVudCBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQWN0aXZpdHknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU1MDM6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogRmluaXNoZWQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG5cbiAgLy8gU3VjY2VzcyAoNTl4eClcbiAgQ0RLX1RPT0xLSVRfSTU5MDA6IG1ha2UucmVzdWx0PFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXBsb3ltZW50IHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1OTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGRlcGxveW1lbnQgc3VjY2VzcyBtZXNzYWdlcycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTQwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzU0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkaXNjbG9zdXJlIG1lc3NhZ2UnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNTAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTUwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTU1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNjogUm9sbGJhY2sgKDZ4eHgpXG4gIENES19UT09MS0lUX0k2MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTYwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgcm9sbGJhY2sgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k2MTAwOiBtYWtlLmluZm88U3RhY2tSb2xsYmFja1Byb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHJvbGxiYWNrIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1JvbGxiYWNrUHJvZ3Jlc3MnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNjAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNjkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTY5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUm9sbGJhY2sgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA3OiBEZXN0cm95ICg3eHh4KVxuICBDREtfVE9PTEtJVF9JNzAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDAxOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZSBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDEwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlc3Ryb3kgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAwOiBtYWtlLmluZm88U3RhY2tEZXN0cm95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVzdHJveSBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXN0cm95UHJvZ3Jlc3MnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcxMDE6IG1ha2UudHJhY2U8U3RhY2tEZXN0cm95Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHN0YWNrIGRlc3Ryb3lpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveScsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k3OTAwOiBtYWtlLnJlc3VsdDxjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTc5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVsZXRpb24gc3VjY2VlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNzAxMDogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3MDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gbmVnYXRpdmUgY29uZmlybWF0aW9uIG9mIHJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTc5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gOC4gUmVmYWN0b3IgKDh4eHgpXG4gIENES19UT09MS0lUX0U4OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByZWZhY3RvciBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k4OTAwOiBtYWtlLnJlc3VsdDxSZWZhY3RvclJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciByZXN1bHQnLFxuICAgIGludGVyZmFjZTogJ1JlZmFjdG9yUmVzdWx0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTg5MTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k4OTEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcmVmYWN0b3InLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9XODAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzgwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgZXhlY3V0aW9uIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgfSksXG5cbiAgLy8gOTogQm9vdHN0cmFwICAmIGdjICg5eHh4KVxuICBDREtfVE9PTEtJVF9JOTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGJvb3RzdHJhcCB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTkxMDA6IG1ha2UuaW5mbzxCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcycsXG4gIH0pLFxuXG4gIC8vIGdjICg5Mnh4KVxuICBDREtfVE9PTEtJVF9JOTIxMDogbWFrZS5xdWVzdGlvbjxBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGRlbGV0aW9uIG9mIGEgYmF0Y2ggb2YgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIGZsYWdzICg5M3h4eClcbiAgQ0RLX1RPT0xLSVRfSTkzMDA6IG1ha2UuaW5mbzxGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkzMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgZmVhdHVyZSBmbGFnIGNvbmZpZ3VyYXRpb24gY2hhbmdlcycsXG4gICAgaW50ZXJmYWNlOiAnRmVhdHVyZUZsYWdDaGFuZ2VSZXF1ZXN0JyxcbiAgfSksXG5cbiAgLy8gTm90aWNlc1xuICBDREtfVE9PTEtJVF9JMDEwMDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnTm90aWNlcyBkZWNvcmF0aW9uICh0aGUgaGVhZGVyIG9yIGZvb3RlciBvZiBhIGxpc3Qgb2Ygbm90aWNlcyknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzAxMDE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1cwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGEgd2FybmluZycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMDEwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0UwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGFuIGVycm9yJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kwMTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBpbmZvcm1hdGlvbmFsJyxcbiAgfSksXG5cbiAgLy8gQXNzZW1ibHkgY29kZXNcbiAgQ0RLX0FTU0VNQkxZX0kwMDEwOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dlbmVyaWMgZW52aXJvbm1lbnQgcHJlcGFyYXRpb24gZGVidWcgbWVzc2FnZXMnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX1cwMDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfVzAwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1pdHRlZCBpZiB0aGUgZm91bmQgZnJhbWV3b3JrIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBjb250ZXh0IG92ZXJmbG93JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDA0MjogbWFrZS5kZWJ1ZzxVcGRhdGVkQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwNDInLFxuICAgIGRlc2NyaXB0aW9uOiAnV3JpdGluZyBjb250ZXh0IHVwZGF0ZXMnLFxuICAgIGludGVyZmFjZTogJ1VwZGF0ZWRDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDI0MDogbWFrZS5kZWJ1ZzxNaXNzaW5nQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAyNDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29udGV4dCBsb29rdXAgd2FzIHN0b3BwZWQgYXMgbm8gZnVydGhlciBwcm9ncmVzcyB3YXMgbWFkZS4gJyxcbiAgICBpbnRlcmZhY2U6ICdNaXNzaW5nQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDE6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZldGNoaW5nIG1pc3NpbmcgY29udGV4dC4gVGhpcyBpcyBhbiBpdGVyYXRpdmUgbWVzc2FnZSB0aGF0IG1heSBhcHBlYXIgbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgbWlzc2luZyBrZXlzLicsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAwOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Nsb3VkIGFzc2VtYmx5IG91dHB1dCBzdGFydHMnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IGxpbmVzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIHN0ZG91dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfRTEwMDI6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTEwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IGxpbmVzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIHN0ZGVycicsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTEwMDM6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMycsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgZmluaXNoZWQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMTExOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTExMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5jb21wYXRpYmxlIENESyBDTEkgdmVyc2lvbi4gVXBncmFkZSBuZWVkZWQuJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAxNTA6IG1ha2UuZGVidWc8bmV2ZXI+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMTUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZGljYXRlcyB0aGUgdXNlIG9mIGEgcHJlLXN5bnRoZXNpemVkIGNsb3VkIGFzc2VtYmx5IGRpcmVjdG9yeScsXG4gIH0pLFxuXG4gIENES19BU1NFTUJMWV9JMDMwMDogbWFrZS5pbmZvPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIGluZm8gbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAzMDE6IG1ha2UuZGVidWc8Q29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAzMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBkZWJ1ZyBtZXNzYWdlIGVtaXR0ZWQgYnkgYSBDb250ZXh0IFByb3ZpZGVyJyxcbiAgICBpbnRlcmZhY2U6ICdDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlJyxcbiAgfSksXG5cbiAgLy8gQXNzZW1ibHkgQW5ub3RhdGlvbnNcbiAgQ0RLX0FTU0VNQkxZX0k5OTk5OiBtYWtlLmluZm88Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnQW5ub3RhdGlvbnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX1c5OTk5OiBtYWtlLndhcm48Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfVzk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnV2FybmluZ3MgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0U5OTk5OiBtYWtlLmVycm9yPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0U5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Vycm9ycyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseScsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuU3ludGhlc2lzTWVzc2FnZScsXG4gIH0pLFxuXG4gIC8vIFNESyBjb2Rlc1xuICBDREtfU0RLX0kwMTAwOiBtYWtlLnRyYWNlPFNka1RyYWNlPih7XG4gICAgY29kZTogJ0NES19TREtfSTAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIHRyYWNlLiBTREsgdHJhY2VzIGFyZSBlbWl0dGVkIGFzIHRyYWNlcyB0byB0aGUgSW9Ib3N0LCBidXQgY29udGFpbiB0aGUgb3JpZ2luYWwgU0RLIGxvZ2dpbmcgbGV2ZWwuJyxcbiAgICBpbnRlcmZhY2U6ICdTZGtUcmFjZScsXG4gIH0pLFxuICBDREtfU0RLX0kxMTAwOiBtYWtlLnF1ZXN0aW9uPE1mYVRva2VuUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kxMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbiBNRkEgdG9rZW4gZm9yIGFuIE1GQSBkZXZpY2UuJyxcbiAgICBpbnRlcmZhY2U6ICdNZmFUb2tlblJlcXVlc3QnLFxuICB9KSxcbn07XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFBheWxvYWQgdHlwZSBvZiB0aGUgZW5kIG1lc3NhZ2UgbXVzdCBleHRlbmQgRHVyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNQQU4gPSB7XG4gIFNZTlRIX0FTU0VNQkxZOiB7XG4gICAgbmFtZTogJ1N5bnRoZXNpcycsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0kxMDAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTEwMDAsXG4gIH0sXG4gIERFUExPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTAwMSxcbiAgfSxcbiAgUk9MTEJBQ0tfU1RBQ0s6IHtcbiAgICBuYW1lOiAnUm9sbGJhY2snLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNjEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k2MDAwLFxuICB9LFxuICBESUZGX1NUQUNLOiB7XG4gICAgbmFtZTogJ0RpZmYnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0MDAxLFxuICB9LFxuICBEUklGVF9BUFA6IHtcbiAgICBuYW1lOiAnRHJpZnQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0NTA5LFxuICB9LFxuICBERVNUUk9ZX1NUQUNLOiB7XG4gICAgbmFtZTogJ0Rlc3Ryb3knLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNzEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k3MDAxLFxuICB9LFxuICBERVNUUk9ZX0FDVElPTjoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDEsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMCxcbiAgfSxcbiAgQk9PVFNUUkFQX1NJTkdMRToge1xuICAgIG5hbWU6ICdCb290c3RyYXAnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JOTEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k5MDAwLFxuICB9LFxuICBCVUlMRF9BU1NFVDoge1xuICAgIG5hbWU6ICdCdWlsZCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjEwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMTEsXG4gIH0sXG4gIFBVQkxJU0hfQVNTRVQ6IHtcbiAgICBuYW1lOiAnUHVibGlzaCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjIwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMjEsXG4gIH0sXG4gIEhPVFNXQVA6IHtcbiAgICBuYW1lOiAnaG90c3dhcC1kZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTU0MDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTQxMCxcbiAgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFNwYW5EZWZpbml0aW9uPGFueSwgYW55Pj47XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CloudFormationStackArtifact, Environment } from '@aws-cdk/
|
|
1
|
+
import type { CloudFormationStackArtifact, Environment } from '@aws-cdk/cloud-assembly-api';
|
|
2
2
|
import type { SDK, SdkProvider } from '../aws-auth/private';
|
|
3
3
|
import type { IoHelper } from '../io/private';
|
|
4
4
|
/**
|
|
@@ -91,4 +91,4 @@ function findAllLogGroupNames(stackResources, evaluateCfnTemplate) {
|
|
|
91
91
|
}
|
|
92
92
|
return logGroupNames;
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG91ZHdhdGNoLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaW5kLWNsb3Vkd2F0Y2gtbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSwwREFpQ0M7QUFwRUQscUNBQWdEO0FBRWhELHNEQUEyRjtBQUMzRixnREFBbUQ7QUFFbkQsc0NBQWlDO0FBQ2pDLGtEQUE2RDtBQUU3RCwyRkFBMkY7QUFDM0YsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUEwQnZHLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsV0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsYUFBMEM7SUFFMUMsSUFBSSxHQUFRLENBQUM7SUFDYixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEYsd0VBQXdFO0lBQ3hFLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSwrQkFBaUIsQ0FBQyxXQUFXLEVBQUUseUNBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakksQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsSUFBQSx5QkFBa0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUYsR0FBRyxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxhQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx1Q0FBc0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BG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QWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBFbnZpcm9ubWVudCB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrUmVzb3VyY2VTdW1tYXJ5IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudEFjY2VzcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgfSBmcm9tICcuLi90b29sa2l0LWluZm8nO1xuXG4vLyByZXNvdXJjZSB0eXBlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBDbG91ZFdhdGNoIExvZyBHcm91cHMgdGhhdCBzaG91bGQgX25vdF8gYmUgbW9uaXRvcmVkXG5jb25zdCBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUyA9IFsnQVdTOjpFQzI6OkZsb3dMb2cnLCAnQVdTOjpDbG91ZFRyYWlsOjpUcmFpbCcsICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCddO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIG1vbml0b3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKiBmb3VuZCBpbiBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIFN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm91bmRMb2dHcm91cHNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbikgdGhhdCB0aGUgbG9nXG4gICAqIGdyb3VwcyBhcmUgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSBDbG91ZFdhdGNoXG4gICAqIExvZyBHcm91cHMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSByZWxldmFudCBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRDbG91ZFdhdGNoTG9nR3JvdXBzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuKTogUHJvbWlzZTxGb3VuZExvZ0dyb3Vwc1Jlc3VsdD4ge1xuICBsZXQgc2RrOiBTREs7XG4gIGNvbnN0IHJlc29sdmVkRW52ID0gYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrQXJ0aWZhY3QuZW52aXJvbm1lbnQpO1xuICAvLyB0cnkgdG8gYXNzdW1lIHRoZSBsb29rdXAgcm9sZSBhbmQgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHNcbiAgdHJ5IHtcbiAgICBzZGsgPSAoYXdhaXQgbmV3IEVudmlyb25tZW50QWNjZXNzKHNka1Byb3ZpZGVyLCBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSwgaW9IZWxwZXIpLmFjY2Vzc1N0YWNrRm9yTG9va3VwKHN0YWNrQXJ0aWZhY3QpKS5zZGs7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBGYWlsZWQgdG8gYWNjZXNzIFNESyBlbnZpcm9ubWVudDogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCk7XG4gICAgc2RrID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KHJlc29sdmVkRW52LCBNb2RlLkZvclJlYWRpbmcpKS5zZGs7XG4gIH1cblxuICBjb25zdCBsaXN0U3RhY2tSZXNvdXJjZXMgPSBuZXcgTGF6eUxpc3RTdGFja1Jlc291cmNlcyhzZGssIHN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lKTtcbiAgY29uc3QgZXZhbHVhdGVDZm5UZW1wbGF0ZSA9IG5ldyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoe1xuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgcGFyYW1ldGVyczoge30sXG4gICAgYWNjb3VudDogcmVzb2x2ZWRFbnYuYWNjb3VudCxcbiAgICByZWdpb246IHJlc29sdmVkRW52LnJlZ2lvbixcbiAgICBwYXJ0aXRpb246IChhd2FpdCBzZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uLFxuICAgIHNkayxcbiAgfSk7XG5cbiAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBhd2FpdCBsaXN0U3RhY2tSZXNvdXJjZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG4gIGNvbnN0IGxvZ0dyb3VwTmFtZXMgPSBmaW5kQWxsTG9nR3JvdXBOYW1lcyhzdGFja1Jlc291cmNlcywgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBlbnY6IHJlc29sdmVkRW52LFxuICAgIHNkayxcbiAgICBsb2dHcm91cE5hbWVzLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwIGlzIGFzc29jaWF0ZWRcbiAqIHdpdGggYW4gaWdub3JlZCByZXNvdXJjZVxuICovXG5mdW5jdGlvbiBpc1JlZmVyZW5jZWRGcm9tSWdub3JlZFJlc291cmNlKFxuICBsb2dHcm91cFJlc291cmNlOiBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJlc291cmNlc1JlZmVyZW5jaW5nTG9nR3JvdXAgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmZpbmRSZWZlcmVuY2VzVG8obG9nR3JvdXBSZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEpO1xuICByZXR1cm4gcmVzb3VyY2VzUmVmZXJlbmNpbmdMb2dHcm91cC5zb21lKChyZWZlcmVuY2UpID0+IHtcbiAgICByZXR1cm4gSUdOT1JFX0xPR1NfUkVTT1VSQ0VfVFlQRVMuaW5jbHVkZXMocmVmZXJlbmNlLlR5cGUpO1xuICB9KTtcbn1cblxudHlwZSBDbG91ZFdhdGNoTG9nc1Jlc29sdmVyID0gKFxuICByZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBjbG91ZFdhdGNoTG9nc1Jlc29sdmVyczogUmVjb3JkPHN0cmluZywgQ2xvdWRXYXRjaExvZ3NSZXNvbHZlcj4gPSB7XG4gICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJzogKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKSA9PiB7XG4gICAgaWYgKGlzUmVmZXJlbmNlZEZyb21JZ25vcmVkUmVzb3VyY2UocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkPy50b1N0cmluZygpO1xuICB9LFxuXG4gIC8vIFJlc291cmNlIHR5cGVzIHRoYXQgd2lsbCBjcmVhdGUgYSBDbG91ZFdhdGNoIGxvZyBncm91cCB3aXRoIGEgc3BlY2lmaWMgbmFtZSBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICAvLyBUaGUga2V5cyBhcmUgQ0ZOIHJlc291cmNlIHR5cGVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgdGhlIG5hbWUgb2YgdGhlIHBoeXNpY2FsIG5hbWUgcHJvcGVydHkgb2YgdGhhdCByZXNvdXJjZVxuICAvLyBhbmQgdGhlIHNlcnZpY2UgbmFtZSB0aGF0IGlzIHVzZWQgaW4gdGhlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAgJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbic6IChyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxvZ2dpbmdDb25maWcgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmdldFJlc291cmNlUHJvcGVydHkocmVzb3VyY2UuTG9naWNhbFJlc291cmNlSWQhLCAnTG9nZ2luZ0NvbmZpZycpO1xuICAgIGlmIChsb2dnaW5nQ29uZmlnPy5Mb2dHcm91cCkge1xuICAgICAgLy8gaWYgTG9nR3JvdXAgaXMgYSBzdHJpbmcgdGhlbiB1c2UgaXQgYXMgdGhlIExvZ0dyb3VwTmFtZSBhcyBpdCBpcyByZWZlcnJlZCBieSBMb2dHcm91cC5mcm9tTG9nR3JvdXBBcm4gaW4gQ0RLXG4gICAgICBpZiAodHlwZW9mIGxvZ2dpbmdDb25maWcuTG9nR3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB7IFJlZjogJy4uLicgfSBpcyB1c2VkIHRoZW4gdHJ5IHRvIHJlc29sdmUgdGhlIExvZ0dyb3VwTmFtZSBmcm9tIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKHR5cGVvZiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAobG9nZ2luZ0NvbmZpZy5Mb2dHcm91cC5SZWYpIHtcbiAgICAgICAgICByZXR1cm4gZXZhbHVhdGVDZm5UZW1wbGF0ZS5nZXRSZXNvdXJjZVByb3BlcnR5KGxvZ2dpbmdDb25maWcuTG9nR3JvdXAuUmVmLCAnTG9nR3JvdXBOYW1lJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYC9hd3MvbGFtYmRhLyR7cmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkfWA7XG4gIH0sXG59O1xuXG4vKipcbiAqIEZpbmQgYWxsIENsb3VkV2F0Y2ggTG9nIEdyb3VwcyBpbiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUuXG4gKiBUaGlzIHdpbGwgZmluZCBib3RoIGV4cGxpY2l0bHkgY3JlYXRlZCBMb2cgR3JvdXBzIChleGNsdWRpbmcgdGhvc2UgYXNzb2NpYXRlZCB3aXRoIGlnbm9yZWQgcmVzb3VyY2VzKVxuICogYW5kIExvZyBHcm91cHMgY3JlYXRlZCBpbXBsaWNpdGx5IChpLmUuIExhbWJkYSBGdW5jdGlvbnMpXG4gKi9cbmZ1bmN0aW9uIGZpbmRBbGxMb2dHcm91cE5hbWVzKFxuICBzdGFja1Jlc291cmNlczogU3RhY2tSZXNvdXJjZVN1bW1hcnlbXSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVzb3VyY2Ugb2Ygc3RhY2tSZXNvdXJjZXMpIHtcbiAgICBjb25zdCBsb2dHcm91cFJlc29sdmVyID0gY2xvdWRXYXRjaExvZ3NSZXNvbHZlcnNbcmVzb3VyY2UuUmVzb3VyY2VUeXBlIV07XG4gICAgaWYgKGxvZ0dyb3VwUmVzb2x2ZXIpIHtcbiAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGxvZ0dyb3VwUmVzb2x2ZXIocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuICAgICAgaWYgKGxvZ0dyb3VwTmFtZSkge1xuICAgICAgICBsb2dHcm91cE5hbWVzLnB1c2gobG9nR3JvdXBOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9nR3JvdXBOYW1lcztcbn1cbiJdfQ==
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG91ZHdhdGNoLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaW5kLWNsb3Vkd2F0Y2gtbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSwwREFpQ0M7QUFwRUQscUNBQWdEO0FBRWhELHNEQUEyRjtBQUMzRixnREFBbUQ7QUFFbkQsc0NBQWlDO0FBQ2pDLGtEQUE2RDtBQUU3RCwyRkFBMkY7QUFDM0YsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUEwQnZHLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsV0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsYUFBMEM7SUFFMUMsSUFBSSxHQUFRLENBQUM7SUFDYixNQUFNLFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEYsd0VBQXdFO0lBQ3hFLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSwrQkFBaUIsQ0FBQyxXQUFXLEVBQUUseUNBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakksQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsSUFBQSx5QkFBa0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUYsR0FBRyxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxhQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx1Q0FBc0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BG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QWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBFbnZpcm9ubWVudCB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrUmVzb3VyY2VTdW1tYXJ5IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBFbnZpcm9ubWVudEFjY2VzcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IE1vZGUgfSBmcm9tICcuLi9wbHVnaW4nO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgfSBmcm9tICcuLi90b29sa2l0LWluZm8nO1xuXG4vLyByZXNvdXJjZSB0eXBlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBDbG91ZFdhdGNoIExvZyBHcm91cHMgdGhhdCBzaG91bGQgX25vdF8gYmUgbW9uaXRvcmVkXG5jb25zdCBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUyA9IFsnQVdTOjpFQzI6OkZsb3dMb2cnLCAnQVdTOjpDbG91ZFRyYWlsOjpUcmFpbCcsICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCddO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIG1vbml0b3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKiBmb3VuZCBpbiBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIFN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm91bmRMb2dHcm91cHNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbikgdGhhdCB0aGUgbG9nXG4gICAqIGdyb3VwcyBhcmUgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSBDbG91ZFdhdGNoXG4gICAqIExvZyBHcm91cHMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSByZWxldmFudCBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRDbG91ZFdhdGNoTG9nR3JvdXBzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuKTogUHJvbWlzZTxGb3VuZExvZ0dyb3Vwc1Jlc3VsdD4ge1xuICBsZXQgc2RrOiBTREs7XG4gIGNvbnN0IHJlc29sdmVkRW52ID0gYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrQXJ0aWZhY3QuZW52aXJvbm1lbnQpO1xuICAvLyB0cnkgdG8gYXNzdW1lIHRoZSBsb29rdXAgcm9sZSBhbmQgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHNcbiAgdHJ5IHtcbiAgICBzZGsgPSAoYXdhaXQgbmV3IEVudmlyb25tZW50QWNjZXNzKHNka1Byb3ZpZGVyLCBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSwgaW9IZWxwZXIpLmFjY2Vzc1N0YWNrRm9yTG9va3VwKHN0YWNrQXJ0aWZhY3QpKS5zZGs7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBGYWlsZWQgdG8gYWNjZXNzIFNESyBlbnZpcm9ubWVudDogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCk7XG4gICAgc2RrID0gKGF3YWl0IHNka1Byb3ZpZGVyLmZvckVudmlyb25tZW50KHJlc29sdmVkRW52LCBNb2RlLkZvclJlYWRpbmcpKS5zZGs7XG4gIH1cblxuICBjb25zdCBsaXN0U3RhY2tSZXNvdXJjZXMgPSBuZXcgTGF6eUxpc3RTdGFja1Jlc291cmNlcyhzZGssIHN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lKTtcbiAgY29uc3QgZXZhbHVhdGVDZm5UZW1wbGF0ZSA9IG5ldyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUoe1xuICAgIHN0YWNrQXJ0aWZhY3QsXG4gICAgcGFyYW1ldGVyczoge30sXG4gICAgYWNjb3VudDogcmVzb2x2ZWRFbnYuYWNjb3VudCxcbiAgICByZWdpb246IHJlc29sdmVkRW52LnJlZ2lvbixcbiAgICBwYXJ0aXRpb246IChhd2FpdCBzZGsuY3VycmVudEFjY291bnQoKSkucGFydGl0aW9uLFxuICAgIHNkayxcbiAgfSk7XG5cbiAgY29uc3Qgc3RhY2tSZXNvdXJjZXMgPSBhd2FpdCBsaXN0U3RhY2tSZXNvdXJjZXMubGlzdFN0YWNrUmVzb3VyY2VzKCk7XG4gIGNvbnN0IGxvZ0dyb3VwTmFtZXMgPSBmaW5kQWxsTG9nR3JvdXBOYW1lcyhzdGFja1Jlc291cmNlcywgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBlbnY6IHJlc29sdmVkRW52LFxuICAgIHNkayxcbiAgICBsb2dHcm91cE5hbWVzLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwIGlzIGFzc29jaWF0ZWRcbiAqIHdpdGggYW4gaWdub3JlZCByZXNvdXJjZVxuICovXG5mdW5jdGlvbiBpc1JlZmVyZW5jZWRGcm9tSWdub3JlZFJlc291cmNlKFxuICBsb2dHcm91cFJlc291cmNlOiBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJlc291cmNlc1JlZmVyZW5jaW5nTG9nR3JvdXAgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmZpbmRSZWZlcmVuY2VzVG8obG9nR3JvdXBSZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEpO1xuICByZXR1cm4gcmVzb3VyY2VzUmVmZXJlbmNpbmdMb2dHcm91cC5zb21lKChyZWZlcmVuY2UpID0+IHtcbiAgICByZXR1cm4gSUdOT1JFX0xPR1NfUkVTT1VSQ0VfVFlQRVMuaW5jbHVkZXMocmVmZXJlbmNlLlR5cGUpO1xuICB9KTtcbn1cblxudHlwZSBDbG91ZFdhdGNoTG9nc1Jlc29sdmVyID0gKFxuICByZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBjbG91ZFdhdGNoTG9nc1Jlc29sdmVyczogUmVjb3JkPHN0cmluZywgQ2xvdWRXYXRjaExvZ3NSZXNvbHZlcj4gPSB7XG4gICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJzogKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKSA9PiB7XG4gICAgaWYgKGlzUmVmZXJlbmNlZEZyb21JZ25vcmVkUmVzb3VyY2UocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkPy50b1N0cmluZygpO1xuICB9LFxuXG4gIC8vIFJlc291cmNlIHR5cGVzIHRoYXQgd2lsbCBjcmVhdGUgYSBDbG91ZFdhdGNoIGxvZyBncm91cCB3aXRoIGEgc3BlY2lmaWMgbmFtZSBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICAvLyBUaGUga2V5cyBhcmUgQ0ZOIHJlc291cmNlIHR5cGVzLCBhbmQgdGhlIHZhbHVlcyBhcmUgdGhlIG5hbWUgb2YgdGhlIHBoeXNpY2FsIG5hbWUgcHJvcGVydHkgb2YgdGhhdCByZXNvdXJjZVxuICAvLyBhbmQgdGhlIHNlcnZpY2UgbmFtZSB0aGF0IGlzIHVzZWQgaW4gdGhlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAgJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbic6IChyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxvZ2dpbmdDb25maWcgPSBldmFsdWF0ZUNmblRlbXBsYXRlLmdldFJlc291cmNlUHJvcGVydHkocmVzb3VyY2UuTG9naWNhbFJlc291cmNlSWQhLCAnTG9nZ2luZ0NvbmZpZycpO1xuICAgIGlmIChsb2dnaW5nQ29uZmlnPy5Mb2dHcm91cCkge1xuICAgICAgLy8gaWYgTG9nR3JvdXAgaXMgYSBzdHJpbmcgdGhlbiB1c2UgaXQgYXMgdGhlIExvZ0dyb3VwTmFtZSBhcyBpdCBpcyByZWZlcnJlZCBieSBMb2dHcm91cC5mcm9tTG9nR3JvdXBBcm4gaW4gQ0RLXG4gICAgICBpZiAodHlwZW9mIGxvZ2dpbmdDb25maWcuTG9nR3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB7IFJlZjogJy4uLicgfSBpcyB1c2VkIHRoZW4gdHJ5IHRvIHJlc29sdmUgdGhlIExvZ0dyb3VwTmFtZSBmcm9tIHRoZSByZWZlcmVuY2VkIHJlc291cmNlIGluIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKHR5cGVvZiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAobG9nZ2luZ0NvbmZpZy5Mb2dHcm91cC5SZWYpIHtcbiAgICAgICAgICByZXR1cm4gZXZhbHVhdGVDZm5UZW1wbGF0ZS5nZXRSZXNvdXJjZVByb3BlcnR5KGxvZ2dpbmdDb25maWcuTG9nR3JvdXAuUmVmLCAnTG9nR3JvdXBOYW1lJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYC9hd3MvbGFtYmRhLyR7cmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkfWA7XG4gIH0sXG59O1xuXG4vKipcbiAqIEZpbmQgYWxsIENsb3VkV2F0Y2ggTG9nIEdyb3VwcyBpbiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUuXG4gKiBUaGlzIHdpbGwgZmluZCBib3RoIGV4cGxpY2l0bHkgY3JlYXRlZCBMb2cgR3JvdXBzIChleGNsdWRpbmcgdGhvc2UgYXNzb2NpYXRlZCB3aXRoIGlnbm9yZWQgcmVzb3VyY2VzKVxuICogYW5kIExvZyBHcm91cHMgY3JlYXRlZCBpbXBsaWNpdGx5IChpLmUuIExhbWJkYSBGdW5jdGlvbnMpXG4gKi9cbmZ1bmN0aW9uIGZpbmRBbGxMb2dHcm91cE5hbWVzKFxuICBzdGFja1Jlc291cmNlczogU3RhY2tSZXNvdXJjZVN1bW1hcnlbXSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVzb3VyY2Ugb2Ygc3RhY2tSZXNvdXJjZXMpIHtcbiAgICBjb25zdCBsb2dHcm91cFJlc29sdmVyID0gY2xvdWRXYXRjaExvZ3NSZXNvbHZlcnNbcmVzb3VyY2UuUmVzb3VyY2VUeXBlIV07XG4gICAgaWYgKGxvZ0dyb3VwUmVzb2x2ZXIpIHtcbiAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGxvZ0dyb3VwUmVzb2x2ZXIocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuICAgICAgaWYgKGxvZ0dyb3VwTmFtZSkge1xuICAgICAgICBsb2dHcm91cE5hbWVzLnB1c2gobG9nR3JvdXBOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9nR3JvdXBOYW1lcztcbn1cbiJdfQ==
|