@fjall/components-infrastructure 0.87.4 → 0.87.8
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.
|
@@ -18,12 +18,12 @@ const vpc_1 = require("../networking/vpc");
|
|
|
18
18
|
* @see https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-integration-lambda-extensions.html
|
|
19
19
|
*/
|
|
20
20
|
const LAMBDA_SECRETS_EXTENSION = {
|
|
21
|
-
/** AWS account ID that publishes the extension layer */
|
|
22
|
-
ACCOUNT_ID: "
|
|
21
|
+
/** AWS account ID that publishes the extension layer (updated Jan 2026) */
|
|
22
|
+
ACCOUNT_ID: "590474943231",
|
|
23
23
|
/** Layer name for the extension */
|
|
24
24
|
LAYER_NAME: "AWS-Parameters-and-Secrets-Lambda-Extension",
|
|
25
|
-
/** Current stable version of the extension */
|
|
26
|
-
VERSION: "
|
|
25
|
+
/** Current stable version of the extension (updated Jan 2026) */
|
|
26
|
+
VERSION: "28",
|
|
27
27
|
/** Cache TTL in seconds - 60s supports secret rotation while reducing API calls */
|
|
28
28
|
CACHE_TTL_SECONDS: "60"
|
|
29
29
|
};
|
|
@@ -311,4 +311,4 @@ class LambdaFunction extends aws_lambda_1.Function {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
exports.LambdaFunction = LambdaFunction;
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQStEO0FBQy9ELHVEQVdnQztBQUNoQyxtRkFLOEM7QUFDOUMsK0NBQTREO0FBQzVELGlEQUEwRTtBQUMxRSxpREFBNEQ7QUFDNUQsdURBQTJFO0FBQzNFLHVFQUFnRjtBQUNoRixtREFBK0Q7QUFDL0QsdUVBQXdEO0FBSXhELCtCQUFrQztBQUdsQywyQ0FBd0M7QUFFeEM7OztHQUdHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRztJQUMvQix3REFBd0Q7SUFDeEQsVUFBVSxFQUFFLGNBQWM7SUFDMUIsbUNBQW1DO0lBQ25DLFVBQVUsRUFBRSw2Q0FBNkM7SUFDekQsOENBQThDO0lBQzlDLE9BQU8sRUFBRSxJQUFJO0lBQ2IsbUZBQW1GO0lBQ25GLGlCQUFpQixFQUFFLElBQUk7Q0FDZixDQUFDO0FBdUNYLE1BQWEsaUJBQWtCLFNBQVEsOEJBQWlCO0lBQ3RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixJQUFJLEVBQUUsSUFBQSxTQUFJLEdBQUU7WUFDWixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFFLG1CQUFtQjtZQUNoRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtnQkFDOUMsQ0FBQyxDQUFDLGtCQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUM7UUFFSCxJQUFJ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QixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRTtvQkFDWixnQkFBZ0IsRUFBRSxPQUFPLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCO2lCQUMvRDthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CLENBQzFCLFlBQXFCLEVBQ3JCLE9BQWdCLEVBQ2hCLFlBQXFCO1FBRXJCLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUNiLG1FQUFtRTtnQkFDakUsOENBQThDO2dCQUM5QyxnRkFBZ0YsQ0FDbkYsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksT0FBTyxXQUFXLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQTVZRCx3Q0E0WUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBTdGFjaywgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgU2luZ2xldG9uRnVuY3Rpb24gYXMgc2luZ2xldG9uRnVuY3Rpb24sXG4gIEZ1bmN0aW9uLFxuICB0eXBlIENvZGUsXG4gIHR5cGUgUnVudGltZSxcbiAgQXJjaGl0ZWN0dXJlLFxuICBGdW5jdGlvblVybEF1dGhUeXBlLFxuICB0eXBlIEZ1bmN0aW9uVXJsQ29yc09wdGlvbnMsXG4gIHR5cGUgSW52b2tlTW9kZSxcbiAgU3RhcnRpbmdQb3NpdGlvbixcbiAgTGF5ZXJWZXJzaW9uXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQge1xuICBTcXNFdmVudFNvdXJjZSxcbiAgRHluYW1vRXZlbnRTb3VyY2UsXG4gIFMzRXZlbnRTb3VyY2UsXG4gIHR5cGUgUzNFdmVudFNvdXJjZVByb3BzXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXNcIjtcbmltcG9ydCB7IHR5cGUgQnVja2V0LCBFdmVudFR5cGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIHR5cGUgSVJvbGUsIEVmZmVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyB0eXBlIElWcGMsIFN1Ym5ldFR5cGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUsIHR5cGUgRXZlbnRQYXR0ZXJuIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIGFzIExhbWJkYVRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHNcIjtcbmltcG9ydCB7IExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIElRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQgeyB0eXBlIElUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IHR5cGUgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgdHlwZSBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgdHlwZSBTZWNyZXRJbXBvcnQgfSBmcm9tIFwiLi4vc2VjcmV0c1wiO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSBcIi4uL25ldHdvcmtpbmcvdnBjXCI7XG5cbi8qKlxuICogQVdTIFBhcmFtZXRlcnMgYW5kIFNlY3JldHMgTGFtYmRhIEV4dGVuc2lvbiBjb25maWd1cmF0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3lzdGVtcy1tYW5hZ2VyL2xhdGVzdC91c2VyZ3VpZGUvcHMtaW50ZWdyYXRpb24tbGFtYmRhLWV4dGVuc2lvbnMuaHRtbFxuICovXG5jb25zdCBMQU1CREFfU0VDUkVUU19FWFRFTlNJT04gPSB7XG4gIC8qKiBBV1MgYWNjb3VudCBJRCB0aGF0IHB1Ymxpc2hlcyB0aGUgZXh0ZW5zaW9uIGxheWVyICovXG4gIEFDQ09VTlRfSUQ6IFwiMTc3OTMzNTY5MTAwXCIsXG4gIC8qKiBMYXllciBuYW1lIGZvciB0aGUgZXh0ZW5zaW9uICovXG4gIExBWUVSX05BTUU6IFwiQVdTLVBhcmFtZXRlcnMtYW5kLVNlY3JldHMtTGFtYmRhLUV4dGVuc2lvblwiLFxuICAvKiogQ3VycmVudCBzdGFibGUgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uICovXG4gIFZFUlNJT046IFwiMTFcIixcbiAgLyoqIENhY2hlIFRUTCBpbiBzZWNvbmRzIC0gNjBzIHN1cHBvcnRzIHNlY3JldCByb3RhdGlvbiB3aGlsZSByZWR1Y2luZyBBUEkgY2FsbHMgKi9cbiAgQ0FDSEVfVFRMX1NFQ09ORFM6IFwiNjBcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBsYW1iZGFGdW5jdGlvblByb3BzIHtcbiAgY29kZTogQ29kZTtcbiAgaGFuZGxlcjogc3RyaW5nO1xuICBsYW1iZGFEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcm9sZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBydW50aW1lOiBSdW50aW1lO1xuICAvKiogTGFtYmRhIENQVSBhcmNoaXRlY3R1cmUuIERlZmF1bHQ6IHg4Nl82NCAqL1xuICBhcmNoaXRlY3R1cmU/OiBBcmNoaXRlY3R1cmU7XG4gIHZwYz86IElWcGM7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIG1lbW9yeVNpemU/OiBudW1iZXI7XG4gIGlubGluZVBvbGljeTogUG9saWN5U3RhdGVtZW50W107XG5cbiAgZW5hYmxlRnVuY3Rpb25Vcmw/OiBib29sZWFuO1xuICBmdW5jdGlvblVybEF1dGhUeXBlPzogRnVuY3Rpb25VcmxBdXRoVHlwZTtcbiAgZnVuY3Rpb25VcmxDb3JzPzogRnVuY3Rpb25VcmxDb3JzT3B0aW9ucztcbiAgLyoqIEludm9rZSBtb2RlIGZvciBGdW5jdGlvbiBVUkwuIFVzZSBSRVNQT05TRV9TVFJFQU0gZm9yIExhbWJkYSBzdHJlYW1pbmcuICovXG4gIGZ1bmN0aW9uVXJsSW52b2tlTW9kZT86IEludm9rZU1vZGU7XG5cbiAgZW52aXJvbm1lbnQ/OiBLZXlWYWx1ZTtcblxuICB0YWdzPzogS2V5VmFsdWU7XG5cbiAgc2NoZWR1bGVFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gIHNlY3JldHM/OiBzdHJpbmdbXTtcbiAgc3NtU2VjcmV0c1BhdGg/OiBzdHJpbmc7XG4gIHNlY3JldHNJbXBvcnQ/OiBSZWNvcmQ8c3RyaW5nLCBTZWNyZXRJbXBvcnQ+O1xuICBhcHBOYW1lPzogc3RyaW5nO1xuICBmdW5jdGlvbk5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xldG9uRnVuY3Rpb25Qcm9wcyBleHRlbmRzIGxhbWJkYUZ1bmN0aW9uUHJvcHMge1xuICB1dWlkPzogc3RyaW5nO1xuICBlcGhlbWVyYWxTdG9yYWdlU2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFNpbmdsZXRvbkZ1bmN0aW9uIGV4dGVuZHMgc2luZ2xldG9uRnVuY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2luZ2xldG9uRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB1dWlkOiB1dWlkKCksXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwMCksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMubGFtYmRhRGVzY3JpcHRpb24gfHwgYCR7aWR9IHNpbmdsZXRvbiBsYW1iZGFgLFxuICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSxcbiAgICAgIGVwaGVtZXJhbFN0b3JhZ2VTaXplOiBwcm9wcy5lcGhlbWVyYWxTdG9yYWdlU2l6ZVxuICAgICAgICA/IFNpemUubWViaWJ5dGVzKHByb3BzLmVwaGVtZXJhbFN0b3JhZ2VTaXplKVxuICAgICAgICA6IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRQb2xpY2llc1RvUm9sZShwcm9wcy5pbmxpbmVQb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEncyBleGVjdXRpb24gcm9sZSAoYXV0by1nZW5lcmF0ZWQgYnkgQ0RLKVxuICAgKi9cbiAgcHVibGljIGdldCBleGVjdXRpb25Sb2xlKCk6IElSb2xlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQb2xpY2llc1RvUm9sZShzdGF0ZW1lbnRzOiBQb2xpY3lTdGF0ZW1lbnRbXSkge1xuICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHN0YXRlbWVudHMpIHtcbiAgICAgIHRoaXMuYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFGdW5jdGlvbiBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgcHJpdmF0ZSBmdW5jdGlvblVybFZhbHVlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBsYW1iZGFGdW5jdGlvblByb3BzKSB7XG4gICAgLy8gRXhwbGljaXRseSBzZXQgc3VibmV0IHNlbGVjdGlvbiB0byBtYXRjaCBWUEMgZW5kcG9pbnQgcGxhY2VtZW50XG4gICAgLy8gLSBXaXRoIE5BVDogUFJJVkFURV9XSVRIX0VHUkVTUyAoY2FuIGFjY2VzcyBpbnRlcm5ldCB2aWEgTkFUKVxuICAgIC8vIC0gV2l0aG91dCBOQVQ6IFBSSVZBVEVfSVNPTEFURUQgKGNhbiBhY2Nlc3MgVlBDIGVuZHBvaW50cyBvbmx5LCBubyBpbnRlcm5ldClcbiAgICBsZXQgdnBjU3VibmV0cztcbiAgICBpZiAocHJvcHMudnBjKSB7XG4gICAgICBjb25zdCBoYXNOYXRHYXRld2F5cyA9XG4gICAgICAgIHByb3BzLnZwYyBpbnN0YW5jZW9mIFZwYyA/IHByb3BzLnZwYy5oYXNOYXRHYXRld2F5cyA6IHRydWU7XG4gICAgICB2cGNTdWJuZXRzID0ge1xuICAgICAgICBzdWJuZXRUeXBlOiBoYXNOYXRHYXRld2F5c1xuICAgICAgICAgID8gU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTXG4gICAgICAgICAgOiBTdWJuZXRUeXBlLlBSSVZBVEVfSVNPTEFURURcbiAgICAgIH07XG4gICAgfVxuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHZwY1N1Ym5ldHMsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0XG4gICAgICAgID8gRHVyYXRpb24uc2Vjb25kcyhwcm9wcy50aW1lb3V0KVxuICAgICAgICA6IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeVNpemUgfHwgMTI4LFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmxhbWJkYURlc2NyaXB0aW9uIHx8IGAke2lkfSBMYW1iZGFgLFxuICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFBvbGljaWVzVG9Sb2xlKHByb3BzLmlubGluZVBvbGljeSk7XG5cbiAgICB0aGlzLmFkZFNlY3JldHNTdXBwb3J0KFxuICAgICAgcHJvcHMuc2VjcmV0cyxcbiAgICAgIHByb3BzLnNzbVNlY3JldHNQYXRoLFxuICAgICAgcHJvcHMuc2VjcmV0c0ltcG9ydCxcbiAgICAgIHByb3BzLmFwcE5hbWUsXG4gICAgICBwcm9wcy5mdW5jdGlvbk5hbWUsXG4gICAgICBwcm9wcy5hcmNoaXRlY3R1cmVcbiAgICApO1xuXG4gICAgaWYgKHByb3BzLmVuYWJsZUZ1bmN0aW9uVXJsKSB7XG4gICAgICBjb25zdCBmdW5jdGlvblVybCA9IHRoaXMuYWRkRnVuY3Rpb25Vcmwoe1xuICAgICAgICBhdXRoVHlwZTogcHJvcHMuZnVuY3Rpb25VcmxBdXRoVHlwZSB8fCBGdW5jdGlvblVybEF1dGhUeXBlLkFXU19JQU0sXG4gICAgICAgIGNvcnM6IHByb3BzLmZ1bmN0aW9uVXJsQ29ycyxcbiAgICAgICAgaW52b2tlTW9kZTogcHJvcHMuZnVuY3Rpb25VcmxJbnZva2VNb2RlXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5mdW5jdGlvblVybFZhbHVlID0gZnVuY3Rpb25VcmwudXJsO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2lkfUZ1bmN0aW9uVXJsYCwge1xuICAgICAgICBrZXk6IGAke2lkfUZ1bmN0aW9uVXJsYCxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uVXJsLnVybCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke2lkfSBGdW5jdGlvbiBVUkxgXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2NoZWR1bGVFeHByZXNzaW9uKSB7XG4gICAgICBjb25zdCBydWxlID0gbmV3IFJ1bGUodGhpcywgYCR7aWR9U2NoZWR1bGVSdWxlYCwge1xuICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pXG4gICAgICB9KTtcbiAgICAgIHJ1bGUuYWRkVGFyZ2V0KG5ldyBMYW1iZGFUYXJnZXQodGhpcykpO1xuICAgIH1cblxuICAgIG5ldyBMb2dHcm91cCh0aGlzLCBgJHtpZH1Mb2dHcm91cGAsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvbGFtYmRhLyR7dGhpcy5mdW5jdGlvbk5hbWV9YCxcbiAgICAgIHJldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfV0VFS1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEncyBleGVjdXRpb24gcm9sZSAoYXV0by1nZW5lcmF0ZWQgYnkgQ0RLKVxuICAgKi9cbiAgcHVibGljIGdldCBleGVjdXRpb25Sb2xlKCk6IElSb2xlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgTGFtYmRhIGZ1bmN0aW9uIFVSTCBpZiBlbmFibGVkLlxuICAgKi9cbiAgcHVibGljIGdldEZ1bmN0aW9uVXJsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25VcmxWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gU1FTIHF1ZXVlIGFzIGFuIGV2ZW50IHNvdXJjZSBmb3IgdGhpcyBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBMYW1iZGEgd2hlbiBtZXNzYWdlcyBhcnJpdmUgaW4gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcHVibGljIGFkZFNxc0V2ZW50U291cmNlKFxuICAgIHF1ZXVlOiBJUXVldWUsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGJhdGNoU2l6ZT86IG51bWJlcjtcbiAgICAgIG1heEJhdGNoaW5nV2luZG93PzogbnVtYmVyO1xuICAgICAgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXM/OiBib29sZWFuO1xuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBuZXcgU3FzRXZlbnRTb3VyY2UocXVldWUsIHtcbiAgICAgIGJhdGNoU2l6ZTogb3B0aW9ucz8uYmF0Y2hTaXplID8/IDEwLFxuICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c6IG9wdGlvbnM/Lm1heEJhdGNoaW5nV2luZG93XG4gICAgICAgID8gRHVyYXRpb24uc2Vjb25kcyhvcHRpb25zLm1heEJhdGNoaW5nV2luZG93KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzOiBvcHRpb25zPy5yZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcyA/PyB0cnVlXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudFNvdXJjZShldmVudFNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgRHluYW1vREIgdGFibGUgc3RyZWFtIGFzIGFuIGV2ZW50IHNvdXJjZSBmb3IgdGhpcyBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBMYW1iZGEgd2hlbiBpdGVtcyBhcmUgbW9kaWZpZWQgaW4gdGhlIHRhYmxlLlxuICAgKiBSZXF1aXJlcyBEeW5hbW9EQiBTdHJlYW1zIHRvIGJlIGVuYWJsZWQgb24gdGhlIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIGFkZER5bmFtb0RiRXZlbnRTb3VyY2UoXG4gICAgdGFibGU6IElUYWJsZSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAgICAgc3RhcnRpbmdQb3NpdGlvbj86IFwiVFJJTV9IT1JJWk9OXCIgfCBcIkxBVEVTVFwiO1xuICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c/OiBudW1iZXI7XG4gICAgICByZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xuICAgICAgcGFyYWxsZWxpemF0aW9uRmFjdG9yPzogbnVtYmVyO1xuICAgICAgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXM/OiBib29sZWFuO1xuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhcnRpbmdQb3NpdGlvbiA9XG4gICAgICBvcHRpb25zPy5zdGFydGluZ1Bvc2l0aW9uID09PSBcIlRSSU1fSE9SSVpPTlwiXG4gICAgICAgID8gU3RhcnRpbmdQb3NpdGlvbi5UUklNX0hPUklaT05cbiAgICAgICAgOiBTdGFydGluZ1Bvc2l0aW9uLkxBVEVTVDtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlID0gbmV3IER5bmFtb0V2ZW50U291cmNlKHRhYmxlLCB7XG4gICAgICBzdGFydGluZ1Bvc2l0aW9uLFxuICAgICAgYmF0Y2hTaXplOiBvcHRpb25zPy5iYXRjaFNpemUgPz8gMTAwLFxuICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c6IG9wdGlvbnM/Lm1heEJhdGNoaW5nV2luZG93XG4gICAgICAgID8gRHVyYXRpb24uc2Vjb25kcyhvcHRpb25zLm1heEJhdGNoaW5nV2luZG93KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJldHJ5QXR0ZW1wdHM6IG9wdGlvbnM/LnJldHJ5QXR0ZW1wdHMsXG4gICAgICBwYXJhbGxlbGl6YXRpb25GYWN0b3I6IG9wdGlvbnM/LnBhcmFsbGVsaXphdGlvbkZhY3RvcixcbiAgICAgIHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzOiBvcHRpb25zPy5yZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcyA/PyB0cnVlXG4gICAgfSk7XG4gICAgdGhpcy5hZGRFdmVudFNvdXJjZShldmVudFNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIFMzIGJ1Y2tldCBhcyBhbiBldmVudCBzb3VyY2UgZm9yIHRoaXMgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBUaGlzIHdpbGwgdHJpZ2dlciB0aGUgTGFtYmRhIHdoZW4gb2JqZWN0cyBhcmUgY3JlYXRlZCwgbW9kaWZpZWQsIG9yIGRlbGV0ZWQuXG4gICAqIFVzZWZ1bCBmb3IgSVNSIGNhY2hlIGludmFsaWRhdGlvbiBhbmQgZmlsZSBwcm9jZXNzaW5nIHdvcmtmbG93cy5cbiAgICovXG4gIHB1YmxpYyBhZGRTM0V2ZW50U291cmNlKFxuICAgIGJ1Y2tldDogQnVja2V0LFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBldmVudHM/OiBBcnJheTxcbiAgICAgICAgfCBcIk9CSkVDVF9DUkVBVEVEXCJcbiAgICAgICAgfCBcIk9CSkVDVF9SRU1PVkVEXCJcbiAgICAgICAgfCBcIk9CSkVDVF9DUkVBVEVEX1BVVFwiXG4gICAgICAgIHwgXCJPQkpFQ1RfQ1JFQVRFRF9QT1NUXCJcbiAgICAgICAgfCBcIk9CSkVDVF9DUkVBVEVEX0NPUFlcIlxuICAgICAgICB8IFwiT0JKRUNUX1JFTU9WRURfREVMRVRFXCJcbiAgICAgID47XG4gICAgICBmaWx0ZXJzPzogQXJyYXk8eyBwcmVmaXg/OiBzdHJpbmc7IHN1ZmZpeD86IHN0cmluZyB9PjtcbiAgICB9XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50VHlwZXMgPSAob3B0aW9ucz8uZXZlbnRzID8/IFtcIk9CSkVDVF9DUkVBVEVEXCJdKS5tYXAoKGV2ZW50KSA9PiB7XG4gICAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICAgIGNhc2UgXCJPQkpFQ1RfQ1JFQVRFRFwiOlxuICAgICAgICAgIHJldHVybiBFdmVudFR5cGUuT0JKRUNUX0NSRUFURUQ7XG4gICAgICAgIGNhc2UgXCJPQkpFQ1RfUkVNT1ZFRFwiOlxuICAgICAgICAgIHJldHVybiBFdmVudFR5cGUuT0JKRUNUX1JFTU9WRUQ7XG4gICAgICAgIGNhc2UgXCJPQkpFQ1RfQ1JFQVRFRF9QVVRcIjpcbiAgICAgICAgICByZXR1cm4gRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVEX1BVVDtcbiAgICAgICAgY2FzZSBcIk9CSkVDVF9DUkVBVEVEX1BPU1RcIjpcbiAgICAgICAgICByZXR1cm4gRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVEX1BPU1Q7XG4gICAgICAgIGNhc2UgXCJPQkpFQ1RfQ1JFQVRFRF9DT1BZXCI6XG4gICAgICAgICAgcmV0dXJuIEV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRF9DT1BZO1xuICAgICAgICBjYXNlIFwiT0JKRUNUX1JFTU9WRURfREVMRVRFXCI6XG4gICAgICAgICAgcmV0dXJuIEV2ZW50VHlwZS5PQkpFQ1RfUkVNT1ZFRF9ERUxFVEU7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCBfZXhoYXVzdGl2ZTogbmV2ZXIgPSBldmVudDtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gUzMgZXZlbnQgdHlwZTogJHtfZXhoYXVzdGl2ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgczNFdmVudFNvdXJjZVByb3BzOiBTM0V2ZW50U291cmNlUHJvcHMgPSB7XG4gICAgICBldmVudHM6IGV2ZW50VHlwZXMsXG4gICAgICBmaWx0ZXJzOiBvcHRpb25zPy5maWx0ZXJzXG4gICAgfTtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlID0gbmV3IFMzRXZlbnRTb3VyY2UoYnVja2V0LCBzM0V2ZW50U291cmNlUHJvcHMpO1xuICAgIHRoaXMuYWRkRXZlbnRTb3VyY2UoZXZlbnRTb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBFdmVudEJyaWRnZSBydWxlIGFzIGFuIGV2ZW50IHNvdXJjZSBmb3IgdGhpcyBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBMYW1iZGEgd2hlbiBldmVudHMgbWF0Y2hpbmcgdGhlIHBhdHRlcm4gYXJlIHB1Ymxpc2hlZC5cbiAgICogVXNlZnVsIGZvciBzY2hlZHVsZWQgam9icywgY3Jvc3Mtc2VydmljZSBldmVudCBoYW5kbGluZywgYW5kIGN1c3RvbSBldmVudCBwYXR0ZXJucy5cbiAgICovXG4gIHB1YmxpYyBhZGRFdmVudEJyaWRnZUV2ZW50U291cmNlKFxuICAgIHJ1bGVJZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHNjaGVkdWxlPzogc3RyaW5nO1xuICAgICAgZXZlbnRQYXR0ZXJuPzogRXZlbnRQYXR0ZXJuO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfVxuICApOiBSdWxlIHtcbiAgICBpZiAoIW9wdGlvbnMuc2NoZWR1bGUgJiYgIW9wdGlvbnMuZXZlbnRQYXR0ZXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiRXZlbnRCcmlkZ2UgcnVsZSByZXF1aXJlcyBlaXRoZXIgc2NoZWR1bGUgb3IgZXZlbnRQYXR0ZXJuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKHRoaXMsIHJ1bGVJZCwge1xuICAgICAgc2NoZWR1bGU6IG9wdGlvbnMuc2NoZWR1bGVcbiAgICAgICAgPyBTY2hlZHVsZS5leHByZXNzaW9uKG9wdGlvbnMuc2NoZWR1bGUpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXZlbnRQYXR0ZXJuOiBvcHRpb25zLmV2ZW50UGF0dGVybixcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uXG4gICAgfSk7XG5cbiAgICBydWxlLmFkZFRhcmdldChuZXcgTGFtYmRhVGFyZ2V0KHRoaXMpKTtcbiAgICByZXR1cm4gcnVsZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUG9saWNpZXNUb1JvbGUoc3RhdGVtZW50czogUG9saWN5U3RhdGVtZW50W10pIHtcbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBzdGF0ZW1lbnRzKSB7XG4gICAgICB0aGlzLmFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2VjcmV0cyBzdXBwb3J0IHVzaW5nIEFXUyBQYXJhbWV0ZXJzIGFuZCBTZWNyZXRzIExhbWJkYSBFeHRlbnNpb24uXG4gICAqXG4gICAqIFRoZSBleHRlbnNpb24gZmV0Y2hlcyBzZWNyZXRzIGF0IHJ1bnRpbWUgZnJvbTpcbiAgICogLSBTU00gUGFyYW1ldGVyIFN0b3JlOiB2aWEgaHR0cDovL2xvY2FsaG9zdDoyNzczL3N5c3RlbXNtYW5hZ2VyL3BhcmFtZXRlcnMvZ2V0XG4gICAqIC0gU2VjcmV0cyBNYW5hZ2VyOiB2aWEgaHR0cDovL2xvY2FsaG9zdDoyNzczL3NlY3JldHNtYW5hZ2VyL2dldFxuICAgKlxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBpbnNlY3VyZSB1bnNhZmVVbndyYXAoKSBwYXR0ZXJuIHdoaWNoIHJlc29sdmVkIHNlY3JldHMgYXRcbiAgICogZGVwbG95IHRpbWUgYW5kIGV4cG9zZWQgdGhlbSBpbiBMYW1iZGEgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYWRkU2VjcmV0c1N1cHBvcnQoXG4gICAgc2VjcmV0cz86IHN0cmluZ1tdLFxuICAgIHNzbVNlY3JldHNQYXRoPzogc3RyaW5nLFxuICAgIHNlY3JldHNJbXBvcnQ/OiBSZWNvcmQ8c3RyaW5nLCBTZWNyZXRJbXBvcnQ+LFxuICAgIGFwcE5hbWU/OiBzdHJpbmcsXG4gICAgZnVuY3Rpb25OYW1lPzogc3RyaW5nLFxuICAgIGFyY2hpdGVjdHVyZT86IEFyY2hpdGVjdHVyZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBoYXNTZWNyZXRzTWFuYWdlciA9XG4gICAgICBzZWNyZXRzSW1wb3J0ICYmIE9iamVjdC5rZXlzKHNlY3JldHNJbXBvcnQpLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgaGFzU3NtU2VjcmV0cyA9IChzZWNyZXRzPy5sZW5ndGggPz8gMCkgPiAwO1xuXG4gICAgaWYgKCFoYXNTZWNyZXRzTWFuYWdlciAmJiAhaGFzU3NtU2VjcmV0cykgcmV0dXJuO1xuXG4gICAgdGhpcy5hZGRTZWNyZXRzRXh0ZW5zaW9uTGF5ZXIoYXJjaGl0ZWN0dXJlKTtcblxuICAgIGlmIChoYXNTZWNyZXRzTWFuYWdlcikge1xuICAgICAgdGhpcy5hZGRTZWNyZXRzTWFuYWdlclN1cHBvcnQoc2VjcmV0c0ltcG9ydCk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1NzbVNlY3JldHMpIHtcbiAgICAgIHRoaXMuYWRkU3NtU2VjcmV0c1N1cHBvcnQoXG4gICAgICAgIHNlY3JldHMhLFxuICAgICAgICBzc21TZWNyZXRzUGF0aCxcbiAgICAgICAgYXBwTmFtZSxcbiAgICAgICAgZnVuY3Rpb25OYW1lXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIEFXUyBQYXJhbWV0ZXJzIGFuZCBTZWNyZXRzIExhbWJkYSBFeHRlbnNpb24gbGF5ZXIuXG4gICAqIENvbmZpZ3VyZXMgY2FjaGUgVFRMIGZvciByb3RhdGlvbiBzdXBwb3J0LlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRTZWNyZXRzRXh0ZW5zaW9uTGF5ZXIoYXJjaGl0ZWN0dXJlPzogQXJjaGl0ZWN0dXJlKTogdm9pZCB7XG4gICAgY29uc3QgYXJjaFN1ZmZpeCA9IGFyY2hpdGVjdHVyZSA9PT0gQXJjaGl0ZWN0dXJlLkFSTV82NCA/IFwiLUFybTY0XCIgOiBcIlwiO1xuICAgIGNvbnN0IGxheWVyQXJuID1cbiAgICAgIGBhcm46YXdzOmxhbWJkYToke1N0YWNrLm9mKHRoaXMpLnJlZ2lvbn06JHtMQU1CREFfU0VDUkVUU19FWFRFTlNJT04uQUNDT1VOVF9JRH06bGF5ZXI6YCArXG4gICAgICBgJHtMQU1CREFfU0VDUkVUU19FWFRFTlNJT04uTEFZRVJfTkFNRX0ke2FyY2hTdWZmaXh9OiR7TEFNQkRBX1NFQ1JFVFNfRVhURU5TSU9OLlZFUlNJT059YDtcblxuICAgIHRoaXMuYWRkTGF5ZXJzKFxuICAgICAgTGF5ZXJWZXJzaW9uLmZyb21MYXllclZlcnNpb25Bcm4oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke3RoaXMubm9kZS5pZH1TZWNyZXRzRXh0ZW5zaW9uYCxcbiAgICAgICAgbGF5ZXJBcm5cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiU0VDUkVUU19NQU5BR0VSX1RUTFwiLFxuICAgICAgTEFNQkRBX1NFQ1JFVFNfRVhURU5TSU9OLkNBQ0hFX1RUTF9TRUNPTkRTXG4gICAgKTtcbiAgICB0aGlzLmFkZEVudmlyb25tZW50KFxuICAgICAgXCJTU01fUEFSQU1FVEVSX1NUT1JFX1RUTFwiLFxuICAgICAgTEFNQkRBX1NFQ1JFVFNfRVhURU5TSU9OLkNBQ0hFX1RUTF9TRUNPTkRTXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgU2VjcmV0cyBNYW5hZ2VyIHN1cHBvcnQgZm9yIENESy1tYW5hZ2VkIHNlY3JldHMgKGUuZy4sIGRhdGFiYXNlIGNyZWRlbnRpYWxzKS5cbiAgICogU3RvcmVzIEFSTiArIGZpZWxkIGFzIGVudiB2YXJzIC0gdGhlIExhbWJkYSBFeHRlbnNpb24gZmV0Y2hlcyBhY3R1YWwgdmFsdWVzIGF0IHJ1bnRpbWUuXG4gICAqL1xuICBwcml2YXRlIGFkZFNlY3JldHNNYW5hZ2VyU3VwcG9ydChcbiAgICBzZWNyZXRzSW1wb3J0OiBSZWNvcmQ8c3RyaW5nLCBTZWNyZXRJbXBvcnQ+XG4gICk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW2tleSwgc2VjcmV0SW1wb3J0XSBvZiBPYmplY3QuZW50cmllcyhzZWNyZXRzSW1wb3J0KSkge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gU2VjcmV0LmZyb21TZWNyZXROYW1lVjIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke3RoaXMubm9kZS5pZH1JbXBvcnRlZFNlY3JldCR7a2V5fWAsXG4gICAgICAgIHNlY3JldEltcG9ydC5uYW1lXG4gICAgICApO1xuXG4gICAgICB0aGlzLmFkZEVudmlyb25tZW50KGAke2tleX1fU0VDUkVUX0FSTmAsIHNlY3JldC5zZWNyZXRBcm4pO1xuICAgICAgaWYgKHNlY3JldEltcG9ydC5maWVsZCkge1xuICAgICAgICB0aGlzLmFkZEVudmlyb25tZW50KGAke2tleX1fU0VDUkVUX0ZJRUxEYCwgc2VjcmV0SW1wb3J0LmZpZWxkKTtcbiAgICAgIH1cblxuICAgICAgc2VjcmV0LmdyYW50UmVhZCh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1wia21zOkRlY3J5cHRcIiwgXCJrbXM6RGVzY3JpYmVLZXlcIl0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgXCJrbXM6VmlhU2VydmljZVwiOiBgc2VjcmV0c21hbmFnZXIuJHtTdGFjay5vZih0aGlzKS5yZWdpb259LmFtYXpvbmF3cy5jb21gXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIFNTTSBQYXJhbWV0ZXIgU3RvcmUgc3VwcG9ydCBmb3IgdXNlci1tYW5hZ2VkIHNlY3JldHMgKHZpYSBmamFsbCBzZWNyZXQgYWRkKS5cbiAgICogU3RvcmVzIGJhc2UgcGF0aCBhbmQgc2VjcmV0IG5hbWVzIGFzIGVudiB2YXJzIGZvciBjb25zdW1lciBjb2RlLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRTc21TZWNyZXRzU3VwcG9ydChcbiAgICBzZWNyZXRzOiBzdHJpbmdbXSxcbiAgICBzc21TZWNyZXRzUGF0aD86IHN0cmluZyxcbiAgICBhcHBOYW1lPzogc3RyaW5nLFxuICAgIGZ1bmN0aW9uTmFtZT86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBiYXNlUGF0aCA9IHRoaXMuZGVyaXZlU3NtU2VjcmV0c1BhdGgoXG4gICAgICBzc21TZWNyZXRzUGF0aCxcbiAgICAgIGFwcE5hbWUsXG4gICAgICBmdW5jdGlvbk5hbWVcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudChcIlNTTV9TRUNSRVRTX1BBVEhcIiwgYmFzZVBhdGgpO1xuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoXCJTU01fU0VDUkVUX05BTUVTXCIsIHNlY3JldHMuam9pbihcIixcIikpO1xuXG4gICAgY29uc3Qgc2NvcGVkUGF0aCA9IGFwcE5hbWUgPyBgLyR7YXBwTmFtZX0vKmAgOiBgJHtiYXNlUGF0aH0vKmA7XG4gICAgdGhpcy5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcInNzbTpHZXRQYXJhbWV0ZXJcIiwgXCJzc206R2V0UGFyYW1ldGVyc1wiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgYGFybjphd3M6c3NtOiR7U3RhY2sub2YodGhpcykucmVnaW9ufToqOnBhcmFtZXRlciR7c2NvcGVkUGF0aH1gXG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXCJrbXM6RGVjcnlwdFwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICBcImttczpWaWFTZXJ2aWNlXCI6IGBzc20uJHtTdGFjay5vZih0aGlzKS5yZWdpb259LmFtYXpvbmF3cy5jb21gXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGVyaXZlIFNTTSBzZWNyZXRzIHBhdGggZm9yIExhbWJkYSBmdW5jdGlvbnMuXG4gICAqIFBhdHRlcm46IC88YXBwTmFtZT4vbGFtYmRhLzxmdW5jdGlvbk5hbWU+XG4gICAqL1xuICBwcml2YXRlIGRlcml2ZVNzbVNlY3JldHNQYXRoKFxuICAgIGV4cGxpY2l0UGF0aD86IHN0cmluZyxcbiAgICBhcHBOYW1lPzogc3RyaW5nLFxuICAgIGZ1bmN0aW9uTmFtZT86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGlmIChleHBsaWNpdFBhdGgpIHtcbiAgICAgIHJldHVybiBleHBsaWNpdFBhdGg7XG4gICAgfVxuXG4gICAgaWYgKCFhcHBOYW1lIHx8ICFmdW5jdGlvbk5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJMYW1iZGEgZnVuY3Rpb24gaGFzIHNlY3JldHMgZGVmaW5lZCBidXQgbm8gc3NtU2VjcmV0c1BhdGggaXMgc2V0IFwiICtcbiAgICAgICAgICBcImFuZCBhcHBOYW1lL2Z1bmN0aW9uTmFtZSBhcmUgbm90IGF2YWlsYWJsZS4gXCIgK1xuICAgICAgICAgIFwiRWl0aGVyIHNldCBzc21TZWNyZXRzUGF0aCBleHBsaWNpdGx5LCBvciBlbnN1cmUgQXBwLmdldE5hbWUoKSByZXR1cm5zIGEgdmFsdWUuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAvJHthcHBOYW1lfS9sYW1iZGEvJHtmdW5jdGlvbk5hbWV9YDtcbiAgfVxufVxuIl19
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvY29tcHV0ZS9sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQStEO0FBQy9ELHVEQVdnQztBQUNoQyxtRkFLOEM7QUFDOUMsK0NBQTREO0FBQzVELGlEQUEwRTtBQUMxRSxpREFBNEQ7QUFDNUQsdURBQTJFO0FBQzNFLHVFQUFnRjtBQUNoRixtREFBK0Q7QUFDL0QsdUVBQXdEO0FBSXhELCtCQUFrQztBQUdsQywyQ0FBd0M7QUFFeEM7OztHQUdHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRztJQUMvQiwyRUFBMkU7SUFDM0UsVUFBVSxFQUFFLGNBQWM7SUFDMUIsbUNBQW1DO0lBQ25DLFVBQVUsRUFBRSw2Q0FBNkM7SUFDekQsaUVBQWlFO0lBQ2pFLE9BQU8sRUFBRSxJQUFJO0lBQ2IsbUZBQW1GO0lBQ25GLGlCQUFpQixFQUFFLElBQUk7Q0FDZixDQUFDO0FBdUNYLE1BQWEsaUJBQWtCLFNBQVEsOEJBQWlCO0lBQ3RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixJQUFJLEVBQUUsSUFBQSxTQUFJLEdBQUU7WUFDWixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFFLG1CQUFtQjtZQUNoRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtnQkFDOUMsQ0FBQyxDQUFDLGtCQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQTZCO1FBQ3JELEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBNUJELDhDQTRCQztBQUVELE1BQWEsY0FBZSxTQUFRLHFCQUFRO0lBRzFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsa0VBQWtFO1FBQ2xFLGdFQUFnRTtRQUNoRSwrRUFBK0U7UUFDL0UsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sY0FBYyxHQUNsQixLQUFLLENBQUMsR0FBRyxZQUFZLFNBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM3RCxVQUFVLEdBQUc7Z0JBQ1gsVUFBVSxFQUFFLGNBQWM7b0JBQ3hCLENBQUMsQ0FBQyxvQkFBVSxDQUFDLG1CQUFtQjtvQkFDaEMsQ0FBQyxDQUFDLG9CQUFVLENBQUMsZ0JBQWdCO2FBQ2hDLENBQUM7UUFDSixDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixVQUFVO1lBQ1YsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUNwQixDQUFDLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN6QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxHQUFHO1lBQ25DLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFFLFNBQVM7WUFDdEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLGlCQUFpQixDQUNwQixLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLFlBQVksRUFDbEIsS0FBSyxDQUFDLFlBQVksQ0FDbkIsQ0FBQztRQUVGLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDdEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxnQ0FBbUIsQ0FBQyxPQUFPO2dCQUNsRSxJQUFJLEVBQUUsS0FBSyxDQUFDLGVBQWU7Z0JBQzNCLFVBQVUsRUFBRSxLQUFLLENBQUMscUJBQXFCO2FBQ3hDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBRXhDLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtnQkFDdEMsR0FBRyxFQUFFLEdBQUcsRUFBRSxhQUFhO2dCQUN2QixLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUc7Z0JBQ3RCLFdBQVcsRUFBRSxHQUFHLEVBQUUsZUFBZTthQUNsQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUU7Z0JBQy9DLFFBQVEsRUFBRSxxQkFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7YUFDeEQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLG1DQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ2xDLFlBQVksRUFBRSxlQUFlLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDaEQsU0FBUyxFQUFFLHdCQUFhLENBQUMsUUFBUTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQixDQUN0QixLQUFhLEVBQ2IsT0FJQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUkseUNBQWMsQ0FBQyxLQUFLLEVBQUU7WUFDNUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLElBQUksRUFBRTtZQUNuQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMzQyxDQUFDLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO2dCQUM3QyxDQUFDLENBQUMsU0FBUztZQUNiLHVCQUF1QixFQUFFLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSxJQUFJO1NBQ2xFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0IsQ0FDM0IsS0FBYSxFQUNiLE9BT0M7UUFFRCxNQUFNLGdCQUFnQixHQUNwQixPQUFPLEVBQUUsZ0JBQWdCLEtBQUssY0FBYztZQUMxQyxDQUFDLENBQUMsNkJBQWdCLENBQUMsWUFBWTtZQUMvQixDQUFDLENBQUMsNkJBQWdCLENBQUMsTUFBTSxDQUFDO1FBRTlCLE1BQU0sV0FBVyxHQUFHLElBQUksNENBQWlCLENBQUMsS0FBSyxFQUFFO1lBQy9DLGdCQUFnQjtZQUNoQixTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsSUFBSSxHQUFHO1lBQ3BDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzNDLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhO1lBQ3JDLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxxQkFBcUI7WUFDckQsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixJQUFJLElBQUk7U0FDbEUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUNyQixNQUFjLEVBQ2QsT0FVQztRQUVELE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2RSxRQUFRLEtBQUssRUFBRSxDQUFDO2dCQUNkLEtBQUssZ0JBQWdCO29CQUNuQixPQUFPLGtCQUFTLENBQUMsY0FBYyxDQUFDO2dCQUNsQyxLQUFLLGdCQUFnQjtvQkFDbkIsT0FBTyxrQkFBUyxDQUFDLGNBQWMsQ0FBQztnQkFDbEMsS0FBSyxvQkFBb0I7b0JBQ3ZCLE9BQU8sa0JBQVMsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDdEMsS0FBSyxxQkFBcUI7b0JBQ3hCLE9BQU8sa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDdkMsS0FBSyxxQkFBcUI7b0JBQ3hCLE9BQU8sa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDdkMsS0FBSyx1QkFBdUI7b0JBQzFCLE9BQU8sa0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDekMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDUixNQUFNLFdBQVcsR0FBVSxLQUFLLENBQUM7b0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzNELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUF1QjtZQUM3QyxNQUFNLEVBQUUsVUFBVTtZQUNsQixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU87U0FDMUIsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLElBQUksd0NBQWEsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCLENBQzlCLE1BQWMsRUFDZCxPQUlDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYiwyREFBMkQsQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNsQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQ3hCLENBQUMsQ0FBQyxxQkFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUN2QyxDQUFDLENBQUMsU0FBUztZQUNiLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7U0FDakMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLG1DQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUE2QjtRQUNyRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSyxpQkFBaUIsQ0FDdkIsT0FBa0IsRUFDbEIsY0FBdUIsRUFDdkIsYUFBNEMsRUFDNUMsT0FBZ0IsRUFDaEIsWUFBcUIsRUFDckIsWUFBMkI7UUFFM0IsTUFBTSxpQkFBaUIsR0FDckIsYUFBYSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN6RCxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBRWpELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1QyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxvQkFBb0IsQ0FDdkIsT0FBUSxFQUNSLGNBQWMsRUFDZCxPQUFPLEVBQ1AsWUFBWSxDQUNiLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHdCQUF3QixDQUFDLFlBQTJCO1FBQzFELE1BQU0sVUFBVSxHQUFHLFlBQVksS0FBSyx5QkFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEUsTUFBTSxRQUFRLEdBQ1osa0JBQWtCLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLFNBQVM7WUFDdkYsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTVGLElBQUksQ0FBQyxTQUFTLENBQ1oseUJBQVksQ0FBQyxtQkFBbUIsQ0FDOUIsSUFBSSxFQUNKLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLGtCQUFrQixFQUNqQyxRQUFRLENBQ1QsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FDakIscUJBQXFCLEVBQ3JCLHdCQUF3QixDQUFDLGlCQUFpQixDQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FDakIseUJBQXlCLEVBQ3pCLHdCQUF3QixDQUFDLGlCQUFpQixDQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLHdCQUF3QixDQUM5QixhQUEyQztRQUUzQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sTUFBTSxHQUFHLDJCQUFNLENBQUMsZ0JBQWdCLENBQ3BDLElBQUksRUFDSixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsR0FBRyxFQUFFLEVBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQ2xCLENBQUM7WUFFRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxhQUFhLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNELElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxlQUFlLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUNsQixJQUFJLHlCQUFlLENBQUM7WUFDbEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztZQUNwQixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUM7WUFDM0MsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCLEVBQUUsa0JBQWtCLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCO2lCQUMxRTthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CLENBQzFCLE9BQWlCLEVBQ2pCLGNBQXVCLEVBQ3ZCLE9BQWdCLEVBQ2hCLFlBQXFCO1FBRXJCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDeEMsY0FBYyxFQUNkLE9BQU8sRUFDUCxZQUFZLENBQ2IsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFM0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxDQUFDO1FBQy9ELElBQUksQ0FBQyxlQUFlLENBQ2xCLElBQUkseUJBQWUsQ0FBQztZQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDO1lBQ2xELFNBQVMsRUFBRTtnQkFDVCxlQUFlLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sZUFBZSxVQUFVLEVBQUU7YUFDaEU7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQ2xCLElBQUkseUJBQWUsQ0FBQztZQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN4QixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRTtvQkFDWixnQkFBZ0IsRUFBRSxPQUFPLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCO2lCQUMvRDthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CLENBQzFCLFlBQXFCLEVBQ3JCLE9BQWdCLEVBQ2hCLFlBQXFCO1FBRXJCLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUNiLG1FQUFtRTtnQkFDakUsOENBQThDO2dCQUM5QyxnRkFBZ0YsQ0FDbkYsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksT0FBTyxXQUFXLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQTVZRCx3Q0E0WUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBTdGFjaywgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgU2luZ2xldG9uRnVuY3Rpb24gYXMgc2luZ2xldG9uRnVuY3Rpb24sXG4gIEZ1bmN0aW9uLFxuICB0eXBlIENvZGUsXG4gIHR5cGUgUnVudGltZSxcbiAgQXJjaGl0ZWN0dXJlLFxuICBGdW5jdGlvblVybEF1dGhUeXBlLFxuICB0eXBlIEZ1bmN0aW9uVXJsQ29yc09wdGlvbnMsXG4gIHR5cGUgSW52b2tlTW9kZSxcbiAgU3RhcnRpbmdQb3NpdGlvbixcbiAgTGF5ZXJWZXJzaW9uXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQge1xuICBTcXNFdmVudFNvdXJjZSxcbiAgRHluYW1vRXZlbnRTb3VyY2UsXG4gIFMzRXZlbnRTb3VyY2UsXG4gIHR5cGUgUzNFdmVudFNvdXJjZVByb3BzXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXNcIjtcbmltcG9ydCB7IHR5cGUgQnVja2V0LCBFdmVudFR5cGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIHR5cGUgSVJvbGUsIEVmZmVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyB0eXBlIElWcGMsIFN1Ym5ldFR5cGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUsIHR5cGUgRXZlbnRQYXR0ZXJuIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIGFzIExhbWJkYVRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHNcIjtcbmltcG9ydCB7IExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIElRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQgeyB0eXBlIElUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IHR5cGUgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgdHlwZSBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgdHlwZSBTZWNyZXRJbXBvcnQgfSBmcm9tIFwiLi4vc2VjcmV0c1wiO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSBcIi4uL25ldHdvcmtpbmcvdnBjXCI7XG5cbi8qKlxuICogQVdTIFBhcmFtZXRlcnMgYW5kIFNlY3JldHMgTGFtYmRhIEV4dGVuc2lvbiBjb25maWd1cmF0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3lzdGVtcy1tYW5hZ2VyL2xhdGVzdC91c2VyZ3VpZGUvcHMtaW50ZWdyYXRpb24tbGFtYmRhLWV4dGVuc2lvbnMuaHRtbFxuICovXG5jb25zdCBMQU1CREFfU0VDUkVUU19FWFRFTlNJT04gPSB7XG4gIC8qKiBBV1MgYWNjb3VudCBJRCB0aGF0IHB1Ymxpc2hlcyB0aGUgZXh0ZW5zaW9uIGxheWVyICh1cGRhdGVkIEphbiAyMDI2KSAqL1xuICBBQ0NPVU5UX0lEOiBcIjU5MDQ3NDk0MzIzMVwiLFxuICAvKiogTGF5ZXIgbmFtZSBmb3IgdGhlIGV4dGVuc2lvbiAqL1xuICBMQVlFUl9OQU1FOiBcIkFXUy1QYXJhbWV0ZXJzLWFuZC1TZWNyZXRzLUxhbWJkYS1FeHRlbnNpb25cIixcbiAgLyoqIEN1cnJlbnQgc3RhYmxlIHZlcnNpb24gb2YgdGhlIGV4dGVuc2lvbiAodXBkYXRlZCBKYW4gMjAyNikgKi9cbiAgVkVSU0lPTjogXCIyOFwiLFxuICAvKiogQ2FjaGUgVFRMIGluIHNlY29uZHMgLSA2MHMgc3VwcG9ydHMgc2VjcmV0IHJvdGF0aW9uIHdoaWxlIHJlZHVjaW5nIEFQSSBjYWxscyAqL1xuICBDQUNIRV9UVExfU0VDT05EUzogXCI2MFwiXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIGxhbWJkYUZ1bmN0aW9uUHJvcHMge1xuICBjb2RlOiBDb2RlO1xuICBoYW5kbGVyOiBzdHJpbmc7XG4gIGxhbWJkYURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByb2xlRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJ1bnRpbWU6IFJ1bnRpbWU7XG4gIC8qKiBMYW1iZGEgQ1BVIGFyY2hpdGVjdHVyZS4gRGVmYXVsdDogeDg2XzY0ICovXG4gIGFyY2hpdGVjdHVyZT86IEFyY2hpdGVjdHVyZTtcbiAgdnBjPzogSVZwYztcbiAgdGltZW91dD86IG51bWJlcjtcbiAgbWVtb3J5U2l6ZT86IG51bWJlcjtcbiAgaW5saW5lUG9saWN5OiBQb2xpY3lTdGF0ZW1lbnRbXTtcblxuICBlbmFibGVGdW5jdGlvblVybD86IGJvb2xlYW47XG4gIGZ1bmN0aW9uVXJsQXV0aFR5cGU/OiBGdW5jdGlvblVybEF1dGhUeXBlO1xuICBmdW5jdGlvblVybENvcnM/OiBGdW5jdGlvblVybENvcnNPcHRpb25zO1xuICAvKiogSW52b2tlIG1vZGUgZm9yIEZ1bmN0aW9uIFVSTC4gVXNlIFJFU1BPTlNFX1NUUkVBTSBmb3IgTGFtYmRhIHN0cmVhbWluZy4gKi9cbiAgZnVuY3Rpb25VcmxJbnZva2VNb2RlPzogSW52b2tlTW9kZTtcblxuICBlbnZpcm9ubWVudD86IEtleVZhbHVlO1xuXG4gIHRhZ3M/OiBLZXlWYWx1ZTtcblxuICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbiAgc2VjcmV0cz86IHN0cmluZ1tdO1xuICBzc21TZWNyZXRzUGF0aD86IHN0cmluZztcbiAgc2VjcmV0c0ltcG9ydD86IFJlY29yZDxzdHJpbmcsIFNlY3JldEltcG9ydD47XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIGZ1bmN0aW9uTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGV0b25GdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhRnVuY3Rpb25Qcm9wcyB7XG4gIHV1aWQ/OiBzdHJpbmc7XG4gIGVwaGVtZXJhbFN0b3JhZ2VTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgU2luZ2xldG9uRnVuY3Rpb24gZXh0ZW5kcyBzaW5nbGV0b25GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTaW5nbGV0b25GdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHV1aWQ6IHV1aWQoKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5sYW1iZGFEZXNjcmlwdGlvbiB8fCBgJHtpZH0gc2luZ2xldG9uIGxhbWJkYWAsXG4gICAgICBydW50aW1lOiBwcm9wcy5ydW50aW1lLFxuICAgICAgZXBoZW1lcmFsU3RvcmFnZVNpemU6IHByb3BzLmVwaGVtZXJhbFN0b3JhZ2VTaXplXG4gICAgICAgID8gU2l6ZS5tZWJpYnl0ZXMocHJvcHMuZXBoZW1lcmFsU3RvcmFnZVNpemUpXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFBvbGljaWVzVG9Sb2xlKHByb3BzLmlubGluZVBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIExhbWJkYSdzIGV4ZWN1dGlvbiByb2xlIChhdXRvLWdlbmVyYXRlZCBieSBDREspXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV4ZWN1dGlvblJvbGUoKTogSVJvbGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJvbGU7XG4gIH1cblxuICBwcml2YXRlIGFkZFBvbGljaWVzVG9Sb2xlKHN0YXRlbWVudHM6IFBvbGljeVN0YXRlbWVudFtdKSB7XG4gICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2Ygc3RhdGVtZW50cykge1xuICAgICAgdGhpcy5hZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYUZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBwcml2YXRlIGZ1bmN0aW9uVXJsVmFsdWU/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGxhbWJkYUZ1bmN0aW9uUHJvcHMpIHtcbiAgICAvLyBFeHBsaWNpdGx5IHNldCBzdWJuZXQgc2VsZWN0aW9uIHRvIG1hdGNoIFZQQyBlbmRwb2ludCBwbGFjZW1lbnRcbiAgICAvLyAtIFdpdGggTkFUOiBQUklWQVRFX1dJVEhfRUdSRVNTIChjYW4gYWNjZXNzIGludGVybmV0IHZpYSBOQVQpXG4gICAgLy8gLSBXaXRob3V0IE5BVDogUFJJVkFURV9JU09MQVRFRCAoY2FuIGFjY2VzcyBWUEMgZW5kcG9pbnRzIG9ubHksIG5vIGludGVybmV0KVxuICAgIGxldCB2cGNTdWJuZXRzO1xuICAgIGlmIChwcm9wcy52cGMpIHtcbiAgICAgIGNvbnN0IGhhc05hdEdhdGV3YXlzID1cbiAgICAgICAgcHJvcHMudnBjIGluc3RhbmNlb2YgVnBjID8gcHJvcHMudnBjLmhhc05hdEdhdGV3YXlzIDogdHJ1ZTtcbiAgICAgIHZwY1N1Ym5ldHMgPSB7XG4gICAgICAgIHN1Ym5ldFR5cGU6IGhhc05hdEdhdGV3YXlzXG4gICAgICAgICAgPyBTdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1NcbiAgICAgICAgICA6IFN1Ym5ldFR5cGUuUFJJVkFURV9JU09MQVRFRFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgdnBjU3VibmV0cyxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXRcbiAgICAgICAgPyBEdXJhdGlvbi5zZWNvbmRzKHByb3BzLnRpbWVvdXQpXG4gICAgICAgIDogRHVyYXRpb24uc2Vjb25kcygzMDApLFxuICAgICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5U2l6ZSB8fCAxMjgsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMubGFtYmRhRGVzY3JpcHRpb24gfHwgYCR7aWR9IExhbWJkYWAsXG4gICAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnRcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkUG9saWNpZXNUb1JvbGUocHJvcHMuaW5saW5lUG9saWN5KTtcblxuICAgIHRoaXMuYWRkU2VjcmV0c1N1cHBvcnQoXG4gICAgICBwcm9wcy5zZWNyZXRzLFxuICAgICAgcHJvcHMuc3NtU2VjcmV0c1BhdGgsXG4gICAgICBwcm9wcy5zZWNyZXRzSW1wb3J0LFxuICAgICAgcHJvcHMuYXBwTmFtZSxcbiAgICAgIHByb3BzLmZ1bmN0aW9uTmFtZSxcbiAgICAgIHByb3BzLmFyY2hpdGVjdHVyZVxuICAgICk7XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlRnVuY3Rpb25VcmwpIHtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uVXJsID0gdGhpcy5hZGRGdW5jdGlvblVybCh7XG4gICAgICAgIGF1dGhUeXBlOiBwcm9wcy5mdW5jdGlvblVybEF1dGhUeXBlIHx8IEZ1bmN0aW9uVXJsQXV0aFR5cGUuQVdTX0lBTSxcbiAgICAgICAgY29yczogcHJvcHMuZnVuY3Rpb25VcmxDb3JzLFxuICAgICAgICBpbnZva2VNb2RlOiBwcm9wcy5mdW5jdGlvblVybEludm9rZU1vZGVcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZ1bmN0aW9uVXJsVmFsdWUgPSBmdW5jdGlvblVybC51cmw7XG5cbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9RnVuY3Rpb25VcmxgLCB7XG4gICAgICAgIGtleTogYCR7aWR9RnVuY3Rpb25VcmxgLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb25VcmwudXJsLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7aWR9IEZ1bmN0aW9uIFVSTGBcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pIHtcbiAgICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZSh0aGlzLCBgJHtpZH1TY2hlZHVsZVJ1bGVgLCB7XG4gICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5leHByZXNzaW9uKHByb3BzLnNjaGVkdWxlRXhwcmVzc2lvbilcbiAgICAgIH0pO1xuICAgICAgcnVsZS5hZGRUYXJnZXQobmV3IExhbWJkYVRhcmdldCh0aGlzKSk7XG4gICAgfVxuXG4gICAgbmV3IExvZ0dyb3VwKHRoaXMsIGAke2lkfUxvZ0dyb3VwYCwge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHt0aGlzLmZ1bmN0aW9uTmFtZX1gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9XRUVLXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIExhbWJkYSdzIGV4ZWN1dGlvbiByb2xlIChhdXRvLWdlbmVyYXRlZCBieSBDREspXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV4ZWN1dGlvblJvbGUoKTogSVJvbGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJvbGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBMYW1iZGEgZnVuY3Rpb24gVVJMIGlmIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0RnVuY3Rpb25VcmwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mdW5jdGlvblVybFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBTUVMgcXVldWUgYXMgYW4gZXZlbnQgc291cmNlIGZvciB0aGlzIExhbWJkYSBmdW5jdGlvbi5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIExhbWJkYSB3aGVuIG1lc3NhZ2VzIGFycml2ZSBpbiB0aGUgcXVldWUuXG4gICAqL1xuICBwdWJsaWMgYWRkU3FzRXZlbnRTb3VyY2UoXG4gICAgcXVldWU6IElRdWV1ZSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c/OiBudW1iZXI7XG4gICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcz86IGJvb2xlYW47XG4gICAgfVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFNvdXJjZSA9IG5ldyBTcXNFdmVudFNvdXJjZShxdWV1ZSwge1xuICAgICAgYmF0Y2hTaXplOiBvcHRpb25zPy5iYXRjaFNpemUgPz8gMTAsXG4gICAgICBtYXhCYXRjaGluZ1dpbmRvdzogb3B0aW9ucz8ubWF4QmF0Y2hpbmdXaW5kb3dcbiAgICAgICAgPyBEdXJhdGlvbi5zZWNvbmRzKG9wdGlvbnMubWF4QmF0Y2hpbmdXaW5kb3cpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXM6IG9wdGlvbnM/LnJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzID8/IHRydWVcbiAgICB9KTtcbiAgICB0aGlzLmFkZEV2ZW50U291cmNlKGV2ZW50U291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBEeW5hbW9EQiB0YWJsZSBzdHJlYW0gYXMgYW4gZXZlbnQgc291cmNlIGZvciB0aGlzIExhbWJkYSBmdW5jdGlvbi5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIExhbWJkYSB3aGVuIGl0ZW1zIGFyZSBtb2RpZmllZCBpbiB0aGUgdGFibGUuXG4gICAqIFJlcXVpcmVzIER5bmFtb0RCIFN0cmVhbXMgdG8gYmUgZW5hYmxlZCBvbiB0aGUgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgYWRkRHluYW1vRGJFdmVudFNvdXJjZShcbiAgICB0YWJsZTogSVRhYmxlLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBiYXRjaFNpemU/OiBudW1iZXI7XG4gICAgICBzdGFydGluZ1Bvc2l0aW9uPzogXCJUUklNX0hPUklaT05cIiB8IFwiTEFURVNUXCI7XG4gICAgICBtYXhCYXRjaGluZ1dpbmRvdz86IG51bWJlcjtcbiAgICAgIHJldHJ5QXR0ZW1wdHM/OiBudW1iZXI7XG4gICAgICBwYXJhbGxlbGl6YXRpb25GYWN0b3I/OiBudW1iZXI7XG4gICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlcz86IGJvb2xlYW47XG4gICAgfVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBzdGFydGluZ1Bvc2l0aW9uID1cbiAgICAgIG9wdGlvbnM/LnN0YXJ0aW5nUG9zaXRpb24gPT09IFwiVFJJTV9IT1JJWk9OXCJcbiAgICAgICAgPyBTdGFydGluZ1Bvc2l0aW9uLlRSSU1fSE9SSVpPTlxuICAgICAgICA6IFN0YXJ0aW5nUG9zaXRpb24uTEFURVNUO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBuZXcgRHluYW1vRXZlbnRTb3VyY2UodGFibGUsIHtcbiAgICAgIHN0YXJ0aW5nUG9zaXRpb24sXG4gICAgICBiYXRjaFNpemU6IG9wdGlvbnM/LmJhdGNoU2l6ZSA/PyAxMDAsXG4gICAgICBtYXhCYXRjaGluZ1dpbmRvdzogb3B0aW9ucz8ubWF4QmF0Y2hpbmdXaW5kb3dcbiAgICAgICAgPyBEdXJhdGlvbi5zZWNvbmRzKG9wdGlvbnMubWF4QmF0Y2hpbmdXaW5kb3cpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgcmV0cnlBdHRlbXB0czogb3B0aW9ucz8ucmV0cnlBdHRlbXB0cyxcbiAgICAgIHBhcmFsbGVsaXphdGlvbkZhY3Rvcjogb3B0aW9ucz8ucGFyYWxsZWxpemF0aW9uRmFjdG9yLFxuICAgICAgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXM6IG9wdGlvbnM/LnJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzID8/IHRydWVcbiAgICB9KTtcbiAgICB0aGlzLmFkZEV2ZW50U291cmNlKGV2ZW50U291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gUzMgYnVja2V0IGFzIGFuIGV2ZW50IHNvdXJjZSBmb3IgdGhpcyBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBMYW1iZGEgd2hlbiBvYmplY3RzIGFyZSBjcmVhdGVkLCBtb2RpZmllZCwgb3IgZGVsZXRlZC5cbiAgICogVXNlZnVsIGZvciBJU1IgY2FjaGUgaW52YWxpZGF0aW9uIGFuZCBmaWxlIHByb2Nlc3Npbmcgd29ya2Zsb3dzLlxuICAgKi9cbiAgcHVibGljIGFkZFMzRXZlbnRTb3VyY2UoXG4gICAgYnVja2V0OiBCdWNrZXQsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGV2ZW50cz86IEFycmF5PFxuICAgICAgICB8IFwiT0JKRUNUX0NSRUFURURcIlxuICAgICAgICB8IFwiT0JKRUNUX1JFTU9WRURcIlxuICAgICAgICB8IFwiT0JKRUNUX0NSRUFURURfUFVUXCJcbiAgICAgICAgfCBcIk9CSkVDVF9DUkVBVEVEX1BPU1RcIlxuICAgICAgICB8IFwiT0JKRUNUX0NSRUFURURfQ09QWVwiXG4gICAgICAgIHwgXCJPQkpFQ1RfUkVNT1ZFRF9ERUxFVEVcIlxuICAgICAgPjtcbiAgICAgIGZpbHRlcnM/OiBBcnJheTx7IHByZWZpeD86IHN0cmluZzsgc3VmZml4Pzogc3RyaW5nIH0+O1xuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRUeXBlcyA9IChvcHRpb25zPy5ldmVudHMgPz8gW1wiT0JKRUNUX0NSRUFURURcIl0pLm1hcCgoZXZlbnQpID0+IHtcbiAgICAgIHN3aXRjaCAoZXZlbnQpIHtcbiAgICAgICAgY2FzZSBcIk9CSkVDVF9DUkVBVEVEXCI6XG4gICAgICAgICAgcmV0dXJuIEV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRDtcbiAgICAgICAgY2FzZSBcIk9CSkVDVF9SRU1PVkVEXCI6XG4gICAgICAgICAgcmV0dXJuIEV2ZW50VHlwZS5PQkpFQ1RfUkVNT1ZFRDtcbiAgICAgICAgY2FzZSBcIk9CSkVDVF9DUkVBVEVEX1BVVFwiOlxuICAgICAgICAgIHJldHVybiBFdmVudFR5cGUuT0JKRUNUX0NSRUFURURfUFVUO1xuICAgICAgICBjYXNlIFwiT0JKRUNUX0NSRUFURURfUE9TVFwiOlxuICAgICAgICAgIHJldHVybiBFdmVudFR5cGUuT0JKRUNUX0NSRUFURURfUE9TVDtcbiAgICAgICAgY2FzZSBcIk9CSkVDVF9DUkVBVEVEX0NPUFlcIjpcbiAgICAgICAgICByZXR1cm4gRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVEX0NPUFk7XG4gICAgICAgIGNhc2UgXCJPQkpFQ1RfUkVNT1ZFRF9ERUxFVEVcIjpcbiAgICAgICAgICByZXR1cm4gRXZlbnRUeXBlLk9CSkVDVF9SRU1PVkVEX0RFTEVURTtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGNvbnN0IF9leGhhdXN0aXZlOiBuZXZlciA9IGV2ZW50O1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBTMyBldmVudCB0eXBlOiAke19leGhhdXN0aXZlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzM0V2ZW50U291cmNlUHJvcHM6IFMzRXZlbnRTb3VyY2VQcm9wcyA9IHtcbiAgICAgIGV2ZW50czogZXZlbnRUeXBlcyxcbiAgICAgIGZpbHRlcnM6IG9wdGlvbnM/LmZpbHRlcnNcbiAgICB9O1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UgPSBuZXcgUzNFdmVudFNvdXJjZShidWNrZXQsIHMzRXZlbnRTb3VyY2VQcm9wcyk7XG4gICAgdGhpcy5hZGRFdmVudFNvdXJjZShldmVudFNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIEV2ZW50QnJpZGdlIHJ1bGUgYXMgYW4gZXZlbnQgc291cmNlIGZvciB0aGlzIExhbWJkYSBmdW5jdGlvbi5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIExhbWJkYSB3aGVuIGV2ZW50cyBtYXRjaGluZyB0aGUgcGF0dGVybiBhcmUgcHVibGlzaGVkLlxuICAgKiBVc2VmdWwgZm9yIHNjaGVkdWxlZCBqb2JzLCBjcm9zcy1zZXJ2aWNlIGV2ZW50IGhhbmRsaW5nLCBhbmQgY3VzdG9tIGV2ZW50IHBhdHRlcm5zLlxuICAgKi9cbiAgcHVibGljIGFkZEV2ZW50QnJpZGdlRXZlbnRTb3VyY2UoXG4gICAgcnVsZUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgc2NoZWR1bGU/OiBzdHJpbmc7XG4gICAgICBldmVudFBhdHRlcm4/OiBFdmVudFBhdHRlcm47XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB9XG4gICk6IFJ1bGUge1xuICAgIGlmICghb3B0aW9ucy5zY2hlZHVsZSAmJiAhb3B0aW9ucy5ldmVudFBhdHRlcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJFdmVudEJyaWRnZSBydWxlIHJlcXVpcmVzIGVpdGhlciBzY2hlZHVsZSBvciBldmVudFBhdHRlcm5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBydWxlID0gbmV3IFJ1bGUodGhpcywgcnVsZUlkLCB7XG4gICAgICBzY2hlZHVsZTogb3B0aW9ucy5zY2hlZHVsZVxuICAgICAgICA/IFNjaGVkdWxlLmV4cHJlc3Npb24ob3B0aW9ucy5zY2hlZHVsZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBldmVudFBhdHRlcm46IG9wdGlvbnMuZXZlbnRQYXR0ZXJuLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb25cbiAgICB9KTtcblxuICAgIHJ1bGUuYWRkVGFyZ2V0KG5ldyBMYW1iZGFUYXJnZXQodGhpcykpO1xuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQb2xpY2llc1RvUm9sZShzdGF0ZW1lbnRzOiBQb2xpY3lTdGF0ZW1lbnRbXSkge1xuICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHN0YXRlbWVudHMpIHtcbiAgICAgIHRoaXMuYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBzZWNyZXRzIHN1cHBvcnQgdXNpbmcgQVdTIFBhcmFtZXRlcnMgYW5kIFNlY3JldHMgTGFtYmRhIEV4dGVuc2lvbi5cbiAgICpcbiAgICogVGhlIGV4dGVuc2lvbiBmZXRjaGVzIHNlY3JldHMgYXQgcnVudGltZSBmcm9tOlxuICAgKiAtIFNTTSBQYXJhbWV0ZXIgU3RvcmU6IHZpYSBodHRwOi8vbG9jYWxob3N0OjI3NzMvc3lzdGVtc21hbmFnZXIvcGFyYW1ldGVycy9nZXRcbiAgICogLSBTZWNyZXRzIE1hbmFnZXI6IHZpYSBodHRwOi8vbG9jYWxob3N0OjI3NzMvc2VjcmV0c21hbmFnZXIvZ2V0XG4gICAqXG4gICAqIFRoaXMgcmVwbGFjZXMgdGhlIGluc2VjdXJlIHVuc2FmZVVud3JhcCgpIHBhdHRlcm4gd2hpY2ggcmVzb2x2ZWQgc2VjcmV0cyBhdFxuICAgKiBkZXBsb3kgdGltZSBhbmQgZXhwb3NlZCB0aGVtIGluIExhbWJkYSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRTZWNyZXRzU3VwcG9ydChcbiAgICBzZWNyZXRzPzogc3RyaW5nW10sXG4gICAgc3NtU2VjcmV0c1BhdGg/OiBzdHJpbmcsXG4gICAgc2VjcmV0c0ltcG9ydD86IFJlY29yZDxzdHJpbmcsIFNlY3JldEltcG9ydD4sXG4gICAgYXBwTmFtZT86IHN0cmluZyxcbiAgICBmdW5jdGlvbk5hbWU/OiBzdHJpbmcsXG4gICAgYXJjaGl0ZWN0dXJlPzogQXJjaGl0ZWN0dXJlXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGhhc1NlY3JldHNNYW5hZ2VyID1cbiAgICAgIHNlY3JldHNJbXBvcnQgJiYgT2JqZWN0LmtleXMoc2VjcmV0c0ltcG9ydCkubGVuZ3RoID4gMDtcbiAgICBjb25zdCBoYXNTc21TZWNyZXRzID0gKHNlY3JldHM/Lmxlbmd0aCA/PyAwKSA+IDA7XG5cbiAgICBpZiAoIWhhc1NlY3JldHNNYW5hZ2VyICYmICFoYXNTc21TZWNyZXRzKSByZXR1cm47XG5cbiAgICB0aGlzLmFkZFNlY3JldHNFeHRlbnNpb25MYXllcihhcmNoaXRlY3R1cmUpO1xuXG4gICAgaWYgKGhhc1NlY3JldHNNYW5hZ2VyKSB7XG4gICAgICB0aGlzLmFkZFNlY3JldHNNYW5hZ2VyU3VwcG9ydChzZWNyZXRzSW1wb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoaGFzU3NtU2VjcmV0cykge1xuICAgICAgdGhpcy5hZGRTc21TZWNyZXRzU3VwcG9ydChcbiAgICAgICAgc2VjcmV0cyEsXG4gICAgICAgIHNzbVNlY3JldHNQYXRoLFxuICAgICAgICBhcHBOYW1lLFxuICAgICAgICBmdW5jdGlvbk5hbWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgQVdTIFBhcmFtZXRlcnMgYW5kIFNlY3JldHMgTGFtYmRhIEV4dGVuc2lvbiBsYXllci5cbiAgICogQ29uZmlndXJlcyBjYWNoZSBUVEwgZm9yIHJvdGF0aW9uIHN1cHBvcnQuXG4gICAqL1xuICBwcml2YXRlIGFkZFNlY3JldHNFeHRlbnNpb25MYXllcihhcmNoaXRlY3R1cmU/OiBBcmNoaXRlY3R1cmUpOiB2b2lkIHtcbiAgICBjb25zdCBhcmNoU3VmZml4ID0gYXJjaGl0ZWN0dXJlID09PSBBcmNoaXRlY3R1cmUuQVJNXzY0ID8gXCItQXJtNjRcIiA6IFwiXCI7XG4gICAgY29uc3QgbGF5ZXJBcm4gPVxuICAgICAgYGFybjphd3M6bGFtYmRhOiR7U3RhY2sub2YodGhpcykucmVnaW9ufToke0xBTUJEQV9TRUNSRVRTX0VYVEVOU0lPTi5BQ0NPVU5UX0lEfTpsYXllcjpgICtcbiAgICAgIGAke0xBTUJEQV9TRUNSRVRTX0VYVEVOU0lPTi5MQVlFUl9OQU1FfSR7YXJjaFN1ZmZpeH06JHtMQU1CREFfU0VDUkVUU19FWFRFTlNJT04uVkVSU0lPTn1gO1xuXG4gICAgdGhpcy5hZGRMYXllcnMoXG4gICAgICBMYXllclZlcnNpb24uZnJvbUxheWVyVmVyc2lvbkFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYCR7dGhpcy5ub2RlLmlkfVNlY3JldHNFeHRlbnNpb25gLFxuICAgICAgICBsYXllckFyblxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLmFkZEVudmlyb25tZW50KFxuICAgICAgXCJTRUNSRVRTX01BTkFHRVJfVFRMXCIsXG4gICAgICBMQU1CREFfU0VDUkVUU19FWFRFTlNJT04uQ0FDSEVfVFRMX1NFQ09ORFNcbiAgICApO1xuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoXG4gICAgICBcIlNTTV9QQVJBTUVURVJfU1RPUkVfVFRMXCIsXG4gICAgICBMQU1CREFfU0VDUkVUU19FWFRFTlNJT04uQ0FDSEVfVFRMX1NFQ09ORFNcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBTZWNyZXRzIE1hbmFnZXIgc3VwcG9ydCBmb3IgQ0RLLW1hbmFnZWQgc2VjcmV0cyAoZS5nLiwgZGF0YWJhc2UgY3JlZGVudGlhbHMpLlxuICAgKiBTdG9yZXMgQVJOICsgZmllbGQgYXMgZW52IHZhcnMgLSB0aGUgTGFtYmRhIEV4dGVuc2lvbiBmZXRjaGVzIGFjdHVhbCB2YWx1ZXMgYXQgcnVudGltZS5cbiAgICovXG4gIHByaXZhdGUgYWRkU2VjcmV0c01hbmFnZXJTdXBwb3J0KFxuICAgIHNlY3JldHNJbXBvcnQ6IFJlY29yZDxzdHJpbmcsIFNlY3JldEltcG9ydD5cbiAgKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBba2V5LCBzZWNyZXRJbXBvcnRdIG9mIE9iamVjdC5lbnRyaWVzKHNlY3JldHNJbXBvcnQpKSB7XG4gICAgICBjb25zdCBzZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldE5hbWVWMihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYCR7dGhpcy5ub2RlLmlkfUltcG9ydGVkU2VjcmV0JHtrZXl9YCxcbiAgICAgICAgc2VjcmV0SW1wb3J0Lm5hbWVcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoYCR7a2V5fV9TRUNSRVRfQVJOYCwgc2VjcmV0LnNlY3JldEFybik7XG4gICAgICBpZiAoc2VjcmV0SW1wb3J0LmZpZWxkKSB7XG4gICAgICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoYCR7a2V5fV9TRUNSRVRfRklFTERgLCBzZWNyZXRJbXBvcnQuZmllbGQpO1xuICAgICAgfVxuXG4gICAgICBzZWNyZXQuZ3JhbnRSZWFkKHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXCJrbXM6RGVjcnlwdFwiLCBcImttczpEZXNjcmliZUtleVwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICBcImttczpWaWFTZXJ2aWNlXCI6IGBzZWNyZXRzbWFuYWdlci4ke1N0YWNrLm9mKHRoaXMpLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgU1NNIFBhcmFtZXRlciBTdG9yZSBzdXBwb3J0IGZvciB1c2VyLW1hbmFnZWQgc2VjcmV0cyAodmlhIGZqYWxsIHNlY3JldCBhZGQpLlxuICAgKiBTdG9yZXMgYmFzZSBwYXRoIGFuZCBzZWNyZXQgbmFtZXMgYXMgZW52IHZhcnMgZm9yIGNvbnN1bWVyIGNvZGUuXG4gICAqL1xuICBwcml2YXRlIGFkZFNzbVNlY3JldHNTdXBwb3J0KFxuICAgIHNlY3JldHM6IHN0cmluZ1tdLFxuICAgIHNzbVNlY3JldHNQYXRoPzogc3RyaW5nLFxuICAgIGFwcE5hbWU/OiBzdHJpbmcsXG4gICAgZnVuY3Rpb25OYW1lPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5kZXJpdmVTc21TZWNyZXRzUGF0aChcbiAgICAgIHNzbVNlY3JldHNQYXRoLFxuICAgICAgYXBwTmFtZSxcbiAgICAgIGZ1bmN0aW9uTmFtZVxuICAgICk7XG5cbiAgICB0aGlzLmFkZEVudmlyb25tZW50KFwiU1NNX1NFQ1JFVFNfUEFUSFwiLCBiYXNlUGF0aCk7XG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudChcIlNTTV9TRUNSRVRfTkFNRVNcIiwgc2VjcmV0cy5qb2luKFwiLFwiKSk7XG5cbiAgICBjb25zdCBzY29wZWRQYXRoID0gYXBwTmFtZSA/IGAvJHthcHBOYW1lfS8qYCA6IGAke2Jhc2VQYXRofS8qYDtcbiAgICB0aGlzLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1wic3NtOkdldFBhcmFtZXRlclwiLCBcInNzbTpHZXRQYXJhbWV0ZXJzXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpzc206JHtTdGFjay5vZih0aGlzKS5yZWdpb259Oio6cGFyYW1ldGVyJHtzY29wZWRQYXRofWBcbiAgICAgICAgXVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcImttczpEZWNyeXB0XCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgIFwia21zOlZpYVNlcnZpY2VcIjogYHNzbS4ke1N0YWNrLm9mKHRoaXMpLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmUgU1NNIHNlY3JldHMgcGF0aCBmb3IgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICogUGF0dGVybjogLzxhcHBOYW1lPi9sYW1iZGEvPGZ1bmN0aW9uTmFtZT5cbiAgICovXG4gIHByaXZhdGUgZGVyaXZlU3NtU2VjcmV0c1BhdGgoXG4gICAgZXhwbGljaXRQYXRoPzogc3RyaW5nLFxuICAgIGFwcE5hbWU/OiBzdHJpbmcsXG4gICAgZnVuY3Rpb25OYW1lPzogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKGV4cGxpY2l0UGF0aCkge1xuICAgICAgcmV0dXJuIGV4cGxpY2l0UGF0aDtcbiAgICB9XG5cbiAgICBpZiAoIWFwcE5hbWUgfHwgIWZ1bmN0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkxhbWJkYSBmdW5jdGlvbiBoYXMgc2VjcmV0cyBkZWZpbmVkIGJ1dCBubyBzc21TZWNyZXRzUGF0aCBpcyBzZXQgXCIgK1xuICAgICAgICAgIFwiYW5kIGFwcE5hbWUvZnVuY3Rpb25OYW1lIGFyZSBub3QgYXZhaWxhYmxlLiBcIiArXG4gICAgICAgICAgXCJFaXRoZXIgc2V0IHNzbVNlY3JldHNQYXRoIGV4cGxpY2l0bHksIG9yIGVuc3VyZSBBcHAuZ2V0TmFtZSgpIHJldHVybnMgYSB2YWx1ZS5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYC8ke2FwcE5hbWV9L2xhbWJkYS8ke2Z1bmN0aW9uTmFtZX1gO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/components-infrastructure",
|
|
3
|
-
"version": "0.87.
|
|
3
|
+
"version": "0.87.8",
|
|
4
4
|
"bin": {
|
|
5
5
|
"infrastructure": "bin/infrastructure.js"
|
|
6
6
|
},
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@aws-sdk/client-organizations": "^3.716.0",
|
|
39
|
-
"@fjall/util": "^0.87.
|
|
39
|
+
"@fjall/util": "^0.87.8",
|
|
40
40
|
"@pepperize/cdk-organizations": "^0.7.135",
|
|
41
41
|
"cdk-time-sleep": "^1.0.0",
|
|
42
42
|
"constructs": "^10.0.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"overrides": {
|
|
46
46
|
"@smithy/core": "2.5.5"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "dc14e33d3b3f2e3b507d2efd93ac63025946422c",
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"aws-cdk": "^2.206.0",
|
|
51
51
|
"aws-cdk-lib": "^2.206.0",
|