@cdklabs/cdk-appmod-catalog-blueprints 1.17.0 → 1.17.2
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/.jsii +5 -5
- package/lib/document-processing/adapter/queued-s3-adapter.js +39 -5
- package/lib/document-processing/agentic-document-processing.js +6 -4
- package/lib/document-processing/base-document-processing.js +16 -4
- package/lib/document-processing/bedrock-document-processing.js +109 -66
- package/lib/document-processing/default-document-processing-config.js +3 -5
- package/lib/document-processing/localstack-agentic-document-processing.js +38 -5
- package/lib/document-processing/localstack-bedrock-document-processing.js +36 -5
- package/lib/document-processing/tests/base-document-processing-nag.test.js +3 -1
- package/lib/document-processing/tests/base-document-processing-schema.test.js +6 -1
- package/lib/document-processing/tests/base-document-processing.test.js +12 -1
- package/lib/document-processing/tests/localstack-agentic-document-processing.test.js +35 -2
- package/lib/document-processing/tests/localstack-document-processing.test.js +35 -2
- package/lib/document-processing/tests/queued-s3-adapter-nag.test.js +3 -1
- package/lib/document-processing/tests/queued-s3-adapter.test.js +3 -1
- package/lib/framework/agents/base-agent.js +31 -4
- package/lib/framework/agents/batch-agent.js +37 -5
- package/lib/framework/agents/default-agent-config.js +3 -5
- package/lib/framework/agents/interactive-agent.js +115 -23
- package/lib/framework/agents/knowledge-base/base-knowledge-base.js +30 -4
- package/lib/framework/agents/knowledge-base/bedrock-knowledge-base.js +81 -5
- package/lib/framework/agents/localstack-batch-agent.js +36 -5
- package/lib/framework/agents/tests/agent-knowledge-base-nag.test.js +35 -2
- package/lib/framework/bedrock/bedrock.js +2 -4
- package/lib/framework/custom-resource/default-runtimes.js +20 -22
- package/lib/framework/foundation/access-log.js +50 -7
- package/lib/framework/foundation/eventbridge-broker.js +5 -4
- package/lib/framework/foundation/network.js +4 -4
- package/lib/framework/localstack/localstack-config.js +3 -5
- package/lib/framework/tests/base-agent-knowledge-base.test.js +35 -2
- package/lib/framework/tests/batch-agent.test.js +35 -2
- package/lib/framework/tests/framework-nag.test.js +35 -2
- package/lib/framework/tests/interactive-agent-nag.test.js +35 -2
- package/lib/framework/tests/interactive-agent.test.js +35 -2
- package/lib/framework/tests/localstack-batch-agent.test.js +35 -2
- package/lib/utilities/data-loader.js +50 -5
- package/lib/utilities/lambda-iam-utils.js +38 -7
- package/lib/utilities/lambda_layers/data-masking/layer-construct.js +40 -3
- package/lib/utilities/observability/bedrock-observability.js +38 -2
- package/lib/utilities/observability/cloudfront-distribution-observability-property-injector.js +3 -4
- package/lib/utilities/observability/cloudwatch-transaction-search.js +36 -5
- package/lib/utilities/observability/default-observability-config.js +6 -8
- package/lib/utilities/observability/lambda-observability-property-injector.js +4 -4
- package/lib/utilities/observability/log-group-data-protection-utils.js +2 -4
- package/lib/utilities/observability/observability.js +47 -6
- package/lib/utilities/observability/powertools-config.js +2 -4
- package/lib/utilities/observability/state-machine-observability-property-injector.js +4 -4
- package/lib/webapp/frontend-construct.js +46 -5
- package/lib/webapp/tests/frontend-construct-nag.test.js +36 -3
- package/lib/webapp/tests/frontend-construct.test.js +36 -3
- package/package.json +60 -61
- package/lib/tsconfig.tsbuildinfo +0 -1
|
@@ -1,11 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
3
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
36
|
exports.Frontend = exports.DEFAULT_SPA_ERROR_RESPONSES = void 0;
|
|
5
37
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
38
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
39
|
// SPDX-License-Identifier: Apache-2.0
|
|
8
|
-
const path = require("path");
|
|
40
|
+
const path = __importStar(require("path"));
|
|
9
41
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
10
42
|
const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
|
|
11
43
|
const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
|
|
@@ -45,6 +77,17 @@ exports.DEFAULT_SPA_ERROR_RESPONSES = [
|
|
|
45
77
|
* - Security configurations
|
|
46
78
|
*/
|
|
47
79
|
class Frontend extends constructs_1.Construct {
|
|
80
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.Frontend", version: "1.17.2" };
|
|
81
|
+
/** The S3 bucket hosting the frontend assets */
|
|
82
|
+
bucket;
|
|
83
|
+
/** The CloudFront distribution */
|
|
84
|
+
distribution;
|
|
85
|
+
/** The bucket deployment that uploads the frontend assets */
|
|
86
|
+
bucketDeployment;
|
|
87
|
+
/** The custom domain name (if configured) */
|
|
88
|
+
domainName;
|
|
89
|
+
/** The Asset containing the frontend source code */
|
|
90
|
+
asset;
|
|
48
91
|
/**
|
|
49
92
|
* Creates a new Frontend
|
|
50
93
|
* @param scope The construct scope
|
|
@@ -248,6 +291,4 @@ class Frontend extends constructs_1.Construct {
|
|
|
248
291
|
}
|
|
249
292
|
}
|
|
250
293
|
exports.Frontend = Frontend;
|
|
251
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
252
|
-
Frontend[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.Frontend", version: "1.17.0" };
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXNlLWNhc2VzL3dlYmFwcC9mcm9udGVuZC1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBRXRDLDZCQUE2QjtBQUM3Qiw2Q0FBNEU7QUFFNUUsK0RBU29DO0FBQ3BDLCtFQUFvRTtBQUNwRSxpREFBOEQ7QUFDOUQseURBQTZFO0FBQzdFLHlFQUFtRTtBQUNuRSwrQ0FBaUY7QUFDakYsNkRBQWtEO0FBQ2xELHFFQUF5RTtBQUN6RSwyQ0FBdUM7QUFDdkMsNENBQW1GO0FBRW5GOztHQUVHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBb0I7SUFDMUQ7UUFDRSxVQUFVLEVBQUUsR0FBRztRQUNmLGtCQUFrQixFQUFFLEdBQUc7UUFDdkIsZ0JBQWdCLEVBQUUsYUFBYTtLQUNoQztJQUNEO1FBQ0UsVUFBVSxFQUFFLEdBQUc7UUFDZixrQkFBa0IsRUFBRSxHQUFHO1FBQ3ZCLGdCQUFnQixFQUFFLGFBQWE7S0FDaEM7Q0FDRixDQUFDO0FBdURGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsc0JBQVM7SUFZckM7Ozs7O09BS0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM5QiwrQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUM1QixJQUFJLCtEQUFtRCxFQUFFLENBQzFELENBQUM7UUFDSixDQUFDO1FBRUQsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0Isa0NBQWtDO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElB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cUJBQU8sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQzNELElBQUksRUFBRSxZQUFZLENBQUMsVUFBVTtnQkFDN0IsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVO2dCQUNuQyxNQUFNLEVBQUUsMEJBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxzQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDeEUsQ0FBQyxDQUFDO1lBRUgseUNBQXlDO1lBQ3pDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVO1lBQ3BCLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDOztBQWxQSCw0QkFtUEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZSwgUHJvcGVydHlJbmplY3RvcnMsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCB7XG4gIERpc3RyaWJ1dGlvbixcbiAgRGlzdHJpYnV0aW9uUHJvcHMsXG4gIEVycm9yUmVzcG9uc2UsXG4gIEZ1bmN0aW9uIGFzIENsb3VkRnJvbnRGdW5jdGlvbixcbiAgRnVuY3Rpb25Db2RlLFxuICBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgUHJpY2VDbGFzcyxcbiAgVmlld2VyUHJvdG9jb2xQb2xpY3ksXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IFMzQnVja2V0T3JpZ2luIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQVJlY29yZCwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCB7IENsb3VkRnJvbnRUYXJnZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQXNzZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IEJ1Y2tldERlcGxveW1lbnQsIFNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2xvdWRmcm9udERpc3RyaWJ1dGlvbk9ic2VydmFiaWxpdHlQcm9wZXJ0eUluamVjdG9yIH0gZnJvbSAnLi4vdXRpbGl0aWVzJztcblxuLyoqXG4gKiBEZWZhdWx0IENsb3VkRnJvbnQgZXJyb3IgcmVzcG9uc2VzIGZvciBTaW5nbGUgUGFnZSBBcHBsaWNhdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1BBX0VSUk9SX1JFU1BPTlNFUzogRXJyb3JSZXNwb25zZVtdID0gW1xuICB7XG4gICAgaHR0cFN0YXR1czogNDAzLFxuICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gIH0sXG4gIHtcbiAgICBodHRwU3RhdHVzOiA0MDQsXG4gICAgcmVzcG9uc2VIdHRwU3RhdHVzOiAyMDAsXG4gICAgcmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJyxcbiAgfSxcbl07XG5cbi8qKlxuICogQ3VzdG9tIGRvbWFpbiBjb25maWd1cmF0aW9uIGZvciB0aGUgZnJvbnRlbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Eb21haW5Db25maWcge1xuICAvKiogRG9tYWluIG5hbWUgZm9yIHRoZSBmcm9udGVuZCAoZS5nLiwgJ2FwcC5leGFtcGxlLmNvbScpICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcbiAgLyoqIFNTTCBjZXJ0aWZpY2F0ZSBmb3IgdGhlIGRvbWFpbiAocmVxdWlyZWQgd2hlbiBkb21haW5OYW1lIGlzIHByb3ZpZGVkKSAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlO1xuICAvKiogT3B0aW9uYWwgaG9zdGVkIHpvbmUgZm9yIGF1dG9tYXRpYyBETlMgcmVjb3JkIGNyZWF0aW9uICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU/OiBJSG9zdGVkWm9uZTtcbn1cblxuLyoqXG4gKiBBZGRpdGlvbmFsIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsRGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKiogT3B0aW9uYWwgY29tbWVudCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZW5hYmxlZCBmbGFnIGZvciB0aGUgZGlzdHJpYnV0aW9uICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuICAvKiogT3B0aW9uYWwgcHJpY2UgY2xhc3MgZm9yIHRoZSBkaXN0cmlidXRpb24gKi9cbiAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IFByaWNlQ2xhc3M7XG4gIC8qKiBPcHRpb25hbCB3ZWIgQUNMIElEIGZvciB0aGUgZGlzdHJpYnV0aW9uICovXG4gIHJlYWRvbmx5IHdlYkFjbElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBGcm9udGVuZCBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9udGVuZFByb3BzIHtcbiAgLyoqIEJhc2UgZGlyZWN0b3J5IG9mIHRoZSBmcm9udGVuZCBzb3VyY2UgY29kZSAqL1xuICByZWFkb25seSBzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZztcbiAgLyoqIERpcmVjdG9yeSB3aGVyZSBidWlsZCBhcnRpZmFjdHMgYXJlIGxvY2F0ZWQgYWZ0ZXIgYnVpbGQgY29tbWFuZCBjb21wbGV0ZXMgKGRlZmF1bHRzIHRvICd7c291cmNlRGlyZWN0b3J5fS9idWlsZCcpICovXG4gIHJlYWRvbmx5IGJ1aWxkT3V0cHV0RGlyZWN0b3J5Pzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgYnVpbGQgY29tbWFuZCAoZGVmYXVsdHMgdG8gJ25wbSBydW4gYnVpbGQnKSAqL1xuICByZWFkb25seSBidWlsZENvbW1hbmQ/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBjdXN0b20gZG9tYWluIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgY3VzdG9tRG9tYWluPzogQ3VzdG9tRG9tYWluQ29uZmlnO1xuICAvKiogT3B0aW9uYWwgQ2xvdWRGcm9udCBlcnJvciByZXNwb25zZXMgKGRlZmF1bHRzIHRvIFNQQS1mcmllbmRseSByZXNwb25zZXMpICovXG4gIHJlYWRvbmx5IGVycm9yUmVzcG9uc2VzPzogRXJyb3JSZXNwb25zZVtdO1xuICAvKiogT3B0aW9uYWwgYWRkaXRpb25hbCBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBwcm9wZXJ0aWVzICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvblByb3BzPzogQWRkaXRpb25hbERpc3RyaWJ1dGlvblByb3BzO1xuICAvKiogT3B0aW9uYWwgZmxhZyB0byBza2lwIHRoZSBidWlsZCBwcm9jZXNzICh1c2VmdWwgZm9yIHByZS1idWlsdCBhcnRpZmFjdHMpICovXG4gIHJlYWRvbmx5IHNraXBCdWlsZD86IGJvb2xlYW47XG4gIC8qKiBPcHRpb25hbCByZW1vdmFsIHBvbGljeSBmb3IgYWxsIHJlc291cmNlcyAoZGVmYXVsdHMgdG8gREVTVFJPWSkgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIC8qKlxuICAgKiBFbmFibGUgbG9nZ2luZyBhbmQgdHJhY2luZyBmb3IgYWxsIHN1cHBvcnRpbmcgcmVzb3VyY2VcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU9ic2VydmFiaWxpdHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEZyb250ZW5kIGNvbnN0cnVjdCB0aGF0IGRlcGxveXMgYSBmcm9udGVuZCBhcHBsaWNhdGlvbiB0byBTMyBhbmQgQ2xvdWRGcm9udFxuICpcbiAqIFRoaXMgY29uc3RydWN0IHByb3ZpZGVzIGEgY29tcGxldGUgc29sdXRpb24gZm9yIGhvc3Rpbmcgc3RhdGljIGZyb250ZW5kIGFwcGxpY2F0aW9uc1xuICogd2l0aCB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOlxuICogLSBTMyBidWNrZXQgZm9yIGhvc3Rpbmcgc3RhdGljIGFzc2V0cyB3aXRoIHNlY3VyaXR5IGJlc3QgcHJhY3RpY2VzXG4gKiAtIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIGZvciBnbG9iYWwgY29udGVudCBkZWxpdmVyeVxuICogLSBPcHRpb25hbCBjdXN0b20gZG9tYWluIHdpdGggU1NMIGNlcnRpZmljYXRlXG4gKiAtIEF1dG9tYXRpYyBidWlsZCBwcm9jZXNzIGV4ZWN1dGlvblxuICogLSBTUEEtZnJpZW5kbHkgZXJyb3IgaGFuZGxpbmcgYnkgZGVmYXVsdFxuICogLSBTZWN1cml0eSBjb25maWd1cmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgRnJvbnRlbmQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKiogVGhlIFMzIGJ1Y2tldCBob3N0aW5nIHRoZSBmcm9udGVuZCBhc3NldHMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldDogQnVja2V0O1xuICAvKiogVGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uICovXG4gIHB1YmxpYyByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgLyoqIFRoZSBidWNrZXQgZGVwbG95bWVudCB0aGF0IHVwbG9hZHMgdGhlIGZyb250ZW5kIGFzc2V0cyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0RGVwbG95bWVudDogQnVja2V0RGVwbG95bWVudDtcbiAgLyoqIFRoZSBjdXN0b20gZG9tYWluIG5hbWUgKGlmIGNvbmZpZ3VyZWQpICovXG4gIHB1YmxpYyByZWFkb25seSBkb21haW5OYW1lPzogc3RyaW5nO1xuICAvKiogVGhlIEFzc2V0IGNvbnRhaW5pbmcgdGhlIGZyb250ZW5kIHNvdXJjZSBjb2RlICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NldD86IEFzc2V0O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEZyb250ZW5kXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgZnJvbnRlbmQgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZyb250ZW5kUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLmVuYWJsZU9ic2VydmFiaWxpdHkpIHtcbiAgICAgIFByb3BlcnR5SW5qZWN0b3JzLm9mKHRoaXMpLmFkZChcbiAgICAgICAgbmV3IENsb3VkZnJvbnREaXN0cmlidXRpb25PYnNlcnZhYmlsaXR5UHJvcGVydHlJbmplY3RvcigpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSByZXF1aXJlZCBwYXJhbWV0ZXJzXG4gICAgdGhpcy5fdmFsaWRhdGVQcm9wcyhwcm9wcyk7XG5cbiAgICAvLyBHZXQgcmVtb3ZhbCBwb2xpY3kgd2l0aCBkZWZhdWx0XG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuXG4gICAgLy8gQ3JlYXRlIGFzc2V0IGZvciBzb3VyY2UgY29kZSB3aXRoIG9wdGlvbmFsIGJ1bmRsaW5nXG4gICAgaWYgKCFwcm9wcy5za2lwQnVpbGQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSB0aGlzLl9jcmVhdGVBc3NldChwcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIFMzIGJ1Y2tldCBmb3IgaG9zdGluZ1xuICAgIHRoaXMuYnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCAnRnJvbnRlbmRCdWNrZXQnLCB7XG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgcmVtb3ZhbFBvbGljeTogcmVtb3ZhbFBvbGljeSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiByZW1vdmFsUG9saWN5ID09PSBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25cbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IHRoaXMuX2NyZWF0ZURpc3RyaWJ1dGlvbihwcm9wcywgcmVtb3ZhbFBvbGljeSk7XG5cbiAgICAvLyBEZXBsb3kgZnJvbnRlbmQgYXNzZXRzIHRvIFMzXG4gICAgY29uc3QgYnVpbGRPdXRwdXREaXJlY3RvcnkgPSBwcm9wcy5idWlsZE91dHB1dERpcmVjdG9yeSB8fCBwYXRoLmpvaW4ocHJvcHMuc291cmNlRGlyZWN0b3J5LCAnYnVpbGQnKTtcbiAgICB0aGlzLmJ1Y2tldERlcGxveW1lbnQgPSBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCAnRnJvbnRlbmREZXBsb3ltZW50Jywge1xuICAgICAgc291cmNlczogdGhpcy5hc3NldFxuICAgICAgICA/IFtTb3VyY2UuYnVja2V0KHRoaXMuYXNzZXQuYnVja2V0LCB0aGlzLmFzc2V0LnMzT2JqZWN0S2V5KV1cbiAgICAgICAgOiBbU291cmNlLmFzc2V0KGJ1aWxkT3V0cHV0RGlyZWN0b3J5KV0sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBkaXN0cmlidXRpb246IHRoaXMuZGlzdHJpYnV0aW9uLFxuICAgICAgZGlzdHJpYnV0aW9uUGF0aHM6IFsnLyonXSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVja2V0RGVwbG95bWVudC5oYW5kbGVyUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnY2xvdWRmcm9udDpHZXRJbnZhbGlkYXRpb24nLFxuICAgICAgICAnY2xvdWRmcm9udDpDcmVhdGVJbnZhbGlkYXRpb24nLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgfSkpO1xuXG4gICAgLy8gTm90ZTogQnVja2V0RGVwbG95bWVudCBkb2Vzbid0IHN1cHBvcnQgYXBwbHlSZW1vdmFsUG9saWN5IGRpcmVjdGx5XG4gICAgLy8gSXQgd2lsbCBiZSBjbGVhbmVkIHVwIHdoZW4gdGhlIGJ1Y2tldCBpcyBkZWxldGVkIGR1ZSB0byBhdXRvRGVsZXRlT2JqZWN0c1xuXG4gICAgLy8gU2V0dXAgY3VzdG9tIGRvbWFpbiBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5jdXN0b21Eb21haW4pIHtcbiAgICAgIHRoaXMuZG9tYWluTmFtZSA9IHByb3BzLmN1c3RvbURvbWFpbi5kb21haW5OYW1lO1xuICAgICAgdGhpcy5fc2V0dXBDdXN0b21Eb21haW4ocHJvcHMuY3VzdG9tRG9tYWluLCByZW1vdmFsUG9saWN5KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBjb25zdHJ1Y3QgcHJvcGVydGllc1xuICAgKiBAcGFyYW0gcHJvcHMgVGhlIGZyb250ZW5kIHByb3BlcnRpZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlUHJvcHMocHJvcHM6IEZyb250ZW5kUHJvcHMpOiB2b2lkIHtcbiAgICBpZiAoIXByb3BzLnNvdXJjZURpcmVjdG9yeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzb3VyY2VEaXJlY3RvcnkgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuY3VzdG9tRG9tYWluPy5kb21haW5OYW1lICYmICFwcm9wcy5jdXN0b21Eb21haW4uY2VydGlmaWNhdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2VydGlmaWNhdGUgaXMgcmVxdWlyZWQgd2hlbiBkb21haW5OYW1lIGlzIHByb3ZpZGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gQXNzZXQgZm9yIHRoZSBmcm9udGVuZCBzb3VyY2UgY29kZSB3aXRoIGJ1bmRsaW5nXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgZnJvbnRlbmQgcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBUaGUgQXNzZXQgY29udGFpbmluZyB0aGUgYnVpbHQgZnJvbnRlbmRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUFzc2V0KHByb3BzOiBGcm9udGVuZFByb3BzKTogQXNzZXQge1xuICAgIGNvbnN0IGJ1aWxkQ29tbWFuZCA9IHByb3BzLmJ1aWxkQ29tbWFuZCB8fCAnbnBtIHJ1biBidWlsZCc7XG4gICAgY29uc3QgYnVpbGRPdXRwdXREaXJlY3RvcnkgPSBwcm9wcy5idWlsZE91dHB1dERpcmVjdG9yeSB8fCBwYXRoLmpvaW4ocHJvcHMuc291cmNlRGlyZWN0b3J5LCAnYnVpbGQnKTtcblxuICAgIC8vIEV4dHJhY3QgdGhlIGJ1aWxkIGRpcmVjdG9yeSBuYW1lIGZyb20gdGhlIGZ1bGwgcGF0aFxuICAgIGNvbnN0IGJ1aWxkRGlyTmFtZSA9IHBhdGguYmFzZW5hbWUoYnVpbGRPdXRwdXREaXJlY3RvcnkpO1xuXG4gICAgY29uc3QgYXNzZXQgPSBuZXcgQXNzZXQodGhpcywgJ0Zyb250ZW5kQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwcm9wcy5zb3VyY2VEaXJlY3RvcnksXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBpbWFnZTogRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KCdwdWJsaWMuZWNyLmF3cy9kb2NrZXIvbGlicmFyeS9ub2RlOmx0cy1hbHBpbmUnKSxcbiAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICdzaCcsICctYycsIFtcbiAgICAgICAgICAgICdjZCAvYXNzZXQtaW5wdXQnLFxuICAgICAgICAgICAgJ25wbSBjaSAtLW9ubHk9cHJvZHVjdGlvbicsXG4gICAgICAgICAgICBidWlsZENvbW1hbmQsXG4gICAgICAgICAgICBgY3AgLXIgLi8ke2J1aWxkRGlyTmFtZX0vKiAvYXNzZXQtb3V0cHV0L2AsXG4gICAgICAgICAgXS5qb2luKCcgJiYgJyksXG4gICAgICAgIF0sXG4gICAgICAgIHVzZXI6ICdyb290JyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBOb3RlOiBBc3NldCBkb2Vzbid0IHN1cHBvcnQgYXBwbHlSZW1vdmFsUG9saWN5IGRpcmVjdGx5XG4gICAgLy8gVGhlIHVuZGVybHlpbmcgUzMgb2JqZWN0cyB3aWxsIGJlIG1hbmFnZWQgYnkgdGhlIGFzc2V0IGJ1Y2tldCdzIHJlbW92YWwgcG9saWN5XG5cbiAgICByZXR1cm4gYXNzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25cbiAgICogQHBhcmFtIHByb3BzIFRoZSBmcm9udGVuZCBwcm9wZXJ0aWVzXG4gICAqIEBwYXJhbSByZW1vdmFsUG9saWN5IFRoZSByZW1vdmFsIHBvbGljeSB0byBhcHBseVxuICAgKiBAcmV0dXJucyBUaGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZURpc3RyaWJ1dGlvbihwcm9wczogRnJvbnRlbmRQcm9wcywgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeSk6IERpc3RyaWJ1dGlvbiB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBwcm9wcy5lcnJvclJlc3BvbnNlcyB8fCBERUZBVUxUX1NQQV9FUlJPUl9SRVNQT05TRVM7XG5cbiAgICAvLyBDcmVhdGUgYSBDbG91ZEZyb250IGZ1bmN0aW9uIGZvciBzZWN1cml0eSBoZWFkZXJzXG4gICAgY29uc3Qgc2VjdXJpdHlIZWFkZXJzRnVuY3Rpb24gPSBuZXcgQ2xvdWRGcm9udEZ1bmN0aW9uKHRoaXMsICdTZWN1cml0eUhlYWRlcnNGdW5jdGlvbicsIHtcbiAgICAgIGNvZGU6IEZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKGBcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICAgICAgICAgIHZhciByZXNwb25zZSA9IGV2ZW50LnJlc3BvbnNlO1xuICAgICAgICAgIHZhciBoZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBBZGQgc2VjdXJpdHkgaGVhZGVyc1xuICAgICAgICAgIGhlYWRlcnNbJ3N0cmljdC10cmFuc3BvcnQtc2VjdXJpdHknXSA9IHsgdmFsdWU6ICdtYXgtYWdlPTYzMDcyMDAwOyBpbmNsdWRlU3ViZG9tYWluczsgcHJlbG9hZCcgfTtcbiAgICAgICAgICBoZWFkZXJzWydjb250ZW50LXR5cGUtb3B0aW9ucyddID0geyB2YWx1ZTogJ25vc25pZmYnIH07XG4gICAgICAgICAgaGVhZGVyc1sneC1mcmFtZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnREVOWScgfTtcbiAgICAgICAgICBoZWFkZXJzWyd4LWNvbnRlbnQtdHlwZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnbm9zbmlmZicgfTtcbiAgICAgICAgICBoZWFkZXJzWydyZWZlcnJlci1wb2xpY3knXSA9IHsgdmFsdWU6ICdzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJyB9O1xuICAgICAgICAgIGhlYWRlcnNbJ3Blcm1pc3Npb25zLXBvbGljeSddID0geyB2YWx1ZTogJ2NhbWVyYT0oKSwgbWljcm9waG9uZT0oKSwgZ2VvbG9jYXRpb249KCknIH07XG4gICAgICAgICAgXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICBgKSxcbiAgICB9KTtcblxuICAgIC8vIEFwcGx5IHJlbW92YWwgcG9saWN5IHRvIENsb3VkRnJvbnQgZnVuY3Rpb25cbiAgICBzZWN1cml0eUhlYWRlcnNGdW5jdGlvbi5hcHBseVJlbW92YWxQb2xpY3kocmVtb3ZhbFBvbGljeSk7XG5cbiAgICBjb25zdCBkaXN0cmlidXRpb25Db25maWc6IERpc3RyaWJ1dGlvblByb3BzID0ge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2wodGhpcy5idWNrZXQpLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZnVuY3Rpb246IHNlY3VyaXR5SGVhZGVyc0Z1bmN0aW9uLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogJ2luZGV4Lmh0bWwnLFxuICAgICAgZXJyb3JSZXNwb25zZXMsXG4gICAgICBjb21tZW50OiBwcm9wcy5kaXN0cmlidXRpb25Qcm9wcz8uY29tbWVudCxcbiAgICAgIGVuYWJsZWQ6IHByb3BzLmRpc3RyaWJ1dGlvblByb3BzPy5lbmFibGVkLFxuICAgICAgcHJpY2VDbGFzczogcHJvcHMuZGlzdHJpYnV0aW9uUHJvcHM/LnByaWNlQ2xhc3MsXG4gICAgICB3ZWJBY2xJZDogcHJvcHMuZGlzdHJpYnV0aW9uUHJvcHM/LndlYkFjbElkLFxuICAgIH07XG5cbiAgICAvLyBBZGQgY3VzdG9tIGRvbWFpbiBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgbGV0IGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuICAgIGlmIChwcm9wcy5jdXN0b21Eb21haW4pIHtcbiAgICAgIGRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgJ0Zyb250ZW5kRGlzdHJpYnV0aW9uJywge1xuICAgICAgICAuLi5kaXN0cmlidXRpb25Db25maWcsXG4gICAgICAgIGRvbWFpbk5hbWVzOiBbcHJvcHMuY3VzdG9tRG9tYWluLmRvbWFpbk5hbWVdLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogcHJvcHMuY3VzdG9tRG9tYWluLmNlcnRpZmljYXRlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgJ0Zyb250ZW5kRGlzdHJpYnV0aW9uJywgZGlzdHJpYnV0aW9uQ29uZmlnKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSByZW1vdmFsIHBvbGljeSB0byBkaXN0cmlidXRpb25cbiAgICBkaXN0cmlidXRpb24uYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuXG4gICAgcmV0dXJuIGRpc3RyaWJ1dGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGN1c3RvbSBkb21haW4gd2l0aCBSb3V0ZTUzIHJlY29yZFxuICAgKiBAcGFyYW0gY3VzdG9tRG9tYWluIFRoZSBjdXN0b20gZG9tYWluIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHJlbW92YWxQb2xpY3kgVGhlIHJlbW92YWwgcG9saWN5IHRvIGFwcGx5XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZXR1cEN1c3RvbURvbWFpbihjdXN0b21Eb21haW46IEN1c3RvbURvbWFpbkNvbmZpZywgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIGlmIChjdXN0b21Eb21haW4uaG9zdGVkWm9uZSkge1xuICAgICAgY29uc3QgYWxpYXNSZWNvcmQgPSBuZXcgQVJlY29yZCh0aGlzLCAnRnJvbnRlbmRBbGlhc1JlY29yZCcsIHtcbiAgICAgICAgem9uZTogY3VzdG9tRG9tYWluLmhvc3RlZFpvbmUsXG4gICAgICAgIHJlY29yZE5hbWU6IGN1c3RvbURvbWFpbi5kb21haW5OYW1lLFxuICAgICAgICB0YXJnZXQ6IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQodGhpcy5kaXN0cmlidXRpb24pKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBBcHBseSByZW1vdmFsIHBvbGljeSB0byBSb3V0ZTUzIHJlY29yZFxuICAgICAgYWxpYXNSZWNvcmQuYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBmcm9udGVuZCBVUkxcbiAgICovXG4gIHB1YmxpYyB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kb21haW5OYW1lXG4gICAgICA/IGBodHRwczovLyR7dGhpcy5kb21haW5OYW1lfWBcbiAgICAgIDogYGh0dHBzOi8vJHt0aGlzLmRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Eb21haW5OYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gZG9tYWluIG5hbWVcbiAgICogQHJldHVybnMgVGhlIENsb3VkRnJvbnQgZG9tYWluIG5hbWVcbiAgICovXG4gIHB1YmxpYyBkaXN0cmlidXRpb25Eb21haW5OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgUzMgYnVja2V0IG5hbWVcbiAgICogQHJldHVybnMgVGhlIFMzIGJ1Y2tldCBuYW1lXG4gICAqL1xuICBwdWJsaWMgYnVja2V0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5idWNrZXROYW1lO1xuICB9XG59XG4iXX0=
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXNlLWNhc2VzL3dlYmFwcC9mcm9udGVuZC1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFFdEMsMkNBQTZCO0FBQzdCLDZDQUE0RTtBQUU1RSwrREFTb0M7QUFDcEMsK0VBQW9FO0FBQ3BFLGlEQUE4RDtBQUM5RCx5REFBNkU7QUFDN0UseUVBQW1FO0FBQ25FLCtDQUFpRjtBQUNqRiw2REFBa0Q7QUFDbEQscUVBQXlFO0FBQ3pFLDJDQUF1QztBQUN2Qyw0Q0FBbUY7QUFFbkY7O0dBRUc7QUFDVSxRQUFBLDJCQUEyQixHQUFvQjtJQUMxRDtRQUNFLFVBQVUsRUFBRSxHQUFHO1FBQ2Ysa0JBQWtCLEVBQUUsR0FBRztRQUN2QixnQkFBZ0IsRUFBRSxhQUFhO0tBQ2hDO0lBQ0Q7UUFDRSxVQUFVLEVBQUUsR0FBRztRQUNmLGtCQUFrQixFQUFFLEdBQUc7UUFDdkIsZ0JBQWdCLEVBQUUsYUFBYTtLQUNoQztDQUNGLENBQUM7QUF1REY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFhLFFBQVMsU0FBUSxzQkFBUzs7SUFDckMsZ0RBQWdEO0lBQ2hDLE1BQU0sQ0FBUztJQUMvQixrQ0FBa0M7SUFDbEIsWUFBWSxDQUFlO0lBQzNDLDZEQUE2RDtJQUM3QyxnQkFBZ0IsQ0FBbUI7SUFDbkQsNkNBQTZDO0lBQzdCLFVBQVUsQ0FBVTtJQUNwQyxvREFBb0Q7SUFDcEMsS0FBSyxDQUFTO0lBRTlCOzs7OztPQUtHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUIsK0JBQWlCLENB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QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFL0MsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssa0JBQWtCLENBQUMsWUFBZ0MsRUFBRSxhQUE0QjtRQUN2RixJQUFJLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFPLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO2dCQUMzRCxJQUFJLEVBQUUsWUFBWSxDQUFDLFVBQVU7Z0JBQzdCLFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVTtnQkFDbkMsTUFBTSxFQUFFLDBCQUFZLENBQUMsU0FBUyxDQUFDLElBQUksc0NBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3hFLENBQUMsQ0FBQztZQUVILHlDQUF5QztZQUN6QyxXQUFXLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVTtZQUNwQixDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzlCLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDaEMsQ0FBQzs7QUFsUEgsNEJBbVBDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRG9ja2VySW1hZ2UsIFByb3BlcnR5SW5qZWN0b3JzLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSUNlcnRpZmljYXRlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQge1xuICBEaXN0cmlidXRpb24sXG4gIERpc3RyaWJ1dGlvblByb3BzLFxuICBFcnJvclJlc3BvbnNlLFxuICBGdW5jdGlvbiBhcyBDbG91ZEZyb250RnVuY3Rpb24sXG4gIEZ1bmN0aW9uQ29kZSxcbiAgRnVuY3Rpb25FdmVudFR5cGUsXG4gIFByaWNlQ2xhc3MsXG4gIFZpZXdlclByb3RvY29sUG9saWN5LFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBTM0J1Y2tldE9yaWdpbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnMnO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFSZWNvcmQsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBDbG91ZEZyb250VGFyZ2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBCbG9ja1B1YmxpY0FjY2VzcywgQnVja2V0LCBCdWNrZXRFbmNyeXB0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBCdWNrZXREZXBsb3ltZW50LCBTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENsb3VkZnJvbnREaXN0cmlidXRpb25PYnNlcnZhYmlsaXR5UHJvcGVydHlJbmplY3RvciB9IGZyb20gJy4uL3V0aWxpdGllcyc7XG5cbi8qKlxuICogRGVmYXVsdCBDbG91ZEZyb250IGVycm9yIHJlc3BvbnNlcyBmb3IgU2luZ2xlIFBhZ2UgQXBwbGljYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NQQV9FUlJPUl9SRVNQT05TRVM6IEVycm9yUmVzcG9uc2VbXSA9IFtcbiAge1xuICAgIGh0dHBTdGF0dXM6IDQwMyxcbiAgICByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCxcbiAgICByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICB9LFxuICB7XG4gICAgaHR0cFN0YXR1czogNDA0LFxuICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gIH0sXG5dO1xuXG4vKipcbiAqIEN1c3RvbSBkb21haW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIGZyb250ZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRG9tYWluQ29uZmlnIHtcbiAgLyoqIERvbWFpbiBuYW1lIGZvciB0aGUgZnJvbnRlbmQgKGUuZy4sICdhcHAuZXhhbXBsZS5jb20nKSAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIC8qKiBTU0wgY2VydGlmaWNhdGUgZm9yIHRoZSBkb21haW4gKHJlcXVpcmVkIHdoZW4gZG9tYWluTmFtZSBpcyBwcm92aWRlZCkgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZTtcbiAgLyoqIE9wdGlvbmFsIGhvc3RlZCB6b25lIGZvciBhdXRvbWF0aWMgRE5TIHJlY29yZCBjcmVhdGlvbiAqL1xuICByZWFkb25seSBob3N0ZWRab25lPzogSUhvc3RlZFpvbmU7XG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkaXRpb25hbERpc3RyaWJ1dGlvblByb3BzIHtcbiAgLyoqIE9wdGlvbmFsIGNvbW1lbnQgZm9yIHRoZSBkaXN0cmlidXRpb24gKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGVuYWJsZWQgZmxhZyBmb3IgdGhlIGRpc3RyaWJ1dGlvbiAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqIE9wdGlvbmFsIHByaWNlIGNsYXNzIGZvciB0aGUgZGlzdHJpYnV0aW9uICovXG4gIHJlYWRvbmx5IHByaWNlQ2xhc3M/OiBQcmljZUNsYXNzO1xuICAvKiogT3B0aW9uYWwgd2ViIEFDTCBJRCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiAqL1xuICByZWFkb25seSB3ZWJBY2xJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgRnJvbnRlbmQgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmRQcm9wcyB7XG4gIC8qKiBCYXNlIGRpcmVjdG9yeSBvZiB0aGUgZnJvbnRlbmQgc291cmNlIGNvZGUgKi9cbiAgcmVhZG9ubHkgc291cmNlRGlyZWN0b3J5OiBzdHJpbmc7XG4gIC8qKiBEaXJlY3Rvcnkgd2hlcmUgYnVpbGQgYXJ0aWZhY3RzIGFyZSBsb2NhdGVkIGFmdGVyIGJ1aWxkIGNvbW1hbmQgY29tcGxldGVzIChkZWZhdWx0cyB0byAne3NvdXJjZURpcmVjdG9yeX0vYnVpbGQnKSAqL1xuICByZWFkb25seSBidWlsZE91dHB1dERpcmVjdG9yeT86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGJ1aWxkIGNvbW1hbmQgKGRlZmF1bHRzIHRvICducG0gcnVuIGJ1aWxkJykgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb21tYW5kPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgY3VzdG9tIGRvbWFpbiBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IGN1c3RvbURvbWFpbj86IEN1c3RvbURvbWFpbkNvbmZpZztcbiAgLyoqIE9wdGlvbmFsIENsb3VkRnJvbnQgZXJyb3IgcmVzcG9uc2VzIChkZWZhdWx0cyB0byBTUEEtZnJpZW5kbHkgcmVzcG9uc2VzKSAqL1xuICByZWFkb25seSBlcnJvclJlc3BvbnNlcz86IEVycm9yUmVzcG9uc2VbXTtcbiAgLyoqIE9wdGlvbmFsIGFkZGl0aW9uYWwgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gcHJvcGVydGllcyAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb25Qcm9wcz86IEFkZGl0aW9uYWxEaXN0cmlidXRpb25Qcm9wcztcbiAgLyoqIE9wdGlvbmFsIGZsYWcgdG8gc2tpcCB0aGUgYnVpbGQgcHJvY2VzcyAodXNlZnVsIGZvciBwcmUtYnVpbHQgYXJ0aWZhY3RzKSAqL1xuICByZWFkb25seSBza2lwQnVpbGQ/OiBib29sZWFuO1xuICAvKiogT3B0aW9uYWwgcmVtb3ZhbCBwb2xpY3kgZm9yIGFsbCByZXNvdXJjZXMgKGRlZmF1bHRzIHRvIERFU1RST1kpICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuICAvKipcbiAgICogRW5hYmxlIGxvZ2dpbmcgYW5kIHRyYWNpbmcgZm9yIGFsbCBzdXBwb3J0aW5nIHJlc291cmNlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVPYnNlcnZhYmlsaXR5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBGcm9udGVuZCBjb25zdHJ1Y3QgdGhhdCBkZXBsb3lzIGEgZnJvbnRlbmQgYXBwbGljYXRpb24gdG8gUzMgYW5kIENsb3VkRnJvbnRcbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBwcm92aWRlcyBhIGNvbXBsZXRlIHNvbHV0aW9uIGZvciBob3N0aW5nIHN0YXRpYyBmcm9udGVuZCBhcHBsaWNhdGlvbnNcbiAqIHdpdGggdGhlIGZvbGxvd2luZyBmZWF0dXJlczpcbiAqIC0gUzMgYnVja2V0IGZvciBob3N0aW5nIHN0YXRpYyBhc3NldHMgd2l0aCBzZWN1cml0eSBiZXN0IHByYWN0aWNlc1xuICogLSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBmb3IgZ2xvYmFsIGNvbnRlbnQgZGVsaXZlcnlcbiAqIC0gT3B0aW9uYWwgY3VzdG9tIGRvbWFpbiB3aXRoIFNTTCBjZXJ0aWZpY2F0ZVxuICogLSBBdXRvbWF0aWMgYnVpbGQgcHJvY2VzcyBleGVjdXRpb25cbiAqIC0gU1BBLWZyaWVuZGx5IGVycm9yIGhhbmRsaW5nIGJ5IGRlZmF1bHRcbiAqIC0gU2VjdXJpdHkgY29uZmlndXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIEZyb250ZW5kIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqIFRoZSBTMyBidWNrZXQgaG9zdGluZyB0aGUgZnJvbnRlbmQgYXNzZXRzICovXG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ6IEJ1Y2tldDtcbiAgLyoqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBEaXN0cmlidXRpb247XG4gIC8qKiBUaGUgYnVja2V0IGRlcGxveW1lbnQgdGhhdCB1cGxvYWRzIHRoZSBmcm9udGVuZCBhc3NldHMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldERlcGxveW1lbnQ6IEJ1Y2tldERlcGxveW1lbnQ7XG4gIC8qKiBUaGUgY3VzdG9tIGRvbWFpbiBuYW1lIChpZiBjb25maWd1cmVkKSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZG9tYWluTmFtZT86IHN0cmluZztcbiAgLyoqIFRoZSBBc3NldCBjb250YWluaW5nIHRoZSBmcm9udGVuZCBzb3VyY2UgY29kZSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXQ/OiBBc3NldDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBGcm9udGVuZFxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIGZyb250ZW5kIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGcm9udGVuZFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcy5lbmFibGVPYnNlcnZhYmlsaXR5KSB7XG4gICAgICBQcm9wZXJ0eUluamVjdG9ycy5vZih0aGlzKS5hZGQoXG4gICAgICAgIG5ldyBDbG91ZGZyb250RGlzdHJpYnV0aW9uT2JzZXJ2YWJpbGl0eVByb3BlcnR5SW5qZWN0b3IoKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgcmVxdWlyZWQgcGFyYW1ldGVyc1xuICAgIHRoaXMuX3ZhbGlkYXRlUHJvcHMocHJvcHMpO1xuXG4gICAgLy8gR2V0IHJlbW92YWwgcG9saWN5IHdpdGggZGVmYXVsdFxuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuREVTVFJPWTtcblxuICAgIC8vIENyZWF0ZSBhc3NldCBmb3Igc291cmNlIGNvZGUgd2l0aCBvcHRpb25hbCBidW5kbGluZ1xuICAgIGlmICghcHJvcHMuc2tpcEJ1aWxkKSB7XG4gICAgICB0aGlzLmFzc2V0ID0gdGhpcy5fY3JlYXRlQXNzZXQocHJvcHMpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBTMyBidWNrZXQgZm9yIGhvc3RpbmdcbiAgICB0aGlzLmJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgJ0Zyb250ZW5kQnVja2V0Jywge1xuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHJlbW92YWxQb2xpY3ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogcmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSB0aGlzLl9jcmVhdGVEaXN0cmlidXRpb24ocHJvcHMsIHJlbW92YWxQb2xpY3kpO1xuXG4gICAgLy8gRGVwbG95IGZyb250ZW5kIGFzc2V0cyB0byBTM1xuICAgIGNvbnN0IGJ1aWxkT3V0cHV0RGlyZWN0b3J5ID0gcHJvcHMuYnVpbGRPdXRwdXREaXJlY3RvcnkgfHwgcGF0aC5qb2luKHByb3BzLnNvdXJjZURpcmVjdG9yeSwgJ2J1aWxkJyk7XG4gICAgdGhpcy5idWNrZXREZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0Zyb250ZW5kRGVwbG95bWVudCcsIHtcbiAgICAgIHNvdXJjZXM6IHRoaXMuYXNzZXRcbiAgICAgICAgPyBbU291cmNlLmJ1Y2tldCh0aGlzLmFzc2V0LmJ1Y2tldCwgdGhpcy5hc3NldC5zM09iamVjdEtleSldXG4gICAgICAgIDogW1NvdXJjZS5hc3NldChidWlsZE91dHB1dERpcmVjdG9yeSldLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgZGlzdHJpYnV0aW9uOiB0aGlzLmRpc3RyaWJ1dGlvbixcbiAgICAgIGRpc3RyaWJ1dGlvblBhdGhzOiBbJy8qJ10sXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1Y2tldERlcGxveW1lbnQuaGFuZGxlclJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2Nsb3VkZnJvbnQ6R2V0SW52YWxpZGF0aW9uJyxcbiAgICAgICAgJ2Nsb3VkZnJvbnQ6Q3JlYXRlSW52YWxpZGF0aW9uJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIC8vIE5vdGU6IEJ1Y2tldERlcGxveW1lbnQgZG9lc24ndCBzdXBwb3J0IGFwcGx5UmVtb3ZhbFBvbGljeSBkaXJlY3RseVxuICAgIC8vIEl0IHdpbGwgYmUgY2xlYW5lZCB1cCB3aGVuIHRoZSBidWNrZXQgaXMgZGVsZXRlZCBkdWUgdG8gYXV0b0RlbGV0ZU9iamVjdHNcblxuICAgIC8vIFNldHVwIGN1c3RvbSBkb21haW4gaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuY3VzdG9tRG9tYWluKSB7XG4gICAgICB0aGlzLmRvbWFpbk5hbWUgPSBwcm9wcy5jdXN0b21Eb21haW4uZG9tYWluTmFtZTtcbiAgICAgIHRoaXMuX3NldHVwQ3VzdG9tRG9tYWluKHByb3BzLmN1c3RvbURvbWFpbiwgcmVtb3ZhbFBvbGljeSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgY29uc3RydWN0IHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHByb3BzIFRoZSBmcm9udGVuZCBwcm9wZXJ0aWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVByb3BzKHByb3BzOiBGcm9udGVuZFByb3BzKTogdm9pZCB7XG4gICAgaWYgKCFwcm9wcy5zb3VyY2VEaXJlY3RvcnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc291cmNlRGlyZWN0b3J5IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmN1c3RvbURvbWFpbj8uZG9tYWluTmFtZSAmJiAhcHJvcHMuY3VzdG9tRG9tYWluLmNlcnRpZmljYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NlcnRpZmljYXRlIGlzIHJlcXVpcmVkIHdoZW4gZG9tYWluTmFtZSBpcyBwcm92aWRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFzc2V0IGZvciB0aGUgZnJvbnRlbmQgc291cmNlIGNvZGUgd2l0aCBidW5kbGluZ1xuICAgKiBAcGFyYW0gcHJvcHMgVGhlIGZyb250ZW5kIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgVGhlIEFzc2V0IGNvbnRhaW5pbmcgdGhlIGJ1aWx0IGZyb250ZW5kXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVBc3NldChwcm9wczogRnJvbnRlbmRQcm9wcyk6IEFzc2V0IHtcbiAgICBjb25zdCBidWlsZENvbW1hbmQgPSBwcm9wcy5idWlsZENvbW1hbmQgfHwgJ25wbSBydW4gYnVpbGQnO1xuICAgIGNvbnN0IGJ1aWxkT3V0cHV0RGlyZWN0b3J5ID0gcHJvcHMuYnVpbGRPdXRwdXREaXJlY3RvcnkgfHwgcGF0aC5qb2luKHByb3BzLnNvdXJjZURpcmVjdG9yeSwgJ2J1aWxkJyk7XG5cbiAgICAvLyBFeHRyYWN0IHRoZSBidWlsZCBkaXJlY3RvcnkgbmFtZSBmcm9tIHRoZSBmdWxsIHBhdGhcbiAgICBjb25zdCBidWlsZERpck5hbWUgPSBwYXRoLmJhc2VuYW1lKGJ1aWxkT3V0cHV0RGlyZWN0b3J5KTtcblxuICAgIGNvbnN0IGFzc2V0ID0gbmV3IEFzc2V0KHRoaXMsICdGcm9udGVuZEFzc2V0Jywge1xuICAgICAgcGF0aDogcHJvcHMuc291cmNlRGlyZWN0b3J5LFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgaW1hZ2U6IERvY2tlckltYWdlLmZyb21SZWdpc3RyeSgncHVibGljLmVjci5hd3MvZG9ja2VyL2xpYnJhcnkvbm9kZTpsdHMtYWxwaW5lJyksXG4gICAgICAgIGNvbW1hbmQ6IFtcbiAgICAgICAgICAnc2gnLCAnLWMnLCBbXG4gICAgICAgICAgICAnY2QgL2Fzc2V0LWlucHV0JyxcbiAgICAgICAgICAgICducG0gY2kgLS1vbmx5PXByb2R1Y3Rpb24nLFxuICAgICAgICAgICAgYnVpbGRDb21tYW5kLFxuICAgICAgICAgICAgYGNwIC1yIC4vJHtidWlsZERpck5hbWV9LyogL2Fzc2V0LW91dHB1dC9gLFxuICAgICAgICAgIF0uam9pbignICYmICcpLFxuICAgICAgICBdLFxuICAgICAgICB1c2VyOiAncm9vdCcsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gTm90ZTogQXNzZXQgZG9lc24ndCBzdXBwb3J0IGFwcGx5UmVtb3ZhbFBvbGljeSBkaXJlY3RseVxuICAgIC8vIFRoZSB1bmRlcmx5aW5nIFMzIG9iamVjdHMgd2lsbCBiZSBtYW5hZ2VkIGJ5IHRoZSBhc3NldCBidWNrZXQncyByZW1vdmFsIHBvbGljeVxuXG4gICAgcmV0dXJuIGFzc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgZnJvbnRlbmQgcHJvcGVydGllc1xuICAgKiBAcGFyYW0gcmVtb3ZhbFBvbGljeSBUaGUgcmVtb3ZhbCBwb2xpY3kgdG8gYXBwbHlcbiAgICogQHJldHVybnMgVGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVEaXN0cmlidXRpb24ocHJvcHM6IEZyb250ZW5kUHJvcHMsIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kpOiBEaXN0cmlidXRpb24ge1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2VzID0gcHJvcHMuZXJyb3JSZXNwb25zZXMgfHwgREVGQVVMVF9TUEFfRVJST1JfUkVTUE9OU0VTO1xuXG4gICAgLy8gQ3JlYXRlIGEgQ2xvdWRGcm9udCBmdW5jdGlvbiBmb3Igc2VjdXJpdHkgaGVhZGVyc1xuICAgIGNvbnN0IHNlY3VyaXR5SGVhZGVyc0Z1bmN0aW9uID0gbmV3IENsb3VkRnJvbnRGdW5jdGlvbih0aGlzLCAnU2VjdXJpdHlIZWFkZXJzRnVuY3Rpb24nLCB7XG4gICAgICBjb2RlOiBGdW5jdGlvbkNvZGUuZnJvbUlubGluZShgXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBldmVudC5yZXNwb25zZTtcbiAgICAgICAgICB2YXIgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQWRkIHNlY3VyaXR5IGhlYWRlcnNcbiAgICAgICAgICBoZWFkZXJzWydzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5J10gPSB7IHZhbHVlOiAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnIH07XG4gICAgICAgICAgaGVhZGVyc1snY29udGVudC10eXBlLW9wdGlvbnMnXSA9IHsgdmFsdWU6ICdub3NuaWZmJyB9O1xuICAgICAgICAgIGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0geyB2YWx1ZTogJ0RFTlknIH07XG4gICAgICAgICAgaGVhZGVyc1sneC1jb250ZW50LXR5cGUtb3B0aW9ucyddID0geyB2YWx1ZTogJ25vc25pZmYnIH07XG4gICAgICAgICAgaGVhZGVyc1sncmVmZXJyZXItcG9saWN5J10gPSB7IHZhbHVlOiAnc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbicgfTtcbiAgICAgICAgICBoZWFkZXJzWydwZXJtaXNzaW9ucy1wb2xpY3knXSA9IHsgdmFsdWU6ICdjYW1lcmE9KCksIG1pY3JvcGhvbmU9KCksIGdlb2xvY2F0aW9uPSgpJyB9O1xuICAgICAgICAgIFxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgYCksXG4gICAgfSk7XG5cbiAgICAvLyBBcHBseSByZW1vdmFsIHBvbGljeSB0byBDbG91ZEZyb250IGZ1bmN0aW9uXG4gICAgc2VjdXJpdHlIZWFkZXJzRnVuY3Rpb24uYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uQ29uZmlnOiBEaXN0cmlidXRpb25Qcm9wcyA9IHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IFMzQnVja2V0T3JpZ2luLndpdGhPcmlnaW5BY2Nlc3NDb250cm9sKHRoaXMuYnVja2V0KSxcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uOiBzZWN1cml0eUhlYWRlcnNGdW5jdGlvbixcbiAgICAgICAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFU1BPTlNFLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgIGVycm9yUmVzcG9uc2VzLFxuICAgICAgY29tbWVudDogcHJvcHMuZGlzdHJpYnV0aW9uUHJvcHM/LmNvbW1lbnQsXG4gICAgICBlbmFibGVkOiBwcm9wcy5kaXN0cmlidXRpb25Qcm9wcz8uZW5hYmxlZCxcbiAgICAgIHByaWNlQ2xhc3M6IHByb3BzLmRpc3RyaWJ1dGlvblByb3BzPy5wcmljZUNsYXNzLFxuICAgICAgd2ViQWNsSWQ6IHByb3BzLmRpc3RyaWJ1dGlvblByb3BzPy53ZWJBY2xJZCxcbiAgICB9O1xuXG4gICAgLy8gQWRkIGN1c3RvbSBkb21haW4gY29uZmlndXJhdGlvbiBpZiBwcm92aWRlZFxuICAgIGxldCBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgICBpZiAocHJvcHMuY3VzdG9tRG9tYWluKSB7XG4gICAgICBkaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsICdGcm9udGVuZERpc3RyaWJ1dGlvbicsIHtcbiAgICAgICAgLi4uZGlzdHJpYnV0aW9uQ29uZmlnLFxuICAgICAgICBkb21haW5OYW1lczogW3Byb3BzLmN1c3RvbURvbWFpbi5kb21haW5OYW1lXSxcbiAgICAgICAgY2VydGlmaWNhdGU6IHByb3BzLmN1c3RvbURvbWFpbi5jZXJ0aWZpY2F0ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsICdGcm9udGVuZERpc3RyaWJ1dGlvbicsIGRpc3RyaWJ1dGlvbkNvbmZpZyk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgcmVtb3ZhbCBwb2xpY3kgdG8gZGlzdHJpYnV0aW9uXG4gICAgZGlzdHJpYnV0aW9uLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcblxuICAgIHJldHVybiBkaXN0cmlidXRpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBjdXN0b20gZG9tYWluIHdpdGggUm91dGU1MyByZWNvcmRcbiAgICogQHBhcmFtIGN1c3RvbURvbWFpbiBUaGUgY3VzdG9tIGRvbWFpbiBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSByZW1vdmFsUG9saWN5IFRoZSByZW1vdmFsIHBvbGljeSB0byBhcHBseVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0dXBDdXN0b21Eb21haW4oY3VzdG9tRG9tYWluOiBDdXN0b21Eb21haW5Db25maWcsIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICBpZiAoY3VzdG9tRG9tYWluLmhvc3RlZFpvbmUpIHtcbiAgICAgIGNvbnN0IGFsaWFzUmVjb3JkID0gbmV3IEFSZWNvcmQodGhpcywgJ0Zyb250ZW5kQWxpYXNSZWNvcmQnLCB7XG4gICAgICAgIHpvbmU6IGN1c3RvbURvbWFpbi5ob3N0ZWRab25lLFxuICAgICAgICByZWNvcmROYW1lOiBjdXN0b21Eb21haW4uZG9tYWluTmFtZSxcbiAgICAgICAgdGFyZ2V0OiBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSksXG4gICAgICB9KTtcblxuICAgICAgLy8gQXBwbHkgcmVtb3ZhbCBwb2xpY3kgdG8gUm91dGU1MyByZWNvcmRcbiAgICAgIGFsaWFzUmVjb3JkLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgVVJMIG9mIHRoZSBmcm9udGVuZCBhcHBsaWNhdGlvblxuICAgKiBAcmV0dXJucyBUaGUgZnJvbnRlbmQgVVJMXG4gICAqL1xuICBwdWJsaWMgdXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZG9tYWluTmFtZVxuICAgICAgPyBgaHR0cHM6Ly8ke3RoaXMuZG9tYWluTmFtZX1gXG4gICAgICA6IGBodHRwczovLyR7dGhpcy5kaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uRG9tYWluTmFtZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIGRvbWFpbiBuYW1lXG4gICAqIEByZXR1cm5zIFRoZSBDbG91ZEZyb250IGRvbWFpbiBuYW1lXG4gICAqL1xuICBwdWJsaWMgZGlzdHJpYnV0aW9uRG9tYWluTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Eb21haW5OYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIFMzIGJ1Y2tldCBuYW1lXG4gICAqIEByZXR1cm5zIFRoZSBTMyBidWNrZXQgbmFtZVxuICAgKi9cbiAgcHVibGljIGJ1Y2tldE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuYnVja2V0TmFtZTtcbiAgfVxufVxuIl19
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
4
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
const fs = require("fs");
|
|
6
|
-
const path = require("path");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
7
40
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
41
|
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
9
42
|
const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
|
|
@@ -264,4 +297,4 @@ test('No unsuppressed errors', () => {
|
|
|
264
297
|
}
|
|
265
298
|
expect(errors).toHaveLength(0);
|
|
266
299
|
});
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtY29uc3RydWN0LW5hZy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdXNlLWNhc2VzL3dlYmFwcC90ZXN0cy9mcm9udGVuZC1jb25zdHJ1Y3QtbmFnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7O0FBRXRDLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkNBQTZDO0FBQzdDLHVEQUFzRTtBQUN0RSwrRUFBaUU7QUFDakUseURBQXFEO0FBQ3JELHFDQUE4RDtBQUM5RCwyREFBMkQ7QUFDM0QsOERBQWlEO0FBRWpELDZDQUE2QztBQUM3QyxNQUFNLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztBQUNwRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0lBQ2pDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUNELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEZBQTRGLENBQUMsQ0FBQztBQUV0Six1QkFBdUI7QUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBQSwwQkFBYSxHQUFFLENBQUM7QUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUU7SUFDeEMsR0FBRyxFQUFFO1FBQ0gsT0FBTyxFQUFFLGNBQWM7UUFDdkIsTUFBTSxFQUFFLFdBQVc7S0FDcEI7Q0FDRixDQUFDLENBQUM7QUFFSCxtREFBbUQ7QUFDbkQsTUFBTSxXQUFXLEdBQUcsb0NBQVcsQ0FBQyxrQkFBa0IsQ0FDaEQsS0FBSyxFQUNMLGFBQWEsRUFDYixxRkFBcUYsQ0FDdEYsQ0FBQztBQUVGLHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsR0FB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O0FBQ2pDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU3RhY2ssIEFzcGVjdHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBUZW1wbGF0ZSwgQW5ub3RhdGlvbnMsIE1hdGNoIH0gZnJvbSAnYXdzLWNkay1saWIvYXNzZXJ0aW9ucyc7XG5pbXBvcnQgeyBDZXJ0aWZpY2F0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0IHsgSG9zdGVkWm9uZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCB7IEF3c1NvbHV0aW9uc0NoZWNrcywgTmFnU3VwcHJlc3Npb25zIH0gZnJvbSAnY2RrLW5hZyc7XG5pbXBvcnQgeyBjcmVhdGVUZXN0QXBwIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IHsgRnJvbnRlbmQgfSBmcm9tICcuLi9mcm9udGVuZC1jb25zdHJ1Y3QnO1xuXG4vLyBDcmVhdGUgdGVtcG9yYXJ5IGJ1aWxkIGRpcmVjdG9yeSBmb3IgdGVzdHNcbmNvbnN0IHRlc3RCdWlsZERpciA9ICcvdG1wL3Rlc3QtZnJvbnRlbmQtYnVpbGQtbmFnJztcbmlmICghZnMuZXhpc3RzU3luYyh0ZXN0QnVpbGREaXIpKSB7XG4gIGZzLm1rZGlyU3luYyh0ZXN0QnVpbGREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufVxuZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGVzdEJ1aWxkRGlyLCAnaW5kZXguaHRtbCcpLCAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PHRpdGxlPlRlc3Q8L3RpdGxlPjwvaGVhZD48Ym9keT48aDE+VGVzdCBBcHA8L2gxPjwvYm9keT48L2h0bWw+Jyk7XG5cbi8vIENyZWF0ZSBhcHAgYW5kIHN0YWNrXG5jb25zdCBhcHAgPSBjcmVhdGVUZXN0QXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdUZXN0U3RhY2snLCB7XG4gIGVudjoge1xuICAgIGFjY291bnQ6ICcxMjM0NTY3ODkwMTInLFxuICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gIH0sXG59KTtcblxuLy8gQ3JlYXRlIFNTTCBjZXJ0aWZpY2F0ZSBmb3IgY3VzdG9tIGRvbWFpbiB0ZXN0aW5nXG5jb25zdCBjZXJ0aWZpY2F0ZSA9IENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybihcbiAgc3RhY2ssXG4gICdDZXJ0aWZpY2F0ZScsXG4gICdhcm46YXdzOmFjbTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmNlcnRpZmljYXRlLzEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMicsXG4pO1xuXG4vLyBDcmVhdGUgaG9zdGVkIHpvbmUgZm9yIEROUyB0ZXN0aW5nXG5jb25zdCBob3N0ZWRab25lID0gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoc3RhY2ssICdIb3N0ZWRab25lJywge1xuICBob3N0ZWRab25lSWQ6ICdaMTIzNDU2Nzg5JyxcbiAgem9uZU5hbWU6ICdleGFtcGxlLmNvbScsXG59KTtcblxuLy8gQ3JlYXRlIHRoZSBtYWluIEZyb250ZW5kIGNvbnN0cnVjdFxuY29uc3QgZnJvbnRlbmQgPSBuZXcgRnJvbnRlbmQoc3RhY2ssICdUZXN0RnJvbnRlbmQnLCB7XG4gIHNvdXJjZURpcmVjdG9yeTogJy90bXAvdGVzdC1mcm9udGVuZC1zcmMnLFxuICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICBjdXN0b21Eb21haW46IHtcbiAgICBkb21haW5OYW1lOiAnYXBwLmV4YW1wbGUuY29tJyxcbiAgICBjZXJ0aWZpY2F0ZSxcbiAgICBob3N0ZWRab25lLFxuICB9LFxuICBza2lwQnVpbGQ6IHRydWUsIC8vIFNraXAgYnVpbGQgZm9yIHRlc3Rpbmdcbn0pO1xuXG4vLyBBZGQgQ0RLIE5hZyBzdXBwcmVzc2lvbnMgZm9yIGtub3duIGFjY2VwdGFibGUgdmlvbGF0aW9uc1xuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zKHN0YWNrLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1DRlIxJyxcbiAgICByZWFzb246ICdDbG91ZEZyb250IGdlbyByZXN0cmljdGlvbnMgYXJlIGNvbmZpZ3VyZWQgYmFzZWQgb24gYXBwbGljYXRpb24gcmVxdWlyZW1lbnRzJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUNGUjInLFxuICAgIHJlYXNvbjogJ0Nsb3VkRnJvbnQgV0FGIGludGVncmF0aW9uIGlzIGNvbmZpZ3VyZWQgYmFzZWQgb24gc2VjdXJpdHkgcmVxdWlyZW1lbnRzJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUNGUjMnLFxuICAgIHJlYXNvbjogJ0Nsb3VkRnJvbnQgYWNjZXNzIGxvZ2dpbmcgaXMgY29uZmlndXJlZCBiYXNlZCBvbiBjb21wbGlhbmNlIHJlcXVpcmVtZW50cycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1DRlI0JyxcbiAgICByZWFzb246ICdDbG91ZEZyb250IHZpZXdlciBwcm90b2NvbCBwb2xpY3kgaXMgc2V0IHRvIHJlZGlyZWN0LXRvLWh0dHBzIGZvciBzZWN1cml0eScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMScsXG4gICAgcmVhc29uOiAnUzMgYnVja2V0IGFjY2VzcyBsb2dnaW5nIGlzIGNvbmZpZ3VyZWQgYmFzZWQgb24gY29tcGxpYW5jZSByZXF1aXJlbWVudHMnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzInLFxuICAgIHJlYXNvbjogJ1MzIGJ1Y2tldCBwdWJsaWMgYWNjZXNzIGlzIGJsb2NrZWQgYW5kIGFjY2VzcyBpcyBjb250cm9sbGVkIHZpYSBDbG91ZEZyb250IE9BQycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMycsXG4gICAgcmVhc29uOiAnUzMgYnVja2V0IFNTTCByZXF1ZXN0cyBvbmx5IHBvbGljeSBpcyBlbmZvcmNlZCB2aWEgQ2xvdWRGcm9udCBIVFRQUyByZWRpcmVjdCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMTAnLFxuICAgIHJlYXNvbjogJ1MzIGJ1Y2tldCBNRkEgZGVsZXRlIGlzIG1hbmFnZWQgdGhyb3VnaCBvcmdhbml6YXRpb25hbCBzZWN1cml0eSBwb2xpY2llcycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU00JyxcbiAgICByZWFzb246ICdBV1MgbWFuYWdlZCBwb2xpY2llcyBhcmUgYWNjZXB0YWJsZSBmb3Igc3RhbmRhcmQgTGFtYmRhIGV4ZWN1dGlvbiByb2xlcycsXG4gICAgYXBwbGllc1RvOiBbJ1BvbGljeTo6YXJuOjxBV1M6OlBhcnRpdGlvbj46aWFtOjphd3M6cG9saWN5L3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgIHJlYXNvbjogJ0J1Y2tldERlcGxveW1lbnQgcmVxdWlyZXMgYnJvYWQgUzMgcGVybWlzc2lvbnMgdG8gbWFuYWdlIGRlcGxveW1lbnQgYXNzZXRzJyxcbiAgICBhcHBsaWVzVG86IFtcbiAgICAgICdBY3Rpb246OnMzOkdldE9iamVjdConLFxuICAgICAgJ0FjdGlvbjo6czM6R2V0QnVja2V0KicsXG4gICAgICAnQWN0aW9uOjpzMzpMaXN0KicsXG4gICAgICAnQWN0aW9uOjpzMzpEZWxldGVPYmplY3QqJyxcbiAgICAgICdBY3Rpb246OnMzOkFib3J0KicsXG4gICAgICAnUmVzb3VyY2U6OmFybjo8QVdTOjpQYXJ0aXRpb24+OnMzOjo6Y2RrLWhuYjY1OWZkcy1hc3NldHMtPEFXUzo6QWNjb3VudElkPi08QVdTOjpSZWdpb24+LyonLFxuICAgICAgJ1Jlc291cmNlOjphcm46PEFXUzo6UGFydGl0aW9uPjpzMzo6OmNkay1obmI2NTlmZHMtYXNzZXRzLTEyMzQ1Njc4OTAxMi11cy1lYXN0LTEvKicsXG4gICAgICAnUmVzb3VyY2U6OjxUZXN0RnJvbnRlbmRGcm9udGVuZEJ1Y2tldEQzN0QyMkRFLkFybj4vKicsXG4gICAgICAnUmVzb3VyY2U6OionLFxuICAgIF0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgcmVhc29uOiAnTGFtYmRhIHJ1bnRpbWUgdmVyc2lvbnMgYXJlIG1hbmFnZWQgYXQgdGhlIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQgbGV2ZWwnLFxuICB9LFxuXSwgdHJ1ZSk7XG5cbi8vIEFwcGx5IENESyBOYWcgY2hlY2tzXG5Bc3BlY3RzLm9mKGFwcCkuYWRkKG5ldyBBd3NTb2x1dGlvbnNDaGVja3MoeyB2ZXJib3NlOiB0cnVlIH0pKTtcblxuLy8gU3ludGhlc2l6ZSB0aGUgc3RhY2tcblRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbi8vIENoZWNrIGZvciB1bnN1cHByZXNzZWQgd2FybmluZ3MgYW5kIGVycm9yc1xuY29uc3Qgd2FybmluZ3MgPSBBbm5vdGF0aW9ucy5mcm9tU3RhY2soc3RhY2spLmZpbmRXYXJuaW5nKCcqJywgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnQXdzU29sdXRpb25zLS4qJykpO1xuY29uc3QgZXJyb3JzID0gQW5ub3RhdGlvbnMuZnJvbVN0YWNrKHN0YWNrKS5maW5kRXJyb3IoJyonLCBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdBd3NTb2x1dGlvbnMtLionKSk7XG5cbi8vIFRlc3Q6IEZyb250ZW5kIGNvbnN0cnVjdCBpcyBwcm9wZXJseSBjcmVhdGVkIGFuZCBhY2Nlc3NpYmxlXG50ZXN0KCdGcm9udGVuZCBjb25zdHJ1Y3QgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gIGV4cGVjdChmcm9udGVuZCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGZyb250ZW5kLm5vZGUuaWQpLnRvQmUoJ1Rlc3RGcm9udGVuZCcpO1xuICBleHBlY3QoZnJvbnRlbmQuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuZGlzdHJpYnV0aW9uKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuYnVja2V0RGVwbG95bWVudCkudG9CZURlZmluZWQoKTtcbn0pO1xuXG4vLyBUZXN0OiBGcm9udGVuZCBjb25zdHJ1Y3QgaGFzIGV4cGVjdGVkIHByb3BlcnRpZXNcbnRlc3QoJ0Zyb250ZW5kIGNvbnN0cnVjdCBoYXMgZXhwZWN0ZWQgcHJvcGVydGllcycsICgpID0+IHtcbiAgZXhwZWN0KGZyb250ZW5kLmJ1Y2tldC5idWNrZXROYW1lKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbklkKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuZG9tYWluTmFtZSkudG9CZSgnYXBwLmV4YW1wbGUuY29tJyk7XG4gIGV4cGVjdChmcm9udGVuZC51cmwoKSkudG9CZSgnaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20nKTtcbiAgZXhwZWN0KHR5cGVvZiBmcm9udGVuZC5idWNrZXROYW1lKCkpLnRvQmUoJ3N0cmluZycpO1xuICBleHBlY3QodHlwZW9mIGZyb250ZW5kLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWUoKSkudG9CZSgnc3RyaW5nJyk7XG59KTtcblxuLy8gVGVzdDogVGVtcGxhdGUgY29udGFpbnMgZXhwZWN0ZWQgZnJvbnRlbmQgcmVzb3VyY2VzXG50ZXN0KCdUZW1wbGF0ZSBjb250YWlucyBleHBlY3RlZCBmcm9udGVuZCByZXNvdXJjZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgUzMgYnVja2V0IGV4aXN0cyB3aXRoIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb25cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlMzOjpCdWNrZXQnLCB7XG4gICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiAnQUVTMjU2JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBleGlzdHMgd2l0aCBzZWN1cml0eSBjb25maWd1cmF0aW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBBbGlhc2VzOiBbJ2FwcC5leGFtcGxlLmNvbSddLFxuICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiAncmVkaXJlY3QtdG8taHR0cHMnLFxuICAgICAgfSxcbiAgICAgIEN1c3RvbUVycm9yUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBFcnJvckNvZGU6IDQwMyxcbiAgICAgICAgICBSZXNwb25zZUNvZGU6IDIwMCxcbiAgICAgICAgICBSZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgRXJyb3JDb2RlOiA0MDQsXG4gICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgUmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBWaWV3ZXJDZXJ0aWZpY2F0ZToge1xuICAgICAgICBBY21DZXJ0aWZpY2F0ZUFybjogJ2Fybjphd3M6YWNtOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2VydGlmaWNhdGUvMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJyxcbiAgICAgICAgU3NsU3VwcG9ydE1ldGhvZDogJ3NuaS1vbmx5JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IENsb3VkRnJvbnQgc2VjdXJpdHkgaGVhZGVycyBmdW5jdGlvbiBleGlzdHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJywge1xuICAgIEZ1bmN0aW9uQ29uZmlnOiB7XG4gICAgICBSdW50aW1lOiAnY2xvdWRmcm9udC1qcy0xLjAnLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBSb3V0ZTUzIEEgcmVjb3JkIGV4aXN0cyBmb3IgY3VzdG9tIGRvbWFpblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0Jywge1xuICAgIFR5cGU6ICdBJyxcbiAgICBOYW1lOiAnYXBwLmV4YW1wbGUuY29tLicsXG4gICAgSG9zdGVkWm9uZUlkOiAnWjEyMzQ1Njc4OScsXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBidWNrZXQgZGVwbG95bWVudCBleGlzdHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2UoJ0N1c3RvbTo6Q0RLQnVja2V0RGVwbG95bWVudCcsIHt9KTtcblxuICAvLyBWZXJpZnkgYXV0byBkZWxldGUgb2JqZWN0cyBjdXN0b20gcmVzb3VyY2UgZXhpc3RzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlKCdDdXN0b206OlMzQXV0b0RlbGV0ZU9iamVjdHMnLCB7fSk7XG59KTtcblxuLy8gVGVzdDogRnJvbnRlbmQgY29uc3RydWN0IGVuZm9yY2VzIHNlY3VyaXR5IGJlc3QgcHJhY3RpY2VzXG50ZXN0KCdGcm9udGVuZCBjb25zdHJ1Y3QgZW5mb3JjZXMgc2VjdXJpdHkgYmVzdCBwcmFjdGljZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgSFRUUFMgcmVkaXJlY3QgaXMgZW5mb3JjZWRcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiAncmVkaXJlY3QtdG8taHR0cHMnLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBWZXJpZnkgUzMgYnVja2V0IGJsb2NrcyBwdWJsaWMgYWNjZXNzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpTMzo6QnVja2V0Jywge1xuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBTMyBidWNrZXQgaGFzIGVuY3J5cHRpb25cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlMzOjpCdWNrZXQnLCB7XG4gICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiAnQUVTMjU2JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KTtcbn0pO1xuXG4vLyBUZXN0OiBGcm9udGVuZCBjb25zdHJ1Y3Qgc3VwcG9ydHMgU1BBIGFwcGxpY2F0aW9uc1xudGVzdCgnRnJvbnRlbmQgY29uc3RydWN0IHN1cHBvcnRzIFNQQSBhcHBsaWNhdGlvbnMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgU1BBLWZyaWVuZGx5IGVycm9yIHJlc3BvbnNlc1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgQ3VzdG9tRXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIEVycm9yQ29kZTogNDAzLFxuICAgICAgICAgIFJlc3BvbnNlQ29kZTogMjAwLFxuICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBFcnJvckNvZGU6IDQwNCxcbiAgICAgICAgICBSZXNwb25zZUNvZGU6IDIwMCxcbiAgICAgICAgICBSZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBWZXJpZnkgZGVmYXVsdCByb290IG9iamVjdCBpcyBzZXRcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRSb290T2JqZWN0OiAnaW5kZXguaHRtbCcsXG4gICAgfSxcbiAgfSk7XG59KTtcblxuLy8gVGVzdDogTm8gdW5zdXBwcmVzc2VkIHdhcm5pbmdzXG50ZXN0KCdObyB1bnN1cHByZXNzZWQgd2FybmluZ3MnLCAoKSA9PiB7XG4gIGlmICh3YXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coJ0NESyBOYWcgV2FybmluZ3M6JywgSlNPTi5zdHJpbmdpZnkod2FybmluZ3MsIG51bGwsIDIpKTtcbiAgfVxuICBleHBlY3Qod2FybmluZ3MpLnRvSGF2ZUxlbmd0aCgwKTtcbn0pO1xuXG4vLyBUZXN0OiBObyB1bnN1cHByZXNzZWQgZXJyb3JzXG50ZXN0KCdObyB1bnN1cHByZXNzZWQgZXJyb3JzJywgKCkgPT4ge1xuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZygnQ0RLIE5hZyBFcnJvcnM6JywgSlNPTi5zdHJpbmdpZnkoZXJyb3JzLCBudWxsLCAyKSk7XG4gIH1cbiAgZXhwZWN0KGVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xufSk7XG4iXX0=
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtY29uc3RydWN0LW5hZy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdXNlLWNhc2VzL3dlYmFwcC90ZXN0cy9mcm9udGVuZC1jb25zdHJ1Y3QtbmFnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRDLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsNkNBQTZDO0FBQzdDLHVEQUFzRTtBQUN0RSwrRUFBaUU7QUFDakUseURBQXFEO0FBQ3JELHFDQUE4RDtBQUM5RCwyREFBMkQ7QUFDM0QsOERBQWlEO0FBRWpELDZDQUE2QztBQUM3QyxNQUFNLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztBQUNwRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0lBQ2pDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUNELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEZBQTRGLENBQUMsQ0FBQztBQUV0Six1QkFBdUI7QUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBQSwwQkFBYSxHQUFFLENBQUM7QUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUU7SUFDeEMsR0FBRyxFQUFFO1FBQ0gsT0FBTyxFQUFFLGNBQWM7UUFDdkIsTUFBTSxFQUFFLFdBQVc7S0FDcEI7Q0FDRixDQUFDLENBQUM7QUFFSCxtREFBbUQ7QUFDbkQsTUFBTSxXQUFXLEdBQUcsb0NBQVcsQ0FBQyxrQkFBa0IsQ0FDaEQsS0FBSyxFQUNMLGFBQWEsRUFDYixxRkFBcUYsQ0FDdEYsQ0FB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QUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU3RhY2ssIEFzcGVjdHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBUZW1wbGF0ZSwgQW5ub3RhdGlvbnMsIE1hdGNoIH0gZnJvbSAnYXdzLWNkay1saWIvYXNzZXJ0aW9ucyc7XG5pbXBvcnQgeyBDZXJ0aWZpY2F0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0IHsgSG9zdGVkWm9uZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCB7IEF3c1NvbHV0aW9uc0NoZWNrcywgTmFnU3VwcHJlc3Npb25zIH0gZnJvbSAnY2RrLW5hZyc7XG5pbXBvcnQgeyBjcmVhdGVUZXN0QXBwIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IHsgRnJvbnRlbmQgfSBmcm9tICcuLi9mcm9udGVuZC1jb25zdHJ1Y3QnO1xuXG4vLyBDcmVhdGUgdGVtcG9yYXJ5IGJ1aWxkIGRpcmVjdG9yeSBmb3IgdGVzdHNcbmNvbnN0IHRlc3RCdWlsZERpciA9ICcvdG1wL3Rlc3QtZnJvbnRlbmQtYnVpbGQtbmFnJztcbmlmICghZnMuZXhpc3RzU3luYyh0ZXN0QnVpbGREaXIpKSB7XG4gIGZzLm1rZGlyU3luYyh0ZXN0QnVpbGREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xufVxuZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGVzdEJ1aWxkRGlyLCAnaW5kZXguaHRtbCcpLCAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PHRpdGxlPlRlc3Q8L3RpdGxlPjwvaGVhZD48Ym9keT48aDE+VGVzdCBBcHA8L2gxPjwvYm9keT48L2h0bWw+Jyk7XG5cbi8vIENyZWF0ZSBhcHAgYW5kIHN0YWNrXG5jb25zdCBhcHAgPSBjcmVhdGVUZXN0QXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdUZXN0U3RhY2snLCB7XG4gIGVudjoge1xuICAgIGFjY291bnQ6ICcxMjM0NTY3ODkwMTInLFxuICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gIH0sXG59KTtcblxuLy8gQ3JlYXRlIFNTTCBjZXJ0aWZpY2F0ZSBmb3IgY3VzdG9tIGRvbWFpbiB0ZXN0aW5nXG5jb25zdCBjZXJ0aWZpY2F0ZSA9IENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybihcbiAgc3RhY2ssXG4gICdDZXJ0aWZpY2F0ZScsXG4gICdhcm46YXdzOmFjbTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmNlcnRpZmljYXRlLzEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMicsXG4pO1xuXG4vLyBDcmVhdGUgaG9zdGVkIHpvbmUgZm9yIEROUyB0ZXN0aW5nXG5jb25zdCBob3N0ZWRab25lID0gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoc3RhY2ssICdIb3N0ZWRab25lJywge1xuICBob3N0ZWRab25lSWQ6ICdaMTIzNDU2Nzg5JyxcbiAgem9uZU5hbWU6ICdleGFtcGxlLmNvbScsXG59KTtcblxuLy8gQ3JlYXRlIHRoZSBtYWluIEZyb250ZW5kIGNvbnN0cnVjdFxuY29uc3QgZnJvbnRlbmQgPSBuZXcgRnJvbnRlbmQoc3RhY2ssICdUZXN0RnJvbnRlbmQnLCB7XG4gIHNvdXJjZURpcmVjdG9yeTogJy90bXAvdGVzdC1mcm9udGVuZC1zcmMnLFxuICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICBjdXN0b21Eb21haW46IHtcbiAgICBkb21haW5OYW1lOiAnYXBwLmV4YW1wbGUuY29tJyxcbiAgICBjZXJ0aWZpY2F0ZSxcbiAgICBob3N0ZWRab25lLFxuICB9LFxuICBza2lwQnVpbGQ6IHRydWUsIC8vIFNraXAgYnVpbGQgZm9yIHRlc3Rpbmdcbn0pO1xuXG4vLyBBZGQgQ0RLIE5hZyBzdXBwcmVzc2lvbnMgZm9yIGtub3duIGFjY2VwdGFibGUgdmlvbGF0aW9uc1xuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zKHN0YWNrLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1DRlIxJyxcbiAgICByZWFzb246ICdDbG91ZEZyb250IGdlbyByZXN0cmljdGlvbnMgYXJlIGNvbmZpZ3VyZWQgYmFzZWQgb24gYXBwbGljYXRpb24gcmVxdWlyZW1lbnRzJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUNGUjInLFxuICAgIHJlYXNvbjogJ0Nsb3VkRnJvbnQgV0FGIGludGVncmF0aW9uIGlzIGNvbmZpZ3VyZWQgYmFzZWQgb24gc2VjdXJpdHkgcmVxdWlyZW1lbnRzJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUNGUjMnLFxuICAgIHJlYXNvbjogJ0Nsb3VkRnJvbnQgYWNjZXNzIGxvZ2dpbmcgaXMgY29uZmlndXJlZCBiYXNlZCBvbiBjb21wbGlhbmNlIHJlcXVpcmVtZW50cycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1DRlI0JyxcbiAgICByZWFzb246ICdDbG91ZEZyb250IHZpZXdlciBwcm90b2NvbCBwb2xpY3kgaXMgc2V0IHRvIHJlZGlyZWN0LXRvLWh0dHBzIGZvciBzZWN1cml0eScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMScsXG4gICAgcmVhc29uOiAnUzMgYnVja2V0IGFjY2VzcyBsb2dnaW5nIGlzIGNvbmZpZ3VyZWQgYmFzZWQgb24gY29tcGxpYW5jZSByZXF1aXJlbWVudHMnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzInLFxuICAgIHJlYXNvbjogJ1MzIGJ1Y2tldCBwdWJsaWMgYWNjZXNzIGlzIGJsb2NrZWQgYW5kIGFjY2VzcyBpcyBjb250cm9sbGVkIHZpYSBDbG91ZEZyb250IE9BQycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMycsXG4gICAgcmVhc29uOiAnUzMgYnVja2V0IFNTTCByZXF1ZXN0cyBvbmx5IHBvbGljeSBpcyBlbmZvcmNlZCB2aWEgQ2xvdWRGcm9udCBIVFRQUyByZWRpcmVjdCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMTAnLFxuICAgIHJlYXNvbjogJ1MzIGJ1Y2tldCBNRkEgZGVsZXRlIGlzIG1hbmFnZWQgdGhyb3VnaCBvcmdhbml6YXRpb25hbCBzZWN1cml0eSBwb2xpY2llcycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU00JyxcbiAgICByZWFzb246ICdBV1MgbWFuYWdlZCBwb2xpY2llcyBhcmUgYWNjZXB0YWJsZSBmb3Igc3RhbmRhcmQgTGFtYmRhIGV4ZWN1dGlvbiByb2xlcycsXG4gICAgYXBwbGllc1RvOiBbJ1BvbGljeTo6YXJuOjxBV1M6OlBhcnRpdGlvbj46aWFtOjphd3M6cG9saWN5L3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgIHJlYXNvbjogJ0J1Y2tldERlcGxveW1lbnQgcmVxdWlyZXMgYnJvYWQgUzMgcGVybWlzc2lvbnMgdG8gbWFuYWdlIGRlcGxveW1lbnQgYXNzZXRzJyxcbiAgICBhcHBsaWVzVG86IFtcbiAgICAgICdBY3Rpb246OnMzOkdldE9iamVjdConLFxuICAgICAgJ0FjdGlvbjo6czM6R2V0QnVja2V0KicsXG4gICAgICAnQWN0aW9uOjpzMzpMaXN0KicsXG4gICAgICAnQWN0aW9uOjpzMzpEZWxldGVPYmplY3QqJyxcbiAgICAgICdBY3Rpb246OnMzOkFib3J0KicsXG4gICAgICAnUmVzb3VyY2U6OmFybjo8QVdTOjpQYXJ0aXRpb24+OnMzOjo6Y2RrLWhuYjY1OWZkcy1hc3NldHMtPEFXUzo6QWNjb3VudElkPi08QVdTOjpSZWdpb24+LyonLFxuICAgICAgJ1Jlc291cmNlOjphcm46PEFXUzo6UGFydGl0aW9uPjpzMzo6OmNkay1obmI2NTlmZHMtYXNzZXRzLTEyMzQ1Njc4OTAxMi11cy1lYXN0LTEvKicsXG4gICAgICAnUmVzb3VyY2U6OjxUZXN0RnJvbnRlbmRGcm9udGVuZEJ1Y2tldEQzN0QyMkRFLkFybj4vKicsXG4gICAgICAnUmVzb3VyY2U6OionLFxuICAgIF0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgcmVhc29uOiAnTGFtYmRhIHJ1bnRpbWUgdmVyc2lvbnMgYXJlIG1hbmFnZWQgYXQgdGhlIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQgbGV2ZWwnLFxuICB9LFxuXSwgdHJ1ZSk7XG5cbi8vIEFwcGx5IENESyBOYWcgY2hlY2tzXG5Bc3BlY3RzLm9mKGFwcCkuYWRkKG5ldyBBd3NTb2x1dGlvbnNDaGVja3MoeyB2ZXJib3NlOiB0cnVlIH0pKTtcblxuLy8gU3ludGhlc2l6ZSB0aGUgc3RhY2tcblRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbi8vIENoZWNrIGZvciB1bnN1cHByZXNzZWQgd2FybmluZ3MgYW5kIGVycm9yc1xuY29uc3Qgd2FybmluZ3MgPSBBbm5vdGF0aW9ucy5mcm9tU3RhY2soc3RhY2spLmZpbmRXYXJuaW5nKCcqJywgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnQXdzU29sdXRpb25zLS4qJykpO1xuY29uc3QgZXJyb3JzID0gQW5ub3RhdGlvbnMuZnJvbVN0YWNrKHN0YWNrKS5maW5kRXJyb3IoJyonLCBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdBd3NTb2x1dGlvbnMtLionKSk7XG5cbi8vIFRlc3Q6IEZyb250ZW5kIGNvbnN0cnVjdCBpcyBwcm9wZXJseSBjcmVhdGVkIGFuZCBhY2Nlc3NpYmxlXG50ZXN0KCdGcm9udGVuZCBjb25zdHJ1Y3QgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gIGV4cGVjdChmcm9udGVuZCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGZyb250ZW5kLm5vZGUuaWQpLnRvQmUoJ1Rlc3RGcm9udGVuZCcpO1xuICBleHBlY3QoZnJvbnRlbmQuYnVja2V0KS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuZGlzdHJpYnV0aW9uKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuYnVja2V0RGVwbG95bWVudCkudG9CZURlZmluZWQoKTtcbn0pO1xuXG4vLyBUZXN0OiBGcm9udGVuZCBjb25zdHJ1Y3QgaGFzIGV4cGVjdGVkIHByb3BlcnRpZXNcbnRlc3QoJ0Zyb250ZW5kIGNvbnN0cnVjdCBoYXMgZXhwZWN0ZWQgcHJvcGVydGllcycsICgpID0+IHtcbiAgZXhwZWN0KGZyb250ZW5kLmJ1Y2tldC5idWNrZXROYW1lKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbklkKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZnJvbnRlbmQuZG9tYWluTmFtZSkudG9CZSgnYXBwLmV4YW1wbGUuY29tJyk7XG4gIGV4cGVjdChmcm9udGVuZC51cmwoKSkudG9CZSgnaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20nKTtcbiAgZXhwZWN0KHR5cGVvZiBmcm9udGVuZC5idWNrZXROYW1lKCkpLnRvQmUoJ3N0cmluZycpO1xuICBleHBlY3QodHlwZW9mIGZyb250ZW5kLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWUoKSkudG9CZSgnc3RyaW5nJyk7XG59KTtcblxuLy8gVGVzdDogVGVtcGxhdGUgY29udGFpbnMgZXhwZWN0ZWQgZnJvbnRlbmQgcmVzb3VyY2VzXG50ZXN0KCdUZW1wbGF0ZSBjb250YWlucyBleHBlY3RlZCBmcm9udGVuZCByZXNvdXJjZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgUzMgYnVja2V0IGV4aXN0cyB3aXRoIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb25cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlMzOjpCdWNrZXQnLCB7XG4gICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiAnQUVTMjU2JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBleGlzdHMgd2l0aCBzZWN1cml0eSBjb25maWd1cmF0aW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCB7XG4gICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICBBbGlhc2VzOiBbJ2FwcC5leGFtcGxlLmNvbSddLFxuICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiAncmVkaXJlY3QtdG8taHR0cHMnLFxuICAgICAgfSxcbiAgICAgIEN1c3RvbUVycm9yUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBFcnJvckNvZGU6IDQwMyxcbiAgICAgICAgICBSZXNwb25zZUNvZGU6IDIwMCxcbiAgICAgICAgICBSZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgRXJyb3JDb2RlOiA0MDQsXG4gICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgUmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBWaWV3ZXJDZXJ0aWZpY2F0ZToge1xuICAgICAgICBBY21DZXJ0aWZpY2F0ZUFybjogJ2Fybjphd3M6YWNtOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2VydGlmaWNhdGUvMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJyxcbiAgICAgICAgU3NsU3VwcG9ydE1ldGhvZDogJ3NuaS1vbmx5JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IENsb3VkRnJvbnQgc2VjdXJpdHkgaGVhZGVycyBmdW5jdGlvbiBleGlzdHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJywge1xuICAgIEZ1bmN0aW9uQ29uZmlnOiB7XG4gICAgICBSdW50aW1lOiAnY2xvdWRmcm9udC1qcy0xLjAnLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBSb3V0ZTUzIEEgcmVjb3JkIGV4aXN0cyBmb3IgY3VzdG9tIGRvbWFpblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0Jywge1xuICAgIFR5cGU6ICdBJyxcbiAgICBOYW1lOiAnYXBwLmV4YW1wbGUuY29tLicsXG4gICAgSG9zdGVkWm9uZUlkOiAnWjEyMzQ1Njc4OScsXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBidWNrZXQgZGVwbG95bWVudCBleGlzdHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2UoJ0N1c3RvbTo6Q0RLQnVja2V0RGVwbG95bWVudCcsIHt9KTtcblxuICAvLyBWZXJpZnkgYXV0byBkZWxldGUgb2JqZWN0cyBjdXN0b20gcmVzb3VyY2UgZXhpc3RzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlKCdDdXN0b206OlMzQXV0b0RlbGV0ZU9iamVjdHMnLCB7fSk7XG59KTtcblxuLy8gVGVzdDogRnJvbnRlbmQgY29uc3RydWN0IGVuZm9yY2VzIHNlY3VyaXR5IGJlc3QgcHJhY3RpY2VzXG50ZXN0KCdGcm9udGVuZCBjb25zdHJ1Y3QgZW5mb3JjZXMgc2VjdXJpdHkgYmVzdCBwcmFjdGljZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgSFRUUFMgcmVkaXJlY3QgaXMgZW5mb3JjZWRcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgIFZpZXdlclByb3RvY29sUG9saWN5OiAncmVkaXJlY3QtdG8taHR0cHMnLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBWZXJpZnkgUzMgYnVja2V0IGJsb2NrcyBwdWJsaWMgYWNjZXNzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpTMzo6QnVja2V0Jywge1xuICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgQmxvY2tQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgUmVzdHJpY3RQdWJsaWNCdWNrZXRzOiB0cnVlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBTMyBidWNrZXQgaGFzIGVuY3J5cHRpb25cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlMzOjpCdWNrZXQnLCB7XG4gICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgU1NFQWxnb3JpdGhtOiAnQUVTMjU2JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KTtcbn0pO1xuXG4vLyBUZXN0OiBGcm9udGVuZCBjb25zdHJ1Y3Qgc3VwcG9ydHMgU1BBIGFwcGxpY2F0aW9uc1xudGVzdCgnRnJvbnRlbmQgY29uc3RydWN0IHN1cHBvcnRzIFNQQSBhcHBsaWNhdGlvbnMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgU1BBLWZyaWVuZGx5IGVycm9yIHJlc3BvbnNlc1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgQ3VzdG9tRXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIEVycm9yQ29kZTogNDAzLFxuICAgICAgICAgIFJlc3BvbnNlQ29kZTogMjAwLFxuICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBFcnJvckNvZGU6IDQwNCxcbiAgICAgICAgICBSZXNwb25zZUNvZGU6IDIwMCxcbiAgICAgICAgICBSZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBWZXJpZnkgZGVmYXVsdCByb290IG9iamVjdCBpcyBzZXRcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsIHtcbiAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgIERlZmF1bHRSb290T2JqZWN0OiAnaW5kZXguaHRtbCcsXG4gICAgfSxcbiAgfSk7XG59KTtcblxuLy8gVGVzdDogTm8gdW5zdXBwcmVzc2VkIHdhcm5pbmdzXG50ZXN0KCdObyB1bnN1cHByZXNzZWQgd2FybmluZ3MnLCAoKSA9PiB7XG4gIGlmICh3YXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coJ0NESyBOYWcgV2FybmluZ3M6JywgSlNPTi5zdHJpbmdpZnkod2FybmluZ3MsIG51bGwsIDIpKTtcbiAgfVxuICBleHBlY3Qod2FybmluZ3MpLnRvSGF2ZUxlbmd0aCgwKTtcbn0pO1xuXG4vLyBUZXN0OiBObyB1bnN1cHByZXNzZWQgZXJyb3JzXG50ZXN0KCdObyB1bnN1cHByZXNzZWQgZXJyb3JzJywgKCkgPT4ge1xuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZygnQ0RLIE5hZyBFcnJvcnM6JywgSlNPTi5zdHJpbmdpZnkoZXJyb3JzLCBudWxsLCAyKSk7XG4gIH1cbiAgZXhwZWN0KGVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xufSk7XG4iXX0=
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
4
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
const fs = require("fs");
|
|
6
|
-
const path = require("path");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
7
40
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
41
|
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
9
42
|
const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
|
|
@@ -383,4 +416,4 @@ describe('@webapp Frontend', () => {
|
|
|
383
416
|
});
|
|
384
417
|
});
|
|
385
418
|
});
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtY29uc3RydWN0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvd2ViYXBwL3Rlc3RzL2Zyb250ZW5kLWNvbnN0cnVjdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDOztBQUV0Qyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUF3RDtBQUN4RCx1REFBa0Q7QUFDbEQsK0VBQWlFO0FBQ2pFLCtEQUEwRDtBQUMxRCx5REFBcUQ7QUFDckQsK0NBQTRDO0FBQzVDLHFFQUFpRTtBQUNqRSwyREFBMkQ7QUFDM0QsOERBQThFO0FBRTlFLDZEQUE2RDtBQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBRUosUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNoQyxJQUFJLEdBQVEsQ0FBQztJQUNiLElBQUksS0FBWSxDQUFDO0lBQ2pCLElBQUksUUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBRXZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYiwrQ0FBK0M7UUFDL0MsWUFBWSxHQUFHLDBCQUEwQixDQUFDO1FBQzFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSw0RkFBNEYsQ0FBQyxDQUFDO1FBRXRKLGdEQUFnRDtRQUNoRCxVQUFVLEdBQUcsd0JBQXdCLENBQUM7UUFDdEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMvQixFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCx5REFBeUQ7UUFDekQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUFFLDRHQUE0RyxDQUFDLENBQUM7SUFDM0ssQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLElBQUEsMEJBQWEsR0FBRSxDQUFDO1FBQ3RCLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtRQUMzQyxJQUFJLENBQUMsK0RBQStELEVBQUUsR0FBRyxFQUFFO1lBQ3pFLE1BQU0sUUFBUSxHQUFHLElBQUksNkJBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUMvQyxlQUFlLEVBQUUsd0JBQXdCO2dCQUN6QyxvQkFBb0IsRUFBRSxZQUFZO2dCQUNsQyxTQUFTLEVBQUUsSUFBSSxFQUFFLHlCQUF5QjthQUMzQyxDQUFDLENBQUM7WUFFSCxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckMsOEJBQThCO1lBQzlCLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDaEQsZ0JBQWdCLEVBQUU7b0JBQ2hCLGlDQUFpQyxFQUFFO3dCQUNqQzs0QkFDRSw2QkFBNkIsRUFBRTtnQ0FDN0IsWUFBWSxFQUFFLFFBQVE7NkJBQ3ZCO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUNELDhCQUE4QixFQUFFO29CQUM5QixlQUFlLEVBQUUsSUFBSTtvQkFDckIsaUJBQWlCLEVBQUUsSUFBSTtvQkFDdkIsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDdEIscUJBQXFCLEVBQUUsSUFBSTtpQkFDNUI7YUFDRixDQUFDLENBQUM7WUFFSCw0Q0FBNEM7WUFDNUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLCtCQUErQixFQUFFO2dCQUM5RCxrQkFBa0IsRUFBRTtvQkFDbEIsaUJBQWlCLEVBQUUsWUFBWTtvQkFDL0Isb0JBQW9CLEVBQUU7d0JBQ3BCOzRCQUNFLFNBQVMsRUFBRSxHQUFHOzRCQUNkLFlBQVksRUFBRSxHQUFHOzRCQUNqQixnQkFBZ0IsRUFBRSxhQUFhO3lCQUNoQzt3QkFDRDs0QkFDRSxTQUFTLEVBQUUsR0FBRzs0QkFDZCxZQUFZLEVBQUUsR0FBRzs0QkFDakIsZ0JBQWdCLEVBQUUsYUFBYTt5QkFDaEM7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDLENBQUM7WUFFSCw4Q0FBOEM7WUFDOUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLDJCQUEyQixFQUFFO2dCQUMxRCxjQUFjLEVBQUU7b0JBQ2QsT0FBTyxFQUFFLG1CQUFtQjtpQkFDN0I7YUFDRixDQUFDLENBQUM7WUFFSCxzQ0FBc0M7WUFDdEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUV4RCxzQkFBc0I7WUFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsZUFBTSxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxjQUFjLENBQUMsNkJBQVksQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxjQUFjLENBQUMsb0NBQWdCLENBQUMsQ0FBQztZQUNuRSxNQUFNLENBQUMsT0FBTyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxNQUFNLENBQUMsT0FBTyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyw4REFBOEQsRUFBRSxHQUFHLEVBQUU7WUFDeEUsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQzlCLGVBQWUsRUFBRSx3QkFBd0I7Z0JBQ3pDLG9CQUFvQixFQUFFLFlBQVk7Z0JBQ2xDLFlBQVksRUFBRSxZQUFZO2dCQUMxQixTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7WUFFSCxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckMseUNBQXlDO1lBQ3pDLFFBQVEsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0MsUUFBUSxDQUFDLGVBQWUsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnRUFBZ0UsRUFBRSxHQUFHLEVBQUU7WUFDMUUsTUFBTSxvQkFBb0IsR0FBRztnQkFDM0I7b0JBQ0UsVUFBVSxFQUFFLEdBQUc7b0JBQ2Ysa0JBQWtCLEVBQUUsR0FBRztvQkFDdkIsZ0JBQWdCLEVBQUUsYUFBYTtpQkFDaEM7YUFDRixDQUFDO1lBRUYsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQzlCLGVBQWUsRUFBRSx3QkFBd0I7Z0JBQ3pDLG9CQUFvQixFQUFFLFlBQVk7Z0JBQ2xDLGNBQWMsRUFBRSxvQkFBb0I7Z0JBQ3BDLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUU7Z0JBQzlELGtCQUFrQixFQUFFO29CQUNsQixvQkFBb0IsRUFBRTt3QkFDcEI7NEJBQ0UsU0FBUyxFQUFFLEdBQUc7NEJBQ2QsWUFBWSxFQUFFLEdBQUc7NEJBQ2pCLGdCQUFnQixFQUFFLGFBQWE7eUJBQ2hDO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsSUFBSSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtZQUNqRSxNQUFNLFdBQVcsR0FBRyxvQ0FBVyxDQUFDLGtCQUFrQixDQUNoRCxLQUFLLEVBQ0wsYUFBYSxFQUNiLHFGQUFxRixDQUN0RixDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQy9DLGVBQWUsRUFBRSx3QkFBd0I7Z0JBQ3pDLG9CQUFvQixFQUFFLFlBQVk7Z0JBQ2xDLFlBQVksRUFBRTtvQkFDWixVQUFVLEVBQUUsaUJBQWlCO29CQUM3QixXQUFXO2lCQUNaO2dCQUNELFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxtREFBbUQ7WUFDbkQsUUFBUSxDQUFDLHFCQUFxQixDQUFDLCtCQUErQixFQUFFO2dCQUM5RCxrQkFBa0IsRUFBRTtvQkFDbEIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLGlCQUFpQixFQUFFO3dCQUNqQixpQkFBaUIsRUFBRSxxRkFBcUY7d0JBQ3hHLGdCQUFnQixFQUFFLFVBQVU7cUJBQzdCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsdUVBQXVFLEVBQUUsR0FBRyxFQUFFO1lBQ2pGLE1BQU0sV0FBVyxHQUFHLG9DQUFXLENBQUMsa0JBQWtCLENBQ2hELEtBQUssRUFDTCxhQUFhLEVBQ2IscUZBQXFGLENBQ3RGLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyx3QkFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBQzFFLFlBQVksRUFBRSxZQUFZO2dCQUMxQixRQUFRLEVBQUUsYUFBYTthQUN4QixDQUFDLENBQUM7WUFFSCxJQUFJLDZCQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsZUFBZSxFQUFFLHdCQUF3QjtnQkFDekMsb0JBQW9CLEVBQUUsWUFBWTtnQkFDbEMsWUFBWSxFQUFFO29CQUNaLFVBQVUsRUFBRSxpQkFBaUI7b0JBQzdCLFdBQVc7b0JBQ1gsVUFBVTtpQkFDWDtnQkFDRCxTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7WUFFSCxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckMscUNBQXFDO1lBQ3JDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyx5QkFBeUIsRUFBRTtnQkFDeEQsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsWUFBWSxFQUFFLFlBQVk7YUFDM0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7UUFDbEMsSUFBSSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtZQUNoRSxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUNWLElBQUksNkJBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO29CQUM5QixlQUFlLEVBQUUsRUFBRTtvQkFDbkIsb0JBQW9CLEVBQUUsWUFBWTtvQkFDbEMsU0FBUyxFQUFFLElBQUk7aUJBQ2hCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLDZEQUE2RCxFQUFFLEdBQUcsRUFBRTtZQUN2RSx3Q0FBd0M7WUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQy9DLGVBQWUsRUFBRSxVQUFVO2dCQUMzQixvRUFBb0U7Z0JBQ3BFLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQixpRkFBaUY7UUFDbkYsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO1lBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLDZCQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRTtnQkFDckQsZUFBZSxFQUFFLFVBQVU7Z0JBQzNCLG9CQUFvQixFQUFFLFlBQVk7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJO2dCQUNmLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07YUFDcEMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRS9CLHVEQUF1RDtZQUN2RCxNQUFNLGNBQWMsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxjQUFjLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFO2dCQUM1QyxjQUFjLEVBQUUsUUFBUTtnQkFDeEIsbUJBQW1CLEVBQUUsUUFBUTthQUM5QixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnRUFBZ0UsRUFBRSxHQUFHLEVBQUU7WUFDMUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksNkJBQVEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO2dCQUN0RCxlQUFlLEVBQUUsVUFBVTtnQkFDM0Isb0JBQW9CLEVBQUUsWUFBWTtnQkFDbEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsMERBQTBEO2FBQzNELENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUUvQiwrREFBK0Q7WUFDL0QsTUFBTSxlQUFlLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekQsZUFBZSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDN0MsY0FBYyxFQUFFLFFBQVE7Z0JBQ3hCLG1CQUFtQixFQUFFLFFBQVE7YUFDOUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsc0VBQXNFLEVBQUUsR0FBRyxFQUFFO1lBQ2hGLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7b0JBQzlCLGVBQWUsRUFBRSx3QkFBd0I7b0JBQ3pDLG9CQUFvQixFQUFFLFlBQVk7b0JBQ2xDLFlBQVksRUFBRTt3QkFDWixVQUFVLEVBQUUsaUJBQWlCO3FCQUN2QixFQUFFLDZEQUE2RDtvQkFDdkUsU0FBUyxFQUFFLElBQUk7aUJBQ2hCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7WUFDbEUsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQzlCLGVBQWUsRUFBRSx3QkFBd0I7Z0JBQ3pDLG9CQUFvQixFQUFFLFlBQVk7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxxQ0FBcUM7WUFDckMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFO2dCQUNoRCxnQkFBZ0IsRUFBRTtvQkFDaEIsaUNBQWlDLEVBQUU7d0JBQ2pDOzRCQUNFLDZCQUE2QixFQUFFO2dDQUM3QixZQUFZLEVBQUUsUUFBUTs2QkFDdkI7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsOEJBQThCLEVBQUU7b0JBQzlCLGVBQWUsRUFBRSxJQUFJO29CQUNyQixpQkFBaUIsRUFBRSxJQUFJO29CQUN2QixnQkFBZ0IsRUFBRSxJQUFJO29CQUN0QixxQkFBcUIsRUFBRSxJQUFJO2lCQUM1QjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtZQUN6RSxJQUFJLDZCQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsZUFBZSxFQUFFLHdCQUF3QjtnQkFDekMsb0JBQW9CLEVBQUUsWUFBWTtnQkFDbEMsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBRUgsUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJDLDBDQUEwQztZQUMxQyxRQUFRLENBQUMscUJBQXFCLENBQUMsMkJBQTJCLEVBQUU7Z0JBQzFELGNBQWMsRUFBRTtvQkFDZCxPQUFPLEVBQUUsbUJBQW1CO2lCQUM3QjthQUNGLENBQUMsQ0FBQztZQUVILG1DQUFtQztZQUNuQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUU7Z0JBQzlELGtCQUFrQixFQUFFO29CQUNsQixvQkFBb0IsRUFBRTt3QkFDcEIsb0JBQW9CLEVBQUUsbUJBQW1CO3FCQUMxQztpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtZQUM1RCxJQUFJLDZCQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsZUFBZSxFQUFFLHdCQUF3QjtnQkFDekMsb0JBQW9CLEVBQUUsWUFBWTtnQkFDbEMsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBRUgsUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJDLHdEQUF3RDtZQUN4RCxRQUFRLENBQUMsV0FBVyxDQUFDLDZCQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLElBQUksQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7WUFDcEQsSUFBSSw2QkFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQzlCLGVBQWUsRUFBRSx3QkFBd0I7Z0JBQ3pDLG9CQUFvQixFQUFFLFlBQVk7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUU7Z0JBQzlELGtCQUFrQixFQUFFO29CQUNsQixvQkFBb0IsRUFBRTt3QkFDcEI7NEJBQ0UsU0FBUyxFQUFFLEdBQUc7NEJBQ2QsWUFBWSxFQUFFLEdBQUc7NEJBQ2pCLGdCQUFnQixFQUFFLGFBQWE7eUJBQ2hDO3dCQUNEOzRCQUNFLFNBQVMsRUFBRSxHQUFHOzRCQUNkLFlBQVksRUFBRSxHQUFHOzRCQUNqQixnQkFBZ0IsRUFBRSxhQUFhO3lCQUNoQztxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtZQUN2RCxNQUFNLENBQUMsZ0RBQTJCLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzFDO29CQUNFLFVBQVUsRUFBRSxHQUFHO29CQUNmLGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLGdCQUFnQixFQUFFLGFBQWE7aUJBQ2hDO2dCQUNEO29CQUNFLFVBQVUsRUFBRSxHQUFHO29CQUNmLGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLGdCQUFnQixFQUFFLGFBQWE7aUJBQ2hDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDMUQsSUFBSSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtZQUN6RSxJQUFJLDZCQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFDOUIsZUFBZSxFQUFFLHdCQUF3QjtnQkFDekMsb0JBQW9CLEVBQUUsWUFBWTtnQkFDbEMsaUJBQWlCLEVBQUU7b0JBQ2pCLE9BQU8sRUFBRSw4QkFBOEI7b0JBQ3ZDLE9BQU8sRUFBRSxJQUFJO2lCQUNkO2dCQUNELFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUU7Z0JBQzlELGtCQUFrQixFQUFFO29CQUNsQixPQUFPLEVBQUUsOEJBQThCO29CQUN2QyxPQUFPLEVBQUUsSUFBSTtpQkFDZDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFwcCwgUmVtb3ZhbFBvbGljeSwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuaW1wb3J0IHsgQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCB7IERpc3RyaWJ1dGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IEhvc3RlZFpvbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQnVja2V0RGVwbG95bWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCB7IGNyZWF0ZVRlc3RBcHAgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvdGVzdC11dGlscyc7XG5pbXBvcnQgeyBGcm9udGVuZCwgREVGQVVMVF9TUEFfRVJST1JfUkVTUE9OU0VTIH0gZnJvbSAnLi4vZnJvbnRlbmQtY29uc3RydWN0JztcblxuLy8gTW9jayBleGVjU3luYyB0byBhdm9pZCBhY3R1YWwgYnVpbGQgZXhlY3V0aW9uIGR1cmluZyB0ZXN0c1xuamVzdC5tb2NrKCdjaGlsZF9wcm9jZXNzJywgKCkgPT4gKHtcbiAgZXhlY1N5bmM6IGplc3QuZm4oKSxcbn0pKTtcblxuZGVzY3JpYmUoJ0B3ZWJhcHAgRnJvbnRlbmQnLCAoKSA9PiB7XG4gIGxldCBhcHA6IEFwcDtcbiAgbGV0IHN0YWNrOiBTdGFjaztcbiAgbGV0IHRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgbGV0IHRlc3RCdWlsZERpcjogc3RyaW5nO1xuICBsZXQgdGVzdFNyY0Rpcjogc3RyaW5nO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IGJ1aWxkIGRpcmVjdG9yeSBmb3IgdGVzdHNcbiAgICB0ZXN0QnVpbGREaXIgPSAnL3RtcC90ZXN0LWZyb250ZW5kLWJ1aWxkJztcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGVzdEJ1aWxkRGlyKSkge1xuICAgICAgZnMubWtkaXJTeW5jKHRlc3RCdWlsZERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRlc3RCdWlsZERpciwgJ2luZGV4Lmh0bWwnKSwgJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjx0aXRsZT5UZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PGgxPlRlc3QgQXBwPC9oMT48L2JvZHk+PC9odG1sPicpO1xuXG4gICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IHNvdXJjZSBkaXJlY3RvcnkgZm9yIHRlc3RzXG4gICAgdGVzdFNyY0RpciA9ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJztcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGVzdFNyY0RpcikpIHtcbiAgICAgIGZzLm1rZGlyU3luYyh0ZXN0U3JjRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgZGVmYXVsdCBidWlsZCBkaXJlY3RvcnkgaW5zaWRlIHNvdXJjZSBkaXJlY3RvcnlcbiAgICBjb25zdCBkZWZhdWx0QnVpbGREaXIgPSBwYXRoLmpvaW4odGVzdFNyY0RpciwgJ2J1aWxkJyk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGRlZmF1bHRCdWlsZERpcikpIHtcbiAgICAgIGZzLm1rZGlyU3luYyhkZWZhdWx0QnVpbGREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH1cbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihkZWZhdWx0QnVpbGREaXIsICdpbmRleC5odG1sJyksICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48dGl0bGU+RGVmYXVsdCBUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PGgxPkRlZmF1bHQgVGVzdCBBcHA8L2gxPjwvYm9keT48L2h0bWw+Jyk7XG4gIH0pO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IGNyZWF0ZVRlc3RBcHAoKTtcbiAgICBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdUZXN0U3RhY2snKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0B3ZWJhcHAgQmFzaWMgZnVuY3Rpb25hbGl0eScsICgpID0+IHtcbiAgICB0ZXN0KCdAd2ViYXBwIGNyZWF0ZXMgZnJvbnRlbmQgY29uc3RydWN0IHdpdGggbWluaW1hbCBjb25maWd1cmF0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgZnJvbnRlbmQgPSBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSwgLy8gU2tpcCBidWlsZCBmb3IgdGVzdGluZ1xuICAgICAgfSk7XG5cbiAgICAgIHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAgICAgLy8gVmVyaWZ5IFMzIGJ1Y2tldCBpcyBjcmVhdGVkXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UzM6OkJ1Y2tldCcsIHtcbiAgICAgICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIFNTRUFsZ29yaXRobTogJ0FFUzI1NicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBWZXJpZnkgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gaXMgY3JlYXRlZFxuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsIHtcbiAgICAgICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgICAgICBDdXN0b21FcnJvclJlc3BvbnNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwMyxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwNCxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gVmVyaWZ5IHNlY3VyaXR5IGhlYWRlcnMgZnVuY3Rpb24gaXMgY3JlYXRlZFxuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJywge1xuICAgICAgICBGdW5jdGlvbkNvbmZpZzoge1xuICAgICAgICAgIFJ1bnRpbWU6ICdjbG91ZGZyb250LWpzLTEuMCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gVmVyaWZ5IGJ1Y2tldCBkZXBsb3ltZW50IGlzIGNyZWF0ZWRcbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlKCdDdXN0b206OkNES0J1Y2tldERlcGxveW1lbnQnLCB7fSk7XG5cbiAgICAgIC8vIFRlc3QgcHVibGljIG1ldGhvZHNcbiAgICAgIGV4cGVjdChmcm9udGVuZC5idWNrZXQpLnRvQmVJbnN0YW5jZU9mKEJ1Y2tldCk7XG4gICAgICBleHBlY3QoZnJvbnRlbmQuZGlzdHJpYnV0aW9uKS50b0JlSW5zdGFuY2VPZihEaXN0cmlidXRpb24pO1xuICAgICAgZXhwZWN0KGZyb250ZW5kLmJ1Y2tldERlcGxveW1lbnQpLnRvQmVJbnN0YW5jZU9mKEJ1Y2tldERlcGxveW1lbnQpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBmcm9udGVuZC5kaXN0cmlidXRpb25Eb21haW5OYW1lKCkpLnRvQmUoJ3N0cmluZycpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBmcm9udGVuZC5idWNrZXROYW1lKCkpLnRvQmUoJ3N0cmluZycpO1xuICAgICAgZXhwZWN0KGZyb250ZW5kLnVybCgpKS50b0NvbnRhaW4oJ2h0dHBzOi8vJyk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdAd2ViYXBwIGNyZWF0ZXMgZnJvbnRlbmQgY29uc3RydWN0IHdpdGggY3VzdG9tIGJ1aWxkIGNvbW1hbmQnLCAoKSA9PiB7XG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIGJ1aWxkQ29tbWFuZDogJ3lhcm4gYnVpbGQnLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICAvLyBTaG91bGQgc3RpbGwgY3JlYXRlIHRoZSBzYW1lIHJlc291cmNlc1xuICAgICAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlMzOjpCdWNrZXQnLCAxKTtcbiAgICAgIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCAxKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBmcm9udGVuZCBjb25zdHJ1Y3Qgd2l0aCBjdXN0b20gZXJyb3IgcmVzcG9uc2VzJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tRXJyb3JSZXNwb25zZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBodHRwU3RhdHVzOiA1MDAsXG4gICAgICAgICAgcmVzcG9uc2VIdHRwU3RhdHVzOiAyMDAsXG4gICAgICAgICAgcmVzcG9uc2VQYWdlUGF0aDogJy9lcnJvci5odG1sJyxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIG5ldyBGcm9udGVuZChzdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJyxcbiAgICAgICAgYnVpbGRPdXRwdXREaXJlY3Rvcnk6IHRlc3RCdWlsZERpcixcbiAgICAgICAgZXJyb3JSZXNwb25zZXM6IGN1c3RvbUVycm9yUmVzcG9uc2VzLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgICAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgICAgICBDdXN0b21FcnJvclJlc3BvbnNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDUwMCxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvZXJyb3IuaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0B3ZWJhcHAgQ3VzdG9tIGRvbWFpbiBmdW5jdGlvbmFsaXR5JywgKCkgPT4ge1xuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBmcm9udGVuZCBjb25zdHJ1Y3Qgd2l0aCBjdXN0b20gZG9tYWluJywgKCkgPT4ge1xuICAgICAgY29uc3QgY2VydGlmaWNhdGUgPSBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICAnQ2VydGlmaWNhdGUnLFxuICAgICAgICAnYXJuOmF3czphY206dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjZXJ0aWZpY2F0ZS8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgZnJvbnRlbmQgPSBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIGN1c3RvbURvbWFpbjoge1xuICAgICAgICAgIGRvbWFpbk5hbWU6ICdhcHAuZXhhbXBsZS5jb20nLFxuICAgICAgICAgIGNlcnRpZmljYXRlLFxuICAgICAgICB9LFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICAvLyBWZXJpZnkgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gaGFzIGN1c3RvbSBkb21haW5cbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCB7XG4gICAgICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgICAgIEFsaWFzZXM6IFsnYXBwLmV4YW1wbGUuY29tJ10sXG4gICAgICAgICAgVmlld2VyQ2VydGlmaWNhdGU6IHtcbiAgICAgICAgICAgIEFjbUNlcnRpZmljYXRlQXJuOiAnYXJuOmF3czphY206dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjZXJ0aWZpY2F0ZS8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLFxuICAgICAgICAgICAgU3NsU3VwcG9ydE1ldGhvZDogJ3NuaS1vbmx5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChmcm9udGVuZC5kb21haW5OYW1lKS50b0JlKCdhcHAuZXhhbXBsZS5jb20nKTtcbiAgICAgIGV4cGVjdChmcm9udGVuZC51cmwoKSkudG9CZSgnaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20nKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBmcm9udGVuZCBjb25zdHJ1Y3Qgd2l0aCBjdXN0b20gZG9tYWluIGFuZCBob3N0ZWQgem9uZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGNlcnRpZmljYXRlID0gQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgJ0NlcnRpZmljYXRlJyxcbiAgICAgICAgJ2Fybjphd3M6YWNtOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2VydGlmaWNhdGUvMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhzdGFjaywgJ0hvc3RlZFpvbmUnLCB7XG4gICAgICAgIGhvc3RlZFpvbmVJZDogJ1oxMjM0NTY3ODknLFxuICAgICAgICB6b25lTmFtZTogJ2V4YW1wbGUuY29tJyxcbiAgICAgIH0pO1xuXG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIGN1c3RvbURvbWFpbjoge1xuICAgICAgICAgIGRvbWFpbk5hbWU6ICdhcHAuZXhhbXBsZS5jb20nLFxuICAgICAgICAgIGNlcnRpZmljYXRlLFxuICAgICAgICAgIGhvc3RlZFpvbmUsXG4gICAgICAgIH0sXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgICAgIC8vIFZlcmlmeSBSb3V0ZTUzIEEgcmVjb3JkIGlzIGNyZWF0ZWRcbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCB7XG4gICAgICAgIFR5cGU6ICdBJyxcbiAgICAgICAgTmFtZTogJ2FwcC5leGFtcGxlLmNvbS4nLFxuICAgICAgICBIb3N0ZWRab25lSWQ6ICdaMTIzNDU2Nzg5JyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQHdlYmFwcCBWYWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIHRlc3QoJ0B3ZWJhcHAgdGhyb3dzIGVycm9yIHdoZW4gc291cmNlRGlyZWN0b3J5IGlzIG1pc3NpbmcnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcnLFxuICAgICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgICAgc2tpcEJ1aWxkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pLnRvVGhyb3coJ3NvdXJjZURpcmVjdG9yeSBpcyByZXF1aXJlZCcpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnQHdlYmFwcCB1c2VzIGRlZmF1bHQgYnVpbGRPdXRwdXREaXJlY3Rvcnkgd2hlbiBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICAvLyBVc2UgdGhlIGV4aXN0aW5nIHRlc3QgYnVpbGQgZGlyZWN0b3J5XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG5ldyBGcm9udGVuZChzdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6IHRlc3RTcmNEaXIsXG4gICAgICAgIC8vIGJ1aWxkT3V0cHV0RGlyZWN0b3J5IG5vdCBwcm92aWRlZCAtIHNob3VsZCB1c2UgZGVmYXVsdCAnLi9idWlsZC8nXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZnJvbnRlbmQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAvLyBUaGUgY29uc3RydWN0IHNob3VsZCBiZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB3aXRoIGRlZmF1bHQgYnVpbGRPdXRwdXREaXJlY3RvcnlcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgYXBwbGllcyBjdXN0b20gcmVtb3ZhbCBwb2xpY3kgdG8gcmVzb3VyY2VzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmV0YWluU3RhY2sgPSBuZXcgU3RhY2soYXBwLCAnUmV0YWluVGVzdFN0YWNrJyk7XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG5ldyBGcm9udGVuZChyZXRhaW5TdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6IHRlc3RTcmNEaXIsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGZyb250ZW5kKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSBidWNrZXQgaGFzIHRoZSBjb3JyZWN0IHJlbW92YWwgcG9saWN5XG4gICAgICBjb25zdCByZXRhaW5UZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhyZXRhaW5TdGFjayk7XG4gICAgICByZXRhaW5UZW1wbGF0ZS5oYXNSZXNvdXJjZSgnQVdTOjpTMzo6QnVja2V0Jywge1xuICAgICAgICBEZWxldGlvblBvbGljeTogJ1JldGFpbicsXG4gICAgICAgIFVwZGF0ZVJlcGxhY2VQb2xpY3k6ICdSZXRhaW4nLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdAd2ViYXBwIHVzZXMgZGVmYXVsdCBERVNUUk9ZIHJlbW92YWwgcG9saWN5IHdoZW4gbm90IHNwZWNpZmllZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGRlc3Ryb3lTdGFjayA9IG5ldyBTdGFjayhhcHAsICdEZXN0cm95VGVzdFN0YWNrJyk7XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG5ldyBGcm9udGVuZChkZXN0cm95U3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiB0ZXN0U3JjRGlyLFxuICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICAgIC8vIHJlbW92YWxQb2xpY3kgbm90IHNwZWNpZmllZCAtIHNob3VsZCBkZWZhdWx0IHRvIERFU1RST1lcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZnJvbnRlbmQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGJ1Y2tldCBoYXMgdGhlIGRlZmF1bHQgREVTVFJPWSByZW1vdmFsIHBvbGljeVxuICAgICAgY29uc3QgZGVzdHJveVRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKGRlc3Ryb3lTdGFjayk7XG4gICAgICBkZXN0cm95VGVtcGxhdGUuaGFzUmVzb3VyY2UoJ0FXUzo6UzM6OkJ1Y2tldCcsIHtcbiAgICAgICAgRGVsZXRpb25Qb2xpY3k6ICdEZWxldGUnLFxuICAgICAgICBVcGRhdGVSZXBsYWNlUG9saWN5OiAnRGVsZXRlJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnQHdlYmFwcCB0aHJvd3MgZXJyb3Igd2hlbiBkb21haW5OYW1lIGlzIHByb3ZpZGVkIHdpdGhvdXQgY2VydGlmaWNhdGUnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJyxcbiAgICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICAgIGN1c3RvbURvbWFpbjoge1xuICAgICAgICAgICAgZG9tYWluTmFtZTogJ2FwcC5leGFtcGxlLmNvbScsXG4gICAgICAgICAgfSBhcyBhbnksIC8vIFR5cGUgYXNzZXJ0aW9uIHRvIGJ5cGFzcyBUeXBlU2NyaXB0IHZhbGlkYXRpb24gZm9yIHRlc3RpbmdcbiAgICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdygnY2VydGlmaWNhdGUgaXMgcmVxdWlyZWQgd2hlbiBkb21haW5OYW1lIGlzIHByb3ZpZGVkJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdAd2ViYXBwIFNlY3VyaXR5IGZlYXR1cmVzJywgKCkgPT4ge1xuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBTMyBidWNrZXQgd2l0aCBzZWN1cml0eSBiZXN0IHByYWN0aWNlcycsICgpID0+IHtcbiAgICAgIG5ldyBGcm9udGVuZChzdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJyxcbiAgICAgICAgYnVpbGRPdXRwdXREaXJlY3Rvcnk6IHRlc3RCdWlsZERpcixcbiAgICAgICAgc2tpcEJ1aWxkOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAgICAgLy8gVmVyaWZ5IFMzIGJ1Y2tldCBzZWN1cml0eSBzZXR0aW5nc1xuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlMzOjpCdWNrZXQnLCB7XG4gICAgICAgIEJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBTU0VBbGdvcml0aG06ICdBRVMyNTYnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBCbG9ja1B1YmxpY0FjbHM6IHRydWUsXG4gICAgICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICAgICAgSWdub3JlUHVibGljQWNsczogdHJ1ZSxcbiAgICAgICAgICBSZXN0cmljdFB1YmxpY0J1Y2tldHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB3aXRoIHNlY3VyaXR5IGhlYWRlcnMnLCAoKSA9PiB7XG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgICAgIC8vIFZlcmlmeSBzZWN1cml0eSBoZWFkZXJzIGZ1bmN0aW9uIGV4aXN0c1xuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJywge1xuICAgICAgICBGdW5jdGlvbkNvbmZpZzoge1xuICAgICAgICAgIFJ1bnRpbWU6ICdjbG91ZGZyb250LWpzLTEuMCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gVmVyaWZ5IEhUVFBTIHJlZGlyZWN0IGlzIGVuYWJsZWRcbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCB7XG4gICAgICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgICAgICBWaWV3ZXJQcm90b2NvbFBvbGljeTogJ3JlZGlyZWN0LXRvLWh0dHBzJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdAd2ViYXBwIGVuYWJsZXMgYXV0byBkZWxldGUgb2JqZWN0cyBvbiBTMyBidWNrZXQnLCAoKSA9PiB7XG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgICAgIC8vIFZlcmlmeSBhdXRvIGRlbGV0ZSBvYmplY3RzIGN1c3RvbSByZXNvdXJjZSBpcyBjcmVhdGVkXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZSgnQ3VzdG9tOjpTM0F1dG9EZWxldGVPYmplY3RzJywge30pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQHdlYmFwcCBEZWZhdWx0IHZhbHVlcycsICgpID0+IHtcbiAgICB0ZXN0KCdAd2ViYXBwIHVzZXMgZGVmYXVsdCBTUEEgZXJyb3IgcmVzcG9uc2VzJywgKCkgPT4ge1xuICAgICAgbmV3IEZyb250ZW5kKHN0YWNrLCAnRnJvbnRlbmQnLCB7XG4gICAgICAgIHNvdXJjZURpcmVjdG9yeTogJy90bXAvdGVzdC1mcm9udGVuZC1zcmMnLFxuICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgICAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgICAgICBDdXN0b21FcnJvclJlc3BvbnNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwMyxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwNCxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgZXhwb3J0cyBkZWZhdWx0IFNQQSBlcnJvciByZXNwb25zZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoREVGQVVMVF9TUEFfRVJST1JfUkVTUE9OU0VTKS50b0VxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIGh0dHBTdGF0dXM6IDQwMyxcbiAgICAgICAgICByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCxcbiAgICAgICAgICByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDA0LFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0B3ZWJhcHAgQWRkaXRpb25hbCBkaXN0cmlidXRpb24gcHJvcGVydGllcycsICgpID0+IHtcbiAgICB0ZXN0KCdAd2ViYXBwIGFjY2VwdHMgYWRkaXRpb25hbCBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgICAgbmV3IEZyb250ZW5kKHN0YWNrLCAnRnJvbnRlbmQnLCB7XG4gICAgICAgIHNvdXJjZURpcmVjdG9yeTogJy90bXAvdGVzdC1mcm9udGVuZC1zcmMnLFxuICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICBkaXN0cmlidXRpb25Qcm9wczoge1xuICAgICAgICAgIGNvbW1lbnQ6ICdDdXN0b20gZnJvbnRlbmQgZGlzdHJpYnV0aW9uJyxcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgICAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgICAgICBDb21tZW50OiAnQ3VzdG9tIGZyb250ZW5kIGRpc3RyaWJ1dGlvbicsXG4gICAgICAgICAgRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
419
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtY29uc3RydWN0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvd2ViYXBwL3Rlc3RzL2Zyb250ZW5kLWNvbnN0cnVjdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0Qyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDZDQUF3RDtBQUN4RCx1REFBa0Q7QUFDbEQsK0VBQWlFO0FBQ2pFLCtEQUEwRDtBQUMxRCx5REFBcUQ7QUFDckQsK0NBQTRDO0FBQzVDLHFFQUFpRTtBQUNqRSwyREFBMkQ7QUFDM0QsOERBQThFO0FBRTlFLDZEQUE2RDtBQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBRUosUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNoQyxJQUFJLEdBQVEsQ0FBQztJQUNiLElBQUksS0FBWSxDQUFDO0lBQ2pCLElBQUksUUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBRXZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYiwrQ0FBK0M7UUFDL0MsWUFBWSxHQUFHLDBCQUEwQixDQUFDO1FBQzFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENB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QVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUU7Z0JBQzlELGtCQUFrQixFQUFFO29CQUNsQixPQUFPLEVBQUUsOEJBQThCO29CQUN2QyxPQUFPLEVBQUUsSUFBSTtpQkFDZDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFwcCwgUmVtb3ZhbFBvbGljeSwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuaW1wb3J0IHsgQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCB7IERpc3RyaWJ1dGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IEhvc3RlZFpvbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQnVja2V0RGVwbG95bWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCB7IGNyZWF0ZVRlc3RBcHAgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvdGVzdC11dGlscyc7XG5pbXBvcnQgeyBGcm9udGVuZCwgREVGQVVMVF9TUEFfRVJST1JfUkVTUE9OU0VTIH0gZnJvbSAnLi4vZnJvbnRlbmQtY29uc3RydWN0JztcblxuLy8gTW9jayBleGVjU3luYyB0byBhdm9pZCBhY3R1YWwgYnVpbGQgZXhlY3V0aW9uIGR1cmluZyB0ZXN0c1xuamVzdC5tb2NrKCdjaGlsZF9wcm9jZXNzJywgKCkgPT4gKHtcbiAgZXhlY1N5bmM6IGplc3QuZm4oKSxcbn0pKTtcblxuZGVzY3JpYmUoJ0B3ZWJhcHAgRnJvbnRlbmQnLCAoKSA9PiB7XG4gIGxldCBhcHA6IEFwcDtcbiAgbGV0IHN0YWNrOiBTdGFjaztcbiAgbGV0IHRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgbGV0IHRlc3RCdWlsZERpcjogc3RyaW5nO1xuICBsZXQgdGVzdFNyY0Rpcjogc3RyaW5nO1xuXG4gIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IGJ1aWxkIGRpcmVjdG9yeSBmb3IgdGVzdHNcbiAgICB0ZXN0QnVpbGREaXIgPSAnL3RtcC90ZXN0LWZyb250ZW5kLWJ1aWxkJztcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGVzdEJ1aWxkRGlyKSkge1xuICAgICAgZnMubWtkaXJTeW5jKHRlc3RCdWlsZERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRlc3RCdWlsZERpciwgJ2luZGV4Lmh0bWwnKSwgJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjx0aXRsZT5UZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PGgxPlRlc3QgQXBwPC9oMT48L2JvZHk+PC9odG1sPicpO1xuXG4gICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IHNvdXJjZSBkaXJlY3RvcnkgZm9yIHRlc3RzXG4gICAgdGVzdFNyY0RpciA9ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJztcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGVzdFNyY0RpcikpIHtcbiAgICAgIGZzLm1rZGlyU3luYyh0ZXN0U3JjRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgZGVmYXVsdCBidWlsZCBkaXJlY3RvcnkgaW5zaWRlIHNvdXJjZSBkaXJlY3RvcnlcbiAgICBjb25zdCBkZWZhdWx0QnVpbGREaXIgPSBwYXRoLmpvaW4odGVzdFNyY0RpciwgJ2J1aWxkJyk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGRlZmF1bHRCdWlsZERpcikpIHtcbiAgICAgIGZzLm1rZGlyU3luYyhkZWZhdWx0QnVpbGREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH1cbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihkZWZhdWx0QnVpbGREaXIsICdpbmRleC5odG1sJyksICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48dGl0bGU+RGVmYXVsdCBUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PGgxPkRlZmF1bHQgVGVzdCBBcHA8L2gxPjwvYm9keT48L2h0bWw+Jyk7XG4gIH0pO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IGNyZWF0ZVRlc3RBcHAoKTtcbiAgICBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdUZXN0U3RhY2snKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0B3ZWJhcHAgQmFzaWMgZnVuY3Rpb25hbGl0eScsICgpID0+IHtcbiAgICB0ZXN0KCdAd2ViYXBwIGNyZWF0ZXMgZnJvbnRlbmQgY29uc3RydWN0IHdpdGggbWluaW1hbCBjb25maWd1cmF0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgZnJvbnRlbmQgPSBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSwgLy8gU2tpcCBidWlsZCBmb3IgdGVzdGluZ1xuICAgICAgfSk7XG5cbiAgICAgIHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAgICAgLy8gVmVyaWZ5IFMzIGJ1Y2tldCBpcyBjcmVhdGVkXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UzM6OkJ1Y2tldCcsIHtcbiAgICAgICAgQnVja2V0RW5jcnlwdGlvbjoge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIFNTRUFsZ29yaXRobTogJ0FFUzI1NicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiB0cnVlLFxuICAgICAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBWZXJpZnkgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gaXMgY3JlYXRlZFxuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsIHtcbiAgICAgICAgRGlzdHJpYnV0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgRGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgICAgICBDdXN0b21FcnJvclJlc3BvbnNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwMyxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwNCxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gVmVyaWZ5IHNlY3VyaXR5IGhlYWRlcnMgZnVuY3Rpb24gaXMgY3JlYXRlZFxuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJywge1xuICAgICAgICBGdW5jdGlvbkNvbmZpZzoge1xuICAgICAgICAgIFJ1bnRpbWU6ICdjbG91ZGZyb250LWpzLTEuMCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gVmVyaWZ5IGJ1Y2tldCBkZXBsb3ltZW50IGlzIGNyZWF0ZWRcbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlKCdDdXN0b206OkNES0J1Y2tldERlcGxveW1lbnQnLCB7fSk7XG5cbiAgICAgIC8vIFRlc3QgcHVibGljIG1ldGhvZHNcbiAgICAgIGV4cGVjdChmcm9udGVuZC5idWNrZXQpLnRvQmVJbnN0YW5jZU9mKEJ1Y2tldCk7XG4gICAgICBleHBlY3QoZnJvbnRlbmQuZGlzdHJpYnV0aW9uKS50b0JlSW5zdGFuY2VPZihEaXN0cmlidXRpb24pO1xuICAgICAgZXhwZWN0KGZyb250ZW5kLmJ1Y2tldERlcGxveW1lbnQpLnRvQmVJbnN0YW5jZU9mKEJ1Y2tldERlcGxveW1lbnQpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBmcm9udGVuZC5kaXN0cmlidXRpb25Eb21haW5OYW1lKCkpLnRvQmUoJ3N0cmluZycpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBmcm9udGVuZC5idWNrZXROYW1lKCkpLnRvQmUoJ3N0cmluZycpO1xuICAgICAgZXhwZWN0KGZyb250ZW5kLnVybCgpKS50b0NvbnRhaW4oJ2h0dHBzOi8vJyk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdAd2ViYXBwIGNyZWF0ZXMgZnJvbnRlbmQgY29uc3RydWN0IHdpdGggY3VzdG9tIGJ1aWxkIGNvbW1hbmQnLCAoKSA9PiB7XG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIGJ1aWxkQ29tbWFuZDogJ3lhcm4gYnVpbGQnLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICAvLyBTaG91bGQgc3RpbGwgY3JlYXRlIHRoZSBzYW1lIHJlc291cmNlc1xuICAgICAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlMzOjpCdWNrZXQnLCAxKTtcbiAgICAgIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCAxKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBmcm9udGVuZCBjb25zdHJ1Y3Qgd2l0aCBjdXN0b20gZXJyb3IgcmVzcG9uc2VzJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tRXJyb3JSZXNwb25zZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBodHRwU3RhdHVzOiA1MDAsXG4gICAgICAgICAgcmVzcG9uc2VIdHRwU3RhdHVzOiAyMDAsXG4gICAgICAgICAgcmVzcG9uc2VQYWdlUGF0aDogJy9lcnJvci5odG1sJyxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIG5ldyBGcm9udGVuZChzdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJyxcbiAgICAgICAgYnVpbGRPdXRwdXREaXJlY3Rvcnk6IHRlc3RCdWlsZERpcixcbiAgICAgICAgZXJyb3JSZXNwb25zZXM6IGN1c3RvbUVycm9yUmVzcG9uc2VzLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgICAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgICAgICBDdXN0b21FcnJvclJlc3BvbnNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDUwMCxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvZXJyb3IuaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0B3ZWJhcHAgQ3VzdG9tIGRvbWFpbiBmdW5jdGlvbmFsaXR5JywgKCkgPT4ge1xuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBmcm9udGVuZCBjb25zdHJ1Y3Qgd2l0aCBjdXN0b20gZG9tYWluJywgKCkgPT4ge1xuICAgICAgY29uc3QgY2VydGlmaWNhdGUgPSBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICAnQ2VydGlmaWNhdGUnLFxuICAgICAgICAnYXJuOmF3czphY206dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjZXJ0aWZpY2F0ZS8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgZnJvbnRlbmQgPSBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIGN1c3RvbURvbWFpbjoge1xuICAgICAgICAgIGRvbWFpbk5hbWU6ICdhcHAuZXhhbXBsZS5jb20nLFxuICAgICAgICAgIGNlcnRpZmljYXRlLFxuICAgICAgICB9LFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICAvLyBWZXJpZnkgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gaGFzIGN1c3RvbSBkb21haW5cbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCB7XG4gICAgICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgICAgIEFsaWFzZXM6IFsnYXBwLmV4YW1wbGUuY29tJ10sXG4gICAgICAgICAgVmlld2VyQ2VydGlmaWNhdGU6IHtcbiAgICAgICAgICAgIEFjbUNlcnRpZmljYXRlQXJuOiAnYXJuOmF3czphY206dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjZXJ0aWZpY2F0ZS8xMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwMTInLFxuICAgICAgICAgICAgU3NsU3VwcG9ydE1ldGhvZDogJ3NuaS1vbmx5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChmcm9udGVuZC5kb21haW5OYW1lKS50b0JlKCdhcHAuZXhhbXBsZS5jb20nKTtcbiAgICAgIGV4cGVjdChmcm9udGVuZC51cmwoKSkudG9CZSgnaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20nKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBmcm9udGVuZCBjb25zdHJ1Y3Qgd2l0aCBjdXN0b20gZG9tYWluIGFuZCBob3N0ZWQgem9uZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGNlcnRpZmljYXRlID0gQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgJ0NlcnRpZmljYXRlJyxcbiAgICAgICAgJ2Fybjphd3M6YWNtOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2VydGlmaWNhdGUvMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhzdGFjaywgJ0hvc3RlZFpvbmUnLCB7XG4gICAgICAgIGhvc3RlZFpvbmVJZDogJ1oxMjM0NTY3ODknLFxuICAgICAgICB6b25lTmFtZTogJ2V4YW1wbGUuY29tJyxcbiAgICAgIH0pO1xuXG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIGN1c3RvbURvbWFpbjoge1xuICAgICAgICAgIGRvbWFpbk5hbWU6ICdhcHAuZXhhbXBsZS5jb20nLFxuICAgICAgICAgIGNlcnRpZmljYXRlLFxuICAgICAgICAgIGhvc3RlZFpvbmUsXG4gICAgICAgIH0sXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgICAgIC8vIFZlcmlmeSBSb3V0ZTUzIEEgcmVjb3JkIGlzIGNyZWF0ZWRcbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCB7XG4gICAgICAgIFR5cGU6ICdBJyxcbiAgICAgICAgTmFtZTogJ2FwcC5leGFtcGxlLmNvbS4nLFxuICAgICAgICBIb3N0ZWRab25lSWQ6ICdaMTIzNDU2Nzg5JyxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQHdlYmFwcCBWYWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIHRlc3QoJ0B3ZWJhcHAgdGhyb3dzIGVycm9yIHdoZW4gc291cmNlRGlyZWN0b3J5IGlzIG1pc3NpbmcnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcnLFxuICAgICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgICAgc2tpcEJ1aWxkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pLnRvVGhyb3coJ3NvdXJjZURpcmVjdG9yeSBpcyByZXF1aXJlZCcpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnQHdlYmFwcCB1c2VzIGRlZmF1bHQgYnVpbGRPdXRwdXREaXJlY3Rvcnkgd2hlbiBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgICAvLyBVc2UgdGhlIGV4aXN0aW5nIHRlc3QgYnVpbGQgZGlyZWN0b3J5XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG5ldyBGcm9udGVuZChzdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6IHRlc3RTcmNEaXIsXG4gICAgICAgIC8vIGJ1aWxkT3V0cHV0RGlyZWN0b3J5IG5vdCBwcm92aWRlZCAtIHNob3VsZCB1c2UgZGVmYXVsdCAnLi9idWlsZC8nXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZnJvbnRlbmQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAvLyBUaGUgY29uc3RydWN0IHNob3VsZCBiZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseSB3aXRoIGRlZmF1bHQgYnVpbGRPdXRwdXREaXJlY3RvcnlcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgYXBwbGllcyBjdXN0b20gcmVtb3ZhbCBwb2xpY3kgdG8gcmVzb3VyY2VzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmV0YWluU3RhY2sgPSBuZXcgU3RhY2soYXBwLCAnUmV0YWluVGVzdFN0YWNrJyk7XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG5ldyBGcm9udGVuZChyZXRhaW5TdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6IHRlc3RTcmNEaXIsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGZyb250ZW5kKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSBidWNrZXQgaGFzIHRoZSBjb3JyZWN0IHJlbW92YWwgcG9saWN5XG4gICAgICBjb25zdCByZXRhaW5UZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhyZXRhaW5TdGFjayk7XG4gICAgICByZXRhaW5UZW1wbGF0ZS5oYXNSZXNvdXJjZSgnQVdTOjpTMzo6QnVja2V0Jywge1xuICAgICAgICBEZWxldGlvblBvbGljeTogJ1JldGFpbicsXG4gICAgICAgIFVwZGF0ZVJlcGxhY2VQb2xpY3k6ICdSZXRhaW4nLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdAd2ViYXBwIHVzZXMgZGVmYXVsdCBERVNUUk9ZIHJlbW92YWwgcG9saWN5IHdoZW4gbm90IHNwZWNpZmllZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGRlc3Ryb3lTdGFjayA9IG5ldyBTdGFjayhhcHAsICdEZXN0cm95VGVzdFN0YWNrJyk7XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG5ldyBGcm9udGVuZChkZXN0cm95U3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiB0ZXN0U3JjRGlyLFxuICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICAgIC8vIHJlbW92YWxQb2xpY3kgbm90IHNwZWNpZmllZCAtIHNob3VsZCBkZWZhdWx0IHRvIERFU1RST1lcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZnJvbnRlbmQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGJ1Y2tldCBoYXMgdGhlIGRlZmF1bHQgREVTVFJPWSByZW1vdmFsIHBvbGljeVxuICAgICAgY29uc3QgZGVzdHJveVRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKGRlc3Ryb3lTdGFjayk7XG4gICAgICBkZXN0cm95VGVtcGxhdGUuaGFzUmVzb3VyY2UoJ0FXUzo6UzM6OkJ1Y2tldCcsIHtcbiAgICAgICAgRGVsZXRpb25Qb2xpY3k6ICdEZWxldGUnLFxuICAgICAgICBVcGRhdGVSZXBsYWNlUG9saWN5OiAnRGVsZXRlJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnQHdlYmFwcCB0aHJvd3MgZXJyb3Igd2hlbiBkb21haW5OYW1lIGlzIHByb3ZpZGVkIHdpdGhvdXQgY2VydGlmaWNhdGUnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJyxcbiAgICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICAgIGN1c3RvbURvbWFpbjoge1xuICAgICAgICAgICAgZG9tYWluTmFtZTogJ2FwcC5leGFtcGxlLmNvbScsXG4gICAgICAgICAgfSBhcyBhbnksIC8vIFR5cGUgYXNzZXJ0aW9uIHRvIGJ5cGFzcyBUeXBlU2NyaXB0IHZhbGlkYXRpb24gZm9yIHRlc3RpbmdcbiAgICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdygnY2VydGlmaWNhdGUgaXMgcmVxdWlyZWQgd2hlbiBkb21haW5OYW1lIGlzIHByb3ZpZGVkJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdAd2ViYXBwIFNlY3VyaXR5IGZlYXR1cmVzJywgKCkgPT4ge1xuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBTMyBidWNrZXQgd2l0aCBzZWN1cml0eSBiZXN0IHByYWN0aWNlcycsICgpID0+IHtcbiAgICAgIG5ldyBGcm9udGVuZChzdGFjaywgJ0Zyb250ZW5kJywge1xuICAgICAgICBzb3VyY2VEaXJlY3Rvcnk6ICcvdG1wL3Rlc3QtZnJvbnRlbmQtc3JjJyxcbiAgICAgICAgYnVpbGRPdXRwdXREaXJlY3Rvcnk6IHRlc3RCdWlsZERpcixcbiAgICAgICAgc2tpcEJ1aWxkOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAgICAgLy8gVmVyaWZ5IFMzIGJ1Y2tldCBzZWN1cml0eSBzZXR0aW5nc1xuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlMzOjpCdWNrZXQnLCB7XG4gICAgICAgIEJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBTU0VBbGdvcml0aG06ICdBRVMyNTYnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBCbG9ja1B1YmxpY0FjbHM6IHRydWUsXG4gICAgICAgICAgQmxvY2tQdWJsaWNQb2xpY3k6IHRydWUsXG4gICAgICAgICAgSWdub3JlUHVibGljQWNsczogdHJ1ZSxcbiAgICAgICAgICBSZXN0cmljdFB1YmxpY0J1Y2tldHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgY3JlYXRlcyBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB3aXRoIHNlY3VyaXR5IGhlYWRlcnMnLCAoKSA9PiB7XG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgICAgIC8vIFZlcmlmeSBzZWN1cml0eSBoZWFkZXJzIGZ1bmN0aW9uIGV4aXN0c1xuICAgICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJywge1xuICAgICAgICBGdW5jdGlvbkNvbmZpZzoge1xuICAgICAgICAgIFJ1bnRpbWU6ICdjbG91ZGZyb250LWpzLTEuMCcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gVmVyaWZ5IEhUVFBTIHJlZGlyZWN0IGlzIGVuYWJsZWRcbiAgICAgIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCB7XG4gICAgICAgIERpc3RyaWJ1dGlvbkNvbmZpZzoge1xuICAgICAgICAgIERlZmF1bHRDYWNoZUJlaGF2aW9yOiB7XG4gICAgICAgICAgICBWaWV3ZXJQcm90b2NvbFBvbGljeTogJ3JlZGlyZWN0LXRvLWh0dHBzJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdAd2ViYXBwIGVuYWJsZXMgYXV0byBkZWxldGUgb2JqZWN0cyBvbiBTMyBidWNrZXQnLCAoKSA9PiB7XG4gICAgICBuZXcgRnJvbnRlbmQoc3RhY2ssICdGcm9udGVuZCcsIHtcbiAgICAgICAgc291cmNlRGlyZWN0b3J5OiAnL3RtcC90ZXN0LWZyb250ZW5kLXNyYycsXG4gICAgICAgIGJ1aWxkT3V0cHV0RGlyZWN0b3J5OiB0ZXN0QnVpbGREaXIsXG4gICAgICAgIHNraXBCdWlsZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgICAgIC8vIFZlcmlmeSBhdXRvIGRlbGV0ZSBvYmplY3RzIGN1c3RvbSByZXNvdXJjZSBpcyBjcmVhdGVkXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZSgnQ3VzdG9tOjpTM0F1dG9EZWxldGVPYmplY3RzJywge30pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQHdlYmFwcCBEZWZhdWx0IHZhbHVlcycsICgpID0+IHtcbiAgICB0ZXN0KCdAd2ViYXBwIHVzZXMgZGVmYXVsdCBTUEEgZXJyb3IgcmVzcG9uc2VzJywgKCkgPT4ge1xuICAgICAgbmV3IEZyb250ZW5kKHN0YWNrLCAnRnJvbnRlbmQnLCB7XG4gICAgICAgIHNvdXJjZURpcmVjdG9yeTogJy90bXAvdGVzdC1mcm9udGVuZC1zcmMnLFxuICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgICAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgICAgICBDdXN0b21FcnJvclJlc3BvbnNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwMyxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBFcnJvckNvZGU6IDQwNCxcbiAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiAyMDAsXG4gICAgICAgICAgICAgIFJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ0B3ZWJhcHAgZXhwb3J0cyBkZWZhdWx0IFNQQSBlcnJvciByZXNwb25zZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoREVGQVVMVF9TUEFfRVJST1JfUkVTUE9OU0VTKS50b0VxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIGh0dHBTdGF0dXM6IDQwMyxcbiAgICAgICAgICByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCxcbiAgICAgICAgICByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDA0LFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0B3ZWJhcHAgQWRkaXRpb25hbCBkaXN0cmlidXRpb24gcHJvcGVydGllcycsICgpID0+IHtcbiAgICB0ZXN0KCdAd2ViYXBwIGFjY2VwdHMgYWRkaXRpb25hbCBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgICAgbmV3IEZyb250ZW5kKHN0YWNrLCAnRnJvbnRlbmQnLCB7XG4gICAgICAgIHNvdXJjZURpcmVjdG9yeTogJy90bXAvdGVzdC1mcm9udGVuZC1zcmMnLFxuICAgICAgICBidWlsZE91dHB1dERpcmVjdG9yeTogdGVzdEJ1aWxkRGlyLFxuICAgICAgICBkaXN0cmlidXRpb25Qcm9wczoge1xuICAgICAgICAgIGNvbW1lbnQ6ICdDdXN0b20gZnJvbnRlbmQgZGlzdHJpYnV0aW9uJyxcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBza2lwQnVpbGQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gICAgICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJywge1xuICAgICAgICBEaXN0cmlidXRpb25Db25maWc6IHtcbiAgICAgICAgICBDb21tZW50OiAnQ3VzdG9tIGZyb250ZW5kIGRpc3RyaWJ1dGlvbicsXG4gICAgICAgICAgRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|