truemark-cdk-lib 1.22.5 → 1.22.7
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.
|
@@ -90,7 +90,7 @@ const DOCKER_BUILDX_SETUP_COMMANDS = [
|
|
|
90
90
|
*/
|
|
91
91
|
class CdkPipeline extends constructs_1.Construct {
|
|
92
92
|
constructor(scope, id, props) {
|
|
93
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
93
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
94
94
|
super(scope, id);
|
|
95
95
|
const encryptionKey = aws_kms_1.Key.fromKeyArn(this, 'EncryptionKey', props.keyArn);
|
|
96
96
|
const artifactBucket = new artifact_bucket_1.ArtifactBucket(this, 'ArtifactBucket', {
|
|
@@ -228,9 +228,9 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
228
228
|
}),
|
|
229
229
|
buildEnvironment: {
|
|
230
230
|
// Privileged mode is not allowed in lambda
|
|
231
|
-
privileged: !props.computeType ||
|
|
232
|
-
computeType: (
|
|
233
|
-
buildImage: (
|
|
231
|
+
privileged: !((_t = (_s = props.computeType) === null || _s === void 0 ? void 0 : _s.includes('LAMBDA')) !== null && _t !== void 0 ? _t : false),
|
|
232
|
+
computeType: (_u = props.computeType) !== null && _u !== void 0 ? _u : aws_codebuild_1.ComputeType.SMALL,
|
|
233
|
+
buildImage: (_v = props.buildImage) !== null && _v !== void 0 ? _v : aws_codebuild_1.LinuxBuildImage.AMAZON_LINUX_2_5,
|
|
234
234
|
},
|
|
235
235
|
rolePolicy,
|
|
236
236
|
},
|
|
@@ -238,14 +238,14 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
238
238
|
partialBuildSpec: aws_codebuild_1.BuildSpec.fromObject({
|
|
239
239
|
env: {
|
|
240
240
|
variables: {
|
|
241
|
-
...(((
|
|
241
|
+
...(((_w = props.enableDockerBuildxOnAssetPublish) !== null && _w !== void 0 ? _w : true)
|
|
242
242
|
? { CDK_DOCKER: '/usr/local/bin/buildx.sh' }
|
|
243
243
|
: {}),
|
|
244
244
|
},
|
|
245
245
|
},
|
|
246
246
|
phases: {
|
|
247
247
|
install: {
|
|
248
|
-
commands: ((
|
|
248
|
+
commands: ((_x = props.enableDockerBuildxOnAssetPublish) !== null && _x !== void 0 ? _x : true)
|
|
249
249
|
? DOCKER_BUILDX_SETUP_COMMANDS
|
|
250
250
|
: [],
|
|
251
251
|
},
|
|
@@ -321,4 +321,4 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
323
|
exports.CdkPipeline = CdkPipeline;
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy1jb2RlcGlwZWxpbmUvbGliL2Nkay1waXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsbUVBS3NDO0FBQ3RDLGlEQUF3QztBQUN4Qyx1REFBaUQ7QUFDakQscURBUytCO0FBQy9CLDZEQUttQztBQUNuQyw2RUFBc0U7QUFDdEUsNkNBQThDO0FBQzlDLCtEQUFzRDtBQUN0RCxtQ0FBMkM7QUFDM0MsaURBQTREO0FBSTVEOzs7R0FHRztBQUNILElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtJQUNkLDZCQUFjLENBQUE7SUFDZCw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtBQUNoQixDQUFDLEVBTlcsV0FBVywyQkFBWCxXQUFXLFFBTXRCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxTQUFTLHlCQUFULFNBQVMsUUFhcEI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDckIsbUNBQW9CLENBQUE7SUFDcEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQU5XLFdBQVcsMkJB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QUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDaEUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQ3JELG1CQUFtQixFQUNuQixLQUFLLENBQUMsb0JBQW9CLENBQzNCLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWSxFQUFFLE9BQXNCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVSxFQUFFLE9BQXFCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQS9SRCxrQ0ErUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBDZm5QaXBlbGluZSxcbiAgR2l0UHVzaEZpbHRlcixcbiAgUGlwZWxpbmUsXG4gIFBpcGVsaW5lVHlwZSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZSc7XG5pbXBvcnQge0tleX0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQge0FydGlmYWN0QnVja2V0fSBmcm9tICcuL2FydGlmYWN0LWJ1Y2tldCc7XG5pbXBvcnQge1xuICBBZGRTdGFnZU9wdHMsXG4gIENvZGVQaXBlbGluZSxcbiAgQ29kZVBpcGVsaW5lU291cmNlLFxuICBJRmlsZVNldFByb2R1Y2VyLFxuICBTaGVsbFN0ZXAsXG4gIFN0YWdlRGVwbG95bWVudCxcbiAgV2F2ZSxcbiAgV2F2ZU9wdGlvbnMsXG59IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG4gIENvbXB1dGVUeXBlLFxuICBJQnVpbGRJbWFnZSxcbiAgTGludXhCdWlsZEltYWdlLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7UGlwZWxpbmVOb3RpZmljYXRpb25SdWxlfSBmcm9tICcuL3BpcGVsaW5lLW5vdGlmaWNhdGlvbi1ydWxlJztcbmltcG9ydCB7QXJuLCBTdGFjaywgU3RhZ2V9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7UmVwb3NpdG9yeX0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVjb21taXQnO1xuaW1wb3J0IHtOb2RlUGFja2FnZU1hbmFnZXJ9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHtFZmZlY3QsIFBvbGljeVN0YXRlbWVudH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge0lTbGFja0NoYW5uZWxDb25maWd1cmF0aW9ufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2hhdGJvdCc7XG5pbXBvcnQge0lUb3BpY30gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5cbi8qKlxuICogTm9kZSBydW50aW1lcyBzdXBwb3J0ZWQgYnkgQ29kZWJCdWlsZFxuICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYnVpbGQvbGF0ZXN0L3VzZXJndWlkZS9hdmFpbGFibGUtcnVudGltZXMuaHRtbFxuICovXG5leHBvcnQgZW51bSBOb2RlVmVyc2lvbiB7XG4gIE5PREVfMTYgPSAnMTYnLFxuICBOT0RFXzE4ID0gJzE4JyxcbiAgTk9ERV8yMCA9ICcyMCcsXG4gIE5PREVfMjIgPSAnMjInLFxuICBOT0RFXzI0ID0gJzI0Jyxcbn1cblxuLyoqXG4gKiBHbyBydW50aW1lcyBzdXBwb3J0ZWQgYnkgQ29kZUJ1aWxkXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2F2YWlsYWJsZS1ydW50aW1lcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIEdvVmVyc2lvbiB7XG4gIEdPXzFfMTIgPSAnMS4xMicsXG4gIEdPXzFfMTMgPSAnMS4xMycsXG4gIEdPXzFfMTQgPSAnMS4xNCcsXG4gIEdPXzFfMTUgPSAnMS4xNScsXG4gIEdPXzFfMTYgPSAnMS4xNicsXG4gIEdPXzFfMTcgPSAnMS4xNycsXG4gIEdPXzFfMTggPSAnMS4xOCcsXG4gIEdPXzFfMjAgPSAnMS4yMCcsXG4gIEdPXzFfMjEgPSAnMS4yMScsXG4gIEdPXzFfMjIgPSAnMS4yMicsXG4gIEdPXzFfMjMgPSAnMS4yMycsXG4gIEdPXzFfMjQgPSAnMS4yNCcsXG59XG5cbi8qKlxuICogSmF2YSBydW50aW1lcyBzdXBwb3J0ZWQgYnkgQ29kZUJ1aWxkXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2F2YWlsYWJsZS1ydW50aW1lcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIEphdmFWZXJzaW9uIHtcbiAgSkFWQV84ID0gJ2NvcnJldHRvOCcsXG4gIEpBVkFfMTEgPSAnY29ycmV0dG8xMScsXG4gIEpBVkFfMTYgPSAnY29ycmV0dG8xNycsXG4gIEpBVkFfMjEgPSAnY29ycmV0dG8yMScsXG4gIEpBVkFfMjUgPSAnY29ycmV0dG8yNScsXG59XG5cbi8qKlxuICogRG90bmV0IHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlQnVpbGRcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWJ1aWxkL2xhdGVzdC91c2VyZ3VpZGUvYXZhaWxhYmxlLXJ1bnRpbWVzLmh0bWxkb3RuZXRcbiAqL1xuZXhwb3J0IGVudW0gRG90bmV0VmVyc2lvbiB7XG4gIERPVE5FVF8zXzEgPSAnMy4xJyxcbiAgRE9UTkVUXzVfMCA9ICc1LjAnLFxuICBET1RORVRfNl8wID0gJzYuMCcsXG4gIERPVE5FVF84XzAgPSAnOC4wJyxcbn1cblxuZXhwb3J0IGVudW0gUHl0aG9uVmVyc2lvbiB7XG4gIFBZVEhPTl8zXzcgPSAnMy43JyxcbiAgUFlUSE9OXzNfOCA9ICczLjgnLFxuICBQWVRIT05fM185ID0gJzMuOScsXG4gIFBZVEhPTl8zXzEwID0gJzMuMTAnLFxuICBQWVRIT05fM18xMSA9ICczLjExJyxcbiAgUFlUSE9OXzNfMTIgPSAnMy4xMicsXG4gIFBZVEhPTl8zXzEzID0gJzMuMTMnLFxuICBQWVRIT05fM18xNCA9ICczLjE0Jyxcbn1cblxuY29uc3QgRE9DS0VSX0JVSUxEWF9TRVRVUF9DT01NQU5EUyA9IFtcbiAgXCJlY2hvICcjIS9iaW4vYmFzaCcgPiAvdXNyL2xvY2FsL2Jpbi9idWlsZHguc2hcIixcbiAgJ2VjaG8gXFwnW1sgXCIkMVwiID09IFwiYnVpbGRcIiBdXSAmJiBkb2NrZXIgYnVpbGR4IGJ1aWxkIC0tbG9hZCBcIiR7QDoyfVwiIHx8IGRvY2tlciBcIiRAXCJcXCcgPj4gL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJyxcbiAgJ2NobW9kICt4IC91c3IvbG9jYWwvYmluL2J1aWxkeC5zaCcsXG4gICdlY2hvIFwiQXJjaGl0ZWN0dXJlOiAkKHVuYW1lIC1tKVwiJyxcbiAgJ2RvY2tlciBidWlsZHggY3JlYXRlIC0tdXNlIC0tbmFtZSBtdWx0aS1hcmNoLWJ1aWxkZXInLFxuICAnZG9ja2VyIGJ1aWxkeCBscycsXG5dO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENka1BpcGVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrUGlwZWxpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBDREsgd2lsbCBuYW1lIHRoZSBwaXBlbGluZS4gU2V0IHRoaXMgdG8gb3ZlcnJpZGUgdGhlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgcGlwZWxpbmVUeXBlPzogUGlwZWxpbmVUeXBlO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBDREsgd2lsbCBjcmVhdGUgS01TIGtleXMgZm9yIGNyb3NzIGFjY291bnQgZGVwbG95bWVudHMuIFRoaXNcbiAgICogY2FuIGJlIGNvc3RseSBpZiB5b3UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiBwaXBlbGluZXMuIFRoaXMgcHJvcGVydHlcbiAgICogYWxsb3dzIGEgY29tbW9uIGtleSB0byBiZSBzaGFyZWQgYWNyb3NzIHBpcGVsaW5lcy5cbiAgICpcbiAgICogWW91IG11c3QgY2hhbmdlIEBhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmU6Y3Jvc3NBY2NvdW50S2V5c0RlZmF1bHRWYWx1ZVRvRmFsc2UgdG8gZmFsc2UgaW4geW91ciBjZGsuanNvblxuICAgKiBmaWxlIHRvIGF2b2lkIGVycm9ycy5cbiAgICovXG4gIHJlYWRvbmx5IGtleUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjY291bnQgSURzIHRoaXMgcGlwZWxpbmUgd2lsbCBkZXBsb3kgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQXJuIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHVzZWQgdG8gYWNjZXNzIHRoZSBzb3VyY2UgY29kZSByZXBvc2l0b3J5LiBJZiBub3Qgc2V0LCB0aGlzXG4gICAqIGNvbnN0cnVjdCBhc3N1bWVzIHRoZSByZXBvc2l0b3J5IGlzIGluIEFXUyBDb2RlQ29tbWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybj86IHN0cmluZztcblxuICAvKipcbiAgICogU291cmNlIGNvZGUgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHVzZSBpbnNpZGUgdGhlIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSBicmFuY2g6IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgc2VsZi1tdXRhdGlvbi4gVXNlZnVsIGZvciBjZGsgcGlwZWxpbmUgZGV2ZWxvcG1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNlbGZNdXRhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBkb2NrZXIgZm9yIHRoZSAnc3ludGgnIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckVuYWJsZWRGb3JTeW50aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBkb2NrZXIgZm9yIHRoZSBzZWxmLW11dGF0ZSBzdGVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJFbmFibGVkRm9yU2VsZk11dGF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVHlwZSBvZiBjb21wdXRlIHRvIHVzZSBmb3IgdGhpcyBidWlsZC4gRGVmYXVsdCBpcyBDb21wdXRlVHlwZS5TTUFMTC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXB1dGVUeXBlPzogQ29tcHV0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB0byB1c2UgZm9yIGJ1aWxkcy4gSWYgbm9uZSBpcyBzZWxlY3RlZCB0aGUgZGVmYXVsdCBkZWZpbmVkIGluIEFXUyBDREsgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2U/OiBJQnVpbGRJbWFnZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2xhY2sgY2hhbm5lbCBjb25maWd1cmF0aW9uIHRvIHVzZSBmb3Igbm90aWZpY2F0aW9ucy4gTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTbGFjayBjaGFubmVsIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBub3RpZmljYXRpb25zLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuLlxuICAgKi9cbiAgcmVhZG9ubHkgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbj86IElTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRvIHVzZSBmb3Igbm90aWZpY2F0aW9ucy4gTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggbm90aWZpY2F0aW9uVG9waWMuXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Ub3BpY0Fybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNOUyB0b3BpYyB0byB1c2UgZm9yIG5vdGlmaWNhdGlvbnMuIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIG5vdGlmaWNhdGlvblRvcGljQXJuLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uVG9waWM/OiBJVG9waWM7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIG5vdGlmaWNhdGlvbiBldmVudHMgdG8gcmVjZWl2ZS5EZWZhdWx0IGlzIERFRkFVTFRfRVZFTlRTXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL2NvbmNlcHRzLmh0bWwjZXZlbnRzLXJlZi1waXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uRXZlbnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgRmlsZVNldHMgdG8gcHV0IGluIG90aGVyIGRpcmVjdG9yaWVzXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5wdXRzPzogUmVjb3JkPHN0cmluZywgSUZpbGVTZXRQcm9kdWNlcj47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29tbWFuZHMgdG8gcnVuIGJlZm9yZSBpbnN0YWxsLiBJZiB5b3Ugb3ZlcnJpZGUgdGhlIGNvbW1hbmRzIHByb3BlcnR5LCB0aGlzIGhhcyBubyBlZmZlY3QuXG4gICAqL1xuICByZWFkb25seSBwcmVCdWlsZENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBkZWZhdWx0IGNvbW1hbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHVibGljIGFzc2V0cyBpbiBtdWx0aXBsZSBDb2RlQnVpbGQgcHJvamVjdHMuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoQXNzZXRzSW5QYXJhbGxlbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgbWFuYWdlciB0byB1c2Ugd2hlbiBleGVjdXRpbmcgQ0RLLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdGhlIENESyBwcm9qZWN0IGlzIGxvY2F0ZWQgaW4gdGhlIHJlcG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gXCIuXCJcbiAgICovXG4gIHJlYWRvbmx5IGNka0RpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogUG9saWN5IHN0YXRlbWVudHMgdG8gYWRkIHRvIHRoZSByb2xlIHVzZWQgYnkgc3ludGguXG4gICAqL1xuICByZWFkb25seSByb2xlUG9saWN5PzogUG9saWN5U3RhdGVtZW50W107XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkIGFjY2VzcyB0byB0aGUgcHJvdmlkZWQgQVdTIENvZGVBcnRpZmFjdCBkb21haW5zLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0RG9tYWlucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBhY2Nlc3MgdG8gdGhlIHByb3ZpZGVkIEFXUyBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgTm9kZSB0byB1c2UgaW4gdGhlIHBpcGVsaW5lLiBEZWZhdWx0IGlzIE5PREVfMjBcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVWZXJzaW9uPzogTm9kZVZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgR28gdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZ29WZXJzaW9uPzogR29WZXJzaW9uIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIEphdmEgdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgamF2YVZlcnNpb24/OiBKYXZhVmVyc2lvbiB8IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBEb3RuZXQgdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZG90bmV0VmVyc2lvbj86IERvdG5ldFZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgUHl0aG9uIHRvIGluc3RhbGwuIERlZmF1bHQgaXMgbm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHB5dGhvblZlcnNpb24/OiBQeXRob25WZXJzaW9uIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvbW1hbmRzIHRvIHJ1biBkdXJpbmcgdGhlIGluc3RhbGwgcGhhc2UuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xvbmUgdGhlIENvZGVDb21taXQgcmVwb3NpdG9yeSBpbnRvIHRoZSBDb2RlQnVpbGQgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgdXNlIG9mIFwiZG9ja2VyIGJ1aWxkeFwiIGluIHRoZSBhc3NldCBwdWJsaXNoaW5nIHN0ZXAuIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURvY2tlckJ1aWxkeE9uQXNzZXRQdWJsaXNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzYWJsZSBhdXRvbWF0aWMgdHJpZ2dlcmluZyBvbiBzb3VyY2UgY29kZSBjaGFuZ2VzLiBXaGVuIHRydWUsIHRoZSBwaXBlbGluZVxuICAgKiBtdXN0IGJlIG1hbnVhbGx5IHN0YXJ0ZWQuIFVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAoYXV0by10cmlnZ2VyIGVuYWJsZWQpXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQXV0b1RyaWdnZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHaXQgcHVzaCBmaWx0ZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIHBpcGVsaW5lIHRyaWdnZXIuXG4gICAqIEFsbG93cyBmaWx0ZXJpbmcgd2hpY2ggZ2l0IGV2ZW50cyB0cmlnZ2VyIHRoZSBwaXBlbGluZSBiYXNlZCBvbiBicmFuY2ggcGF0dGVybnMsXG4gICAqIGZpbGUgcGF0aHMsIG9yIHRhZyBwYXR0ZXJucy4gT25seSBhcHBsaWNhYmxlIHdoZW4gdXNpbmcgQ29kZVN0YXIgY29ubmVjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nLCBhbGwgcHVzaGVzIHRvIHRoZSBicmFuY2ggdHJpZ2dlciB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IGdpdFB1c2hGaWx0ZXI/OiBHaXRQdXNoRmlsdGVyW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJlcnVuIHRoZSBBV1MgQ29kZVBpcGVsaW5lIHBpcGVsaW5lIGFmdGVyIHlvdSB1cGRhdGUgaXQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSByZXN0YXJ0RXhlY3V0aW9uT25VcGRhdGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIGFic3RyYWN0aW9uIHRvIGVhc2UgQ0RLIHBpcGVsaW5lIGNyZWF0aW9uIGFuZCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrUGlwZWxpbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBwaXBlbGluZTogQ29kZVBpcGVsaW5lO1xuICByZWFkb25seSBwaXBlbGluZU5vdGlmaWNhdGlvblJ1bGU/OiBQaXBlbGluZU5vdGlmaWNhdGlvblJ1bGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENka1BpcGVsaW5lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZW5jcnlwdGlvbktleSA9IEtleS5mcm9tS2V5QXJuKHRoaXMsICdFbmNyeXB0aW9uS2V5JywgcHJvcHMua2V5QXJuKTtcblxuICAgIGNvbnN0IGFydGlmYWN0QnVja2V0ID0gbmV3IEFydGlmYWN0QnVja2V0KHRoaXMsICdBcnRpZmFjdEJ1Y2tldCcsIHtcbiAgICAgIGVuY3J5cHRpb25LZXksXG4gICAgICBhY2NvdW50SWRzOiBwcm9wcy5hY2NvdW50SWRzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdW5kZXJseWluZ1BpcGVsaW5lID0gbmV3IFBpcGVsaW5lKHRoaXMsICdQaXBlbGluZScsIHtcbiAgICAgIHBpcGVsaW5lVHlwZTogcHJvcHMucGlwZWxpbmVUeXBlID8/IFBpcGVsaW5lVHlwZS5WMixcbiAgICAgIGFydGlmYWN0QnVja2V0LFxuICAgICAgcGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICByZXN0YXJ0RXhlY3V0aW9uT25VcGRhdGU6IHByb3BzLnJlc3RhcnRFeGVjdXRpb25PblVwZGF0ZSxcbiAgICB9KTtcblxuICAgIGxldCBpbnB1dDogQ29kZVBpcGVsaW5lU291cmNlO1xuICAgIGlmIChwcm9wcy5jb25uZWN0aW9uQXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlucHV0ID0gQ29kZVBpcGVsaW5lU291cmNlLmNvbm5lY3Rpb24ocHJvcHMucmVwb3NpdG9yeSwgcHJvcHMuYnJhbmNoLCB7XG4gICAgICAgIGNvbm5lY3Rpb25Bcm46IHByb3BzLmNvbm5lY3Rpb25Bcm4sXG4gICAgICAgIC8vIFVzZWQgcGVyIHdvcmthcm91bmQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMTM5OSNpc3N1ZWNvbW1lbnQtMTM2NzE4MDY5NlxuICAgICAgICBjb2RlQnVpbGRDbG9uZU91dHB1dDogcHJvcHMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQgPz8gZmFsc2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHByb3BzLnJlcG9zaXRvcnkuc3RhcnRzV2l0aCgnYXJuOicpXG4gICAgICAgID8gUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeUFybih0aGlzLCAnUmVwb3NpdG9yeScsIHByb3BzLnJlcG9zaXRvcnkpXG4gICAgICAgIDogUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeU5hbWUodGhpcywgJ1JlcG9zaXRvcnknLCBwcm9wcy5yZXBvc2l0b3J5KTtcbiAgICAgIGlucHV0ID0gQ29kZVBpcGVsaW5lU291cmNlLmNvZGVDb21taXQocmVwb3NpdG9yeSwgcHJvcHMuYnJhbmNoLCB7XG4gICAgICAgIC8vIFVzZWQgcGVyIHdvcmthcm91bmQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMTM5OSNpc3N1ZWNvbW1lbnQtMTM2NzE4MDY5NlxuICAgICAgICBjb2RlQnVpbGRDbG9uZU91dHB1dDogcHJvcHMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQgPz8gZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja05hbWUgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgY29uc3QgY2RrRGlyZWN0b3J5ID0gcHJvcHMuY2RrRGlyZWN0b3J5ID8/ICcuJztcblxuICAgIGxldCBjb21tYW5kczogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBwcm9wcy5jb21tYW5kcztcbiAgICBpZiAoXG4gICAgICBjb21tYW5kcyA9PT0gdW5kZWZpbmVkICYmXG4gICAgICBwcm9wcy5wYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE1cbiAgICApIHtcbiAgICAgIGNvbW1hbmRzID0gW1xuICAgICAgICBgY2QgJHtjZGtEaXJlY3RvcnkgPz8gJy4nfWAsXG4gICAgICAgICducG0gLWcgaSBwbnBtJyxcbiAgICAgICAgJ3BucG0gaSAtLWZyb3plbi1sb2NrZmlsZSAtLXByZWZlci1vZmZsaW5lJyxcbiAgICAgICAgLi4uKHByb3BzLnByZUJ1aWxkQ29tbWFuZHMgPz8gW10pLFxuICAgICAgICAncG5wbSBydW4gYnVpbGQnLFxuICAgICAgICAncG5wbSBydW4gdGVzdCcsXG4gICAgICAgIGBwbnB4IGNkayBzeW50aCAke3N0YWNrTmFtZX1gLFxuICAgICAgXTtcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbW1hbmRzID0gW1xuICAgICAgICBgY2QgJHtjZGtEaXJlY3RvcnkgPz8gJy4nfWAsXG4gICAgICAgICducG0gY2kgLS1wcmVmZXItb2ZmbGluZScsXG4gICAgICAgIC4uLihwcm9wcy5wcmVCdWlsZENvbW1hbmRzID8/IFtdKSxcbiAgICAgICAgJ25wbSBydW4gYnVpbGQnLFxuICAgICAgICAnbnBtIHJ1biB0ZXN0JyxcbiAgICAgICAgYG5weCBjZGsgc3ludGggJHtzdGFja05hbWV9YCxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcblxuICAgIGNvbnN0IGNvZGVBcnRpZmFjdERvbWFpbnMgPSBwcm9wcy5jb2RlQXJ0aWZhY3REb21haW5zPy5tYXAoKGRvbWFpbikgPT4ge1xuICAgICAgcmV0dXJuIGRvbWFpbi5zdGFydHNXaXRoKCdhcm46YXdzJylcbiAgICAgICAgPyBkb21haW5cbiAgICAgICAgOiBBcm4uZm9ybWF0KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZXJ2aWNlOiAnY29kZWFydGlmYWN0JyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICdkb21haW4nLFxuICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGRvbWFpbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzID0gcHJvcHMuY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzPy5tYXAoXG4gICAgICAocmVwb3NpdG9yeSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVwb3NpdG9yeS5zdGFydHNXaXRoKCdhcm46YXdzJylcbiAgICAgICAgICA/IHJlcG9zaXRvcnlcbiAgICAgICAgICA6IEFybi5mb3JtYXQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiAnY29kZWFydGlmYWN0JyxcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogJ3JlcG9zaXRvcnknLFxuICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogcmVwb3NpdG9yeSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICApO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgcm9sZVBvbGljeSA9IHByb3BzLnJvbGVQb2xpY3kgPz8gW107XG4gICAgaWYgKGNvZGVBcnRpZmFjdERvbWFpbnMpIHtcbiAgICAgIHJvbGVQb2xpY3kucHVzaChcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBjb2RlQXJ0aWZhY3REb21haW5zLFxuICAgICAgICAgIGFjdGlvbnM6IFsnY29kZWFydGlmYWN0OkdldEF1dGhvcml6YXRpb25Ub2tlbiddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICByb2xlUG9saWN5LnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgYWN0aW9uczogWydzdHM6R2V0U2VydmljZUJlYXJlclRva2VuJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGNvZGVBcnRpZmFjdFJlcG9zaXRvcmllcykge1xuICAgICAgcm9sZVBvbGljeS5wdXNoKFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IGNvZGVBcnRpZmFjdFJlcG9zaXRvcmllcyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkRlc2NyaWJlUGFja2FnZVZlcnNpb24nLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpEZXNjcmliZVJlcG9zaXRvcnknLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpHZXRQYWNrYWdlVmVyc2lvblJlYWRtZScsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkdldFJlcG9zaXRvcnlFbmRwb2ludCcsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlcycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlVmVyc2lvbnMnLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpMaXN0UGFja2FnZVZlcnNpb25Bc3NldHMnLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpMaXN0UGFja2FnZVZlcnNpb25EZXBlbmRlbmNpZXMnLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpSZWFkRnJvbVJlcG9zaXRvcnknLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnBpcGVsaW5lID0gbmV3IENvZGVQaXBlbGluZSh0aGlzLCAnQ29kZVBpcGVsaW5lJywge1xuICAgICAgY29kZVBpcGVsaW5lOiB1bmRlcmx5aW5nUGlwZWxpbmUsXG4gICAgICBzZWxmTXV0YXRpb246IHByb3BzLnNlbGZNdXRhdGlvbiA/PyB0cnVlLFxuICAgICAgZG9ja2VyRW5hYmxlZEZvclN5bnRoOiBwcm9wcy5kb2NrZXJFbmFibGVkRm9yU3ludGggPz8gdHJ1ZSxcbiAgICAgIGRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb246IHByb3BzLmRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb24gPz8gdHJ1ZSxcbiAgICAgIHB1Ymxpc2hBc3NldHNJblBhcmFsbGVsOiBwcm9wcy5wdWJsaXNoQXNzZXRzSW5QYXJhbGxlbCA/PyBmYWxzZSxcbiAgICAgIHN5bnRoOiBuZXcgU2hlbGxTdGVwKCdTeW50aCcsIHtcbiAgICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogYCR7Y2RrRGlyZWN0b3J5fS9jZGsub3V0YCxcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGNvbW1hbmRzLFxuICAgICAgICBhZGRpdGlvbmFsSW5wdXRzOiBwcm9wcy5hZGRpdGlvbmFsSW5wdXRzID8/IHt9LFxuICAgICAgfSksXG4gICAgICBzeW50aENvZGVCdWlsZERlZmF1bHRzOiB7XG4gICAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICAgICAgICBjYWNoZToge1xuICAgICAgICAgICAgcGF0aHM6IFsnL3Jvb3QvLm5wbS8qKi8qJywgJy9yb290Ly5wbnBtLXN0b3JlLyoqLyonXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoYXNlczoge1xuICAgICAgICAgICAgaW5zdGFsbDoge1xuICAgICAgICAgICAgICAncnVudGltZS12ZXJzaW9ucyc6IHtcbiAgICAgICAgICAgICAgICBub2RlanM6IHByb3BzLm5vZGVWZXJzaW9uID8/IE5vZGVWZXJzaW9uLk5PREVfMjQsXG4gICAgICAgICAgICAgICAgZ286IHByb3BzLmdvVmVyc2lvbixcbiAgICAgICAgICAgICAgICBqYXZhOiBwcm9wcy5qYXZhVmVyc2lvbixcbiAgICAgICAgICAgICAgICBkb3RuZXQ6IHByb3BzLmRvdG5ldFZlcnNpb24sXG4gICAgICAgICAgICAgICAgcHl0aG9uOiBwcm9wcy5weXRob25WZXJzaW9uLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAnY29tbWFuZHMnOiBbJ25wbSBjb25maWcgc2V0IGZ1bmQgZmFsc2UnLCAnbnBtIC1nIGkgZXNidWlsZCddXG4gICAgICAgICAgICAgICAgLmNvbmNhdChwcm9wcy5hZGRpdGlvbmFsSW5zdGFsbENvbW1hbmRzID8/IFtdKVxuICAgICAgICAgICAgICAgIC5jb25jYXQoWydub2RlIC0tdmVyc2lvbiddKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICAvLyBQcml2aWxlZ2VkIG1vZGUgaXMgbm90IGFsbG93ZWQgaW4gbGFtYmRhXG4gICAgICAgICAgcHJpdmlsZWdlZDpcbiAgICAgICAgICAgICFwcm9wcy5jb21wdXRlVHlwZSB8fCBwcm9wcy5jb21wdXRlVHlwZS5pbmNsdWRlcygnTEFNQkRBJyksXG4gICAgICAgICAgY29tcHV0ZVR5cGU6IHByb3BzLmNvbXB1dGVUeXBlID8/IENvbXB1dGVUeXBlLlNNQUxMLFxuICAgICAgICAgIGJ1aWxkSW1hZ2U6IHByb3BzLmJ1aWxkSW1hZ2UgPz8gTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzUsXG4gICAgICAgIH0sXG4gICAgICAgIHJvbGVQb2xpY3ksXG4gICAgICB9LFxuICAgICAgYXNzZXRQdWJsaXNoaW5nQ29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgIC4uLigocHJvcHMuZW5hYmxlRG9ja2VyQnVpbGR4T25Bc3NldFB1Ymxpc2ggPz8gdHJ1ZSlcbiAgICAgICAgICAgICAgICA/IHtDREtfRE9DS0VSOiAnL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJ31cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6XG4gICAgICAgICAgICAgICAgKHByb3BzLmVuYWJsZURvY2tlckJ1aWxkeE9uQXNzZXRQdWJsaXNoID8/IHRydWUpXG4gICAgICAgICAgICAgICAgICA/IERPQ0tFUl9CVUlMRFhfU0VUVVBfQ09NTUFORFNcbiAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIERpc2FibGUgYXV0b21hdGljIHRyaWdnZXJpbmcgaWYgcmVxdWVzdGVkXG4gICAgaWYgKHByb3BzLmRpc2FibGVBdXRvVHJpZ2dlcikge1xuICAgICAgY29uc3QgY2ZuUGlwZWxpbmUgPSB1bmRlcmx5aW5nUGlwZWxpbmUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUGlwZWxpbmU7XG4gICAgICBjZm5QaXBlbGluZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgICAnU3RhZ2VzLjAuQWN0aW9ucy4wLkNvbmZpZ3VyYXRpb24uVHJpZ2dlckNvbmZpZ3VyYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgUHJvdmlkZXJUeXBlOiAnQ29kZVN0YXJTb3VyY2VDb25uZWN0aW9uJyxcbiAgICAgICAgICBUcmlnZ2VyRXZlbnRzOiAnTk9ORScsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IEdpdFB1c2hGaWx0ZXIgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuZ2l0UHVzaEZpbHRlciAmJiBwcm9wcy5naXRQdXNoRmlsdGVyLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNmblBpcGVsaW5lID0gdW5kZXJseWluZ1BpcGVsaW5lLm5vZGUuZGVmYXVsdENoaWxkIGFzIENmblBpcGVsaW5lO1xuICAgICAgY2ZuUGlwZWxpbmUuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgICAgJ1N0YWdlcy4wLkFjdGlvbnMuMC5Db25maWd1cmF0aW9uLlRyaWdnZXJDb25maWd1cmF0aW9uLkdpdENvbmZpZ3VyYXRpb24uUHVzaCcsXG4gICAgICAgIHByb3BzLmdpdFB1c2hGaWx0ZXIubWFwKChmaWx0ZXIpID0+ICh7XG4gICAgICAgICAgQnJhbmNoZXM6IGZpbHRlci5icmFuY2hlc0luY2x1ZGVzXG4gICAgICAgICAgICA/IHtJbmNsdWRlczogZmlsdGVyLmJyYW5jaGVzSW5jbHVkZXN9XG4gICAgICAgICAgICA6IGZpbHRlci5icmFuY2hlc0V4Y2x1ZGVzXG4gICAgICAgICAgICAgID8ge0V4Y2x1ZGVzOiBmaWx0ZXIuYnJhbmNoZXNFeGNsdWRlc31cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgRmlsZVBhdGhzOiBmaWx0ZXIuZmlsZVBhdGhzSW5jbHVkZXNcbiAgICAgICAgICAgID8ge0luY2x1ZGVzOiBmaWx0ZXIuZmlsZVBhdGhzSW5jbHVkZXN9XG4gICAgICAgICAgICA6IGZpbHRlci5maWxlUGF0aHNFeGNsdWRlc1xuICAgICAgICAgICAgICA/IHtFeGNsdWRlczogZmlsdGVyLmZpbGVQYXRoc0V4Y2x1ZGVzfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBUYWdzOiBmaWx0ZXIudGFnc0luY2x1ZGVzXG4gICAgICAgICAgICA/IHtJbmNsdWRlczogZmlsdGVyLnRhZ3NJbmNsdWRlc31cbiAgICAgICAgICAgIDogZmlsdGVyLnRhZ3NFeGNsdWRlc1xuICAgICAgICAgICAgICA/IHtFeGNsdWRlczogZmlsdGVyLnRhZ3NFeGNsdWRlc31cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHBpcGVsaW5lIG5vdGlmaWNhdGlvbnNcbiAgICBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbiAmJiBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdPbmx5IG9uZSBvZiBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uIGFuZCBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuIGNhbiBiZSBzcGVjaWZpZWQnLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLm5vdGlmaWNhdGlvblRvcGljICYmIHByb3BzLm5vdGlmaWNhdGlvblRvcGljQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdPbmx5IG9uZSBvZiBub3RpZmljYXRpb25Ub3BpYyBhbmQgbm90aWZpY2F0aW9uVG9waWNBcm4gY2FuIGJlIHNwZWNpZmllZCcsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uIHx8XG4gICAgICBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuIHx8XG4gICAgICBwcm9wcy5ub3RpZmljYXRpb25Ub3BpY0FybiB8fFxuICAgICAgcHJvcHMubm90aWZpY2F0aW9uVG9waWNcbiAgICApIHtcbiAgICAgIHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlID0gbmV3IFBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ05vdGlmaWNhdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudHM6IHByb3BzLm5vdGlmaWNhdGlvbkV2ZW50cyxcbiAgICAgICAgICBzb3VyY2U6IHVuZGVybHlpbmdQaXBlbGluZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbikge1xuICAgICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRTbGFja0NoYW5uZWwoXG4gICAgICAgICAgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybikge1xuICAgICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRTbGFja0NoYW5uZWxBcm4oXG4gICAgICAgICAgJ1NsYWNrQ2hhbm5lbCcsXG4gICAgICAgICAgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5ub3RpZmljYXRpb25Ub3BpYykge1xuICAgICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRUb3BpYyhwcm9wcy5ub3RpZmljYXRpb25Ub3BpYyk7XG4gICAgICAgIHByb3BzLm5vdGlmaWNhdGlvblRvcGljLmdyYW50UHVibGlzaCh1bmRlcmx5aW5nUGlwZWxpbmUucm9sZSk7XG4gICAgICB9IGVsc2UgaWYgKHByb3BzLm5vdGlmaWNhdGlvblRvcGljQXJuKSB7XG4gICAgICAgIGNvbnN0IHRvcGljID0gdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUuYWRkVG9waWNBcm4oXG4gICAgICAgICAgJ05vdGlmaWNhdGlvblRvcGljJyxcbiAgICAgICAgICBwcm9wcy5ub3RpZmljYXRpb25Ub3BpY0FybixcbiAgICAgICAgKTtcbiAgICAgICAgdG9waWMuZ3JhbnRQdWJsaXNoKHVuZGVybHlpbmdQaXBlbGluZS5yb2xlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRTdGFnZShzdGFnZTogU3RhZ2UsIG9wdGlvbnM/OiBBZGRTdGFnZU9wdHMpOiBTdGFnZURlcGxveW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBpcGVsaW5lLmFkZFN0YWdlKHN0YWdlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFkZFdhdmUoaWQ6IHN0cmluZywgb3B0aW9ucz86IFdhdmVPcHRpb25zKTogV2F2ZSB7XG4gICAgcmV0dXJuIHRoaXMucGlwZWxpbmUuYWRkV2F2ZShpZCwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy1jb2RlcGlwZWxpbmUvbGliL2Nkay1waXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsbUVBS3NDO0FBQ3RDLGlEQUF3QztBQUN4Qyx1REFBaUQ7QUFDakQscURBUytCO0FBQy9CLDZEQUttQztBQUNuQyw2RUFBc0U7QUFDdEUsNkNBQThDO0FBQzlDLCtEQUFzRDtBQUN0RCxtQ0FBMkM7QUFDM0MsaURBQTREO0FBSTVEOzs7R0FHRztBQUNILElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtJQUNkLDZCQUFjLENBQUE7SUFDZCw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtBQUNoQixDQUFDLEVBTlcsV0FBVywyQkFBWCxXQUFXLFFBTXRCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxTQUFTLHlCQUFULFNBQVMsUUFhcEI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDckIsbUNBQW9CLENBQUE7SUFDcEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQU5XLFdBQVcsMkJB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O1lBQ0QsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDaEUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQ3JELG1CQUFtQixFQUNuQixLQUFLLENBQUMsb0JBQW9CLENBQzNCLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWSxFQUFFLE9BQXNCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVSxFQUFFLE9BQXFCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQTlSRCxrQ0E4UkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBDZm5QaXBlbGluZSxcbiAgR2l0UHVzaEZpbHRlcixcbiAgUGlwZWxpbmUsXG4gIFBpcGVsaW5lVHlwZSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZSc7XG5pbXBvcnQge0tleX0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQge0FydGlmYWN0QnVja2V0fSBmcm9tICcuL2FydGlmYWN0LWJ1Y2tldCc7XG5pbXBvcnQge1xuICBBZGRTdGFnZU9wdHMsXG4gIENvZGVQaXBlbGluZSxcbiAgQ29kZVBpcGVsaW5lU291cmNlLFxuICBJRmlsZVNldFByb2R1Y2VyLFxuICBTaGVsbFN0ZXAsXG4gIFN0YWdlRGVwbG95bWVudCxcbiAgV2F2ZSxcbiAgV2F2ZU9wdGlvbnMsXG59IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG4gIENvbXB1dGVUeXBlLFxuICBJQnVpbGRJbWFnZSxcbiAgTGludXhCdWlsZEltYWdlLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7UGlwZWxpbmVOb3RpZmljYXRpb25SdWxlfSBmcm9tICcuL3BpcGVsaW5lLW5vdGlmaWNhdGlvbi1ydWxlJztcbmltcG9ydCB7QXJuLCBTdGFjaywgU3RhZ2V9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7UmVwb3NpdG9yeX0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVjb21taXQnO1xuaW1wb3J0IHtOb2RlUGFja2FnZU1hbmFnZXJ9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHtFZmZlY3QsIFBvbGljeVN0YXRlbWVudH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge0lTbGFja0NoYW5uZWxDb25maWd1cmF0aW9ufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2hhdGJvdCc7XG5pbXBvcnQge0lUb3BpY30gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5cbi8qKlxuICogTm9kZSBydW50aW1lcyBzdXBwb3J0ZWQgYnkgQ29kZWJCdWlsZFxuICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYnVpbGQvbGF0ZXN0L3VzZXJndWlkZS9hdmFpbGFibGUtcnVudGltZXMuaHRtbFxuICovXG5leHBvcnQgZW51bSBOb2RlVmVyc2lvbiB7XG4gIE5PREVfMTYgPSAnMTYnLFxuICBOT0RFXzE4ID0gJzE4JyxcbiAgTk9ERV8yMCA9ICcyMCcsXG4gIE5PREVfMjIgPSAnMjInLFxuICBOT0RFXzI0ID0gJzI0Jyxcbn1cblxuLyoqXG4gKiBHbyBydW50aW1lcyBzdXBwb3J0ZWQgYnkgQ29kZUJ1aWxkXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2F2YWlsYWJsZS1ydW50aW1lcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIEdvVmVyc2lvbiB7XG4gIEdPXzFfMTIgPSAnMS4xMicsXG4gIEdPXzFfMTMgPSAnMS4xMycsXG4gIEdPXzFfMTQgPSAnMS4xNCcsXG4gIEdPXzFfMTUgPSAnMS4xNScsXG4gIEdPXzFfMTYgPSAnMS4xNicsXG4gIEdPXzFfMTcgPSAnMS4xNycsXG4gIEdPXzFfMTggPSAnMS4xOCcsXG4gIEdPXzFfMjAgPSAnMS4yMCcsXG4gIEdPXzFfMjEgPSAnMS4yMScsXG4gIEdPXzFfMjIgPSAnMS4yMicsXG4gIEdPXzFfMjMgPSAnMS4yMycsXG4gIEdPXzFfMjQgPSAnMS4yNCcsXG59XG5cbi8qKlxuICogSmF2YSBydW50aW1lcyBzdXBwb3J0ZWQgYnkgQ29kZUJ1aWxkXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2F2YWlsYWJsZS1ydW50aW1lcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIEphdmFWZXJzaW9uIHtcbiAgSkFWQV84ID0gJ2NvcnJldHRvOCcsXG4gIEpBVkFfMTEgPSAnY29ycmV0dG8xMScsXG4gIEpBVkFfMTYgPSAnY29ycmV0dG8xNycsXG4gIEpBVkFfMjEgPSAnY29ycmV0dG8yMScsXG4gIEpBVkFfMjUgPSAnY29ycmV0dG8yNScsXG59XG5cbi8qKlxuICogRG90bmV0IHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlQnVpbGRcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWJ1aWxkL2xhdGVzdC91c2VyZ3VpZGUvYXZhaWxhYmxlLXJ1bnRpbWVzLmh0bWxkb3RuZXRcbiAqL1xuZXhwb3J0IGVudW0gRG90bmV0VmVyc2lvbiB7XG4gIERPVE5FVF8zXzEgPSAnMy4xJyxcbiAgRE9UTkVUXzVfMCA9ICc1LjAnLFxuICBET1RORVRfNl8wID0gJzYuMCcsXG4gIERPVE5FVF84XzAgPSAnOC4wJyxcbn1cblxuZXhwb3J0IGVudW0gUHl0aG9uVmVyc2lvbiB7XG4gIFBZVEhPTl8zXzcgPSAnMy43JyxcbiAgUFlUSE9OXzNfOCA9ICczLjgnLFxuICBQWVRIT05fM185ID0gJzMuOScsXG4gIFBZVEhPTl8zXzEwID0gJzMuMTAnLFxuICBQWVRIT05fM18xMSA9ICczLjExJyxcbiAgUFlUSE9OXzNfMTIgPSAnMy4xMicsXG4gIFBZVEhPTl8zXzEzID0gJzMuMTMnLFxuICBQWVRIT05fM18xNCA9ICczLjE0Jyxcbn1cblxuY29uc3QgRE9DS0VSX0JVSUxEWF9TRVRVUF9DT01NQU5EUyA9IFtcbiAgXCJlY2hvICcjIS9iaW4vYmFzaCcgPiAvdXNyL2xvY2FsL2Jpbi9idWlsZHguc2hcIixcbiAgJ2VjaG8gXFwnW1sgXCIkMVwiID09IFwiYnVpbGRcIiBdXSAmJiBkb2NrZXIgYnVpbGR4IGJ1aWxkIC0tbG9hZCBcIiR7QDoyfVwiIHx8IGRvY2tlciBcIiRAXCJcXCcgPj4gL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJyxcbiAgJ2NobW9kICt4IC91c3IvbG9jYWwvYmluL2J1aWxkeC5zaCcsXG4gICdlY2hvIFwiQXJjaGl0ZWN0dXJlOiAkKHVuYW1lIC1tKVwiJyxcbiAgJ2RvY2tlciBidWlsZHggY3JlYXRlIC0tdXNlIC0tbmFtZSBtdWx0aS1hcmNoLWJ1aWxkZXInLFxuICAnZG9ja2VyIGJ1aWxkeCBscycsXG5dO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENka1BpcGVsaW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrUGlwZWxpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBDREsgd2lsbCBuYW1lIHRoZSBwaXBlbGluZS4gU2V0IHRoaXMgdG8gb3ZlcnJpZGUgdGhlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgcGlwZWxpbmVUeXBlPzogUGlwZWxpbmVUeXBlO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBDREsgd2lsbCBjcmVhdGUgS01TIGtleXMgZm9yIGNyb3NzIGFjY291bnQgZGVwbG95bWVudHMuIFRoaXNcbiAgICogY2FuIGJlIGNvc3RseSBpZiB5b3UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiBwaXBlbGluZXMuIFRoaXMgcHJvcGVydHlcbiAgICogYWxsb3dzIGEgY29tbW9uIGtleSB0byBiZSBzaGFyZWQgYWNyb3NzIHBpcGVsaW5lcy5cbiAgICpcbiAgICogWW91IG11c3QgY2hhbmdlIEBhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmU6Y3Jvc3NBY2NvdW50S2V5c0RlZmF1bHRWYWx1ZVRvRmFsc2UgdG8gZmFsc2UgaW4geW91ciBjZGsuanNvblxuICAgKiBmaWxlIHRvIGF2b2lkIGVycm9ycy5cbiAgICovXG4gIHJlYWRvbmx5IGtleUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjY291bnQgSURzIHRoaXMgcGlwZWxpbmUgd2lsbCBkZXBsb3kgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQXJuIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHVzZWQgdG8gYWNjZXNzIHRoZSBzb3VyY2UgY29kZSByZXBvc2l0b3J5LiBJZiBub3Qgc2V0LCB0aGlzXG4gICAqIGNvbnN0cnVjdCBhc3N1bWVzIHRoZSByZXBvc2l0b3J5IGlzIGluIEFXUyBDb2RlQ29tbWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybj86IHN0cmluZztcblxuICAvKipcbiAgICogU291cmNlIGNvZGUgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHVzZSBpbnNpZGUgdGhlIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSBicmFuY2g6IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgc2VsZi1tdXRhdGlvbi4gVXNlZnVsIGZvciBjZGsgcGlwZWxpbmUgZGV2ZWxvcG1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNlbGZNdXRhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBkb2NrZXIgZm9yIHRoZSAnc3ludGgnIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckVuYWJsZWRGb3JTeW50aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBkb2NrZXIgZm9yIHRoZSBzZWxmLW11dGF0ZSBzdGVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJFbmFibGVkRm9yU2VsZk11dGF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVHlwZSBvZiBjb21wdXRlIHRvIHVzZSBmb3IgdGhpcyBidWlsZC4gRGVmYXVsdCBpcyBDb21wdXRlVHlwZS5TTUFMTC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXB1dGVUeXBlPzogQ29tcHV0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB0byB1c2UgZm9yIGJ1aWxkcy4gSWYgbm9uZSBpcyBzZWxlY3RlZCB0aGUgZGVmYXVsdCBkZWZpbmVkIGluIEFXUyBDREsgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2U/OiBJQnVpbGRJbWFnZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2xhY2sgY2hhbm5lbCBjb25maWd1cmF0aW9uIHRvIHVzZSBmb3Igbm90aWZpY2F0aW9ucy4gTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTbGFjayBjaGFubmVsIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBub3RpZmljYXRpb25zLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuLlxuICAgKi9cbiAgcmVhZG9ubHkgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbj86IElTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRvIHVzZSBmb3Igbm90aWZpY2F0aW9ucy4gTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggbm90aWZpY2F0aW9uVG9waWMuXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Ub3BpY0Fybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNOUyB0b3BpYyB0byB1c2UgZm9yIG5vdGlmaWNhdGlvbnMuIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIG5vdGlmaWNhdGlvblRvcGljQXJuLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uVG9waWM/OiBJVG9waWM7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIG5vdGlmaWNhdGlvbiBldmVudHMgdG8gcmVjZWl2ZS5EZWZhdWx0IGlzIERFRkFVTFRfRVZFTlRTXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL2NvbmNlcHRzLmh0bWwjZXZlbnRzLXJlZi1waXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uRXZlbnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgRmlsZVNldHMgdG8gcHV0IGluIG90aGVyIGRpcmVjdG9yaWVzXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5wdXRzPzogUmVjb3JkPHN0cmluZywgSUZpbGVTZXRQcm9kdWNlcj47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29tbWFuZHMgdG8gcnVuIGJlZm9yZSBpbnN0YWxsLiBJZiB5b3Ugb3ZlcnJpZGUgdGhlIGNvbW1hbmRzIHByb3BlcnR5LCB0aGlzIGhhcyBubyBlZmZlY3QuXG4gICAqL1xuICByZWFkb25seSBwcmVCdWlsZENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBkZWZhdWx0IGNvbW1hbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHVibGljIGFzc2V0cyBpbiBtdWx0aXBsZSBDb2RlQnVpbGQgcHJvamVjdHMuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoQXNzZXRzSW5QYXJhbGxlbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgbWFuYWdlciB0byB1c2Ugd2hlbiBleGVjdXRpbmcgQ0RLLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdGhlIENESyBwcm9qZWN0IGlzIGxvY2F0ZWQgaW4gdGhlIHJlcG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gXCIuXCJcbiAgICovXG4gIHJlYWRvbmx5IGNka0RpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogUG9saWN5IHN0YXRlbWVudHMgdG8gYWRkIHRvIHRoZSByb2xlIHVzZWQgYnkgc3ludGguXG4gICAqL1xuICByZWFkb25seSByb2xlUG9saWN5PzogUG9saWN5U3RhdGVtZW50W107XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkIGFjY2VzcyB0byB0aGUgcHJvdmlkZWQgQVdTIENvZGVBcnRpZmFjdCBkb21haW5zLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0RG9tYWlucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBhY2Nlc3MgdG8gdGhlIHByb3ZpZGVkIEFXUyBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgTm9kZSB0byB1c2UgaW4gdGhlIHBpcGVsaW5lLiBEZWZhdWx0IGlzIE5PREVfMjBcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVWZXJzaW9uPzogTm9kZVZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgR28gdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZ29WZXJzaW9uPzogR29WZXJzaW9uIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIEphdmEgdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgamF2YVZlcnNpb24/OiBKYXZhVmVyc2lvbiB8IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBEb3RuZXQgdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZG90bmV0VmVyc2lvbj86IERvdG5ldFZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgUHl0aG9uIHRvIGluc3RhbGwuIERlZmF1bHQgaXMgbm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHB5dGhvblZlcnNpb24/OiBQeXRob25WZXJzaW9uIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvbW1hbmRzIHRvIHJ1biBkdXJpbmcgdGhlIGluc3RhbGwgcGhhc2UuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xvbmUgdGhlIENvZGVDb21taXQgcmVwb3NpdG9yeSBpbnRvIHRoZSBDb2RlQnVpbGQgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgdXNlIG9mIFwiZG9ja2VyIGJ1aWxkeFwiIGluIHRoZSBhc3NldCBwdWJsaXNoaW5nIHN0ZXAuIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURvY2tlckJ1aWxkeE9uQXNzZXRQdWJsaXNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzYWJsZSBhdXRvbWF0aWMgdHJpZ2dlcmluZyBvbiBzb3VyY2UgY29kZSBjaGFuZ2VzLiBXaGVuIHRydWUsIHRoZSBwaXBlbGluZVxuICAgKiBtdXN0IGJlIG1hbnVhbGx5IHN0YXJ0ZWQuIFVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAoYXV0by10cmlnZ2VyIGVuYWJsZWQpXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQXV0b1RyaWdnZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHaXQgcHVzaCBmaWx0ZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIHBpcGVsaW5lIHRyaWdnZXIuXG4gICAqIEFsbG93cyBmaWx0ZXJpbmcgd2hpY2ggZ2l0IGV2ZW50cyB0cmlnZ2VyIHRoZSBwaXBlbGluZSBiYXNlZCBvbiBicmFuY2ggcGF0dGVybnMsXG4gICAqIGZpbGUgcGF0aHMsIG9yIHRhZyBwYXR0ZXJucy4gT25seSBhcHBsaWNhYmxlIHdoZW4gdXNpbmcgQ29kZVN0YXIgY29ubmVjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nLCBhbGwgcHVzaGVzIHRvIHRoZSBicmFuY2ggdHJpZ2dlciB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IGdpdFB1c2hGaWx0ZXI/OiBHaXRQdXNoRmlsdGVyW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJlcnVuIHRoZSBBV1MgQ29kZVBpcGVsaW5lIHBpcGVsaW5lIGFmdGVyIHlvdSB1cGRhdGUgaXQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSByZXN0YXJ0RXhlY3V0aW9uT25VcGRhdGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIGFic3RyYWN0aW9uIHRvIGVhc2UgQ0RLIHBpcGVsaW5lIGNyZWF0aW9uIGFuZCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrUGlwZWxpbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBwaXBlbGluZTogQ29kZVBpcGVsaW5lO1xuICByZWFkb25seSBwaXBlbGluZU5vdGlmaWNhdGlvblJ1bGU/OiBQaXBlbGluZU5vdGlmaWNhdGlvblJ1bGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENka1BpcGVsaW5lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZW5jcnlwdGlvbktleSA9IEtleS5mcm9tS2V5QXJuKHRoaXMsICdFbmNyeXB0aW9uS2V5JywgcHJvcHMua2V5QXJuKTtcblxuICAgIGNvbnN0IGFydGlmYWN0QnVja2V0ID0gbmV3IEFydGlmYWN0QnVja2V0KHRoaXMsICdBcnRpZmFjdEJ1Y2tldCcsIHtcbiAgICAgIGVuY3J5cHRpb25LZXksXG4gICAgICBhY2NvdW50SWRzOiBwcm9wcy5hY2NvdW50SWRzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdW5kZXJseWluZ1BpcGVsaW5lID0gbmV3IFBpcGVsaW5lKHRoaXMsICdQaXBlbGluZScsIHtcbiAgICAgIHBpcGVsaW5lVHlwZTogcHJvcHMucGlwZWxpbmVUeXBlID8/IFBpcGVsaW5lVHlwZS5WMixcbiAgICAgIGFydGlmYWN0QnVja2V0LFxuICAgICAgcGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICByZXN0YXJ0RXhlY3V0aW9uT25VcGRhdGU6IHByb3BzLnJlc3RhcnRFeGVjdXRpb25PblVwZGF0ZSxcbiAgICB9KTtcblxuICAgIGxldCBpbnB1dDogQ29kZVBpcGVsaW5lU291cmNlO1xuICAgIGlmIChwcm9wcy5jb25uZWN0aW9uQXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlucHV0ID0gQ29kZVBpcGVsaW5lU291cmNlLmNvbm5lY3Rpb24ocHJvcHMucmVwb3NpdG9yeSwgcHJvcHMuYnJhbmNoLCB7XG4gICAgICAgIGNvbm5lY3Rpb25Bcm46IHByb3BzLmNvbm5lY3Rpb25Bcm4sXG4gICAgICAgIC8vIFVzZWQgcGVyIHdvcmthcm91bmQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMTM5OSNpc3N1ZWNvbW1lbnQtMTM2NzE4MDY5NlxuICAgICAgICBjb2RlQnVpbGRDbG9uZU91dHB1dDogcHJvcHMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQgPz8gZmFsc2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHByb3BzLnJlcG9zaXRvcnkuc3RhcnRzV2l0aCgnYXJuOicpXG4gICAgICAgID8gUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeUFybih0aGlzLCAnUmVwb3NpdG9yeScsIHByb3BzLnJlcG9zaXRvcnkpXG4gICAgICAgIDogUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeU5hbWUodGhpcywgJ1JlcG9zaXRvcnknLCBwcm9wcy5yZXBvc2l0b3J5KTtcbiAgICAgIGlucHV0ID0gQ29kZVBpcGVsaW5lU291cmNlLmNvZGVDb21taXQocmVwb3NpdG9yeSwgcHJvcHMuYnJhbmNoLCB7XG4gICAgICAgIC8vIFVzZWQgcGVyIHdvcmthcm91bmQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMTM5OSNpc3N1ZWNvbW1lbnQtMTM2NzE4MDY5NlxuICAgICAgICBjb2RlQnVpbGRDbG9uZU91dHB1dDogcHJvcHMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQgPz8gZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja05hbWUgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgY29uc3QgY2RrRGlyZWN0b3J5ID0gcHJvcHMuY2RrRGlyZWN0b3J5ID8/ICcuJztcblxuICAgIGxldCBjb21tYW5kczogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBwcm9wcy5jb21tYW5kcztcbiAgICBpZiAoXG4gICAgICBjb21tYW5kcyA9PT0gdW5kZWZpbmVkICYmXG4gICAgICBwcm9wcy5wYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE1cbiAgICApIHtcbiAgICAgIGNvbW1hbmRzID0gW1xuICAgICAgICBgY2QgJHtjZGtEaXJlY3RvcnkgPz8gJy4nfWAsXG4gICAgICAgICducG0gLWcgaSBwbnBtJyxcbiAgICAgICAgJ3BucG0gaSAtLWZyb3plbi1sb2NrZmlsZSAtLXByZWZlci1vZmZsaW5lJyxcbiAgICAgICAgLi4uKHByb3BzLnByZUJ1aWxkQ29tbWFuZHMgPz8gW10pLFxuICAgICAgICAncG5wbSBydW4gYnVpbGQnLFxuICAgICAgICAncG5wbSBydW4gdGVzdCcsXG4gICAgICAgIGBwbnB4IGNkayBzeW50aCAke3N0YWNrTmFtZX1gLFxuICAgICAgXTtcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbW1hbmRzID0gW1xuICAgICAgICBgY2QgJHtjZGtEaXJlY3RvcnkgPz8gJy4nfWAsXG4gICAgICAgICducG0gY2kgLS1wcmVmZXItb2ZmbGluZScsXG4gICAgICAgIC4uLihwcm9wcy5wcmVCdWlsZENvbW1hbmRzID8/IFtdKSxcbiAgICAgICAgJ25wbSBydW4gYnVpbGQnLFxuICAgICAgICAnbnBtIHJ1biB0ZXN0JyxcbiAgICAgICAgYG5weCBjZGsgc3ludGggJHtzdGFja05hbWV9YCxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcblxuICAgIGNvbnN0IGNvZGVBcnRpZmFjdERvbWFpbnMgPSBwcm9wcy5jb2RlQXJ0aWZhY3REb21haW5zPy5tYXAoKGRvbWFpbikgPT4ge1xuICAgICAgcmV0dXJuIGRvbWFpbi5zdGFydHNXaXRoKCdhcm46YXdzJylcbiAgICAgICAgPyBkb21haW5cbiAgICAgICAgOiBBcm4uZm9ybWF0KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZXJ2aWNlOiAnY29kZWFydGlmYWN0JyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICdkb21haW4nLFxuICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGRvbWFpbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzID0gcHJvcHMuY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzPy5tYXAoXG4gICAgICAocmVwb3NpdG9yeSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVwb3NpdG9yeS5zdGFydHNXaXRoKCdhcm46YXdzJylcbiAgICAgICAgICA/IHJlcG9zaXRvcnlcbiAgICAgICAgICA6IEFybi5mb3JtYXQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiAnY29kZWFydGlmYWN0JyxcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogJ3JlcG9zaXRvcnknLFxuICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogcmVwb3NpdG9yeSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICApO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgcm9sZVBvbGljeSA9IHByb3BzLnJvbGVQb2xpY3kgPz8gW107XG4gICAgaWYgKGNvZGVBcnRpZmFjdERvbWFpbnMpIHtcbiAgICAgIHJvbGVQb2xpY3kucHVzaChcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBjb2RlQXJ0aWZhY3REb21haW5zLFxuICAgICAgICAgIGFjdGlvbnM6IFsnY29kZWFydGlmYWN0OkdldEF1dGhvcml6YXRpb25Ub2tlbiddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICByb2xlUG9saWN5LnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgYWN0aW9uczogWydzdHM6R2V0U2VydmljZUJlYXJlclRva2VuJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGNvZGVBcnRpZmFjdFJlcG9zaXRvcmllcykge1xuICAgICAgcm9sZVBvbGljeS5wdXNoKFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IGNvZGVBcnRpZmFjdFJlcG9zaXRvcmllcyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkRlc2NyaWJlUGFja2FnZVZlcnNpb24nLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpEZXNjcmliZVJlcG9zaXRvcnknLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpHZXRQYWNrYWdlVmVyc2lvblJlYWRtZScsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkdldFJlcG9zaXRvcnlFbmRwb2ludCcsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlcycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlVmVyc2lvbnMnLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpMaXN0UGFja2FnZVZlcnNpb25Bc3NldHMnLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpMaXN0UGFja2FnZVZlcnNpb25EZXBlbmRlbmNpZXMnLFxuICAgICAgICAgICAgJ2NvZGVhcnRpZmFjdDpSZWFkRnJvbVJlcG9zaXRvcnknLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnBpcGVsaW5lID0gbmV3IENvZGVQaXBlbGluZSh0aGlzLCAnQ29kZVBpcGVsaW5lJywge1xuICAgICAgY29kZVBpcGVsaW5lOiB1bmRlcmx5aW5nUGlwZWxpbmUsXG4gICAgICBzZWxmTXV0YXRpb246IHByb3BzLnNlbGZNdXRhdGlvbiA/PyB0cnVlLFxuICAgICAgZG9ja2VyRW5hYmxlZEZvclN5bnRoOiBwcm9wcy5kb2NrZXJFbmFibGVkRm9yU3ludGggPz8gdHJ1ZSxcbiAgICAgIGRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb246IHByb3BzLmRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb24gPz8gdHJ1ZSxcbiAgICAgIHB1Ymxpc2hBc3NldHNJblBhcmFsbGVsOiBwcm9wcy5wdWJsaXNoQXNzZXRzSW5QYXJhbGxlbCA/PyBmYWxzZSxcbiAgICAgIHN5bnRoOiBuZXcgU2hlbGxTdGVwKCdTeW50aCcsIHtcbiAgICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogYCR7Y2RrRGlyZWN0b3J5fS9jZGsub3V0YCxcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGNvbW1hbmRzLFxuICAgICAgICBhZGRpdGlvbmFsSW5wdXRzOiBwcm9wcy5hZGRpdGlvbmFsSW5wdXRzID8/IHt9LFxuICAgICAgfSksXG4gICAgICBzeW50aENvZGVCdWlsZERlZmF1bHRzOiB7XG4gICAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICAgICAgICBjYWNoZToge1xuICAgICAgICAgICAgcGF0aHM6IFsnL3Jvb3QvLm5wbS8qKi8qJywgJy9yb290Ly5wbnBtLXN0b3JlLyoqLyonXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoYXNlczoge1xuICAgICAgICAgICAgaW5zdGFsbDoge1xuICAgICAgICAgICAgICAncnVudGltZS12ZXJzaW9ucyc6IHtcbiAgICAgICAgICAgICAgICBub2RlanM6IHByb3BzLm5vZGVWZXJzaW9uID8/IE5vZGVWZXJzaW9uLk5PREVfMjQsXG4gICAgICAgICAgICAgICAgZ286IHByb3BzLmdvVmVyc2lvbixcbiAgICAgICAgICAgICAgICBqYXZhOiBwcm9wcy5qYXZhVmVyc2lvbixcbiAgICAgICAgICAgICAgICBkb3RuZXQ6IHByb3BzLmRvdG5ldFZlcnNpb24sXG4gICAgICAgICAgICAgICAgcHl0aG9uOiBwcm9wcy5weXRob25WZXJzaW9uLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAnY29tbWFuZHMnOiBbJ25wbSBjb25maWcgc2V0IGZ1bmQgZmFsc2UnLCAnbnBtIC1nIGkgZXNidWlsZCddXG4gICAgICAgICAgICAgICAgLmNvbmNhdChwcm9wcy5hZGRpdGlvbmFsSW5zdGFsbENvbW1hbmRzID8/IFtdKVxuICAgICAgICAgICAgICAgIC5jb25jYXQoWydub2RlIC0tdmVyc2lvbiddKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICAvLyBQcml2aWxlZ2VkIG1vZGUgaXMgbm90IGFsbG93ZWQgaW4gbGFtYmRhXG4gICAgICAgICAgcHJpdmlsZWdlZDogIShwcm9wcy5jb21wdXRlVHlwZT8uaW5jbHVkZXMoJ0xBTUJEQScpID8/IGZhbHNlKSxcbiAgICAgICAgICBjb21wdXRlVHlwZTogcHJvcHMuY29tcHV0ZVR5cGUgPz8gQ29tcHV0ZVR5cGUuU01BTEwsXG4gICAgICAgICAgYnVpbGRJbWFnZTogcHJvcHMuYnVpbGRJbWFnZSA/PyBMaW51eEJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfNSxcbiAgICAgICAgfSxcbiAgICAgICAgcm9sZVBvbGljeSxcbiAgICAgIH0sXG4gICAgICBhc3NldFB1Ymxpc2hpbmdDb2RlQnVpbGREZWZhdWx0czoge1xuICAgICAgICBwYXJ0aWFsQnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgLi4uKChwcm9wcy5lbmFibGVEb2NrZXJCdWlsZHhPbkFzc2V0UHVibGlzaCA/PyB0cnVlKVxuICAgICAgICAgICAgICAgID8ge0NES19ET0NLRVI6ICcvdXNyL2xvY2FsL2Jpbi9idWlsZHguc2gnfVxuICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoYXNlczoge1xuICAgICAgICAgICAgaW5zdGFsbDoge1xuICAgICAgICAgICAgICBjb21tYW5kczpcbiAgICAgICAgICAgICAgICAocHJvcHMuZW5hYmxlRG9ja2VyQnVpbGR4T25Bc3NldFB1Ymxpc2ggPz8gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgID8gRE9DS0VSX0JVSUxEWF9TRVRVUF9DT01NQU5EU1xuICAgICAgICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRGlzYWJsZSBhdXRvbWF0aWMgdHJpZ2dlcmluZyBpZiByZXF1ZXN0ZWRcbiAgICBpZiAocHJvcHMuZGlzYWJsZUF1dG9UcmlnZ2VyKSB7XG4gICAgICBjb25zdCBjZm5QaXBlbGluZSA9IHVuZGVybHlpbmdQaXBlbGluZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5QaXBlbGluZTtcbiAgICAgIGNmblBpcGVsaW5lLmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICAgICdTdGFnZXMuMC5BY3Rpb25zLjAuQ29uZmlndXJhdGlvbi5UcmlnZ2VyQ29uZmlndXJhdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICBQcm92aWRlclR5cGU6ICdDb2RlU3RhclNvdXJjZUNvbm5lY3Rpb24nLFxuICAgICAgICAgIFRyaWdnZXJFdmVudHM6ICdOT05FJyxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgR2l0UHVzaEZpbHRlciBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5naXRQdXNoRmlsdGVyICYmIHByb3BzLmdpdFB1c2hGaWx0ZXIubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY2ZuUGlwZWxpbmUgPSB1bmRlcmx5aW5nUGlwZWxpbmUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUGlwZWxpbmU7XG4gICAgICBjZm5QaXBlbGluZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgICAnU3RhZ2VzLjAuQWN0aW9ucy4wLkNvbmZpZ3VyYXRpb24uVHJpZ2dlckNvbmZpZ3VyYXRpb24uR2l0Q29uZmlndXJhdGlvbi5QdXNoJyxcbiAgICAgICAgcHJvcHMuZ2l0UHVzaEZpbHRlci5tYXAoKGZpbHRlcikgPT4gKHtcbiAgICAgICAgICBCcmFuY2hlczogZmlsdGVyLmJyYW5jaGVzSW5jbHVkZXNcbiAgICAgICAgICAgID8ge0luY2x1ZGVzOiBmaWx0ZXIuYnJhbmNoZXNJbmNsdWRlc31cbiAgICAgICAgICAgIDogZmlsdGVyLmJyYW5jaGVzRXhjbHVkZXNcbiAgICAgICAgICAgICAgPyB7RXhjbHVkZXM6IGZpbHRlci5icmFuY2hlc0V4Y2x1ZGVzfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBGaWxlUGF0aHM6IGZpbHRlci5maWxlUGF0aHNJbmNsdWRlc1xuICAgICAgICAgICAgPyB7SW5jbHVkZXM6IGZpbHRlci5maWxlUGF0aHNJbmNsdWRlc31cbiAgICAgICAgICAgIDogZmlsdGVyLmZpbGVQYXRoc0V4Y2x1ZGVzXG4gICAgICAgICAgICAgID8ge0V4Y2x1ZGVzOiBmaWx0ZXIuZmlsZVBhdGhzRXhjbHVkZXN9XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIFRhZ3M6IGZpbHRlci50YWdzSW5jbHVkZXNcbiAgICAgICAgICAgID8ge0luY2x1ZGVzOiBmaWx0ZXIudGFnc0luY2x1ZGVzfVxuICAgICAgICAgICAgOiBmaWx0ZXIudGFnc0V4Y2x1ZGVzXG4gICAgICAgICAgICAgID8ge0V4Y2x1ZGVzOiBmaWx0ZXIudGFnc0V4Y2x1ZGVzfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSkpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgcGlwZWxpbmUgbm90aWZpY2F0aW9uc1xuICAgIGlmIChwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uICYmIHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ09ubHkgb25lIG9mIHNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24gYW5kIHNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4gY2FuIGJlIHNwZWNpZmllZCcsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocHJvcHMubm90aWZpY2F0aW9uVG9waWMgJiYgcHJvcHMubm90aWZpY2F0aW9uVG9waWNBcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ09ubHkgb25lIG9mIG5vdGlmaWNhdGlvblRvcGljIGFuZCBub3RpZmljYXRpb25Ub3BpY0FybiBjYW4gYmUgc3BlY2lmaWVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24gfHxcbiAgICAgIHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4gfHxcbiAgICAgIHByb3BzLm5vdGlmaWNhdGlvblRvcGljQXJuIHx8XG4gICAgICBwcm9wcy5ub3RpZmljYXRpb25Ub3BpY1xuICAgICkge1xuICAgICAgdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUgPSBuZXcgUGlwZWxpbmVOb3RpZmljYXRpb25SdWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnTm90aWZpY2F0aW9uJyxcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50czogcHJvcHMubm90aWZpY2F0aW9uRXZlbnRzLFxuICAgICAgICAgIHNvdXJjZTogdW5kZXJseWluZ1BpcGVsaW5lLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGlmIChwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlLmFkZFNsYWNrQ2hhbm5lbChcbiAgICAgICAgICBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuKSB7XG4gICAgICAgIHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlLmFkZFNsYWNrQ2hhbm5lbEFybihcbiAgICAgICAgICAnU2xhY2tDaGFubmVsJyxcbiAgICAgICAgICBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLm5vdGlmaWNhdGlvblRvcGljKSB7XG4gICAgICAgIHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlLmFkZFRvcGljKHByb3BzLm5vdGlmaWNhdGlvblRvcGljKTtcbiAgICAgICAgcHJvcHMubm90aWZpY2F0aW9uVG9waWMuZ3JhbnRQdWJsaXNoKHVuZGVybHlpbmdQaXBlbGluZS5yb2xlKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMubm90aWZpY2F0aW9uVG9waWNBcm4pIHtcbiAgICAgICAgY29uc3QgdG9waWMgPSB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRUb3BpY0FybihcbiAgICAgICAgICAnTm90aWZpY2F0aW9uVG9waWMnLFxuICAgICAgICAgIHByb3BzLm5vdGlmaWNhdGlvblRvcGljQXJuLFxuICAgICAgICApO1xuICAgICAgICB0b3BpYy5ncmFudFB1Ymxpc2godW5kZXJseWluZ1BpcGVsaW5lLnJvbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZFN0YWdlKHN0YWdlOiBTdGFnZSwgb3B0aW9ucz86IEFkZFN0YWdlT3B0cyk6IFN0YWdlRGVwbG95bWVudCB7XG4gICAgcmV0dXJuIHRoaXMucGlwZWxpbmUuYWRkU3RhZ2Uoc3RhZ2UsIG9wdGlvbnMpO1xuICB9XG5cbiAgYWRkV2F2ZShpZDogc3RyaW5nLCBvcHRpb25zPzogV2F2ZU9wdGlvbnMpOiBXYXZlIHtcbiAgICByZXR1cm4gdGhpcy5waXBlbGluZS5hZGRXYXZlKGlkLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
|