@aws-cdk/integ-runner 2.188.3 → 2.189.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_LICENSES +61 -61
- package/lib/engines/toolkit-lib.js +9 -1
- package/lib/index.js +644 -290
- package/lib/logger.d.ts +1 -0
- package/lib/logger.js +3 -2
- package/lib/recommended-feature-flags.json +1 -0
- package/lib/runner/integ-test-runner.js +2 -2
- package/lib/runner/private/integ-manifest.d.ts +20 -0
- package/lib/runner/private/integ-manifest.js +41 -5
- package/lib/runner/runner-base.d.ts +5 -0
- package/lib/runner/runner-base.js +16 -4
- package/lib/workers/common.d.ts +1 -0
- package/lib/workers/common.js +21 -6
- package/lib/workers/extract/extract_worker.js +4 -3
- package/lib/workers/extract/index.js +37745 -25179
- package/package.json +13 -13
|
@@ -4,6 +4,7 @@ exports.ToolkitLibRunnerEngine = void 0;
|
|
|
4
4
|
const path = require("node:path");
|
|
5
5
|
const toolkit_lib_1 = require("@aws-cdk/toolkit-lib");
|
|
6
6
|
const chalk = require("chalk");
|
|
7
|
+
const fs = require("fs-extra");
|
|
7
8
|
/**
|
|
8
9
|
* A runner engine powered directly by the toolkit-lib
|
|
9
10
|
*/
|
|
@@ -52,6 +53,7 @@ class ToolkitLibRunnerEngine {
|
|
|
52
53
|
outdir: options.output ? path.join(this.options.workingDirectory, options.output) : undefined,
|
|
53
54
|
contextStore: new toolkit_lib_1.MemoryContext(options.context),
|
|
54
55
|
lookups: false,
|
|
56
|
+
resolveDefaultEnvironment: false,
|
|
55
57
|
env: {
|
|
56
58
|
...this.options.env,
|
|
57
59
|
...options.env,
|
|
@@ -157,6 +159,11 @@ class ToolkitLibRunnerEngine {
|
|
|
157
159
|
if (!options.app) {
|
|
158
160
|
throw new Error('No app provided');
|
|
159
161
|
}
|
|
162
|
+
// check if the app is a path to existing snapshot and then use it as an assembly directory
|
|
163
|
+
const potentialCxPath = path.join(this.options.workingDirectory, options.app);
|
|
164
|
+
if (fs.pathExistsSync(potentialCxPath) && fs.statSync(potentialCxPath).isDirectory()) {
|
|
165
|
+
return this.toolkit.fromAssemblyDirectory(potentialCxPath);
|
|
166
|
+
}
|
|
160
167
|
let outdir;
|
|
161
168
|
if (options.output) {
|
|
162
169
|
outdir = path.join(this.options.workingDirectory, options.output);
|
|
@@ -165,6 +172,7 @@ class ToolkitLibRunnerEngine {
|
|
|
165
172
|
workingDirectory: this.options.workingDirectory,
|
|
166
173
|
outdir,
|
|
167
174
|
lookups: options.lookups,
|
|
175
|
+
resolveDefaultEnvironment: false, // not part of the integ-runner contract
|
|
168
176
|
contextStore: new toolkit_lib_1.MemoryContext(options.context),
|
|
169
177
|
env: this.options.env,
|
|
170
178
|
synthOptions: {
|
|
@@ -229,4 +237,4 @@ class NoopIoHost {
|
|
|
229
237
|
return msg.defaultResponse;
|
|
230
238
|
}
|
|
231
239
|
}
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBa0M7QUFJbEMsc0RBQWtJO0FBQ2xJLCtCQUErQjtBQXlCL0I7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUtqQyxZQUFtQixPQUFnQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxxQkFBTyxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ25FLG9FQUFvRTtZQUNwRSx1REFBdUQ7WUFDdkQsdUNBQXVDO1lBQ3ZDLEVBQUU7WUFDRixjQUFjO1lBQ2QsK0RBQStEO1lBQy9ELFVBQVU7WUFDVixtQkFBbUI7WUFDbkIsTUFBTTtZQUNOLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsMEJBQTBCO1NBQzNCLENBQUMsQ0FBQztRQUVILHdGQUF3RjtRQUN4RixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixrQkFBa0I7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFxQjtRQUN0QyxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ25DLGNBQWMsRUFBRSxPQUFPLENBQUMsVUFBVTtTQUNuQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQXlCO1FBQzlDLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDL0MsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDN0YsWUFBWSxFQUFFLElBQUksMkJBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2hELE9BQU8sRUFBRSxLQUFLO1lBQ2QsR0FBRyxFQUFFO2dCQUNILEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHO2dCQUNuQixHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGFBQWEsRUFBRSxLQUFLO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDO1lBQ0gsaUVBQWlFO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLG9FQUFvRTtZQUNwRSxvQ0FBb0M7WUFDcEMsOENBQThDO1lBQzlDLDJCQUEyQjtZQUMzQixNQUFNO1lBQ04sd0JBQXdCO1FBQzFCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO2dCQUMvQywwQ0FBMEM7Z0JBQzFDLG1HQUFtRztnQkFDbkcsMkZBQTJGO2dCQUMzRixnR0FBZ0c7Z0JBQ2hHLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFvQjtRQUNwQyxrSEFBa0g7UUFDbEgsa0JBQWtCO1FBRWxCLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBc0I7UUFDeEMsb0hBQW9IO1FBQ3BILHNCQUFzQjtRQUV0QixJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUM1QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1NBQ2pELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBc0IsRUFBRSxNQUFvQjtRQUM3RCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztnQkFDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dCQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7Z0JBQ25DLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBdUI7UUFDMUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUEwQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQzFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1lBQy9DLE1BQU07WUFDTixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsWUFBWSxFQUFFLElBQUksMkJBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2hELEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDckIsWUFBWSxFQUFFO2dCQUNaLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDcEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEtBQUs7Z0JBQ25ELFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLEtBQUs7Z0JBQzNDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUs7Z0JBQzdDLFlBQVksRUFBRSxPQUFPLENBQUMsT0FBTzthQUM5QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxPQUErRDtRQUNuRixPQUFPO1lBQ0wsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9DQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0NBQXNCLENBQUMsa0JBQWtCO1lBQ3JHLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxrQ0FBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtDQUFvQixDQUFDLFFBQVE7U0FDeEYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLE9BQXNCO1FBQzdDLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDN0QsT0FBTztnQkFDTCxNQUFNLEVBQUUsU0FBUztnQkFDakIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNqRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU87WUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFlBQVk7U0FDakQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhORCx3REF3TkM7QUFFRDs7R0FFRztBQUNILE1BQU0saUJBQWtCLFNBQVEsa0NBQW9CO0lBQ2xELFlBQW1CLFFBQW1DLEVBQUU7UUFDdEQsS0FBSyxDQUFDO1lBQ0osR0FBRyxLQUFLO1lBQ1IsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ00sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUF1QjtRQUN6QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsR0FBRyxHQUFHO1lBQ04sT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVTtJQUNQLEtBQUssQ0FBQyxNQUFNO0lBQ25CLENBQUM7SUFDTSxLQUFLLENBQUMsZUFBZSxDQUFJLEdBQTBCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgdHlwZSB7IERlcGxveU9wdGlvbnMsIElDZGssIExpc3RPcHRpb25zLCBTeW50aEZhc3RPcHRpb25zLCBTeW50aE9wdGlvbnMsIFdhdGNoRXZlbnRzIH0gZnJvbSAnQGF3cy1jZGsvY2RrLWNsaS13cmFwcGVyJztcbmltcG9ydCB0eXBlIHsgRGVmYXVsdENka09wdGlvbnMsIERlc3Ryb3lPcHRpb25zIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hL2xpYi9pbnRlZy10ZXN0cyc7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRNZXRob2QsIElDbG91ZEFzc2VtYmx5U291cmNlLCBJSW9Ib3N0LCBJb01lc3NhZ2UsIElvUmVxdWVzdCwgTm9uSW50ZXJhY3RpdmVJb0hvc3RQcm9wcywgU3RhY2tTZWxlY3RvciB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCB7IEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBNZW1vcnlDb250ZXh0LCBOb25JbnRlcmFjdGl2ZUlvSG9zdCwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSwgVG9vbGtpdCB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcblxuZXhwb3J0IGludGVyZmFjZSBUb29sa2l0TGliRW5naW5lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRvIHJ1biB0aGUgY2RrIGNvbW1hbmRzIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0XG4gICAqIGluIHRoZSBleGVjdXRpb24gZW52aXJvbm1lbnQgdGhhdCB3aWxsIGJlIHJ1bm5pbmdcbiAgICogdGhlIGNkayBhcHBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGVudiB2YXJzXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogU2hvdyB0aGUgb3V0cHV0IGZyb20gcnVubmluZyB0aGUgQ0RLIENMSVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd091dHB1dD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBydW5uZXIgZW5naW5lIHBvd2VyZWQgZGlyZWN0bHkgYnkgdGhlIHRvb2xraXQtbGliXG4gKi9cbmV4cG9ydCBjbGFzcyBUb29sa2l0TGliUnVubmVyRW5naW5lIGltcGxlbWVudHMgSUNkayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9vbGtpdDogVG9vbGtpdDtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUb29sa2l0TGliRW5naW5lT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBzaG93T3V0cHV0OiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBUb29sa2l0TGliRW5naW5lT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5zaG93T3V0cHV0ID0gb3B0aW9ucy5zaG93T3V0cHV0ID8/IGZhbHNlO1xuXG4gICAgdGhpcy50b29sa2l0ID0gbmV3IFRvb2xraXQoe1xuICAgICAgaW9Ib3N0OiB0aGlzLnNob3dPdXRwdXQ/IG5ldyBJbnRlZ1J1bm5lcklvSG9zdCgpIDogbmV3IE5vb3BJb0hvc3QoKSxcbiAgICAgIC8vIEBUT0RPIC0gdGhlc2Ugb3B0aW9ucyBhcmUgY3VycmVudGx5IGF2YWlsYWJsZSBvbiB0aGUgYWN0aW9uIGNhbGxzXG4gICAgICAvLyBidXQgdG9vbGtpdC1saWIgbmVlZHMgdGhlbSBhdCB0aGUgY29uc3RydWN0b3IgbGV2ZWwuXG4gICAgICAvLyBOZWVkIHRvIGRlY2lkZSB3aGF0IHRvIGRvIHdpdGggdGhlbS5cbiAgICAgIC8vXG4gICAgICAvLyBWYWxpZGF0aW9uc1xuICAgICAgLy8gIC0gYXNzZW1ibHlGYWlsdXJlQXQ6IG9wdGlvbnMuc3RyaWN0ID8/IG9wdGlvbnMuaWdub3JlRXJyb3JzXG4gICAgICAvLyBMb2dnaW5nXG4gICAgICAvLyAgLSBvcHRpb25zLmNvbG9yXG4gICAgICAvLyBTREtcbiAgICAgIC8vICAtIG9wdGlvbnMucHJvZmlsZVxuICAgICAgLy8gIC0gb3B0aW9ucy5wcm94eVxuICAgICAgLy8gIC0gb3B0aW9ucy5jYUJ1bmRsZVBhdGhcbiAgICB9KTtcblxuICAgIC8vIEBUT0RPIC0gc2ltaWxhciB0byB0aGUgYWJvdmUsIGJ1dCBpbiB0b29sa2l0LWxpYiB0aGVzZSBvcHRpb25zIHdvdWxkIGdvIG9uIHRoZSBJb0hvc3RcbiAgICAvLyAgLSBvcHRpb25zLnF1aWV0XG4gICAgLy8gIC0gb3B0aW9ucy50cmFjZVxuICAgIC8vICAtIG9wdGlvbnMudmVyYm9zZVxuICAgIC8vICAtIG9wdGlvbnMuanNvblxuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBDREsgYXBwIHRocm91Z2ggdGhlIFRvb2xraXRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzeW50aChvcHRpb25zOiBTeW50aE9wdGlvbnMpIHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG4gICAgY29uc3QgbG9jayA9IGF3YWl0IHRoaXMudG9vbGtpdC5zeW50aChjeCwge1xuICAgICAgc3RhY2tzOiB0aGlzLnN0YWNrU2VsZWN0b3Iob3B0aW9ucyksXG4gICAgICB2YWxpZGF0ZVN0YWNrczogb3B0aW9ucy52YWxpZGF0aW9uLFxuICAgIH0pO1xuICAgIGF3YWl0IGxvY2suZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBDREsgYXBwIHF1aWNrbHksIGJ5IGJ5cGFzc2luZyB0aGUgVG9vbGtpdCBhbmQganVzdCBpbnZva2luZyB0aGUgYXBwIGNvbW1hbmRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzeW50aEZhc3Qob3B0aW9uczogU3ludGhGYXN0T3B0aW9ucykge1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy50b29sa2l0LmZyb21DZGtBcHAob3B0aW9ucy5leGVjQ21kLmpvaW4oJyAnKSwge1xuICAgICAgd29ya2luZ0RpcmVjdG9yeTogdGhpcy5vcHRpb25zLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICBvdXRkaXI6IG9wdGlvbnMub3V0cHV0ID8gcGF0aC5qb2luKHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LCBvcHRpb25zLm91dHB1dCkgOiB1bmRlZmluZWQsXG4gICAgICBjb250ZXh0U3RvcmU6IG5ldyBNZW1vcnlDb250ZXh0KG9wdGlvbnMuY29udGV4dCksXG4gICAgICBsb29rdXBzOiBmYWxzZSxcbiAgICAgIGVudjoge1xuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZW52LFxuICAgICAgICAuLi5vcHRpb25zLmVudixcbiAgICAgIH0sXG4gICAgICBzeW50aE9wdGlvbnM6IHtcbiAgICAgICAgdmVyc2lvblJlcG9ydGluZzogZmFsc2UsXG4gICAgICAgIHBhdGhNZXRhZGF0YTogZmFsc2UsXG4gICAgICAgIGFzc2V0TWV0YWRhdGE6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBAVE9ETyAtIHVzZSBwcm9kdWNlIHRvIG1pbWljIHRoZSBjdXJyZW50IGJlaGF2aW9yIG1vcmUgY2xvc2VseVxuICAgICAgY29uc3QgbG9jayA9IGF3YWl0IGN4LnByb2R1Y2UoKTtcbiAgICAgIGF3YWl0IGxvY2suZGlzcG9zZSgpO1xuICAgICAgLy8gV2Ugc2hvdWxkIGZpeCB0aGlzIG9uY2Ugd2UgaGF2ZSBzdGFiaWxpemVkIHRvb2xraXQtbGliIGFzIGVuZ2luZS5cbiAgICAgIC8vIFdoYXQgd2UgcmVhbGx5IHNob3VsZCBkbyBpcyB0aGlzOlxuICAgICAgLy8gY29uc3QgbG9jayA9IGF3YWl0IHRoaXMudG9vbGtpdC5zeW50aChjeCwge1xuICAgICAgLy8gICB2YWxpZGF0ZVN0YWNrczogZmFsc2UsXG4gICAgICAvLyB9KTtcbiAgICAgIC8vIGF3YWl0IGxvY2suZGlzcG9zZSgpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubWVzc2FnZS5pbmNsdWRlcygnTWlzc2luZyBjb250ZXh0IGtleXMnKSkge1xuICAgICAgICAvLyBAVE9ETyAtIHNpbGVudGx5IGlnbm9yZSBtaXNzaW5nIGNvbnRleHRcbiAgICAgICAgLy8gVGhpcyBpcyBhY3R1YWxseSBhbiB1bmRlZmluZWQgY2FzZSBpbiB0aGUgb2xkIGltcGxlbWVudGF0aW9uLCB3aGljaCBkb2Vzbid0IHVzZSB0aGUgdG9vbGtpdCBjb2RlXG4gICAgICAgIC8vIGFuZCB3b24ndCBmYWlsIGZvciBtaXNzaW5nIGNvbnRleHQuIFRvIHBlcnNldmVyZSBleGlzdGluZyBiZWhhdmlvciwgd2UgZG8gdGhlIHNhbWUgaGVyZS5cbiAgICAgICAgLy8gSG93ZXZlciBpbiBmdXR1cmUgd2UgbmVlZCB0byBmaW5kIGEgd2F5IGZvciBpbnRlZyB0ZXN0cyB0byBwcm92aWRlIGNvbnRleHQgdGhyb3VnaCBzbmFwc2hvdHMuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RzIHRoZSBzdGFja3MgaW4gdGhlIENESyBhcHBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsaXN0KG9wdGlvbnM6IExpc3RPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIC8vIEBUT0RPIC0gZXhpc3RpbmcgbGlzdCBzcGVjaWZpYyBvcHRpb24sIGRvZXNuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gc3VwcG9ydCB0aGlzIGluIHRoZSBjb250ZXh0IG9mIGludGVnLXJ1bm5lclxuICAgIC8vICAtIG9wdGlvbnMubG9uZ1xuXG4gICAgY29uc3QgY3ggPSBhd2FpdCB0aGlzLmN4KG9wdGlvbnMpO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IHRoaXMudG9vbGtpdC5saXN0KGN4LCB7XG4gICAgICBzdGFja3M6IHRoaXMuc3RhY2tTZWxlY3RvcihvcHRpb25zKSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGFja3MubWFwKHMgPT4gcy5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3lzIHRoZSBDREsgYXBwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVwbG95KG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgICAvLyBAVE9ETyAtIGV4aXN0aW5nIGRlcGxveSBzcGVjaWZpYyBvcHRpb24sIGRvZXNuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gc3VwcG9ydCB0aGlzIGluIHRoZSBjb250ZXh0IG9mIGludGVnLXJ1bm5lclxuICAgIC8vICAtIG9wdGlvbnMucHJvZ3Jlc3NcblxuICAgIGlmIChvcHRpb25zLndhdGNoKSB7XG4gICAgICByZXR1cm4gdGhpcy53YXRjaChvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy50b29sa2l0LmRlcGxveShjeCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgdHJhY2VMb2dzOiBvcHRpb25zLnRyYWNlTG9ncyxcbiAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgICAgZGVwbG95bWVudE1ldGhvZDogdGhpcy5kZXBsb3ltZW50TWV0aG9kKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdhdGNoZXMgdGhlIENESyBhcHAgZm9yIGNoYW5nZXMgYW5kIGRlcGxveXMgdGhlbSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd2F0Y2gob3B0aW9uczogRGVwbG95T3B0aW9ucywgZXZlbnRzPzogV2F0Y2hFdmVudHMpIHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHdhdGNoZXIgPSBhd2FpdCB0aGlzLnRvb2xraXQud2F0Y2goY3gsIHtcbiAgICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICB0cmFjZUxvZ3M6IG9wdGlvbnMudHJhY2VMb2dzLFxuICAgICAgICBzdGFja3M6IHRoaXMuc3RhY2tTZWxlY3RvcihvcHRpb25zKSxcbiAgICAgICAgZGVwbG95bWVudE1ldGhvZDogdGhpcy5kZXBsb3ltZW50TWV0aG9kKG9wdGlvbnMpLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB3YXRjaGVyLndhaXRGb3JFbmQoKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZXZlbnRzPy5vblN0ZGVycikge1xuICAgICAgICBldmVudHMub25TdGRlcnIoU3RyaW5nKGUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudHM/Lm9uQ2xvc2UpIHtcbiAgICAgICAgZXZlbnRzLm9uQ2xvc2UoMSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50cz8ub25DbG9zZSkge1xuICAgICAgZXZlbnRzLm9uQ2xvc2UoMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBDREsgYXBwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVzdHJveShvcHRpb25zOiBEZXN0cm95T3B0aW9ucykge1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy5jeChvcHRpb25zKTtcblxuICAgIGF3YWl0IHRoaXMudG9vbGtpdC5kZXN0cm95KGN4LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICBzdGFja3M6IHRoaXMuc3RhY2tTZWxlY3RvcihvcHRpb25zKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWQgQXNzZW1ibHkgU291cmNlIGZyb20gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGN4KG9wdGlvbnM6IERlZmF1bHRDZGtPcHRpb25zKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGlmICghb3B0aW9ucy5hcHApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYXBwIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgbGV0IG91dGRpcjtcbiAgICBpZiAob3B0aW9ucy5vdXRwdXQpIHtcbiAgICAgIG91dGRpciA9IHBhdGguam9pbih0aGlzLm9wdGlvbnMud29ya2luZ0RpcmVjdG9yeSwgb3B0aW9ucy5vdXRwdXQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRvb2xraXQuZnJvbUNka0FwcChvcHRpb25zLmFwcCwge1xuICAgICAgd29ya2luZ0RpcmVjdG9yeTogdGhpcy5vcHRpb25zLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICBvdXRkaXIsXG4gICAgICBsb29rdXBzOiBvcHRpb25zLmxvb2t1cHMsXG4gICAgICBjb250ZXh0U3RvcmU6IG5ldyBNZW1vcnlDb250ZXh0KG9wdGlvbnMuY29udGV4dCksXG4gICAgICBlbnY6IHRoaXMub3B0aW9ucy5lbnYsXG4gICAgICBzeW50aE9wdGlvbnM6IHtcbiAgICAgICAgZGVidWc6IG9wdGlvbnMuZGVidWcsXG4gICAgICAgIHZlcnNpb25SZXBvcnRpbmc6IG9wdGlvbnMudmVyc2lvblJlcG9ydGluZyA/PyBmYWxzZSxcbiAgICAgICAgcGF0aE1ldGFkYXRhOiBvcHRpb25zLnBhdGhNZXRhZGF0YSA/PyBmYWxzZSxcbiAgICAgICAgYXNzZXRNZXRhZGF0YTogb3B0aW9ucy5hc3NldE1ldGFkYXRhID8/IGZhbHNlLFxuICAgICAgICBhc3NldFN0YWdpbmc6IG9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0YWNrU2VsZWN0b3IgZnJvbSB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgc3RhY2tTZWxlY3RvcihvcHRpb25zOiBEZWZhdWx0Q2RrT3B0aW9ucyAmIHsgcmVhZG9ubHkgZXhjbHVzaXZlbHk/OiBib29sZWFuIH0pOiBTdGFja1NlbGVjdG9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RyYXRlZ3k6IG9wdGlvbnMuYWxsID8gU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTIDogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5QQVRURVJOX01VU1RfTUFUQ0gsXG4gICAgICBwYXR0ZXJuczogb3B0aW9ucy5zdGFja3MgPz8gWycqKiddLFxuICAgICAgZXhwYW5kOiBvcHRpb25zLmV4Y2x1c2l2ZWx5ID8gRXhwYW5kU3RhY2tTZWxlY3Rpb24uTk9ORSA6IEV4cGFuZFN0YWNrU2VsZWN0aW9uLlVQU1RSRUFNLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIERlcGxveW1lbnRNZXRob2QgZnJvbSB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgZGVwbG95bWVudE1ldGhvZChvcHRpb25zOiBEZXBsb3lPcHRpb25zKTogRGVwbG95bWVudE1ldGhvZCB7XG4gICAgaWYgKG9wdGlvbnMuaG90c3dhcCAmJiBvcHRpb25zLmhvdHN3YXAgIT09ICdmdWxsLWRlcGxveW1lbnQnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6ICdob3Rzd2FwJyxcbiAgICAgICAgZmFsbGJhY2s6IG9wdGlvbnMuaG90c3dhcCA9PT0gJ2ZhbGwtYmFjaycgPyB7IG1ldGhvZDogJ2NoYW5nZS1zZXQnIH0gOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBtZXRob2Q6IG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZCA/PyAnY2hhbmdlLXNldCcsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIElvSG9zdCB1c2VkIGluIHRoZSBpbnRlZy1ydW5uZXIgdG8gcHJvdmlkZSBub24taW50ZXJhY3RpdmUgb3V0cHV0XG4gKi9cbmNsYXNzIEludGVnUnVubmVySW9Ib3N0IGV4dGVuZHMgTm9uSW50ZXJhY3RpdmVJb0hvc3Qge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IE5vbkludGVyYWN0aXZlSW9Ib3N0UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgaXNUVFk6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBhc3luYyBub3RpZnkobXNnOiBJb01lc3NhZ2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gc3VwZXIubm90aWZ5KHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IGNoYWxrLmdyYXkobXNnLm1lc3NhZ2UpLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQW4gSW9Ib3N0IHRoYXQgZG9lc24ndCBkbyBhbnl0aGluZ1xuICovXG5jbGFzcyBOb29wSW9Ib3N0IGltcGxlbWVudHMgSUlvSG9zdCB7XG4gIHB1YmxpYyBhc3luYyBub3RpZnkoKTogUHJvbWlzZTx2b2lkPiB7XG4gIH1cbiAgcHVibGljIGFzeW5jIHJlcXVlc3RSZXNwb25zZTxUPihtc2c6IElvUmVxdWVzdDx1bmtub3duLCBUPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBtc2cuZGVmYXVsdFJlc3BvbnNlO1xuICB9XG59XG4iXX0=
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBa0M7QUFJbEMsc0RBQWtJO0FBQ2xJLCtCQUErQjtBQUMvQiwrQkFBK0I7QUF5Qi9COztHQUVHO0FBQ0gsTUFBYSxzQkFBc0I7SUFLakMsWUFBbUIsT0FBZ0M7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQztRQUU5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkscUJBQU8sQ0FBQztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsRUFBRTtZQUNuRSxvRUFBb0U7WUFDcEUsdURBQXVEO1lBQ3ZELHVDQUF1QztZQUN2QyxFQUFFO1lBQ0YsY0FBYztZQUNkLCtEQUErRDtZQUMvRCxVQUFVO1lBQ1YsbUJBQW1CO1lBQ25CLE1BQU07WUFDTixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLDBCQUEwQjtTQUMzQixDQUFDLENBQUM7UUFFSCx3RkFBd0Y7UUFDeEYsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsa0JBQWtCO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBcUI7UUFDdEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFVBQVU7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUF5QjtRQUM5QyxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1lBQy9DLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzdGLFlBQVksRUFBRSxJQUFJLDJCQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNoRCxPQUFPLEVBQUUsS0FBSztZQUNkLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsR0FBRyxFQUFFO2dCQUNILEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHO2dCQUNuQixHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGFBQWEsRUFBRSxLQUFLO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDO1lBQ0gsaUVBQWlFO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLG9FQUFvRTtZQUNwRSxvQ0FBb0M7WUFDcEMsOENBQThDO1lBQzlDLDJCQUEyQjtZQUMzQixNQUFNO1lBQ04sd0JBQXdCO1FBQzFCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO2dCQUMvQywwQ0FBMEM7Z0JBQzFDLG1HQUFtRztnQkFDbkcsMkZBQTJGO2dCQUMzRixnR0FBZ0c7Z0JBQ2hHLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFvQjtRQUNwQyxrSEFBa0g7UUFDbEgsa0JBQWtCO1FBRWxCLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBc0I7UUFDeEMsb0hBQW9IO1FBQ3BILHNCQUFzQjtRQUV0QixJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUM1QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1NBQ2pELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBc0IsRUFBRSxNQUFvQjtRQUM3RCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztnQkFDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dCQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7Z0JBQ25DLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBdUI7UUFDMUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUEwQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsMkZBQTJGO1FBQzNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUUsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNyRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUMxQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtZQUMvQyxNQUFNO1lBQ04sT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLHlCQUF5QixFQUFFLEtBQUssRUFBRSx3Q0FBd0M7WUFDMUUsWUFBWSxFQUFFLElBQUksMkJBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2hELEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDckIsWUFBWSxFQUFFO2dCQUNaLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDcEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEtBQUs7Z0JBQ25ELFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLEtBQUs7Z0JBQzNDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUs7Z0JBQzdDLFlBQVksRUFBRSxPQUFPLENBQUMsT0FBTzthQUM5QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxPQUErRDtRQUNuRixPQUFPO1lBQ0wsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9DQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0NBQXNCLENBQUMsa0JBQWtCO1lBQ3JHLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxrQ0FBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtDQUFvQixDQUFDLFFBQVE7U0FDeEYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLE9BQXNCO1FBQzdDLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDN0QsT0FBTztnQkFDTCxNQUFNLEVBQUUsU0FBUztnQkFDakIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNqRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU87WUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFlBQVk7U0FDakQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWhPRCx3REFnT0M7QUFFRDs7R0FFRztBQUNILE1BQU0saUJBQWtCLFNBQVEsa0NBQW9CO0lBQ2xELFlBQW1CLFFBQW1DLEVBQUU7UUFDdEQsS0FBSyxDQUFDO1lBQ0osR0FBRyxLQUFLO1lBQ1IsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ00sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUF1QjtRQUN6QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsR0FBRyxHQUFHO1lBQ04sT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVTtJQUNQLEtBQUssQ0FBQyxNQUFNO0lBQ25CLENBQUM7SUFDTSxLQUFLLENBQUMsZUFBZSxDQUFJLEdBQTBCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgdHlwZSB7IERlcGxveU9wdGlvbnMsIElDZGssIExpc3RPcHRpb25zLCBTeW50aEZhc3RPcHRpb25zLCBTeW50aE9wdGlvbnMsIFdhdGNoRXZlbnRzIH0gZnJvbSAnQGF3cy1jZGsvY2RrLWNsaS13cmFwcGVyJztcbmltcG9ydCB0eXBlIHsgRGVmYXVsdENka09wdGlvbnMsIERlc3Ryb3lPcHRpb25zIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hL2xpYi9pbnRlZy10ZXN0cyc7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRNZXRob2QsIElDbG91ZEFzc2VtYmx5U291cmNlLCBJSW9Ib3N0LCBJb01lc3NhZ2UsIElvUmVxdWVzdCwgTm9uSW50ZXJhY3RpdmVJb0hvc3RQcm9wcywgU3RhY2tTZWxlY3RvciB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCB7IEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBNZW1vcnlDb250ZXh0LCBOb25JbnRlcmFjdGl2ZUlvSG9zdCwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSwgVG9vbGtpdCB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuZXhwb3J0IGludGVyZmFjZSBUb29sa2l0TGliRW5naW5lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRvIHJ1biB0aGUgY2RrIGNvbW1hbmRzIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0XG4gICAqIGluIHRoZSBleGVjdXRpb24gZW52aXJvbm1lbnQgdGhhdCB3aWxsIGJlIHJ1bm5pbmdcbiAgICogdGhlIGNkayBhcHBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGVudiB2YXJzXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogU2hvdyB0aGUgb3V0cHV0IGZyb20gcnVubmluZyB0aGUgQ0RLIENMSVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd091dHB1dD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBydW5uZXIgZW5naW5lIHBvd2VyZWQgZGlyZWN0bHkgYnkgdGhlIHRvb2xraXQtbGliXG4gKi9cbmV4cG9ydCBjbGFzcyBUb29sa2l0TGliUnVubmVyRW5naW5lIGltcGxlbWVudHMgSUNkayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9vbGtpdDogVG9vbGtpdDtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUb29sa2l0TGliRW5naW5lT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBzaG93T3V0cHV0OiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBUb29sa2l0TGliRW5naW5lT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5zaG93T3V0cHV0ID0gb3B0aW9ucy5zaG93T3V0cHV0ID8/IGZhbHNlO1xuXG4gICAgdGhpcy50b29sa2l0ID0gbmV3IFRvb2xraXQoe1xuICAgICAgaW9Ib3N0OiB0aGlzLnNob3dPdXRwdXQ/IG5ldyBJbnRlZ1J1bm5lcklvSG9zdCgpIDogbmV3IE5vb3BJb0hvc3QoKSxcbiAgICAgIC8vIEBUT0RPIC0gdGhlc2Ugb3B0aW9ucyBhcmUgY3VycmVudGx5IGF2YWlsYWJsZSBvbiB0aGUgYWN0aW9uIGNhbGxzXG4gICAgICAvLyBidXQgdG9vbGtpdC1saWIgbmVlZHMgdGhlbSBhdCB0aGUgY29uc3RydWN0b3IgbGV2ZWwuXG4gICAgICAvLyBOZWVkIHRvIGRlY2lkZSB3aGF0IHRvIGRvIHdpdGggdGhlbS5cbiAgICAgIC8vXG4gICAgICAvLyBWYWxpZGF0aW9uc1xuICAgICAgLy8gIC0gYXNzZW1ibHlGYWlsdXJlQXQ6IG9wdGlvbnMuc3RyaWN0ID8/IG9wdGlvbnMuaWdub3JlRXJyb3JzXG4gICAgICAvLyBMb2dnaW5nXG4gICAgICAvLyAgLSBvcHRpb25zLmNvbG9yXG4gICAgICAvLyBTREtcbiAgICAgIC8vICAtIG9wdGlvbnMucHJvZmlsZVxuICAgICAgLy8gIC0gb3B0aW9ucy5wcm94eVxuICAgICAgLy8gIC0gb3B0aW9ucy5jYUJ1bmRsZVBhdGhcbiAgICB9KTtcblxuICAgIC8vIEBUT0RPIC0gc2ltaWxhciB0byB0aGUgYWJvdmUsIGJ1dCBpbiB0b29sa2l0LWxpYiB0aGVzZSBvcHRpb25zIHdvdWxkIGdvIG9uIHRoZSBJb0hvc3RcbiAgICAvLyAgLSBvcHRpb25zLnF1aWV0XG4gICAgLy8gIC0gb3B0aW9ucy50cmFjZVxuICAgIC8vICAtIG9wdGlvbnMudmVyYm9zZVxuICAgIC8vICAtIG9wdGlvbnMuanNvblxuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBDREsgYXBwIHRocm91Z2ggdGhlIFRvb2xraXRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzeW50aChvcHRpb25zOiBTeW50aE9wdGlvbnMpIHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG4gICAgY29uc3QgbG9jayA9IGF3YWl0IHRoaXMudG9vbGtpdC5zeW50aChjeCwge1xuICAgICAgc3RhY2tzOiB0aGlzLnN0YWNrU2VsZWN0b3Iob3B0aW9ucyksXG4gICAgICB2YWxpZGF0ZVN0YWNrczogb3B0aW9ucy52YWxpZGF0aW9uLFxuICAgIH0pO1xuICAgIGF3YWl0IGxvY2suZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBDREsgYXBwIHF1aWNrbHksIGJ5IGJ5cGFzc2luZyB0aGUgVG9vbGtpdCBhbmQganVzdCBpbnZva2luZyB0aGUgYXBwIGNvbW1hbmRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzeW50aEZhc3Qob3B0aW9uczogU3ludGhGYXN0T3B0aW9ucykge1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy50b29sa2l0LmZyb21DZGtBcHAob3B0aW9ucy5leGVjQ21kLmpvaW4oJyAnKSwge1xuICAgICAgd29ya2luZ0RpcmVjdG9yeTogdGhpcy5vcHRpb25zLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICBvdXRkaXI6IG9wdGlvbnMub3V0cHV0ID8gcGF0aC5qb2luKHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LCBvcHRpb25zLm91dHB1dCkgOiB1bmRlZmluZWQsXG4gICAgICBjb250ZXh0U3RvcmU6IG5ldyBNZW1vcnlDb250ZXh0KG9wdGlvbnMuY29udGV4dCksXG4gICAgICBsb29rdXBzOiBmYWxzZSxcbiAgICAgIHJlc29sdmVEZWZhdWx0RW52aXJvbm1lbnQ6IGZhbHNlLFxuICAgICAgZW52OiB7XG4gICAgICAgIC4uLnRoaXMub3B0aW9ucy5lbnYsXG4gICAgICAgIC4uLm9wdGlvbnMuZW52LFxuICAgICAgfSxcbiAgICAgIHN5bnRoT3B0aW9uczoge1xuICAgICAgICB2ZXJzaW9uUmVwb3J0aW5nOiBmYWxzZSxcbiAgICAgICAgcGF0aE1ldGFkYXRhOiBmYWxzZSxcbiAgICAgICAgYXNzZXRNZXRhZGF0YTogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEBUT0RPIC0gdXNlIHByb2R1Y2UgdG8gbWltaWMgdGhlIGN1cnJlbnQgYmVoYXZpb3IgbW9yZSBjbG9zZWx5XG4gICAgICBjb25zdCBsb2NrID0gYXdhaXQgY3gucHJvZHVjZSgpO1xuICAgICAgYXdhaXQgbG9jay5kaXNwb3NlKCk7XG4gICAgICAvLyBXZSBzaG91bGQgZml4IHRoaXMgb25jZSB3ZSBoYXZlIHN0YWJpbGl6ZWQgdG9vbGtpdC1saWIgYXMgZW5naW5lLlxuICAgICAgLy8gV2hhdCB3ZSByZWFsbHkgc2hvdWxkIGRvIGlzIHRoaXM6XG4gICAgICAvLyBjb25zdCBsb2NrID0gYXdhaXQgdGhpcy50b29sa2l0LnN5bnRoKGN4LCB7XG4gICAgICAvLyAgIHZhbGlkYXRlU3RhY2tzOiBmYWxzZSxcbiAgICAgIC8vIH0pO1xuICAgICAgLy8gYXdhaXQgbG9jay5kaXNwb3NlKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5tZXNzYWdlLmluY2x1ZGVzKCdNaXNzaW5nIGNvbnRleHQga2V5cycpKSB7XG4gICAgICAgIC8vIEBUT0RPIC0gc2lsZW50bHkgaWdub3JlIG1pc3NpbmcgY29udGV4dFxuICAgICAgICAvLyBUaGlzIGlzIGFjdHVhbGx5IGFuIHVuZGVmaW5lZCBjYXNlIGluIHRoZSBvbGQgaW1wbGVtZW50YXRpb24sIHdoaWNoIGRvZXNuJ3QgdXNlIHRoZSB0b29sa2l0IGNvZGVcbiAgICAgICAgLy8gYW5kIHdvbid0IGZhaWwgZm9yIG1pc3NpbmcgY29udGV4dC4gVG8gcGVyc2V2ZXJlIGV4aXN0aW5nIGJlaGF2aW9yLCB3ZSBkbyB0aGUgc2FtZSBoZXJlLlxuICAgICAgICAvLyBIb3dldmVyIGluIGZ1dHVyZSB3ZSBuZWVkIHRvIGZpbmQgYSB3YXkgZm9yIGludGVnIHRlc3RzIHRvIHByb3ZpZGUgY29udGV4dCB0aHJvdWdoIHNuYXBzaG90cy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgdGhlIHN0YWNrcyBpbiB0aGUgQ0RLIGFwcFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3Qob3B0aW9uczogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgLy8gQFRPRE8gLSBleGlzdGluZyBsaXN0IHNwZWNpZmljIG9wdGlvbiwgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZSB0byBzdXBwb3J0IHRoaXMgaW4gdGhlIGNvbnRleHQgb2YgaW50ZWctcnVubmVyXG4gICAgLy8gIC0gb3B0aW9ucy5sb25nXG5cbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG4gICAgY29uc3Qgc3RhY2tzID0gYXdhaXQgdGhpcy50b29sa2l0Lmxpc3QoY3gsIHtcbiAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN0YWNrcy5tYXAocyA9PiBzLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveXMgdGhlIENESyBhcHBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXBsb3kob3B0aW9uczogRGVwbG95T3B0aW9ucykge1xuICAgIC8vIEBUT0RPIC0gZXhpc3RpbmcgZGVwbG95IHNwZWNpZmljIG9wdGlvbiwgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZSB0byBzdXBwb3J0IHRoaXMgaW4gdGhlIGNvbnRleHQgb2YgaW50ZWctcnVubmVyXG4gICAgLy8gIC0gb3B0aW9ucy5wcm9ncmVzc1xuXG4gICAgaWYgKG9wdGlvbnMud2F0Y2gpIHtcbiAgICAgIHJldHVybiB0aGlzLndhdGNoKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy5jeChvcHRpb25zKTtcbiAgICBhd2FpdCB0aGlzLnRvb2xraXQuZGVwbG95KGN4LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICB0cmFjZUxvZ3M6IG9wdGlvbnMudHJhY2VMb2dzLFxuICAgICAgc3RhY2tzOiB0aGlzLnN0YWNrU2VsZWN0b3Iob3B0aW9ucyksXG4gICAgICBkZXBsb3ltZW50TWV0aG9kOiB0aGlzLmRlcGxveW1lbnRNZXRob2Qob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgQ0RLIGFwcCBmb3IgY2hhbmdlcyBhbmQgZGVwbG95cyB0aGVtIGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIHB1YmxpYyBhc3luYyB3YXRjaChvcHRpb25zOiBEZXBsb3lPcHRpb25zLCBldmVudHM/OiBXYXRjaEV2ZW50cykge1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy5jeChvcHRpb25zKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgd2F0Y2hlciA9IGF3YWl0IHRoaXMudG9vbGtpdC53YXRjaChjeCwge1xuICAgICAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgIHRyYWNlTG9nczogb3B0aW9ucy50cmFjZUxvZ3MsXG4gICAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgICAgICBkZXBsb3ltZW50TWV0aG9kOiB0aGlzLmRlcGxveW1lbnRNZXRob2Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHdhdGNoZXIud2FpdEZvckVuZCgpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGlmIChldmVudHM/Lm9uU3RkZXJyKSB7XG4gICAgICAgIGV2ZW50cy5vblN0ZGVycihTdHJpbmcoZSkpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50cz8ub25DbG9zZSkge1xuICAgICAgICBldmVudHMub25DbG9zZSgxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnRzPy5vbkNsb3NlKSB7XG4gICAgICBldmVudHMub25DbG9zZSgwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIENESyBhcHBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXN0cm95KG9wdGlvbnM6IERlc3Ryb3lPcHRpb25zKSB7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0aGlzLmN4KG9wdGlvbnMpO1xuXG4gICAgYXdhaXQgdGhpcy50b29sa2l0LmRlc3Ryb3koY3gsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMucm9sZUFybixcbiAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBTb3VyY2UgZnJvbSB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3gob3B0aW9uczogRGVmYXVsdENka09wdGlvbnMpOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgaWYgKCFvcHRpb25zLmFwcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhcHAgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGUgYXBwIGlzIGEgcGF0aCB0byBleGlzdGluZyBzbmFwc2hvdCBhbmQgdGhlbiB1c2UgaXQgYXMgYW4gYXNzZW1ibHkgZGlyZWN0b3J5XG4gICAgY29uc3QgcG90ZW50aWFsQ3hQYXRoID0gcGF0aC5qb2luKHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LCBvcHRpb25zLmFwcCk7XG4gICAgaWYgKGZzLnBhdGhFeGlzdHNTeW5jKHBvdGVudGlhbEN4UGF0aCkgJiYgZnMuc3RhdFN5bmMocG90ZW50aWFsQ3hQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sa2l0LmZyb21Bc3NlbWJseURpcmVjdG9yeShwb3RlbnRpYWxDeFBhdGgpO1xuICAgIH1cblxuICAgIGxldCBvdXRkaXI7XG4gICAgaWYgKG9wdGlvbnMub3V0cHV0KSB7XG4gICAgICBvdXRkaXIgPSBwYXRoLmpvaW4odGhpcy5vcHRpb25zLndvcmtpbmdEaXJlY3RvcnksIG9wdGlvbnMub3V0cHV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50b29sa2l0LmZyb21DZGtBcHAob3B0aW9ucy5hcHAsIHtcbiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LFxuICAgICAgb3V0ZGlyLFxuICAgICAgbG9va3Vwczogb3B0aW9ucy5sb29rdXBzLFxuICAgICAgcmVzb2x2ZURlZmF1bHRFbnZpcm9ubWVudDogZmFsc2UsIC8vIG5vdCBwYXJ0IG9mIHRoZSBpbnRlZy1ydW5uZXIgY29udHJhY3RcbiAgICAgIGNvbnRleHRTdG9yZTogbmV3IE1lbW9yeUNvbnRleHQob3B0aW9ucy5jb250ZXh0KSxcbiAgICAgIGVudjogdGhpcy5vcHRpb25zLmVudixcbiAgICAgIHN5bnRoT3B0aW9uczoge1xuICAgICAgICBkZWJ1Zzogb3B0aW9ucy5kZWJ1ZyxcbiAgICAgICAgdmVyc2lvblJlcG9ydGluZzogb3B0aW9ucy52ZXJzaW9uUmVwb3J0aW5nID8/IGZhbHNlLFxuICAgICAgICBwYXRoTWV0YWRhdGE6IG9wdGlvbnMucGF0aE1ldGFkYXRhID8/IGZhbHNlLFxuICAgICAgICBhc3NldE1ldGFkYXRhOiBvcHRpb25zLmFzc2V0TWV0YWRhdGEgPz8gZmFsc2UsXG4gICAgICAgIGFzc2V0U3RhZ2luZzogb3B0aW9ucy5zdGFnaW5nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RhY2tTZWxlY3RvciBmcm9tIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGFja1NlbGVjdG9yKG9wdGlvbnM6IERlZmF1bHRDZGtPcHRpb25zICYgeyByZWFkb25seSBleGNsdXNpdmVseT86IGJvb2xlYW4gfSk6IFN0YWNrU2VsZWN0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICBzdHJhdGVneTogb3B0aW9ucy5hbGwgPyBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LkFMTF9TVEFDS1MgOiBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSCxcbiAgICAgIHBhdHRlcm5zOiBvcHRpb25zLnN0YWNrcyA/PyBbJyoqJ10sXG4gICAgICBleHBhbmQ6IG9wdGlvbnMuZXhjbHVzaXZlbHkgPyBFeHBhbmRTdGFja1NlbGVjdGlvbi5OT05FIDogRXhwYW5kU3RhY2tTZWxlY3Rpb24uVVBTVFJFQU0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgRGVwbG95bWVudE1ldGhvZCBmcm9tIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBkZXBsb3ltZW50TWV0aG9kKG9wdGlvbnM6IERlcGxveU9wdGlvbnMpOiBEZXBsb3ltZW50TWV0aG9kIHtcbiAgICBpZiAob3B0aW9ucy5ob3Rzd2FwICYmIG9wdGlvbnMuaG90c3dhcCAhPT0gJ2Z1bGwtZGVwbG95bWVudCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogJ2hvdHN3YXAnLFxuICAgICAgICBmYWxsYmFjazogb3B0aW9ucy5ob3Rzd2FwID09PSAnZmFsbC1iYWNrJyA/IHsgbWV0aG9kOiAnY2hhbmdlLXNldCcgfSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZDogb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kID8/ICdjaGFuZ2Utc2V0JyxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQW4gSW9Ib3N0IHVzZWQgaW4gdGhlIGludGVnLXJ1bm5lciB0byBwcm92aWRlIG5vbi1pbnRlcmFjdGl2ZSBvdXRwdXRcbiAqL1xuY2xhc3MgSW50ZWdSdW5uZXJJb0hvc3QgZXh0ZW5kcyBOb25JbnRlcmFjdGl2ZUlvSG9zdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogTm9uSW50ZXJhY3RpdmVJb0hvc3RQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBpc1RUWTogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGFzeW5jIG5vdGlmeShtc2c6IElvTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBzdXBlci5ub3RpZnkoe1xuICAgICAgLi4ubXNnLFxuICAgICAgbWVzc2FnZTogY2hhbGsuZ3JheShtc2cubWVzc2FnZSksXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJb0hvc3QgdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nXG4gKi9cbmNsYXNzIE5vb3BJb0hvc3QgaW1wbGVtZW50cyBJSW9Ib3N0IHtcbiAgcHVibGljIGFzeW5jIG5vdGlmeSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogSW9SZXF1ZXN0PHVua25vd24sIFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIG1zZy5kZWZhdWx0UmVzcG9uc2U7XG4gIH1cbn1cbiJdfQ==
|