cdk8s-cli 2.204.9 → 2.205.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/_fs.d.ts +0 -1
- package/lib/cli/cmds/init.js +19 -9
- package/lib/cli/cmds/synth.js +18 -8
- package/lib/cli/index.js +18 -8
- package/lib/config.js +23 -13
- package/lib/import/base.js +19 -9
- package/lib/import/codegen.js +8 -9
- package/lib/import/crd.js +20 -10
- package/lib/import/crds-dev.js +2 -3
- package/lib/import/dispatch.js +3 -4
- package/lib/import/helm.js +18 -8
- package/lib/import/k8s-util.js +3 -4
- package/lib/import/k8s.js +4 -4
- package/lib/plugins/_manager.d.ts +0 -1
- package/lib/plugins/_manager.js +18 -8
- package/lib/plugins/validation.js +18 -8
- package/lib/reviver.js +1 -1
- package/lib/upgrades.js +21 -12
- package/lib/util.d.ts +0 -2
- package/lib/util.js +34 -24
- package/package.json +10 -10
- package/templates/java-app/.hooks.sscaff.js +1 -1
- package/templates/java-app/pom.xml +1 -1
- package/templates/typescript-app/package.json +5 -5
- package/templates/typescript-app/tsconfig.json +0 -1
package/lib/import/codegen.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.emitHeader = emitHeader;
|
|
4
|
+
exports.getTypeName = getTypeName;
|
|
5
|
+
exports.getConstructTypeName = getConstructTypeName;
|
|
6
|
+
exports.getPropsTypeName = getPropsTypeName;
|
|
7
|
+
exports.generateConstruct = generateConstruct;
|
|
8
|
+
exports.emitHelmHeader = emitHelmHeader;
|
|
9
|
+
exports.generateHelmConstruct = generateHelmConstruct;
|
|
4
10
|
const codemaker_1 = require("codemaker");
|
|
5
11
|
const json2jsii_1 = require("json2jsii");
|
|
6
12
|
const MANIFEST_STATIC_METHOD = 'manifest';
|
|
@@ -22,7 +28,6 @@ function emitHeader(code, custom) {
|
|
|
22
28
|
code.line('import { Construct } from \'constructs\';');
|
|
23
29
|
code.line();
|
|
24
30
|
}
|
|
25
|
-
exports.emitHeader = emitHeader;
|
|
26
31
|
function getTypeName(custom, kind, version) {
|
|
27
32
|
// add an API version postfix only if this is core API (`import k8s`).
|
|
28
33
|
// TODO = what about the rest of the namespace? the same resource can exist in multiple
|
|
@@ -30,18 +35,15 @@ function getTypeName(custom, kind, version) {
|
|
|
30
35
|
const postfix = (custom || version === 'v1') ? '' : (0, codemaker_1.toPascalCase)(version);
|
|
31
36
|
return `${kind}${postfix}`;
|
|
32
37
|
}
|
|
33
|
-
exports.getTypeName = getTypeName;
|
|
34
38
|
function getConstructTypeName(def) {
|
|
35
39
|
const prefix = def.prefix ?? '';
|
|
36
40
|
const suffix = def.suffix ?? '';
|
|
37
41
|
return json2jsii_1.TypeGenerator.normalizeTypeName(`${prefix}${getTypeName(def.custom, def.kind, def.version)}${suffix}`);
|
|
38
42
|
}
|
|
39
|
-
exports.getConstructTypeName = getConstructTypeName;
|
|
40
43
|
function getPropsTypeName(def) {
|
|
41
44
|
const constructName = getConstructTypeName(def);
|
|
42
45
|
return json2jsii_1.TypeGenerator.normalizeTypeName(`${constructName}Props`);
|
|
43
46
|
}
|
|
44
|
-
exports.getPropsTypeName = getPropsTypeName;
|
|
45
47
|
function generateConstruct(typegen, def) {
|
|
46
48
|
const constructName = getConstructTypeName(def);
|
|
47
49
|
if (def.custom) {
|
|
@@ -155,7 +157,6 @@ function generateConstruct(typegen, def) {
|
|
|
155
157
|
}
|
|
156
158
|
});
|
|
157
159
|
}
|
|
158
|
-
exports.generateConstruct = generateConstruct;
|
|
159
160
|
/**
|
|
160
161
|
* Emit imports for generated helm construct
|
|
161
162
|
* @param code CodeMaker istance
|
|
@@ -166,7 +167,6 @@ function emitHelmHeader(code) {
|
|
|
166
167
|
code.line('import { Construct } from \'constructs\';');
|
|
167
168
|
code.line();
|
|
168
169
|
}
|
|
169
|
-
exports.emitHelmHeader = emitHelmHeader;
|
|
170
170
|
function generateHelmConstruct(typegen, def) {
|
|
171
171
|
const noSpecialChars = def.chartName.replace(/([^\w ]|_)/g, '');
|
|
172
172
|
const chartName = json2jsii_1.TypeGenerator.normalizeTypeName(noSpecialChars);
|
|
@@ -312,8 +312,7 @@ function generateHelmConstruct(typegen, def) {
|
|
|
312
312
|
}
|
|
313
313
|
});
|
|
314
314
|
}
|
|
315
|
-
exports.generateHelmConstruct = generateHelmConstruct;
|
|
316
315
|
function hasRequiredProps(schema) {
|
|
317
316
|
return schema?.required && Array.isArray(schema.required) && schema.required.length > 0;
|
|
318
317
|
}
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBb0Q7QUFJcEQseUNBQTBDO0FBRTFDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQStCekI7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBZSxFQUFFLE1BQWU7SUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25DLElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0tBQ3hGO1NBQU07UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7S0FDckU7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQVRELGdDQVNDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE1BQWUsRUFBRSxJQUFZLEVBQUUsT0FBZTtJQUN4RSxzRUFBc0U7SUFDdEUsdUZBQXVGO0lBQ3ZGLDJFQUEyRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQU5ELGtDQU1DO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBd0I7SUFDM0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1B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QW1DLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQTVLRCxzREE0S0M7QUFFRCxTQUFTLGdCQUFnQixDQUFDLE1BQW1CO0lBQzNDLE9BQU8sTUFBTSxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciwgdG9QYXNjYWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcbi8vIHdlIGp1c3QgbmVlZCB0aGUgdHlwZXMgZnJvbSBqc29uLXNjaGVtYVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcblxuY29uc3QgTUFOSUZFU1RfU1RBVElDX01FVEhPRCA9ICdtYW5pZmVzdCc7XG5jb25zdCBHVktfU1RBVElDID0gJ0dWSyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT2JqZWN0RGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNDtcblxuICAvKipcbiAgICogSXMgdGhpcyBpcyBhIGN1c3RvbSByZXNvdXJjZSAoaW1wb3J0ZWQgZnJvbSBhIENSRCkgb3IgYSBjb3JlIEFQSSBvYmplY3Q/XG4gICAqL1xuICByZWFkb25seSBjdXN0b206IGJvb2xlYW47XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgcHJlZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbmF0aXZlIGs4cyBhcGkgb2JqZWN0cywgd2UgYWRkIGBLdWJlYCBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLypcbiAgICogSW5kaWNhdGVzIGlmIGEgc3VmZml4IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0IGNsYXNzIG5hbWUuIEZvclxuICAgKiBleGFtcGxlLCBmb3IgbXVsdGktdmVyc2lvbmVkIGNyZHMsIHdlIGFkZCB0aGUgdmVyc2lvbiBhcyB0aGUgc3VmZml4LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICByZWFkb25seSBzdWZmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW1pdHMgdGhlIGhlYWRlciBmb3IgYSBnZW5lcmF0ZWQgaW1wb3J0cyBmaWxlLlxuICpcbiAqIEBwYXJhbSBjdXN0b20gLSB3aGV0aGVyIHRoZSBoZWFkZXIgaXMgYmVpbmcgZW1pdHRlZCBmb3IgYSBjdXN0b20gcmVzb3VyY2VcbiAqIChpbXBvcnRlZCBmcm9tIGEgQ1JEKSBvciBhIGNvcmUgQVBJIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlYWRlcihjb2RlOiBDb2RlTWFrZXIsIGN1c3RvbTogYm9vbGVhbikge1xuICBjb2RlLmxpbmUoJy8vIGdlbmVyYXRlZCBieSBjZGs4cycpO1xuICBpZiAoY3VzdG9tKSB7XG4gICAgY29kZS5saW5lKCdpbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgfSBlbHNlIHtcbiAgICBjb2RlLmxpbmUoJ2ltcG9ydCB7IEFwaU9iamVjdCwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIH1cbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZU5hbWUoY3VzdG9tOiBib29sZWFuLCBraW5kOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAvLyBhZGQgYW4gQVBJIHZlcnNpb24gcG9zdGZpeCBvbmx5IGlmIHRoaXMgaXMgY29yZSBBUEkgKGBpbXBvcnQgazhzYCkuXG4gIC8vIFRPRE8gPSB3aGF0IGFib3V0IHRoZSByZXN0IG9mIHRoZSBuYW1lc3BhY2U/IHRoZSBzYW1lIHJlc291cmNlIGNhbiBleGlzdCBpbiBtdWx0aXBsZVxuICAvLyBhcGkgZ3JvdXBzIChJbmdyZXNzIGZvciBleGFtcGxlIGV4aXN0cyBpbiAnZXh0ZW5zaW9ucycgYW5kICduZXR3b3JraW5nJylcbiAgY29uc3QgcG9zdGZpeCA9IChjdXN0b20gfHwgdmVyc2lvbiA9PT0gJ3YxJykgPyAnJyA6IHRvUGFzY2FsQ2FzZSh2ZXJzaW9uKTtcbiAgcmV0dXJuIGAke2tpbmR9JHtwb3N0Zml4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgcHJlZml4ID0gZGVmLnByZWZpeCA/PyAnJztcbiAgY29uc3Qgc3VmZml4ID0gZGVmLnN1ZmZpeCA/PyAnJztcbiAgcmV0dXJuIFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoYCR7cHJlZml4fSR7Z2V0VHlwZU5hbWUoZGVmLmN1c3RvbSwgZGVmLmtpbmQsIGRlZi52ZXJzaW9uKX0ke3N1ZmZpeH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BzVHlwZU5hbWUoZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWYpO1xuICByZXR1cm4gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHtjb25zdHJ1Y3ROYW1lfVByb3BzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUNvbnN0cnVjdCh0eXBlZ2VuOiBUeXBlR2VuZXJhdG9yLCBkZWY6IEFwaU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3QgY29uc3RydWN0TmFtZSA9IGdldENvbnN0cnVjdFR5cGVOYW1lKGRlZik7XG5cbiAgaWYgKGRlZi5jdXN0b20pIHtcbiAgICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKCdBcGlPYmplY3RNZXRhZGF0YScsICgpID0+IHt9KTtcbiAgfVxuXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY29uc3RydWN0TmFtZSwgY29kZSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gZGVmLnNjaGVtYTtcblxuICAgIC8vIGBwcm9wc1R5cGVOYW1lYCBjb3VsZCBhbHNvIGJlIFwiYW55XCIgaWYgd2UgY2FuJ3QgcGFyc2UgdGhlIHNjaGVtYSBmb3Igc29tZSByZWFzb25cbiAgICBjb25zdCBwcm9wc1R5cGVOYW1lID0gZW1pdFByb3BzU3RydWN0KCk7XG4gICAgY29uc3QgZ3JvdXBQcmVmaXggPSBkZWYuZ3JvdXAgPyBgJHtkZWYuZ3JvdXB9L2AgOiAnJztcbiAgICBjb25zdCBoYXNSZXF1aXJlZCA9IGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKTtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSBoYXNSZXF1aXJlZCA/ICcnIDogJyA9IHt9JztcbiAgICBlbWl0Q29uc3RydWN0KCk7XG5cbiAgICBmdW5jdGlvbiBlbWl0UHJvcHNTdHJ1Y3QoKSB7XG4gICAgICBjb25zdCBwcm9wc1NjaGVtYSA9IGNyZWF0ZVByb3BzU3RydWN0U2NoZW1hKCk7XG4gICAgICBjb25zdCBwcm9wc1N0cnVjdE5hbWUgPSBnZXRQcm9wc1R5cGVOYW1lKGRlZik7XG4gICAgICByZXR1cm4gdHlwZWdlbi5lbWl0VHlwZShwcm9wc1N0cnVjdE5hbWUsIHByb3BzU2NoZW1hLCBkZWYuZnFuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQcm9wc1N0cnVjdFNjaGVtYSgpIHtcbiAgICAgIGNvbnN0IGNvcHk6IEpTT05TY2hlbWE0ID0geyAuLi5kZWYuc2NoZW1hIHx8IHt9IH07XG4gICAgICBjb25zdCBwcm9wcyA9IGNvcHkucHJvcGVydGllcyA9IGNvcHkucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIGRlbGV0ZSBwcm9wcy5hcGlWZXJzaW9uO1xuICAgICAgZGVsZXRlIHByb3BzLmtpbmQ7XG4gICAgICBkZWxldGUgcHJvcHMuc3RhdHVzO1xuICAgICAgZGVsZXRlIGNvcHlbJ3gta3ViZXJuZXRlcy1ncm91cC12ZXJzaW9uLWtpbmQnXTtcblxuICAgICAgY29weS5yZXF1aXJlZCA9IGNvcHkucmVxdWlyZWQgfHwgW107XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvcHkucmVxdWlyZWQpKSB7XG4gICAgICAgIGNvcHkucmVxdWlyZWQgPSBjb3B5LnJlcXVpcmVkLmZpbHRlcih4ID0+IHggIT09ICdhcGlWZXJzaW9uJyAmJiB4ICE9PSAna2luZCcgJiYgeCAhPT0gJ3N0YXR1cycpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVmLmN1c3RvbSkge1xuICAgICAgICAvLyBhZGQgXCJtZXRhZGF0YVwiIGZpZWxkIGZvciBhbGwgQ1JEcywgb3ZlcnJpZGluZyBhbnkgZXhpc3RpbmcgdHlwaW5nc1xuICAgICAgICBjb3B5LnByb3BlcnRpZXMubWV0YWRhdGEgPSB7ICRyZWY6ICcjL2RlZmluaXRpb25zL0FwaU9iamVjdE1ldGFkYXRhJyB9O1xuICAgICAgfVxuXG4gICAgICAvLyByZW9yZGVyIHRvcC1sZXZlbCBrZXlzIHNvIHRoYXQgd2UgaGF2ZSBcIm1ldGFkYXRhXCIgZmlyc3QgYW5kIHRoZW4gYWxsIHRoZSByZXN0XG4gICAgICAvLyBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGluIHRoZSBBcGlPYmplY3QncyB0b0pzb24gZnVuY3Rpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzLWNvcmUvYmxvYi81OGZiOGMwODgyZGRkOTVhOWI5ZGVkYjQxMDdlMTJmNjAxNDQzY2Y0L3NyYy9hcGktb2JqZWN0LnRzI0wxODUpXG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrIG9mIFsnbWV0YWRhdGEnLCAuLi5PYmplY3Qua2V5cyhjb3B5LnByb3BlcnRpZXMpXSkge1xuICAgICAgICBpZiAoayBpbiBjb3B5LnByb3BlcnRpZXMpIHtcbiAgICAgICAgICByZXN1bHRba10gPSBjb3B5LnByb3BlcnRpZXNba107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29weS5wcm9wZXJ0aWVzID0gcmVzdWx0O1xuICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdENvbnN0cnVjdCgpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7ZGVmLnNjaGVtYT8uZGVzY3JpcHRpb24gPz8gJyd9YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEBzY2hlbWEgJHtkZWYuZnFufWApO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHtjb25zdHJ1Y3ROYW1lfSBleHRlbmRzIEFwaU9iamVjdGApO1xuXG4gICAgICBlbWl0R1ZLKCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRNYW5pZmVzdEZhY3RvcnkoKTtcblxuICAgICAgY29kZS5saW5lKCcnKTtcblxuICAgICAgZW1pdEluaXRpYWxpemVyKCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRUb0pzb24oKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEdWSygpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiJHtkZWYuZnFufVwiYCk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgJHtHVktfU1RBVElDfTogR3JvdXBWZXJzaW9uS2luZCA9YCk7XG4gICAgICBjb2RlLmxpbmUoYGFwaVZlcnNpb246ICcke2dyb3VwUHJlZml4fSR7ZGVmLnZlcnNpb259JyxgKTtcbiAgICAgIGNvZGUubGluZShga2luZDogJyR7ZGVmLmtpbmR9JyxgKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRJbml0aWFsaXplcigpIHtcblxuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogRGVmaW5lcyBhIFwiJHtkZWYuZnFufVwiIEFQSSBvYmplY3RgKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3QnKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdCcpO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHMnKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7cHJvcHNUeXBlTmFtZX0ke2RlZmF1bHRQcm9wc30pYCk7XG5cbiAgICAgIGNvZGUub3Blbignc3VwZXIoc2NvcGUsIGlkLCB7Jyk7XG4gICAgICBjb2RlLmxpbmUoYC4uLiR7Y29uc3RydWN0TmFtZX0uJHtHVktfU1RBVElDfSxgKTtcbiAgICAgIGNvZGUubGluZSgnLi4ucHJvcHMsJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9KTsnKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdE1hbmlmZXN0RmFjdG9yeSgpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIiR7ZGVmLmZxbn1cIi5gKTtcbiAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgIGNvZGUubGluZSgnICogVGhpcyBjYW4gYmUgdXNlZCB0byBpbmxpbmUgcmVzb3VyY2UgbWFuaWZlc3RzIGluc2lkZSBvdGhlciBvYmplY3RzIChlLmcuIGFzIHRlbXBsYXRlcykuJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wcycpO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYHB1YmxpYyBzdGF0aWMgJHtNQU5JRkVTVF9TVEFUSUNfTUVUSE9EfShwcm9wczogJHtwcm9wc1R5cGVOYW1lfSR7ZGVmYXVsdFByb3BzfSk6IGFueWApO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoYC4uLnRvSnNvbl8ke3Byb3BzVHlwZU5hbWV9KHByb3BzKSxgKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0VG9Kc29uKCkge1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZSgnICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi4nKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLm9wZW5CbG9jaygncHVibGljIG92ZXJyaWRlIHRvSnNvbigpOiBhbnknKTtcbiAgICAgIGNvZGUubGluZSgnY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTsnKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5vcGVuKCdyZXR1cm4geycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoYC4uLnRvSnNvbl8ke3Byb3BzVHlwZU5hbWV9KHJlc29sdmVkKSxgKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEVtaXQgaW1wb3J0cyBmb3IgZ2VuZXJhdGVkIGhlbG0gY29uc3RydWN0XG4gKiBAcGFyYW0gY29kZSBDb2RlTWFrZXIgaXN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhlbG1IZWFkZXIoY29kZTogQ29kZU1ha2VyKSB7XG4gIGNvZGUubGluZSgnLy8gZ2VuZXJhdGVkIGJ5IGNkazhzJyk7XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgSGVsbSwgSGVsbVByb3BzIH0gZnJvbSBcXCdjZGs4c1xcJzsnKTtcbiAgY29kZS5saW5lKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gIGNvZGUubGluZSgpO1xufVxuXG4vKipcbiAqIEhlbG0gT2JqZWN0IERlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWxtT2JqZWN0RGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBgdmFsdWVzLnNjaGVtYS5qc29uYCBmb3IgdGhlIGhlbG0gY2hhcnRcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYTogSlNPTlNjaGVtYTQgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBDaGFydCBuYW1lXG4gICAqL1xuICByZWFkb25seSBjaGFydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IHVybFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnRVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGNoYXJ0VmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogQ2hhcnQgZGVwZW5kZW5jaWVzXG4gICAqL1xuICByZWFkb25seSBjaGFydERlcGVuZGVuY2llczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBGdWxseSBxdWFsaWZpZWQgbmFtZSBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgZnFuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVIZWxtQ29uc3RydWN0KHR5cGVnZW46IFR5cGVHZW5lcmF0b3IsIGRlZjogSGVsbU9iamVjdERlZmluaXRpb24pIHtcbiAgY29uc3Qgbm9TcGVjaWFsQ2hhcnMgPSBkZWYuY2hhcnROYW1lLnJlcGxhY2UoLyhbXlxcdyBdfF8pL2csICcnKTtcbiAgY29uc3QgY2hhcnROYW1lID0gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShub1NwZWNpYWxDaGFycyk7XG4gIGNvbnN0IHNjaGVtYSA9IGRlZi5zY2hlbWE7XG4gIGNvbnN0IHJlcG9VcmwgPSBkZWYuY2hhcnRVcmw7XG4gIGNvbnN0IGNoYXJ0VmVyc2lvbiA9IGRlZi5jaGFydFZlcnNpb247XG5cbiAgLy8gQ3JlYXRlIGN1c3RvbSB0eXBlXG4gIHR5cGVnZW4uZW1pdEN1c3RvbVR5cGUoY2hhcnROYW1lLCBjb2RlID0+IHtcblxuICAgIGxldCB2YWx1ZXNJbnRlcmZhY2UgPSBgJHtjaGFydE5hbWV9VmFsdWVzYDtcbiAgICBpZiAoc2NoZW1hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIENyZWF0aW5nIHZhbHVlcyBpbnRlcmZhY2VcbiAgICAgIHZhbHVlc0ludGVyZmFjZSA9IGVtaXRWYWx1ZXNJbnRlcmZhY2UoKTtcblxuICAgICAgZnVuY3Rpb24gZW1pdFZhbHVlc0ludGVyZmFjZSgpIHtcblxuICAgICAgICBjb25zdCBjb3B5T2ZTY2hlbWEgPSBzY2hlbWEgPyBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhzY2hlbWEpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChjb3B5T2ZTY2hlbWEgJiYgY29weU9mU2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAvLyBTdWIgY2hhcnRzIG9yIGRlcGVuZGVuY2llc1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwZW5kZW5jeSBvZiBkZWYuY2hhcnREZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzW2RlcGVuZGVuY3ldID0geyB0eXBlOiAnb2JqZWN0JywgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzLmdsb2JhbCA9IHsgdHlwZTogJ29iamVjdCcsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0gfTtcbiAgICAgICAgICBjb3B5T2ZTY2hlbWEucHJvcGVydGllcy5hZGRpdGlvbmFsVmFsdWVzID0ge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZhbHVlcyB0aGF0IGFyZSBub3QgYXZhaWxhYmxlIGluIHZhbHVlcy5zY2hlbWEuanNvbiB3aWxsIG5vdCBiZSBjb2RlIGdlbmVyYXRlZC4gWW91IGNhbiBhZGQgc3VjaCB2YWx1ZXMgdG8gdGhpcyBwcm9wZXJ0eS4nLFxuICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVnZW4uZW1pdFR5cGUodmFsdWVzSW50ZXJmYWNlLCBjb3B5T2ZTY2hlbWEsIGRlZi5mcW4pO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhzY2htYTogSlNPTlNjaGVtYTQpOiBKU09OU2NoZW1hNCB7XG4gICAgICAgIGNvbnN0IHRlbXBTY2hlbWEgPSBzY2htYTtcblxuICAgICAgICBpZiAoIXRlbXBTY2hlbWEucHJvcGVydGllcykge1xuICAgICAgICAgIHJldHVybiB0ZW1wU2NoZW1hO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LnZhbHVlcyh0ZW1wU2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICBpZiAocHJvcC50eXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwcm9wLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHByb3AucHJvcGVydGllcy5hZGRpdGlvbmFsVmFsdWVzID0ge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdWYWx1ZXMgdGhhdCBhcmUgbm90IGF2YWlsYWJsZSBpbiB2YWx1ZXMuc2NoZW1hLmpzb24gd2lsbCBub3QgYmUgY29kZSBnZW5lcmF0ZWQuIFlvdSBjYW4gYWRkIHN1Y2ggdmFsdWVzIHRvIHRoaXMgcHJvcGVydHkuJyxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgdHlwZTogJ29iamVjdCcgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGFkZEFkZGl0aW9uYWxWYWx1ZXNUb1Byb3BzKHByb3ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBTY2hlbWE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRpbmcgY29uc3RydWN0IHByb3BlcnRpZXNcbiAgICBlbWl0UHJvcHNJbnRlcmZhY2UoKTtcblxuICAgIGNvZGUubGluZSgpO1xuXG4gICAgLy8gQ3JlYXRpbmcgY29uc3RydWN0IGZvciBoZWxtIGNoYXJ0XG4gICAgZW1pdENvbnN0cnVjdCgpO1xuXG4gICAgZnVuY3Rpb24gZW1pdFByb3BzSW50ZXJmYWNlKCkge1xuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHtjaGFydE5hbWV9UHJvcHNgKTtcblxuICAgICAgY29kZS5saW5lKCdyZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IHJlbGVhc2VOYW1lPzogc3RyaW5nOycpO1xuICAgICAgY29kZS5saW5lKCdyZWFkb25seSBoZWxtRXhlY3V0YWJsZT86IHN0cmluZzsnKTtcbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgaGVsbUZsYWdzPzogc3RyaW5nW107Jyk7XG5cbiAgICAgIGlmIChzY2hlbWEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IHZhbHVlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkb1ZhbHVlc0hhdmVSZXFQcm9wcyA9IGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKSA/ICcnIDogJz8nO1xuICAgICAgICBjb2RlLmxpbmUoYHJlYWRvbmx5IHZhbHVlcyR7ZG9WYWx1ZXNIYXZlUmVxUHJvcHN9OiAke3ZhbHVlc0ludGVyZmFjZX07YCk7XG4gICAgICB9XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRDb25zdHJ1Y3QoKSB7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7Y2hhcnROYW1lfSBleHRlbmRzIENvbnN0cnVjdGApO1xuICAgICAgY29kZS5saW5lKCdwdWJsaWMgaGVsbTogSGVsbTsnKTtcbiAgICAgIGNvZGUubGluZSgpO1xuXG4gICAgICBlbWl0SW5pdGlhbGl6ZXIoKTtcblxuICAgICAgY29kZS5saW5lKCk7XG5cbiAgICAgIGVtaXRBZGRpdGlvbmFsVmFsdWVzRmxhdHRlbkZ1bmMoKTtcblxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEluaXRpYWxpemVyKCkge1xuICAgICAgY29uc3QgcHJvcHNEZWZpbml0aW9uID0gc2NoZW1hICYmIGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hKSA/IGAke2NoYXJ0TmFtZX1Qcm9wc2AgOiBgJHtjaGFydE5hbWV9UHJvcHMgPSB7fWA7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7cHJvcHNEZWZpbml0aW9ufSlgKTtcbiAgICAgIGNvZGUubGluZSgnc3VwZXIoc2NvcGUsIGlkKTsnKTtcblxuICAgICAgY29kZS5saW5lKCdsZXQgdXBkYXRlZFByb3BzID0ge307Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKCdpZiAocHJvcHMudmFsdWVzKScpO1xuICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICBjb2RlLmxpbmUoYGNvbnN0IHZhbHVlcyA9IHRvSnNvbl8ke3ZhbHVlc0ludGVyZmFjZX0ocHJvcHMudmFsdWVzKTtgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvZGUubGluZSgnY29uc3QgdmFsdWVzID0gcHJvcHMudmFsdWVzOycpO1xuICAgICAgfVxuICAgICAgY29kZS5vcGVuQmxvY2soJ2lmICh2YWx1ZXMpJyk7XG4gICAgICBjb2RlLmxpbmUoJ2NvbnN0IHsgYWRkaXRpb25hbFZhbHVlcywgLi4udmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMgfSA9IHZhbHVlczsnKTtcbiAgICAgIGNvZGUub3BlbigndXBkYXRlZFByb3BzID0geycpO1xuICAgICAgY29kZS5saW5lKCcuLi5wcm9wcywnKTtcbiAgICAgIGNvZGUub3BlbigndmFsdWVzOiB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLnRoaXMuZmxhdHRlbkFkZGl0aW9uYWxWYWx1ZXModmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMpLCcpO1xuICAgICAgY29kZS5saW5lKCcuLi5hZGRpdGlvbmFsVmFsdWVzLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfSwnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG5cbiAgICAgIGNvZGUub3BlbignY29uc3QgZmluYWxQcm9wczogSGVsbVByb3BzID0geycpO1xuICAgICAgaWYgKHJlcG9Vcmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgIGNvZGUubGluZShgY2hhcnQ6IFxcJyR7ZGVmLmNoYXJ0TmFtZX1cXCcsYCk7XG4gICAgICAgIGNvZGUubGluZShgcmVwbzogXFwnJHtyZXBvVXJsfVxcJyxgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE9DSSBvciBsb2NhbCBwYXRoXG4gICAgICAgIGNvZGUubGluZShgY2hhcnQ6IFxcJyR7cmVwb1VybH1cXCcsYCk7XG4gICAgICB9XG4gICAgICBjb2RlLmxpbmUoYHZlcnNpb246IFxcJyR7Y2hhcnRWZXJzaW9ufVxcJyxgKTtcbiAgICAgIGNvZGUubGluZSgnLi4uKE9iamVjdC5rZXlzKHVwZGF0ZWRQcm9wcykubGVuZ3RoICE9PSAwID8gdXBkYXRlZFByb3BzIDogcHJvcHMpLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfTsnKTtcblxuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLmxpbmUoJ3RoaXMuaGVsbSA9IG5ldyBIZWxtKHRoaXMsIFxcJ0hlbG1cXCcsIGZpbmFsUHJvcHMpOycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdEFkZGl0aW9uYWxWYWx1ZXNGbGF0dGVuRnVuYygpIHtcbiAgICAgIGNvZGUub3BlbkJsb2NrKCdwcml2YXRlIGZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKHByb3BzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfScpO1xuICAgICAgY29kZS5vcGVuKCdmb3IgKGxldCBwcm9wIGluIHByb3BzKSB7Jyk7XG4gICAgICBjb2RlLm9wZW4oJ2lmIChBcnJheS5pc0FycmF5KHByb3BzW3Byb3BdKSkgeycpO1xuICAgICAgY29kZS5vcGVuKCdwcm9wc1twcm9wXS5tYXAoKGl0ZW06IGFueSkgPT4geycpO1xuICAgICAgY29kZS5vcGVuKCdpZiAodHlwZW9mIGl0ZW0gPT09IFxcJ29iamVjdFxcJyAmJiBwcm9wICE9PSBcXCdhZGRpdGlvbmFsVmFsdWVzXFwnKSB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JldHVybiB0aGlzLmZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKGl0ZW0pOycpO1xuICAgICAgY29kZS5jbG9zZSgnfScpO1xuICAgICAgY29kZS5saW5lKCdyZXR1cm4gaXRlbTsnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30pOycpO1xuICAgICAgY29kZS5jbG9zZSgnfScpO1xuICAgICAgY29kZS5vcGVuKCdlbHNlIGlmICh0eXBlb2YgcHJvcHNbcHJvcF0gPT09IFxcJ29iamVjdFxcJyAmJiBwcm9wICE9PSBcXCdhZGRpdGlvbmFsVmFsdWVzXFwnKSB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3Byb3BzW3Byb3BdID0gdGhpcy5mbGF0dGVuQWRkaXRpb25hbFZhbHVlcyhwcm9wc1twcm9wXSk7Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUubGluZSgnY29uc3QgeyBhZGRpdGlvbmFsVmFsdWVzLCAuLi52YWx1ZXNXaXRob3V0QWRkaXRpb25hbFZhbHVlcyB9ID0gcHJvcHM7Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbigncmV0dXJuIHsnKTtcbiAgICAgIGNvZGUubGluZSgnLi4udmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMsJyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLmFkZGl0aW9uYWxWYWx1ZXMsJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gaGFzUmVxdWlyZWRQcm9wcyhzY2hlbWE6IEpTT05TY2hlbWE0KTpib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHNjaGVtYT8ucmVxdWlyZWQgJiYgQXJyYXkuaXNBcnJheShzY2hlbWEucmVxdWlyZWQpICYmIHNjaGVtYS5yZXF1aXJlZC5sZW5ndGggPiAwO1xufSJdfQ==
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTRDQSxnQ0FTQztBQUVELGtDQU1DO0FBRUQsb0RBSUM7QUFFRCw0Q0FHQztBQUVELDhDQTRJQztBQU1ELHdDQUtDO0FBZ0NELHNEQTRLQztBQTdhRCx5Q0FBb0Q7QUFJcEQseUNBQTBDO0FBRTFDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQStCekI7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBZSxFQUFFLE1BQWU7SUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25DLElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDekYsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE1BQWUsRUFBRSxJQUFZLEVBQUUsT0FBZTtJQUN4RSxzRUFBc0U7SUFDdEUsdUZBQXVGO0lBQ3ZGLDJFQUEyRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLE9BQU8sR0FBRyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEdBQXdCO0lBQzNE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Q0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFtQjtJQUMzQyxPQUFPLE1BQU0sRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ2NvZGVtYWtlcic7XG4vLyB3ZSBqdXN0IG5lZWQgdGhlIHR5cGVzIGZyb20ganNvbi1zY2hlbWFcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5cbmNvbnN0IE1BTklGRVNUX1NUQVRJQ19NRVRIT0QgPSAnbWFuaWZlc3QnO1xuY29uc3QgR1ZLX1NUQVRJQyA9ICdHVksnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9iamVjdERlZmluaXRpb24ge1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjaGVtYTogSlNPTlNjaGVtYTQ7XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgaXMgYSBjdXN0b20gcmVzb3VyY2UgKGltcG9ydGVkIGZyb20gYSBDUkQpIG9yIGEgY29yZSBBUEkgb2JqZWN0P1xuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tOiBib29sZWFuO1xuXG4gIC8qXG4gICAqIEluZGljYXRlcyBpZiBhIHByZWZpeCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbnN0cnVjdCBjbGFzcyBuYW1lLiBGb3JcbiAgICogZXhhbXBsZSwgZm9yIG5hdGl2ZSBrOHMgYXBpIG9iamVjdHMsIHdlIGFkZCBgS3ViZWAgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qXG4gICAqIEluZGljYXRlcyBpZiBhIHN1ZmZpeCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNvbnN0cnVjdCBjbGFzcyBuYW1lLiBGb3JcbiAgICogZXhhbXBsZSwgZm9yIG11bHRpLXZlcnNpb25lZCBjcmRzLCB3ZSBhZGQgdGhlIHZlcnNpb24gYXMgdGhlIHN1ZmZpeC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3VmZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVtaXRzIHRoZSBoZWFkZXIgZm9yIGEgZ2VuZXJhdGVkIGltcG9ydHMgZmlsZS5cbiAqXG4gKiBAcGFyYW0gY3VzdG9tIC0gd2hldGhlciB0aGUgaGVhZGVyIGlzIGJlaW5nIGVtaXR0ZWQgZm9yIGEgY3VzdG9tIHJlc291cmNlXG4gKiAoaW1wb3J0ZWQgZnJvbSBhIENSRCkgb3IgYSBjb3JlIEFQSSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRIZWFkZXIoY29kZTogQ29kZU1ha2VyLCBjdXN0b206IGJvb2xlYW4pIHtcbiAgY29kZS5saW5lKCcvLyBnZW5lcmF0ZWQgYnkgY2RrOHMnKTtcbiAgaWYgKGN1c3RvbSkge1xuICAgIGNvZGUubGluZSgnaW1wb3J0IHsgQXBpT2JqZWN0LCBBcGlPYmplY3RNZXRhZGF0YSwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIH0gZWxzZSB7XG4gICAgY29kZS5saW5lKCdpbXBvcnQgeyBBcGlPYmplY3QsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tIFxcJ2NkazhzXFwnOycpO1xuICB9XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycpO1xuICBjb2RlLmxpbmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVOYW1lKGN1c3RvbTogYm9vbGVhbiwga2luZDogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgLy8gYWRkIGFuIEFQSSB2ZXJzaW9uIHBvc3RmaXggb25seSBpZiB0aGlzIGlzIGNvcmUgQVBJIChgaW1wb3J0IGs4c2ApLlxuICAvLyBUT0RPID0gd2hhdCBhYm91dCB0aGUgcmVzdCBvZiB0aGUgbmFtZXNwYWNlPyB0aGUgc2FtZSByZXNvdXJjZSBjYW4gZXhpc3QgaW4gbXVsdGlwbGVcbiAgLy8gYXBpIGdyb3VwcyAoSW5ncmVzcyBmb3IgZXhhbXBsZSBleGlzdHMgaW4gJ2V4dGVuc2lvbnMnIGFuZCAnbmV0d29ya2luZycpXG4gIGNvbnN0IHBvc3RmaXggPSAoY3VzdG9tIHx8IHZlcnNpb24gPT09ICd2MScpID8gJycgOiB0b1Bhc2NhbENhc2UodmVyc2lvbik7XG4gIHJldHVybiBgJHtraW5kfSR7cG9zdGZpeH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc3RydWN0VHlwZU5hbWUoZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IHByZWZpeCA9IGRlZi5wcmVmaXggPz8gJyc7XG4gIGNvbnN0IHN1ZmZpeCA9IGRlZi5zdWZmaXggPz8gJyc7XG4gIHJldHVybiBUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKGAke3ByZWZpeH0ke2dldFR5cGVOYW1lKGRlZi5jdXN0b20sIGRlZi5raW5kLCBkZWYudmVyc2lvbil9JHtzdWZmaXh9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wc1R5cGVOYW1lKGRlZjogQXBpT2JqZWN0RGVmaW5pdGlvbikge1xuICBjb25zdCBjb25zdHJ1Y3ROYW1lID0gZ2V0Q29uc3RydWN0VHlwZU5hbWUoZGVmKTtcbiAgcmV0dXJuIFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoYCR7Y29uc3RydWN0TmFtZX1Qcm9wc2ApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVDb25zdHJ1Y3QodHlwZWdlbjogVHlwZUdlbmVyYXRvciwgZGVmOiBBcGlPYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBnZXRDb25zdHJ1Y3RUeXBlTmFtZShkZWYpO1xuXG4gIGlmIChkZWYuY3VzdG9tKSB7XG4gICAgdHlwZWdlbi5lbWl0Q3VzdG9tVHlwZSgnQXBpT2JqZWN0TWV0YWRhdGEnLCAoKSA9PiB7fSk7XG4gIH1cblxuICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKGNvbnN0cnVjdE5hbWUsIGNvZGUgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IGRlZi5zY2hlbWE7XG5cbiAgICAvLyBgcHJvcHNUeXBlTmFtZWAgY291bGQgYWxzbyBiZSBcImFueVwiIGlmIHdlIGNhbid0IHBhcnNlIHRoZSBzY2hlbWEgZm9yIHNvbWUgcmVhc29uXG4gICAgY29uc3QgcHJvcHNUeXBlTmFtZSA9IGVtaXRQcm9wc1N0cnVjdCgpO1xuICAgIGNvbnN0IGdyb3VwUHJlZml4ID0gZGVmLmdyb3VwID8gYCR7ZGVmLmdyb3VwfS9gIDogJyc7XG4gICAgY29uc3QgaGFzUmVxdWlyZWQgPSBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYSk7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0gaGFzUmVxdWlyZWQgPyAnJyA6ICcgPSB7fSc7XG4gICAgZW1pdENvbnN0cnVjdCgpO1xuXG4gICAgZnVuY3Rpb24gZW1pdFByb3BzU3RydWN0KCkge1xuICAgICAgY29uc3QgcHJvcHNTY2hlbWEgPSBjcmVhdGVQcm9wc1N0cnVjdFNjaGVtYSgpO1xuICAgICAgY29uc3QgcHJvcHNTdHJ1Y3ROYW1lID0gZ2V0UHJvcHNUeXBlTmFtZShkZWYpO1xuICAgICAgcmV0dXJuIHR5cGVnZW4uZW1pdFR5cGUocHJvcHNTdHJ1Y3ROYW1lLCBwcm9wc1NjaGVtYSwgZGVmLmZxbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlUHJvcHNTdHJ1Y3RTY2hlbWEoKSB7XG4gICAgICBjb25zdCBjb3B5OiBKU09OU2NoZW1hNCA9IHsgLi4uZGVmLnNjaGVtYSB8fCB7fSB9O1xuICAgICAgY29uc3QgcHJvcHMgPSBjb3B5LnByb3BlcnRpZXMgPSBjb3B5LnByb3BlcnRpZXMgfHwge307XG4gICAgICBkZWxldGUgcHJvcHMuYXBpVmVyc2lvbjtcbiAgICAgIGRlbGV0ZSBwcm9wcy5raW5kO1xuICAgICAgZGVsZXRlIHByb3BzLnN0YXR1cztcbiAgICAgIGRlbGV0ZSBjb3B5Wyd4LWt1YmVybmV0ZXMtZ3JvdXAtdmVyc2lvbi1raW5kJ107XG5cbiAgICAgIGNvcHkucmVxdWlyZWQgPSBjb3B5LnJlcXVpcmVkIHx8IFtdO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb3B5LnJlcXVpcmVkKSkge1xuICAgICAgICBjb3B5LnJlcXVpcmVkID0gY29weS5yZXF1aXJlZC5maWx0ZXIoeCA9PiB4ICE9PSAnYXBpVmVyc2lvbicgJiYgeCAhPT0gJ2tpbmQnICYmIHggIT09ICdzdGF0dXMnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZi5jdXN0b20pIHtcbiAgICAgICAgLy8gYWRkIFwibWV0YWRhdGFcIiBmaWVsZCBmb3IgYWxsIENSRHMsIG92ZXJyaWRpbmcgYW55IGV4aXN0aW5nIHR5cGluZ3NcbiAgICAgICAgY29weS5wcm9wZXJ0aWVzLm1ldGFkYXRhID0geyAkcmVmOiAnIy9kZWZpbml0aW9ucy9BcGlPYmplY3RNZXRhZGF0YScgfTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVvcmRlciB0b3AtbGV2ZWwga2V5cyBzbyB0aGF0IHdlIGhhdmUgXCJtZXRhZGF0YVwiIGZpcnN0IGFuZCB0aGVuIGFsbCB0aGUgcmVzdFxuICAgICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBpbiB0aGUgQXBpT2JqZWN0J3MgdG9Kc29uIGZ1bmN0aW9uIChodHRwczovL2dpdGh1Yi5jb20vY2RrOHMtdGVhbS9jZGs4cy1jb3JlL2Jsb2IvNThmYjhjMDg4MmRkZDk1YTliOWRlZGI0MTA3ZTEyZjYwMTQ0M2NmNC9zcmMvYXBpLW9iamVjdC50cyNMMTg1KVxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICAgIGZvciAoY29uc3QgayBvZiBbJ21ldGFkYXRhJywgLi4uT2JqZWN0LmtleXMoY29weS5wcm9wZXJ0aWVzKV0pIHtcbiAgICAgICAgaWYgKGsgaW4gY29weS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgcmVzdWx0W2tdID0gY29weS5wcm9wZXJ0aWVzW2tdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvcHkucHJvcGVydGllcyA9IHJlc3VsdDtcbiAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRDb25zdHJ1Y3QoKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiAke2RlZi5zY2hlbWE/LmRlc2NyaXB0aW9uID8/ICcnfWApO1xuICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBAc2NoZW1hICR7ZGVmLmZxbn1gKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7Y29uc3RydWN0TmFtZX0gZXh0ZW5kcyBBcGlPYmplY3RgKTtcblxuICAgICAgZW1pdEdWSygpO1xuXG4gICAgICBjb2RlLmxpbmUoJycpO1xuXG4gICAgICBlbWl0TWFuaWZlc3RGYWN0b3J5KCk7XG5cbiAgICAgIGNvZGUubGluZSgnJyk7XG5cbiAgICAgIGVtaXRJbml0aWFsaXplcigpO1xuXG4gICAgICBjb2RlLmxpbmUoJycpO1xuXG4gICAgICBlbWl0VG9Kc29uKCk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRHVksoKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBSZXR1cm5zIHRoZSBhcGlWZXJzaW9uIGFuZCBraW5kIGZvciBcIiR7ZGVmLmZxbn1cImApO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgc3RhdGljIHJlYWRvbmx5ICR7R1ZLX1NUQVRJQ306IEdyb3VwVmVyc2lvbktpbmQgPWApO1xuICAgICAgY29kZS5saW5lKGBhcGlWZXJzaW9uOiAnJHtncm91cFByZWZpeH0ke2RlZi52ZXJzaW9ufScsYCk7XG4gICAgICBjb2RlLmxpbmUoYGtpbmQ6ICcke2RlZi5raW5kfScsYCk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0SW5pdGlhbGl6ZXIoKSB7XG5cbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIERlZmluZXMgYSBcIiR7ZGVmLmZxbn1cIiBBUEkgb2JqZWN0YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0Jyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3QnKTtcbiAgICAgIGNvZGUubGluZSgnICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3Byb3BzVHlwZU5hbWV9JHtkZWZhdWx0UHJvcHN9KWApO1xuXG4gICAgICBjb2RlLm9wZW4oJ3N1cGVyKHNjb3BlLCBpZCwgeycpO1xuICAgICAgY29kZS5saW5lKGAuLi4ke2NvbnN0cnVjdE5hbWV9LiR7R1ZLX1NUQVRJQ30sYCk7XG4gICAgICBjb2RlLmxpbmUoJy4uLnByb3BzLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfSk7Jyk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRNYW5pZmVzdEZhY3RvcnkoKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCIke2RlZi5mcW59XCIuYCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLicpO1xuICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHMnKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgc3RhdGljICR7TUFOSUZFU1RfU1RBVElDX01FVEhPRH0ocHJvcHM6ICR7cHJvcHNUeXBlTmFtZX0ke2RlZmF1bHRQcm9wc30pOiBhbnlgKTtcbiAgICAgIGNvZGUub3BlbigncmV0dXJuIHsnKTtcbiAgICAgIGNvZGUubGluZShgLi4uJHtjb25zdHJ1Y3ROYW1lfS4ke0dWS19TVEFUSUN9LGApO1xuICAgICAgY29kZS5saW5lKGAuLi50b0pzb25fJHtwcm9wc1R5cGVOYW1lfShwcm9wcyksYCk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW1pdFRvSnNvbigpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uJyk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5vcGVuQmxvY2soJ3B1YmxpYyBvdmVycmlkZSB0b0pzb24oKTogYW55Jyk7XG4gICAgICBjb2RlLmxpbmUoJ2NvbnN0IHJlc29sdmVkID0gc3VwZXIudG9Kc29uKCk7Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbigncmV0dXJuIHsnKTtcbiAgICAgIGNvZGUubGluZShgLi4uJHtjb25zdHJ1Y3ROYW1lfS4ke0dWS19TVEFUSUN9LGApO1xuICAgICAgY29kZS5saW5lKGAuLi50b0pzb25fJHtwcm9wc1R5cGVOYW1lfShyZXNvbHZlZCksYCk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBFbWl0IGltcG9ydHMgZm9yIGdlbmVyYXRlZCBoZWxtIGNvbnN0cnVjdFxuICogQHBhcmFtIGNvZGUgQ29kZU1ha2VyIGlzdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRIZWxtSGVhZGVyKGNvZGU6IENvZGVNYWtlcikge1xuICBjb2RlLmxpbmUoJy8vIGdlbmVyYXRlZCBieSBjZGs4cycpO1xuICBjb2RlLmxpbmUoJ2ltcG9ydCB7IEhlbG0sIEhlbG1Qcm9wcyB9IGZyb20gXFwnY2RrOHNcXCc7Jyk7XG4gIGNvZGUubGluZSgnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycpO1xuICBjb2RlLmxpbmUoKTtcbn1cblxuLyoqXG4gKiBIZWxtIE9iamVjdCBEZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVsbU9iamVjdERlZmluaXRpb24ge1xuICAvKipcbiAgICogYHZhbHVlcy5zY2hlbWEuanNvbmAgZm9yIHRoZSBoZWxtIGNoYXJ0XG4gICAqL1xuICByZWFkb25seSBzY2hlbWE6IEpTT05TY2hlbWE0IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQ2hhcnQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDaGFydCB1cmxcbiAgICovXG4gIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDaGFydCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBjaGFydFZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXJ0IGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogRnVsbHkgcXVhbGlmaWVkIG5hbWUgZm9yIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IGZxbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCh0eXBlZ2VuOiBUeXBlR2VuZXJhdG9yLCBkZWY6IEhlbG1PYmplY3REZWZpbml0aW9uKSB7XG4gIGNvbnN0IG5vU3BlY2lhbENoYXJzID0gZGVmLmNoYXJ0TmFtZS5yZXBsYWNlKC8oW15cXHcgXXxfKS9nLCAnJyk7XG4gIGNvbnN0IGNoYXJ0TmFtZSA9IFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUobm9TcGVjaWFsQ2hhcnMpO1xuICBjb25zdCBzY2hlbWEgPSBkZWYuc2NoZW1hO1xuICBjb25zdCByZXBvVXJsID0gZGVmLmNoYXJ0VXJsO1xuICBjb25zdCBjaGFydFZlcnNpb24gPSBkZWYuY2hhcnRWZXJzaW9uO1xuXG4gIC8vIENyZWF0ZSBjdXN0b20gdHlwZVxuICB0eXBlZ2VuLmVtaXRDdXN0b21UeXBlKGNoYXJ0TmFtZSwgY29kZSA9PiB7XG5cbiAgICBsZXQgdmFsdWVzSW50ZXJmYWNlID0gYCR7Y2hhcnROYW1lfVZhbHVlc2A7XG4gICAgaWYgKHNjaGVtYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBDcmVhdGluZyB2YWx1ZXMgaW50ZXJmYWNlXG4gICAgICB2YWx1ZXNJbnRlcmZhY2UgPSBlbWl0VmFsdWVzSW50ZXJmYWNlKCk7XG5cbiAgICAgIGZ1bmN0aW9uIGVtaXRWYWx1ZXNJbnRlcmZhY2UoKSB7XG5cbiAgICAgICAgY29uc3QgY29weU9mU2NoZW1hID0gc2NoZW1hID8gYWRkQWRkaXRpb25hbFZhbHVlc1RvUHJvcHMoc2NoZW1hKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoY29weU9mU2NoZW1hICYmIGNvcHlPZlNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgLy8gU3ViIGNoYXJ0cyBvciBkZXBlbmRlbmNpZXNcbiAgICAgICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgZGVmLmNoYXJ0RGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICBjb3B5T2ZTY2hlbWEucHJvcGVydGllc1tkZXBlbmRlbmN5XSA9IHsgdHlwZTogJ29iamVjdCcsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0gfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb3B5T2ZTY2hlbWEucHJvcGVydGllcy5nbG9iYWwgPSB7IHR5cGU6ICdvYmplY3QnLCBhZGRpdGlvbmFsUHJvcGVydGllczogeyB0eXBlOiAnb2JqZWN0JyB9IH07XG4gICAgICAgICAgY29weU9mU2NoZW1hLnByb3BlcnRpZXMuYWRkaXRpb25hbFZhbHVlcyA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdWYWx1ZXMgdGhhdCBhcmUgbm90IGF2YWlsYWJsZSBpbiB2YWx1ZXMuc2NoZW1hLmpzb24gd2lsbCBub3QgYmUgY29kZSBnZW5lcmF0ZWQuIFlvdSBjYW4gYWRkIHN1Y2ggdmFsdWVzIHRvIHRoaXMgcHJvcGVydHkuJyxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlZ2VuLmVtaXRUeXBlKHZhbHVlc0ludGVyZmFjZSwgY29weU9mU2NoZW1hLCBkZWYuZnFuKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gYWRkQWRkaXRpb25hbFZhbHVlc1RvUHJvcHMoc2NobWE6IEpTT05TY2hlbWE0KTogSlNPTlNjaGVtYTQge1xuICAgICAgICBjb25zdCB0ZW1wU2NoZW1hID0gc2NobWE7XG5cbiAgICAgICAgaWYgKCF0ZW1wU2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdGVtcFNjaGVtYTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC52YWx1ZXModGVtcFNjaGVtYS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgaWYgKHByb3AudHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocHJvcC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBwcm9wLnByb3BlcnRpZXMuYWRkaXRpb25hbFZhbHVlcyA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVmFsdWVzIHRoYXQgYXJlIG5vdCBhdmFpbGFibGUgaW4gdmFsdWVzLnNjaGVtYS5qc29uIHdpbGwgbm90IGJlIGNvZGUgZ2VuZXJhdGVkLiBZb3UgY2FuIGFkZCBzdWNoIHZhbHVlcyB0byB0aGlzIHByb3BlcnR5LicsXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7IHR5cGU6ICdvYmplY3QnIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhZGRBZGRpdGlvbmFsVmFsdWVzVG9Qcm9wcyhwcm9wKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0ZW1wU2NoZW1hO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENyZWF0aW5nIGNvbnN0cnVjdCBwcm9wZXJ0aWVzXG4gICAgZW1pdFByb3BzSW50ZXJmYWNlKCk7XG5cbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIC8vIENyZWF0aW5nIGNvbnN0cnVjdCBmb3IgaGVsbSBjaGFydFxuICAgIGVtaXRDb25zdHJ1Y3QoKTtcblxuICAgIGZ1bmN0aW9uIGVtaXRQcm9wc0ludGVyZmFjZSgpIHtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlICR7Y2hhcnROYW1lfVByb3BzYCk7XG5cbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nOycpO1xuICAgICAgY29kZS5saW5lKCdyZWFkb25seSByZWxlYXNlTmFtZT86IHN0cmluZzsnKTtcbiAgICAgIGNvZGUubGluZSgncmVhZG9ubHkgaGVsbUV4ZWN1dGFibGU/OiBzdHJpbmc7Jyk7XG4gICAgICBjb2RlLmxpbmUoJ3JlYWRvbmx5IGhlbG1GbGFncz86IHN0cmluZ1tdOycpO1xuXG4gICAgICBpZiAoc2NoZW1hID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29kZS5saW5lKCdyZWFkb25seSB2YWx1ZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9OycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZG9WYWx1ZXNIYXZlUmVxUHJvcHMgPSBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYSkgPyAnJyA6ICc/JztcbiAgICAgICAgY29kZS5saW5lKGByZWFkb25seSB2YWx1ZXMke2RvVmFsdWVzSGF2ZVJlcVByb3BzfTogJHt2YWx1ZXNJbnRlcmZhY2V9O2ApO1xuICAgICAgfVxuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbWl0Q29uc3RydWN0KCkge1xuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke2NoYXJ0TmFtZX0gZXh0ZW5kcyBDb25zdHJ1Y3RgKTtcbiAgICAgIGNvZGUubGluZSgncHVibGljIGhlbG06IEhlbG07Jyk7XG4gICAgICBjb2RlLmxpbmUoKTtcblxuICAgICAgZW1pdEluaXRpYWxpemVyKCk7XG5cbiAgICAgIGNvZGUubGluZSgpO1xuXG4gICAgICBlbWl0QWRkaXRpb25hbFZhbHVlc0ZsYXR0ZW5GdW5jKCk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRJbml0aWFsaXplcigpIHtcbiAgICAgIGNvbnN0IHByb3BzRGVmaW5pdGlvbiA9IHNjaGVtYSAmJiBoYXNSZXF1aXJlZFByb3BzKHNjaGVtYSkgPyBgJHtjaGFydE5hbWV9UHJvcHNgIDogYCR7Y2hhcnROYW1lfVByb3BzID0ge31gO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3Byb3BzRGVmaW5pdGlvbn0pYCk7XG4gICAgICBjb2RlLmxpbmUoJ3N1cGVyKHNjb3BlLCBpZCk7Jyk7XG5cbiAgICAgIGNvZGUubGluZSgnbGV0IHVwZGF0ZWRQcm9wcyA9IHt9OycpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLm9wZW5CbG9jaygnaWYgKHByb3BzLnZhbHVlcyknKTtcbiAgICAgIGlmIChzY2hlbWEpIHtcbiAgICAgICAgY29kZS5saW5lKGBjb25zdCB2YWx1ZXMgPSB0b0pzb25fJHt2YWx1ZXNJbnRlcmZhY2V9KHByb3BzLnZhbHVlcyk7YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2RlLmxpbmUoJ2NvbnN0IHZhbHVlcyA9IHByb3BzLnZhbHVlczsnKTtcbiAgICAgIH1cbiAgICAgIGNvZGUub3BlbkJsb2NrKCdpZiAodmFsdWVzKScpO1xuICAgICAgY29kZS5saW5lKCdjb25zdCB7IGFkZGl0aW9uYWxWYWx1ZXMsIC4uLnZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzIH0gPSB2YWx1ZXM7Jyk7XG4gICAgICBjb2RlLm9wZW4oJ3VwZGF0ZWRQcm9wcyA9IHsnKTtcbiAgICAgIGNvZGUubGluZSgnLi4ucHJvcHMsJyk7XG4gICAgICBjb2RlLm9wZW4oJ3ZhbHVlczogeycpO1xuICAgICAgY29kZS5saW5lKCcuLi50aGlzLmZsYXR0ZW5BZGRpdGlvbmFsVmFsdWVzKHZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzKSwnKTtcbiAgICAgIGNvZGUubGluZSgnLi4uYWRkaXRpb25hbFZhbHVlcywnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30sJyk7XG4gICAgICBjb2RlLmNsb3NlKCd9OycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUubGluZSgpO1xuXG4gICAgICBjb2RlLm9wZW4oJ2NvbnN0IGZpbmFsUHJvcHM6IEhlbG1Qcm9wcyA9IHsnKTtcbiAgICAgIGlmIChyZXBvVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICBjb2RlLmxpbmUoYGNoYXJ0OiBcXCcke2RlZi5jaGFydE5hbWV9XFwnLGApO1xuICAgICAgICBjb2RlLmxpbmUoYHJlcG86IFxcJyR7cmVwb1VybH1cXCcsYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPQ0kgb3IgbG9jYWwgcGF0aFxuICAgICAgICBjb2RlLmxpbmUoYGNoYXJ0OiBcXCcke3JlcG9Vcmx9XFwnLGApO1xuICAgICAgfVxuICAgICAgY29kZS5saW5lKGB2ZXJzaW9uOiBcXCcke2NoYXJ0VmVyc2lvbn1cXCcsYCk7XG4gICAgICBjb2RlLmxpbmUoJy4uLihPYmplY3Qua2V5cyh1cGRhdGVkUHJvcHMpLmxlbmd0aCAhPT0gMCA/IHVwZGF0ZWRQcm9wcyA6IHByb3BzKSwnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ307Jyk7XG5cbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5saW5lKCd0aGlzLmhlbG0gPSBuZXcgSGVsbSh0aGlzLCBcXCdIZWxtXFwnLCBmaW5hbFByb3BzKTsnKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVtaXRBZGRpdGlvbmFsVmFsdWVzRmxhdHRlbkZ1bmMoKSB7XG4gICAgICBjb2RlLm9wZW5CbG9jaygncHJpdmF0ZSBmbGF0dGVuQWRkaXRpb25hbFZhbHVlcyhwcm9wczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0nKTtcbiAgICAgIGNvZGUub3BlbignZm9yIChsZXQgcHJvcCBpbiBwcm9wcykgeycpO1xuICAgICAgY29kZS5vcGVuKCdpZiAoQXJyYXkuaXNBcnJheShwcm9wc1twcm9wXSkpIHsnKTtcbiAgICAgIGNvZGUub3BlbigncHJvcHNbcHJvcF0ubWFwKChpdGVtOiBhbnkpID0+IHsnKTtcbiAgICAgIGNvZGUub3BlbignaWYgKHR5cGVvZiBpdGVtID09PSBcXCdvYmplY3RcXCcgJiYgcHJvcCAhPT0gXFwnYWRkaXRpb25hbFZhbHVlc1xcJykgeycpO1xuICAgICAgY29kZS5saW5lKCdyZXR1cm4gdGhpcy5mbGF0dGVuQWRkaXRpb25hbFZhbHVlcyhpdGVtKTsnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30nKTtcbiAgICAgIGNvZGUubGluZSgncmV0dXJuIGl0ZW07Jyk7XG4gICAgICBjb2RlLmNsb3NlKCd9KTsnKTtcbiAgICAgIGNvZGUuY2xvc2UoJ30nKTtcbiAgICAgIGNvZGUub3BlbignZWxzZSBpZiAodHlwZW9mIHByb3BzW3Byb3BdID09PSBcXCdvYmplY3RcXCcgJiYgcHJvcCAhPT0gXFwnYWRkaXRpb25hbFZhbHVlc1xcJykgeycpO1xuICAgICAgY29kZS5saW5lKCdwcm9wc1twcm9wXSA9IHRoaXMuZmxhdHRlbkFkZGl0aW9uYWxWYWx1ZXMocHJvcHNbcHJvcF0pOycpO1xuICAgICAgY29kZS5jbG9zZSgnfScpO1xuICAgICAgY29kZS5jbG9zZSgnfScpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLmxpbmUoJ2NvbnN0IHsgYWRkaXRpb25hbFZhbHVlcywgLi4udmFsdWVzV2l0aG91dEFkZGl0aW9uYWxWYWx1ZXMgfSA9IHByb3BzOycpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgICBjb2RlLm9wZW4oJ3JldHVybiB7Jyk7XG4gICAgICBjb2RlLmxpbmUoJy4uLnZhbHVlc1dpdGhvdXRBZGRpdGlvbmFsVmFsdWVzLCcpO1xuICAgICAgY29kZS5saW5lKCcuLi5hZGRpdGlvbmFsVmFsdWVzLCcpO1xuICAgICAgY29kZS5jbG9zZSgnfTsnKTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhhc1JlcXVpcmVkUHJvcHMoc2NoZW1hOiBKU09OU2NoZW1hNCk6Ym9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzY2hlbWE/LnJlcXVpcmVkICYmIEFycmF5LmlzQXJyYXkoc2NoZW1hLnJlcXVpcmVkKSAmJiBzY2hlbWEucmVxdWlyZWQubGVuZ3RoID4gMDtcbn0iXX0=
|
package/lib/import/crd.js
CHANGED
|
@@ -15,18 +15,29 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
39
|
+
exports.ImportCustomResourceDefinition = exports.CustomResourceDefinition = void 0;
|
|
40
|
+
exports.safeParseCrds = safeParseCrds;
|
|
30
41
|
const fs = __importStar(require("fs"));
|
|
31
42
|
const path = __importStar(require("path"));
|
|
32
43
|
const ajv_1 = __importDefault(require("ajv"));
|
|
@@ -191,5 +202,4 @@ function safeParseCrds(manifest) {
|
|
|
191
202
|
}
|
|
192
203
|
return crds;
|
|
193
204
|
}
|
|
194
|
-
exports.safeParseCrds = safeParseCrds;
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9jcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDhDQUFzQjtBQUN0Qix5Q0FBb0Q7QUFDcEQseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBMEQ7QUFFMUQsd0NBQXlDO0FBQ3pDLGtDQUFrRDtBQUVsRCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQztBQTBCNUMsc0RBQXNEO0FBQ3RELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsOEJBQThCO0lBQzlCLHlCQUF5QjtDQUMxQixDQUFDO0FBSUYsTUFBYSx3QkFBd0I7SUFPbkMsWUFBWSxRQUFrQztRQUo3QixhQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUtoRSxNQUFNLFVBQVUsR0FBRyxRQUFRLEVBQUUsVUFBVSxJQUFJLFdBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLG9CQUFvQixVQUFVLDhCQUE4QixzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4SyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsbUJBQW1CLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdB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RSxDQUFDO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO1FBQUEsQ0FBQztLQUNIO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3hHO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBekNELHNDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgQWp2IGZyb20gJ2Fqdic7XG5pbXBvcnQgeyBDb2RlTWFrZXIsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcbmltcG9ydCB7IEdlbmVyYXRlT3B0aW9ucywgSW1wb3J0QmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBlbWl0SGVhZGVyLCBnZW5lcmF0ZUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IFNhZmVSZXZpdmVyIH0gZnJvbSAnLi4vcmV2aXZlcic7XG5pbXBvcnQgeyBkb3dubG9hZCwgc2FmZVBhcnNlWWFtbCB9IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBDUkRfS0lORCA9ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0T2JqZWN0RGVmaW5pdGlvbiB7XG4gIGFwaVZlcnNpb24/OiBzdHJpbmc7XG4gIGtpbmQ/OiBzdHJpbmc7XG4gIGl0ZW1zPzogTWFuaWZlc3RPYmplY3REZWZpbml0aW9uW107IC8vIGlmIGBraW5kYCBpcyBcIkxpc3RcIlxuICBtZXRhZGF0YT86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICB9O1xuICBzcGVjPzoge1xuICAgIGdyb3VwOiBzdHJpbmc7XG4gICAgbmFtZXM6IHtcbiAgICAgIGtpbmQ6IHN0cmluZztcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICB9O1xuICAgIHZlcnNpb25zPzogQXJyYXk8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgc2NoZW1hPzogeyBvcGVuQVBJVjNTY2hlbWE/OiBhbnkgfTtcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICB9PjtcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIHZhbGlkYXRpb24/OiB7IG9wZW5BUElWM1NjaGVtYT86IGFueSB9O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbn1cblxuLy8gYWxsIHRoZXNlIEFQSXMgYXJlIGNvbXBhdGlibGUgZnJvbSBvdXIgcGVyc3BlY3RpdmUuXG5jb25zdCBTVVBQT1JURURfQVBJX1ZFUlNJT05TID0gW1xuICAnYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjFiZXRhMScsXG4gICdhcGlleHRlbnNpb25zLms4cy5pby92MScsXG5dO1xuXG50eXBlIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb24gPSB7IG5hbWU6IHN0cmluZzsgc2NoZW1hPzogYW55IH07XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZURlZmluaXRpb24ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb25zOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb25WZXJzaW9uW10gPSBbXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtYW5pZmVzdDogTWFuaWZlc3RPYmplY3REZWZpbml0aW9uKSB7XG4gICAgY29uc3QgYXBpVmVyc2lvbiA9IG1hbmlmZXN0Py5hcGlWZXJzaW9uID8/ICd1bmRlZmluZWQnO1xuICAgIGFzc2VydChTVVBQT1JURURfQVBJX1ZFUlNJT05TLmluY2x1ZGVzKGFwaVZlcnNpb24pLCBgXCJhcGlWZXJzaW9uXCIgaXMgXCIke2FwaVZlcnNpb259XCIgYnV0IGl0IHNob3VsZCBiZSBvbmUgb2Y6ICR7U1VQUE9SVEVEX0FQSV9WRVJTSU9OUy5tYXAoeCA9PiBgXCIke3h9XCJgKS5qb2luKCcsICcpfWApO1xuICAgIGFzc2VydChtYW5pZmVzdC5raW5kID09PSBDUkRfS0lORCwgYFwia2luZFwiIG11c3QgYmUgXCIke0NSRF9LSU5EfVwiYCk7XG5cbiAgICBjb25zdCBzcGVjID0gbWFuaWZlc3Quc3BlYztcbiAgICBpZiAoIXNwZWMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWFuaWZlc3QgZG9lcyBub3QgaGF2ZSBhIFwic3BlY1wiIGF0dHJpYnV0ZScpO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXAgPSBzcGVjLmdyb3VwO1xuICAgIHRoaXMua2luZCA9IHNwZWMubmFtZXMua2luZDtcblxuICAgIGlmIChzcGVjLnZlcnNpb24pIHtcbiAgICAgIHRoaXMuYWRkVmVyc2lvbnMoW3sgbmFtZTogc3BlYy52ZXJzaW9uLCBzY2hlbWE6IHNwZWMudmFsaWRhdGlvbj8ub3BlbkFQSVYzU2NoZW1hIH1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRWZXJzaW9ucygoc3BlYy52ZXJzaW9ucyA/PyBbXSkubWFwKHYgPT4gKHsgbmFtZTogdi5uYW1lLCBzY2hlbWE6IHYuc2NoZW1hPy5vcGVuQVBJVjNTY2hlbWEgPz8gc3BlYy52YWxpZGF0aW9uPy5vcGVuQVBJVjNTY2hlbWEgfSkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52ZXJzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGRldGVybWluZSBDUkQgdmVyc2lvbnMnKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBtZXJnZShjcmQ6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbikge1xuICAgIHRoaXMuYWRkVmVyc2lvbnMoY3JkLnZlcnNpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmVyc2lvbnModmVyc2lvbnM6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25bXSkge1xuICAgIGZvciAoY29uc3QgdiBvZiB2ZXJzaW9ucykge1xuICAgICAgY29uc3QgZXhpc3RpbmdWZXJzaW9ucyA9IHRoaXMudmVyc2lvbnMubWFwKHZlciA9PiB2ZXIubmFtZSk7XG4gICAgICBpZiAoZXhpc3RpbmdWZXJzaW9ucy5pbmNsdWRlcyh2Lm5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRm91bmQgbXVsdGlwbGUgb2NjdXJyZW5jZXMgb2YgdmVyc2lvbiAke3YubmFtZX0gZm9yICR7dGhpcy5rZXl9YCk7XG4gICAgICB9XG4gICAgICB0aGlzLnZlcnNpb25zLnB1c2goeyBuYW1lOiB2Lm5hbWUsIHNjaGVtYTogdi5zY2hlbWEgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBrZXkoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ3JvdXB9LyR7dGhpcy5raW5kLnRvTG9jYWxlTG93ZXJDYXNlKCl9YDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyLCBvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpIHtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy52ZXJzaW9ucy5sZW5ndGg7IGkrKykge1xuXG4gICAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy52ZXJzaW9uc1tpXTtcblxuICAgICAgLy8gdG8gcHJlc2V2ZSBiYWNrd2FyZHMgY29tcGF0aWJsaXR5LCBvbmx5IGFwcGVuZCBhIHN1ZmZpeCBmb3JcbiAgICAgIC8vIHRoZSBzZWNvbmQgdmVyc2lvbiBvbndhcmRzLlxuICAgICAgY29uc3Qgc3VmZml4ID0gaSA9PT0gMCA/ICcnIDogdG9QYXNjYWxDYXNlKHZlcnNpb24ubmFtZSk7XG5cbiAgICAgIGNvbnN0IHR5cGVzID0gbmV3IFR5cGVHZW5lcmF0b3Ioe30pO1xuXG4gICAgICBnZW5lcmF0ZUNvbnN0cnVjdCh0eXBlcywge1xuICAgICAgICBncm91cDogdGhpcy5ncm91cCxcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbi5uYW1lLFxuICAgICAgICBraW5kOiB0aGlzLmtpbmQsXG4gICAgICAgIGZxbjogYCR7dGhpcy5raW5kfSR7c3VmZml4fWAsXG4gICAgICAgIHNjaGVtYTogdmVyc2lvbi5zY2hlbWEsXG4gICAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICAgICAgcHJlZml4OiBvcHRpb25zLmNsYXNzTmFtZVByZWZpeCxcbiAgICAgICAgc3VmZml4LFxuICAgICAgfSk7XG5cbiAgICAgIGNvZGUubGluZSh0eXBlcy5yZW5kZXIoKSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRDdXN0b21SZXNvdXJjZURlZmluaXRpb24gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRDdXN0b21SZXNvdXJjZURlZmluaXRpb24+IHtcbiAgICBjb25zdCB7IHNvdXJjZSB9ID0gaW1wb3J0U3BlYztcbiAgICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IGRvd25sb2FkKHNvdXJjZSk7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRDdXN0b21SZXNvdXJjZURlZmluaXRpb24obWFuaWZlc3QpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJhd01hbmlmZXN0OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ3JvdXBzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21SZXNvdXJjZURlZmluaXRpb25bXT4gPSB7IH07XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihyYXdNYW5pZmVzdDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMucmF3TWFuaWZlc3QgPSByYXdNYW5pZmVzdDtcbiAgICBjb25zdCBtYW5pZmVzdCA9IHNhZmVQYXJzZUNyZHMocmF3TWFuaWZlc3QpO1xuXG4gICAgY29uc3QgY3JkczogUmVjb3JkPHN0cmluZywgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uPiA9IHsgfTtcbiAgICBjb25zdCBncm91cHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbltdPiA9IHsgfTtcblxuICAgIGZvciAoY29uc3Qgc3BlYyBvZiBtYW5pZmVzdCkge1xuICAgICAgY29uc3QgY3JkID0gbmV3IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbihzcGVjKTtcbiAgICAgIGNvbnN0IGtleSA9IGNyZC5rZXk7XG5cbiAgICAgIGlmIChrZXkgaW4gY3Jkcykge1xuICAgICAgICAvLyBtaWdodCBjb250YWluIGRpZmZlcmVudCB2ZXJzaW9ucyAtIGxldHMgdHJ5IHRvIG1lcmdlIHRoZW0gaW5cbiAgICAgICAgY3Jkc1trZXldLm1lcmdlKGNyZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjcmRzW2tleV0gPSBjcmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9zb3J0IHRvIGVuc3VyZSBjb25zaXN0ZW50IG9yZGVyaW5nIGZvciBzbmFwc2hvdCBjb21wYXJlXG4gICAgY29uc3Qgc29ydGVkQ3JkcyA9IE9iamVjdC52YWx1ZXMoY3Jkcykuc29ydCgoYTogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLCBiOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24pID0+IGEua2V5LmxvY2FsZUNvbXBhcmUoYi5rZXkpKTtcblxuICAgIGZvciAoY29uc3QgY3JkIG9mIHNvcnRlZENyZHMpIHtcbiAgICAgIGNvbnN0IGcgPSBjcmQuZ3JvdXA7XG4gICAgICBpZiAoICEoZyBpbiBncm91cHMpICkge1xuICAgICAgICBncm91cHNbZ10gPSBuZXcgQXJyYXk8Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uPigpO1xuICAgICAgfVxuICAgICAgZ3JvdXBzW2ddLnB1c2goY3JkKTtcbiAgICB9XG5cbiAgICB0aGlzLmdyb3VwcyA9IGdyb3VwcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZ3JvdXBzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyLCBtb2R1bGVOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEdlbmVyYXRlT3B0aW9ucykge1xuICAgIGNvbnN0IGNyZHMgPSB0aGlzLmdyb3Vwc1ttb2R1bGVOYW1lXTtcblxuXG4gICAgZW1pdEhlYWRlcihjb2RlLCB0cnVlKTtcblxuICAgIGZvciAoY29uc3QgY3JkIG9mIGNyZHMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y3JkLmtleX1gKTtcbiAgICAgIGF3YWl0IGNyZC5nZW5lcmF0ZVR5cGVTY3JpcHQoY29kZSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydChjb25kaXRpb246IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZykge1xuICBpZiAoIWNvbmRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBDdXN0b21SZXNvdXJjZURlZmluaXRpb24gbWFuaWZlc3Q6ICR7bWVzc2FnZX1gKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBzYWZlUGFyc2VDcmRzKG1hbmlmZXN0OiBzdHJpbmcpOiBNYW5pZmVzdE9iamVjdERlZmluaXRpb25bXSB7XG4gIGNvbnN0IHNjaGVtYVBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnc2NoZW1hcycsICdjcmQuc2NoZW1hLmpzb24nKTtcbiAgY29uc3Qgc2NoZW1hID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoc2NoZW1hUGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pKTtcbiAgY29uc3QgcmV2aXZlciA9IG5ldyBTYWZlUmV2aXZlcih7XG4gICAgc2FuaXRpemVyczogW1NhZmVSZXZpdmVyLkRFU0NSSVBUSU9OX1NBTklUSVpFUiwgU2FmZVJldml2ZXIuTEVHQUxfQ0hBUl9TQU5JVElaRVJdLFxuICB9KTtcblxuICAvLyBmaXJzdCBwYXJzZSBhbmQgc3RyaXBcbiAgY29uc3Qgb2JqZWN0cyA9IHNhZmVQYXJzZVlhbWwobWFuaWZlc3QsIHJldml2ZXIpO1xuXG4gIC8vIHNpbmNlIHRoZSBtYW5pZmVzdCBjYW4gY29udGFpbiBub24gY3JkcyBhcyB3ZWxsLCB3ZSBmaXJzdFxuICAvLyBjb2xsZWN0IGFsbCBjcmRzIGFuZCBvbmx5IGFwcGx5IGEgc2NoZW1hIHZhbGlkYXRpb24gb24gdGhlbS5cblxuICBjb25zdCBjcmRzOiBhbnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIGNvbGxlY3RDUkRzKG9ianM6IGFueVtdKSB7XG4gICAgZm9yIChjb25zdCBvYmogb2Ygb2Jqcy5maWx0ZXIobyA9PiBvKSkge1xuICAgICAgaWYgKG9iai5raW5kID09PSBDUkRfS0lORCkge1xuICAgICAgICBjcmRzLnB1c2gob2JqKTtcbiAgICAgIH1cbiAgICAgIGlmIChvYmoua2luZCA9PT0gJ0xpc3QnKSB7XG4gICAgICAgIGNvbGxlY3RDUkRzKG9iai5pdGVtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29sbGVjdENSRHMob2JqZWN0cyk7XG5cbiAgY29uc3QgYWp2ID0gbmV3IEFqdigpO1xuICBjb25zdCB2YWxpZGF0ZSA9IGFqdi5jb21waWxlKHNjaGVtYSk7XG4gIGNvbnN0IGVycm9ycyA9IFtdO1xuICBmb3IgKGNvbnN0IGNyZCBvZiBjcmRzKSB7XG4gICAgdmFsaWRhdGUoY3JkKTtcbiAgICBpZiAodmFsaWRhdGUuZXJyb3JzKSB7XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZS5lcnJvcnMpO1xuICAgIH07XG4gIH1cbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlbWEgdmFsaWRhdGlvbiBlcnJvcnMgZGV0ZWN0ZWRcXG4gJHtlcnJvcnMubWFwKGUgPT4gYCogJHtlLm1lc3NhZ2V9YCkuam9pbignXFxuJyl9YCk7XG4gIH1cbiAgcmV0dXJuIGNyZHM7XG59XG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC9jcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ01BLHNDQXlDQztBQXpPRCx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDhDQUFzQjtBQUN0Qix5Q0FBb0Q7QUFDcEQseUNBQTBDO0FBQzFDLGlDQUFxRDtBQUNyRCx1Q0FBMEQ7QUFFMUQsd0NBQXlDO0FBQ3pDLGtDQUFrRDtBQUVsRCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQztBQTBCNUMsc0RBQXNEO0FBQ3RELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsOEJBQThCO0lBQzlCLHlCQUF5QjtDQUMxQixDQUFDO0FBSUYsTUFBYSx3QkFBd0I7SUFPbkMsWUFBWSxRQUFrQztRQUo3QixhQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUtoRSxNQUFNLFVBQVUsR0FBRyxRQUFRLEVBQUUsVUFBVSxJQUFJLFdBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLG9CQUFvQixVQUFVLDhCQUE4QixzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4SyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsbUJBQW1CLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFD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QztZQUNqQixDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVyQixNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQUcsRUFBRSxDQUFDO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQUEsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBBanYgZnJvbSAnYWp2JztcbmltcG9ydCB7IENvZGVNYWtlciwgdG9QYXNjYWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgR2VuZXJhdGVPcHRpb25zLCBJbXBvcnRCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGVtaXRIZWFkZXIsIGdlbmVyYXRlQ29uc3RydWN0IH0gZnJvbSAnLi9jb2RlZ2VuJztcbmltcG9ydCB7IEltcG9ydFNwZWMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgU2FmZVJldml2ZXIgfSBmcm9tICcuLi9yZXZpdmVyJztcbmltcG9ydCB7IGRvd25sb2FkLCBzYWZlUGFyc2VZYW1sIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IENSRF9LSU5EID0gJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3RPYmplY3REZWZpbml0aW9uIHtcbiAgYXBpVmVyc2lvbj86IHN0cmluZztcbiAga2luZD86IHN0cmluZztcbiAgaXRlbXM/OiBNYW5pZmVzdE9iamVjdERlZmluaXRpb25bXTsgLy8gaWYgYGtpbmRgIGlzIFwiTGlzdFwiXG4gIG1ldGFkYXRhPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIHNwZWM/OiB7XG4gICAgZ3JvdXA6IHN0cmluZztcbiAgICBuYW1lczoge1xuICAgICAga2luZDogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH07XG4gICAgdmVyc2lvbnM/OiBBcnJheTx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBzY2hlbWE/OiB7IG9wZW5BUElWM1NjaGVtYT86IGFueSB9O1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0+O1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgdmFsaWRhdGlvbj86IHsgb3BlbkFQSVYzU2NoZW1hPzogYW55IH07XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG4vLyBhbGwgdGhlc2UgQVBJcyBhcmUgY29tcGF0aWJsZSBmcm9tIG91ciBwZXJzcGVjdGl2ZS5cbmNvbnN0IFNVUFBPUlRFRF9BUElfVkVSU0lPTlMgPSBbXG4gICdhcGlleHRlbnNpb25zLms4cy5pby92MWJldGExJyxcbiAgJ2FwaWV4dGVuc2lvbnMuazhzLmlvL3YxJyxcbl07XG5cbnR5cGUgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbiA9IHsgbmFtZTogc3RyaW5nOyBzY2hlbWE/OiBhbnkgfTtcblxuZXhwb3J0IGNsYXNzIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbnM6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBncm91cDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1hbmlmZXN0OiBNYW5pZmVzdE9iamVjdERlZmluaXRpb24pIHtcbiAgICBjb25zdCBhcGlWZXJzaW9uID0gbWFuaWZlc3Q/LmFwaVZlcnNpb24gPz8gJ3VuZGVmaW5lZCc7XG4gICAgYXNzZXJ0KFNVUFBPUlRFRF9BUElfVkVSU0lPTlMuaW5jbHVkZXMoYXBpVmVyc2lvbiksIGBcImFwaVZlcnNpb25cIiBpcyBcIiR7YXBpVmVyc2lvbn1cIiBidXQgaXQgc2hvdWxkIGJlIG9uZSBvZjogJHtTVVBQT1JURURfQVBJX1ZFUlNJT05TLm1hcCh4ID0+IGBcIiR7eH1cImApLmpvaW4oJywgJyl9YCk7XG4gICAgYXNzZXJ0KG1hbmlmZXN0LmtpbmQgPT09IENSRF9LSU5ELCBgXCJraW5kXCIgbXVzdCBiZSBcIiR7Q1JEX0tJTkR9XCJgKTtcblxuICAgIGNvbnN0IHNwZWMgPSBtYW5pZmVzdC5zcGVjO1xuICAgIGlmICghc3BlYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYW5pZmVzdCBkb2VzIG5vdCBoYXZlIGEgXCJzcGVjXCIgYXR0cmlidXRlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5ncm91cCA9IHNwZWMuZ3JvdXA7XG4gICAgdGhpcy5raW5kID0gc3BlYy5uYW1lcy5raW5kO1xuXG4gICAgaWYgKHNwZWMudmVyc2lvbikge1xuICAgICAgdGhpcy5hZGRWZXJzaW9ucyhbeyBuYW1lOiBzcGVjLnZlcnNpb24sIHNjaGVtYTogc3BlYy52YWxpZGF0aW9uPy5vcGVuQVBJVjNTY2hlbWEgfV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZFZlcnNpb25zKChzcGVjLnZlcnNpb25zID8/IFtdKS5tYXAodiA9PiAoeyBuYW1lOiB2Lm5hbWUsIHNjaGVtYTogdi5zY2hlbWE/Lm9wZW5BUElWM1NjaGVtYSA/PyBzcGVjLnZhbGlkYXRpb24/Lm9wZW5BUElWM1NjaGVtYSB9KSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZlcnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmFibGUgdG8gZGV0ZXJtaW5lIENSRCB2ZXJzaW9ucycpO1xuICAgIH1cblxuICB9XG5cbiAgcHVibGljIG1lcmdlKGNyZDogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5hZGRWZXJzaW9ucyhjcmQudmVyc2lvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRWZXJzaW9ucyh2ZXJzaW9uczogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbltdKSB7XG4gICAgZm9yIChjb25zdCB2IG9mIHZlcnNpb25zKSB7XG4gICAgICBjb25zdCBleGlzdGluZ1ZlcnNpb25zID0gdGhpcy52ZXJzaW9ucy5tYXAodmVyID0+IHZlci5uYW1lKTtcbiAgICAgIGlmIChleGlzdGluZ1ZlcnNpb25zLmluY2x1ZGVzKHYubmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCBtdWx0aXBsZSBvY2N1cnJlbmNlcyBvZiB2ZXJzaW9uICR7di5uYW1lfSBmb3IgJHt0aGlzLmtleX1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmVyc2lvbnMucHVzaCh7IG5hbWU6IHYubmFtZSwgc2NoZW1hOiB2LnNjaGVtYSB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5ncm91cH0vJHt0aGlzLmtpbmQudG9Mb2NhbGVMb3dlckNhc2UoKX1gO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdlbmVyYXRlVHlwZVNjcmlwdChjb2RlOiBDb2RlTWFrZXIsIG9wdGlvbnM6IEdlbmVyYXRlT3B0aW9ucykge1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZlcnNpb25zLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLnZlcnNpb25zW2ldO1xuXG4gICAgICAvLyB0byBwcmVzZXZlIGJhY2t3YXJkcyBjb21wYXRpYmxpdHksIG9ubHkgYXBwZW5kIGEgc3VmZml4IGZvclxuICAgICAgLy8gdGhlIHNlY29uZCB2ZXJzaW9uIG9ud2FyZHMuXG4gICAgICBjb25zdCBzdWZmaXggPSBpID09PSAwID8gJycgOiB0b1Bhc2NhbENhc2UodmVyc2lvbi5uYW1lKTtcblxuICAgICAgY29uc3QgdHlwZXMgPSBuZXcgVHlwZUdlbmVyYXRvcih7fSk7XG5cbiAgICAgIGdlbmVyYXRlQ29uc3RydWN0KHR5cGVzLCB7XG4gICAgICAgIGdyb3VwOiB0aGlzLmdyb3VwLFxuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uLm5hbWUsXG4gICAgICAgIGtpbmQ6IHRoaXMua2luZCxcbiAgICAgICAgZnFuOiBgJHt0aGlzLmtpbmR9JHtzdWZmaXh9YCxcbiAgICAgICAgc2NoZW1hOiB2ZXJzaW9uLnNjaGVtYSxcbiAgICAgICAgY3VzdG9tOiB0cnVlLFxuICAgICAgICBwcmVmaXg6IG9wdGlvbnMuY2xhc3NOYW1lUHJlZml4LFxuICAgICAgICBzdWZmaXgsXG4gICAgICB9KTtcblxuICAgICAgY29kZS5saW5lKHR5cGVzLnJlbmRlcigpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiBleHRlbmRzIEltcG9ydEJhc2Uge1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGZyb21TcGVjKGltcG9ydFNwZWM6IEltcG9ydFNwZWMpOiBQcm9taXNlPEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbj4ge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBpbXBvcnRTcGVjO1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgZG93bmxvYWQoc291cmNlKTtcbiAgICByZXR1cm4gbmV3IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbihtYW5pZmVzdCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmF3TWFuaWZlc3Q6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBncm91cHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbltdPiA9IHsgfTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHJhd01hbmlmZXN0OiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5yYXdNYW5pZmVzdCA9IHJhd01hbmlmZXN0O1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gc2FmZVBhcnNlQ3JkcyhyYXdNYW5pZmVzdCk7XG5cbiAgICBjb25zdCBjcmRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21SZXNvdXJjZURlZmluaXRpb24+ID0geyB9O1xuICAgIGNvbnN0IGdyb3VwczogUmVjb3JkPHN0cmluZywgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uW10+ID0geyB9O1xuXG4gICAgZm9yIChjb25zdCBzcGVjIG9mIG1hbmlmZXN0KSB7XG4gICAgICBjb25zdCBjcmQgPSBuZXcgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uKHNwZWMpO1xuICAgICAgY29uc3Qga2V5ID0gY3JkLmtleTtcblxuICAgICAgaWYgKGtleSBpbiBjcmRzKSB7XG4gICAgICAgIC8vIG1pZ2h0IGNvbnRhaW4gZGlmZmVyZW50IHZlcnNpb25zIC0gbGV0cyB0cnkgdG8gbWVyZ2UgdGhlbSBpblxuICAgICAgICBjcmRzW2tleV0ubWVyZ2UoY3JkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNyZHNba2V5XSA9IGNyZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL3NvcnQgdG8gZW5zdXJlIGNvbnNpc3RlbnQgb3JkZXJpbmcgZm9yIHNuYXBzaG90IGNvbXBhcmVcbiAgICBjb25zdCBzb3J0ZWRDcmRzID0gT2JqZWN0LnZhbHVlcyhjcmRzKS5zb3J0KChhOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24sIGI6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbikgPT4gYS5rZXkubG9jYWxlQ29tcGFyZShiLmtleSkpO1xuXG4gICAgZm9yIChjb25zdCBjcmQgb2Ygc29ydGVkQ3Jkcykge1xuICAgICAgY29uc3QgZyA9IGNyZC5ncm91cDtcbiAgICAgIGlmICggIShnIGluIGdyb3VwcykgKSB7XG4gICAgICAgIGdyb3Vwc1tnXSA9IG5ldyBBcnJheTxDdXN0b21SZXNvdXJjZURlZmluaXRpb24+KCk7XG4gICAgICB9XG4gICAgICBncm91cHNbZ10ucHVzaChjcmQpO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzID0gZ3JvdXBzO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5ncm91cHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdlbmVyYXRlVHlwZVNjcmlwdChjb2RlOiBDb2RlTWFrZXIsIG1vZHVsZU5hbWU6IHN0cmluZywgb3B0aW9uczogR2VuZXJhdGVPcHRpb25zKSB7XG4gICAgY29uc3QgY3JkcyA9IHRoaXMuZ3JvdXBzW21vZHVsZU5hbWVdO1xuXG5cbiAgICBlbWl0SGVhZGVyKGNvZGUsIHRydWUpO1xuXG4gICAgZm9yIChjb25zdCBjcmQgb2YgY3Jkcykge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjcmQua2V5fWApO1xuICAgICAgYXdhaXQgY3JkLmdlbmVyYXRlVHlwZVNjcmlwdChjb2RlLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbjogYm9vbGVhbiwgbWVzc2FnZTogc3RyaW5nKSB7XG4gIGlmICghY29uZGl0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiBtYW5pZmVzdDogJHttZXNzYWdlfWApO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUNyZHMobWFuaWZlc3Q6IHN0cmluZyk6IE1hbmlmZXN0T2JqZWN0RGVmaW5pdGlvbltdIHtcbiAgY29uc3Qgc2NoZW1hUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdzY2hlbWFzJywgJ2NyZC5zY2hlbWEuanNvbicpO1xuICBjb25zdCBzY2hlbWEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhzY2hlbWFQYXRoLCB7IGVuY29kaW5nOiAndXRmOCcgfSkpO1xuICBjb25zdCByZXZpdmVyID0gbmV3IFNhZmVSZXZpdmVyKHtcbiAgICBzYW5pdGl6ZXJzOiBbU2FmZVJldml2ZXIuREVTQ1JJUFRJT05fU0FOSVRJWkVSLCBTYWZlUmV2aXZlci5MRUdBTF9DSEFSX1NBTklUSVpFUl0sXG4gIH0pO1xuXG4gIC8vIGZpcnN0IHBhcnNlIGFuZCBzdHJpcFxuICBjb25zdCBvYmplY3RzID0gc2FmZVBhcnNlWWFtbChtYW5pZmVzdCwgcmV2aXZlcik7XG5cbiAgLy8gc2luY2UgdGhlIG1hbmlmZXN0IGNhbiBjb250YWluIG5vbiBjcmRzIGFzIHdlbGwsIHdlIGZpcnN0XG4gIC8vIGNvbGxlY3QgYWxsIGNyZHMgYW5kIG9ubHkgYXBwbHkgYSBzY2hlbWEgdmFsaWRhdGlvbiBvbiB0aGVtLlxuXG4gIGNvbnN0IGNyZHM6IGFueVtdID0gW107XG5cbiAgZnVuY3Rpb24gY29sbGVjdENSRHMob2JqczogYW55W10pIHtcbiAgICBmb3IgKGNvbnN0IG9iaiBvZiBvYmpzLmZpbHRlcihvID0+IG8pKSB7XG4gICAgICBpZiAob2JqLmtpbmQgPT09IENSRF9LSU5EKSB7XG4gICAgICAgIGNyZHMucHVzaChvYmopO1xuICAgICAgfVxuICAgICAgaWYgKG9iai5raW5kID09PSAnTGlzdCcpIHtcbiAgICAgICAgY29sbGVjdENSRHMob2JqLml0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb2xsZWN0Q1JEcyhvYmplY3RzKTtcblxuICBjb25zdCBhanYgPSBuZXcgQWp2KCk7XG4gIGNvbnN0IHZhbGlkYXRlID0gYWp2LmNvbXBpbGUoc2NoZW1hKTtcbiAgY29uc3QgZXJyb3JzID0gW107XG4gIGZvciAoY29uc3QgY3JkIG9mIGNyZHMpIHtcbiAgICB2YWxpZGF0ZShjcmQpO1xuICAgIGlmICh2YWxpZGF0ZS5lcnJvcnMpIHtcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlLmVycm9ycyk7XG4gICAgfTtcbiAgfVxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVtYSB2YWxpZGF0aW9uIGVycm9ycyBkZXRlY3RlZFxcbiAke2Vycm9ycy5tYXAoZSA9PiBgKiAke2UubWVzc2FnZX1gKS5qb2luKCdcXG4nKX1gKTtcbiAgfVxuICByZXR1cm4gY3Jkcztcbn1cbiJdfQ==
|
package/lib/import/crds-dev.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - patch --------------------------------------+
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.matchCrdsDevUrl =
|
|
15
|
+
exports.matchCrdsDevUrl = matchCrdsDevUrl;
|
|
16
16
|
/**
|
|
17
17
|
* Matches a https://doc.crds.dev repo
|
|
18
18
|
*
|
|
@@ -39,5 +39,4 @@ function matchCrdsDevUrl(source) {
|
|
|
39
39
|
}
|
|
40
40
|
return undefined;
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jkcy1kZXYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2NyZHMtZGV2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUFjO0lBQzVDLE1BQU0sS0FBSyxHQUFHLHVGQUF1RixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuSCxJQUFJLEtBQUssRUFBRTtRQUNULE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLDJDQUEyQztRQUMzQywyREFBMkQ7UUFDM0QsSUFBSSxHQUFHLEdBQUcsdUNBQXVDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuRSxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO1lBRTlCLEdBQUcsR0FBRyx1Q0FBdUMsT0FBTyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO1NBQzVGO1FBRUQsT0FBTyxHQUFHLENBQUM7S0FDWjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFyQkQsMENBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogICAgICAgICAgICAgIGdpdGh1Yjpjcm9zc3BsYW5lL2Nyb3NzcGxhbmVAMC4xNC4wXG4gKiAgICAgICAgICAgICAgfC0tXi0gfCAgXiAgICAgICAgIF4gICAgICAgICBeIF4gIF5cbiAqICAgICAgICAgICAgICAgICB8ICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgfCAgfFxuICogIC0gcHJvdmlkZXIgLS0tLSsgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB8ICB8XG4gKiAgLSBhY2NvdW50IC0tLS0tLS0tLS0tKyAgICAgICAgIHwgICAgICAgICB8IHwgIHxcbiAqICAtIHJlcG8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgIHwgfCAgfFxuICogIC0gbWFqb3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8ICB8XG4gKiAgLSBtaW5vciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIHxcbiAqICAtIHBhdGNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICovXG5cbi8qKlxuICogTWF0Y2hlcyBhIGh0dHBzOi8vZG9jLmNyZHMuZGV2IHJlcG9cbiAqXG4gKiAgLSB1cmwgaWYgZm91bmRcbiAqICAtIHVuZGVmaW5lZCBpZiBub3RcbiAqXG4gKiBAcGFyYW0gc291cmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaENyZHNEZXZVcmwoc291cmNlOiBzdHJpbmcpOiAodW5kZWZpbmVkIHwgc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL15naXRodWI6KFtBLVphLXowLTlfLi1dKylcXC8oW0EtWmEtejAtOV8uLV0rKSg/OlxcQChbMC05XSspXFwuKFswLTldKykoPzpcXC4oWzAtOV0rKSk/KT8kLy5leGVjKHNvdXJjZSk7XG4gIGlmIChtYXRjaCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBtYXRjaFsxXTtcbiAgICBjb25zdCByZXBvID0gbWF0Y2hbMl07XG4gICAgY29uc3QgbWFqb3IgPSBtYXRjaFszXTtcblxuICAgIC8vZGVmYXVsdCB0byBtYXN0ZXIgaWYgbm8gdmVyc2lvbiBzcGVjaWZpZWRcbiAgICAvL1RPRE86IGdldCBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbiBmcm9tIGF2YWlsYWJsZSB2ZXJzaW9uc1xuICAgIGxldCB1cmwgPSBgaHR0cHM6Ly9kb2MuY3Jkcy5kZXYvcmF3L2dpdGh1Yi5jb20vJHthY2NvdW50fS8ke3JlcG99YDtcbiAgICBpZiAobWFqb3IpIHtcbiAgICAgIGNvbnN0IG1pbm9yID0gbWF0Y2hbNF07XG4gICAgICBjb25zdCBwYXRjaCA9IG1hdGNoWzVdID8/ICcwJztcblxuICAgICAgdXJsID0gYGh0dHBzOi8vZG9jLmNyZHMuZGV2L3Jhdy9naXRodWIuY29tLyR7YWNjb3VudH0vJHtyZXBvfUB2JHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICAgIH1cblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jkcy1kZXYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2NyZHMtZGV2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFVSCwwQ0FxQkM7QUE3QkQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUFjO0lBQzVDLE1BQU0sS0FBSyxHQUFHLHVGQUF1RixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuSCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsMkNBQTJDO1FBQzNDLDJEQUEyRDtRQUMzRCxJQUFJLEdBQUcsR0FBRyx1Q0FBdUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25FLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUU5QixHQUFHLEdBQUcsdUNBQXVDLE9BQU8sSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUM3RixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqICAgICAgICAgICAgICBnaXRodWI6Y3Jvc3NwbGFuZS9jcm9zc3BsYW5lQDAuMTQuMFxuICogICAgICAgICAgICAgIHwtLV4tIHwgIF4gICAgICAgICBeICAgICAgICAgXiBeICBeXG4gKiAgICAgICAgICAgICAgICAgfCAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHwgIHxcbiAqICAtIHByb3ZpZGVyIC0tLS0rICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgfCAgfFxuICogIC0gYWNjb3VudCAtLS0tLS0tLS0tLSsgICAgICAgICB8ICAgICAgICAgfCB8ICB8XG4gKiAgLSByZXBvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICB8IHwgIHxcbiAqICAtIG1ham9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgfFxuICogIC0gbWlub3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICB8XG4gKiAgLSBwYXRjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqL1xuXG4vKipcbiAqIE1hdGNoZXMgYSBodHRwczovL2RvYy5jcmRzLmRldiByZXBvXG4gKlxuICogIC0gdXJsIGlmIGZvdW5kXG4gKiAgLSB1bmRlZmluZWQgaWYgbm90XG4gKlxuICogQHBhcmFtIHNvdXJjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hDcmRzRGV2VXJsKHNvdXJjZTogc3RyaW5nKTogKHVuZGVmaW5lZCB8IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eZ2l0aHViOihbQS1aYS16MC05Xy4tXSspXFwvKFtBLVphLXowLTlfLi1dKykoPzpcXEAoWzAtOV0rKVxcLihbMC05XSspKD86XFwuKFswLTldKykpPyk/JC8uZXhlYyhzb3VyY2UpO1xuICBpZiAobWF0Y2gpIHtcbiAgICBjb25zdCBhY2NvdW50ID0gbWF0Y2hbMV07XG4gICAgY29uc3QgcmVwbyA9IG1hdGNoWzJdO1xuICAgIGNvbnN0IG1ham9yID0gbWF0Y2hbM107XG5cbiAgICAvL2RlZmF1bHQgdG8gbWFzdGVyIGlmIG5vIHZlcnNpb24gc3BlY2lmaWVkXG4gICAgLy9UT0RPOiBnZXQgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24gZnJvbSBhdmFpbGFibGUgdmVyc2lvbnNcbiAgICBsZXQgdXJsID0gYGh0dHBzOi8vZG9jLmNyZHMuZGV2L3Jhdy9naXRodWIuY29tLyR7YWNjb3VudH0vJHtyZXBvfWA7XG4gICAgaWYgKG1ham9yKSB7XG4gICAgICBjb25zdCBtaW5vciA9IG1hdGNoWzRdO1xuICAgICAgY29uc3QgcGF0Y2ggPSBtYXRjaFs1XSA/PyAnMCc7XG5cbiAgICAgIHVybCA9IGBodHRwczovL2RvYy5jcmRzLmRldi9yYXcvZ2l0aHViLmNvbS8ke2FjY291bnR9LyR7cmVwb31AdiR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
package/lib/import/dispatch.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.importDispatch = importDispatch;
|
|
4
|
+
exports.matchImporter = matchImporter;
|
|
4
5
|
const crd_1 = require("./crd");
|
|
5
6
|
const crds_dev_1 = require("./crds-dev");
|
|
6
7
|
const helm_1 = require("./helm");
|
|
@@ -24,7 +25,6 @@ async function importDispatch(imports, argv, options) {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
exports.importDispatch = importDispatch;
|
|
28
28
|
async function matchImporter(importSpec, argv) {
|
|
29
29
|
// first check if its a `k8s@` import
|
|
30
30
|
const k8s = await k8s_1.ImportKubernetesApi.match(importSpec, argv);
|
|
@@ -43,5 +43,4 @@ async function matchImporter(importSpec, argv) {
|
|
|
43
43
|
// default to a normal CRD
|
|
44
44
|
return crd_1.ImportCustomResourceDefinition.fromSpec(importSpec);
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7SUFDM0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUU7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuSSxNQUFNLElBQUEsMEJBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7S0FDRjtBQUNILENBQUM7QUFwQkQsd0NBb0JDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBQyxVQUFzQixFQUFFLElBQVM7SUFFbkUscUNBQXFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0seUJBQW1CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLEdBQUcsRUFBRTtRQUNQLE9BQU8sSUFBSSx5QkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNyQztJQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtRQUNyQixPQUFPLGlCQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQscUNBQXFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUEsMEJBQWUsRUFBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztLQUN2SDtJQUVELDBCQUEwQjtJQUMxQixPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBdEJELHNDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltcG9ydEJhc2UsIEltcG9ydE9wdGlvbnMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9jcmQnO1xuaW1wb3J0IHsgbWF0Y2hDcmRzRGV2VXJsIH0gZnJvbSAnLi9jcmRzLWRldic7XG5pbXBvcnQgeyBJbXBvcnRIZWxtIH0gZnJvbSAnLi9oZWxtJztcbmltcG9ydCB7IEltcG9ydEt1YmVybmV0ZXNBcGkgfSBmcm9tICcuL2s4cyc7XG5pbXBvcnQgeyBJbXBvcnRTcGVjLCBhZGRJbXBvcnRUb0NvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBQUkVGSVhfREVMSU0gfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydERpc3BhdGNoKGltcG9ydHM6IEltcG9ydFNwZWNbXSwgYXJndjogYW55LCBvcHRpb25zOiBJbXBvcnRPcHRpb25zKSB7XG4gIGZvciAoY29uc3QgaW1wb3J0U3BlYyBvZiBpbXBvcnRzKSB7XG4gICAgY29uc3QgaW1wb3J0ZXIgPSBhd2FpdCBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWMsIGFyZ3YpO1xuXG4gICAgaWYgKCFpbXBvcnRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gZGV0ZXJtaW5lIGltcG9ydCB0eXBlIGZvciBcIiR7aW1wb3J0U3BlY31cImApO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0ltcG9ydGluZyByZXNvdXJjZXMsIHRoaXMgbWF5IHRha2UgYSBmZXcgbW9tZW50cy4uLicpO1xuXG4gICAgYXdhaXQgaW1wb3J0ZXIuaW1wb3J0KHtcbiAgICAgIG1vZHVsZU5hbWVQcmVmaXg6IGltcG9ydFNwZWMubW9kdWxlTmFtZVByZWZpeCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zYXZlID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IHNwZWMgPSBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXggPyBgJHtpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXh9JHtQUkVGSVhfREVMSU19JHtpbXBvcnRTcGVjLnNvdXJjZX1gIDogaW1wb3J0U3BlYy5zb3VyY2U7XG4gICAgICBhd2FpdCBhZGRJbXBvcnRUb0NvbmZpZyhzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hdGNoSW1wb3J0ZXIoaW1wb3J0U3BlYzogSW1wb3J0U3BlYywgYXJndjogYW55KTogUHJvbWlzZTxJbXBvcnRCYXNlPiB7XG5cbiAgLy8gZmlyc3QgY2hlY2sgaWYgaXRzIGEgYGs4c0BgIGltcG9ydFxuICBjb25zdCBrOHMgPSBhd2FpdCBJbXBvcnRLdWJlcm5ldGVzQXBpLm1hdGNoKGltcG9ydFNwZWMsIGFyZ3YpO1xuICBpZiAoazhzKSB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRLdWJlcm5ldGVzQXBpKGs4cyk7XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBpbXBvcnRTcGVjLnNvdXJjZS5zcGxpdCgnOicpWzBdO1xuXG4gIGlmIChwcmVmaXggPT09ICdoZWxtJykge1xuICAgIHJldHVybiBJbXBvcnRIZWxtLmZyb21TcGVjKGltcG9ydFNwZWMpO1xuICB9XG5cbiAgLy8gbm93IGNoZWNrIGlmIGl0cyBhIGNyZHMuZGV2IGltcG9ydFxuICBjb25zdCBjcmRzRGV2VXJsID0gbWF0Y2hDcmRzRGV2VXJsKGltcG9ydFNwZWMuc291cmNlKTtcbiAgaWYgKGNyZHNEZXZVcmwpIHtcbiAgICByZXR1cm4gSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLmZyb21TcGVjKHsgc291cmNlOiBjcmRzRGV2VXJsLCBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXggfSk7XG4gIH1cblxuICAvLyBkZWZhdWx0IHRvIGEgbm9ybWFsIENSRFxuICByZXR1cm4gSW1wb3J0Q3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLmZyb21TcGVjKGltcG9ydFNwZWMpO1xufSJdfQ==
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2Rpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsd0NBb0JDO0FBRUQsc0NBc0JDO0FBbkRELCtCQUF1RDtBQUN2RCx5Q0FBNkM7QUFDN0MsaUNBQW9DO0FBQ3BDLCtCQUE0QztBQUM1QyxzQ0FBMEQ7QUFDMUQsa0NBQXVDO0FBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBcUIsRUFBRSxJQUFTLEVBQUUsT0FBc0I7SUFDM0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFFBQVEsR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixHQUFHLG1CQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ25JLE1BQU0sSUFBQSwwQkFBaUIsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFDLFVBQXNCLEVBQUUsSUFBUztJQUVuRSxxQ0FBcUM7SUFDckMsTUFBTSxHQUFHLEdBQUcsTUFBTSx5QkFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLElBQUkseUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE9BQU8saUJBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFBLDBCQUFlLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixPQUFPLG9DQUE4QixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLE9BQU8sb0NBQThCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbXBvcnRCYXNlLCBJbXBvcnRPcHRpb25zIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vY3JkJztcbmltcG9ydCB7IG1hdGNoQ3Jkc0RldlVybCB9IGZyb20gJy4vY3Jkcy1kZXYnO1xuaW1wb3J0IHsgSW1wb3J0SGVsbSB9IGZyb20gJy4vaGVsbSc7XG5pbXBvcnQgeyBJbXBvcnRLdWJlcm5ldGVzQXBpIH0gZnJvbSAnLi9rOHMnO1xuaW1wb3J0IHsgSW1wb3J0U3BlYywgYWRkSW1wb3J0VG9Db25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgUFJFRklYX0RFTElNIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnREaXNwYXRjaChpbXBvcnRzOiBJbXBvcnRTcGVjW10sIGFyZ3Y6IGFueSwgb3B0aW9uczogSW1wb3J0T3B0aW9ucykge1xuICBmb3IgKGNvbnN0IGltcG9ydFNwZWMgb2YgaW1wb3J0cykge1xuICAgIGNvbnN0IGltcG9ydGVyID0gYXdhaXQgbWF0Y2hJbXBvcnRlcihpbXBvcnRTcGVjLCBhcmd2KTtcblxuICAgIGlmICghaW1wb3J0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5hYmxlIHRvIGRldGVybWluZSBpbXBvcnQgdHlwZSBmb3IgXCIke2ltcG9ydFNwZWN9XCJgKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKCdJbXBvcnRpbmcgcmVzb3VyY2VzLCB0aGlzIG1heSB0YWtlIGEgZmV3IG1vbWVudHMuLi4nKTtcblxuICAgIGF3YWl0IGltcG9ydGVyLmltcG9ydCh7XG4gICAgICBtb2R1bGVOYW1lUHJlZml4OiBpbXBvcnRTcGVjLm1vZHVsZU5hbWVQcmVmaXgsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc2F2ZSA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBzcGVjID0gaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4ID8gYCR7aW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4fSR7UFJFRklYX0RFTElNfSR7aW1wb3J0U3BlYy5zb3VyY2V9YCA6IGltcG9ydFNwZWMuc291cmNlO1xuICAgICAgYXdhaXQgYWRkSW1wb3J0VG9Db25maWcoc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRjaEltcG9ydGVyKGltcG9ydFNwZWM6IEltcG9ydFNwZWMsIGFyZ3Y6IGFueSk6IFByb21pc2U8SW1wb3J0QmFzZT4ge1xuXG4gIC8vIGZpcnN0IGNoZWNrIGlmIGl0cyBhIGBrOHNAYCBpbXBvcnRcbiAgY29uc3QgazhzID0gYXdhaXQgSW1wb3J0S3ViZXJuZXRlc0FwaS5tYXRjaChpbXBvcnRTcGVjLCBhcmd2KTtcbiAgaWYgKGs4cykge1xuICAgIHJldHVybiBuZXcgSW1wb3J0S3ViZXJuZXRlc0FwaShrOHMpO1xuICB9XG5cbiAgY29uc3QgcHJlZml4ID0gaW1wb3J0U3BlYy5zb3VyY2Uuc3BsaXQoJzonKVswXTtcblxuICBpZiAocHJlZml4ID09PSAnaGVsbScpIHtcbiAgICByZXR1cm4gSW1wb3J0SGVsbS5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbiAgfVxuXG4gIC8vIG5vdyBjaGVjayBpZiBpdHMgYSBjcmRzLmRldiBpbXBvcnRcbiAgY29uc3QgY3Jkc0RldlVybCA9IG1hdGNoQ3Jkc0RldlVybChpbXBvcnRTcGVjLnNvdXJjZSk7XG4gIGlmIChjcmRzRGV2VXJsKSB7XG4gICAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyh7IHNvdXJjZTogY3Jkc0RldlVybCwgbW9kdWxlTmFtZVByZWZpeDogaW1wb3J0U3BlYy5tb2R1bGVOYW1lUHJlZml4IH0pO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBhIG5vcm1hbCBDUkRcbiAgcmV0dXJuIEltcG9ydEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbi5mcm9tU3BlYyhpbXBvcnRTcGVjKTtcbn0iXX0=
|
package/lib/import/helm.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.ImportHelm = void 0;
|
|
27
37
|
const child_process_1 = require("child_process");
|
|
@@ -214,4 +224,4 @@ function pullHelmRepo(chartUrl, chartName, chartVersion) {
|
|
|
214
224
|
function cleanup(tmpDir) {
|
|
215
225
|
fs.rmSync(tmpDir, { recursive: true });
|
|
216
226
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUEwQztBQUMxQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixpQ0FBNkI7QUFHN0IseUNBQTBDO0FBQzFDLCtDQUFpQztBQUNqQyxpQ0FBb0M7QUFDcEMsdUNBQWtFO0FBR2xFLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUVoQyxNQUFhLFVBQVcsU0FBUSxpQkFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQVNELFlBQW9CLE1BQWM7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFKTyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFNaEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFakMsSUFBSSxNQUFjLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xFLE1BQU0s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Q0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsT0FBTyxDQUFDLE1BQWM7SUFDN0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgWWFtbCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgZW1pdEhlbG1IZWFkZXIsIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3QgTUFYX0hFTE1fQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcbmNvbnN0IENIQVJUX1NDSEVNQSA9ICd2YWx1ZXMuc2NoZW1hLmpzb24nO1xuY29uc3QgQ0hBUlRfWUFNTCA9ICdDaGFydC55YW1sJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEhlbG0gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRIZWxtPiB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IGltcG9ydFNwZWM7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRIZWxtKHNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRTY2hlbWFQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dID0gZXh0cmFjdEhlbG1DaGFydERldGFpbHMoc291cmNlKTtcblxuICAgIHRoaXMuY2hhcnROYW1lID0gY2hhcnROYW1lO1xuICAgIHRoaXMuY2hhcnRVcmwgPSBjaGFydFVybDtcbiAgICB0aGlzLmNoYXJ0VmVyc2lvbiA9IGNoYXJ0VmVyc2lvbjtcblxuICAgIGxldCB0bXBEaXI6IHN0cmluZztcbiAgICBpZiAoIWNoYXJ0VXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSAmJiAhY2hhcnRVcmwuc3RhcnRzV2l0aCgnb2NpOi8vJykpIHtcbiAgICAgIHRtcERpciA9IGNvcHlIZWxtTG9jYWxDaGFydChjaGFydFVybCwgY2hhcnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG1wRGlyID0gcHVsbEhlbG1SZXBvKGNoYXJ0VXJsLCBjaGFydE5hbWUsIGNoYXJ0VmVyc2lvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY2hhcnRZYW1sRmlsZVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfWUFNTCk7XG4gICAgY29uc3QgY29udGVudHMgPSBZYW1sLmxvYWQoY2hhcnRZYW1sRmlsZVBhdGgpO1xuICAgIGlmIChjb250ZW50cy5sZW5ndGggPT09IDEgJiYgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnREZXBlbmRlbmNpZXMucHVzaChkZXBlbmRlbmN5Lm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvdGVudGlhbFNjaGVtYVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfU0NIRU1BKTtcbiAgICB0aGlzLmNoYXJ0U2NoZW1hUGF0aCA9IGZzLmV4aXN0c1N5bmMocG90ZW50aWFsU2NoZW1hUGF0aCkgPyBwb3RlbnRpYWxTY2hlbWFQYXRoIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2NoZW1hID0gdGhpcy5jaGFydFNjaGVtYVBhdGggPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLmNoYXJ0U2NoZW1hUGF0aCwgJ3V0Zi04JykpIDogdW5kZWZpbmVkO1xuXG4gICAgY2xlYW51cCh0bXBEaXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnROYW1lXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyKSB7XG4gICAgZW1pdEhlbG1IZWFkZXIoY29kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYT8uZGVmaW5pdGlvbnMgPz8gdGhpcy5zY2hlbWE/LiRkZWZzLFxuICAgICAgdG9Kc29uOiB0cnVlLFxuICAgICAgc2FuaXRpemVFbnVtczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCh0eXBlcywge1xuICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgIGNoYXJ0TmFtZTogdGhpcy5jaGFydE5hbWUsXG4gICAgICBjaGFydFVybDogdGhpcy5jaGFydFVybCxcbiAgICAgIGNoYXJ0VmVyc2lvbjogdGhpcy5jaGFydFZlcnNpb24sXG4gICAgICBjaGFydERlcGVuZGVuY2llczogdGhpcy5jaGFydERlcGVuZGVuY2llcyxcbiAgICAgIGZxbjogdGhpcy5jaGFydE5hbWUsXG4gICAgfSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZXMucmVuZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaGVsbSBjaGFydCBmcm9tIHRoZSBoZWxtIHVybFxuICogQHBhcmFtIHVybFxuICogQHJldHVybnMgY2hhcnRVcmwsIGNoYXJ0TmFtZSBhbmQgY2hhcnRWZXJzaW9uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RIZWxtQ2hhcnREZXRhaWxzKHVybDogc3RyaW5nKSB7XG5cbiAgbGV0IGNoYXJ0VXJsO1xuICBsZXQgY2hhcnROYW1lO1xuICBsZXQgY2hhcnRWZXJzaW9uO1xuXG4gIGlmICh1cmwuc3RhcnRzV2l0aCgnaGVsbTpvY2k6Ly8nKSkge1xuICAgIC8vIFVSTDogaGVsbTpvY2k6Ly9yZWdpc3RyeS0xLmRvY2tlci5pby9iaXRuYW1pY2hhcnRzL3dvcmRwcmVzc0AxNy4xLjE3XG4gICAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihvY2k6XFwvXFwvW0EtWmEtejAtOV8uLTpcXC1dKylcXEAodj9bMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8b2NpLXJlZ2lzdHJ5LXVybD5APGNoYXJ0LXZlcnNpb24+Jy5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGhlbG1EZXRhaWxzWzFdO1xuICAgIGNvbnN0IGxhc3RJbmRleE9mU2xhc2ggPSBjaGFydFVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGNoYXJ0TmFtZSA9IGNoYXJ0VXJsLnN1YnN0cmluZyhsYXN0SW5kZXhPZlNsYXNoICsgMSk7XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzJdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbM107XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s0XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICB9IGVsc2UgaWYgKHVybC5zdGFydHNXaXRoKCdoZWxtOi4nKSB8fCB1cmwuc3RhcnRzV2l0aCgnaGVsbTovJykpIHtcbiAgICAvLyBVUkw6IGhlbG06Li9teS1jaGFydHMgb3IgaGVsbTovYWJzb2x1dGUvcGF0aC90by9teS1jaGFydHNcbiAgICBjb25zdCBsb2NhbFBhdGggPSB1cmwuc2xpY2UoNSk7XG5cbiAgICBpZiAoIWxvY2FsUGF0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8bG9jYWwtcGF0aD4nLmApO1xuICAgIH1cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMobG9jYWxQYXRoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYExvY2FsIGNoYXJ0IHBhdGggZG9lcyBub3QgZXhpc3Q6ICR7bG9jYWxQYXRofWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYXJ0WWFtbFBhdGggPSBwYXRoLmpvaW4obG9jYWxQYXRoLCBDSEFSVF9ZQU1MKTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoY2hhcnRZYW1sUGF0aCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBDaGFydC55YW1sIG5vdCBmb3VuZCBpbiBsb2NhbCBwYXRoOiAke2xvY2FsUGF0aH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFydFlhbWxDb250ZW50ID0gWWFtbC5sb2FkKGNoYXJ0WWFtbFBhdGgpO1xuICAgIGlmIChjaGFydFlhbWxDb250ZW50Lmxlbmd0aCAhPT0gMSB8fCAhY2hhcnRZYW1sQ29udGVudFswXS5uYW1lIHx8ICFjaGFydFlhbWxDb250ZW50WzBdLnZlcnNpb24pIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIENoYXJ0LnlhbWwgaW4gbG9jYWwgcGF0aDogJHtsb2NhbFBhdGh9LiBNaXNzaW5nIG5hbWUgb3IgdmVyc2lvbi5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGxvY2FsUGF0aDtcbiAgICBjaGFydE5hbWUgPSBjaGFydFlhbWxDb250ZW50WzBdLm5hbWU7XG4gICAgY2hhcnRWZXJzaW9uID0gY2hhcnRZYW1sQ29udGVudFswXS52ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIC8vIFVSTDogaGVsbTpodHRwczovL2xhY2V3b3JrLmdpdGh1Yi5pby9oZWxtLWNoYXJ0cy9sYWNld29yay1hZ2VudEA2LjkuMFxuICAgIGNvbnN0IGhlbG1SZWdleCA9IC9eaGVsbTooW0EtWmEtejAtOV8uLTpcXC1dKylcXC8oW0EtWmEtejAtOV8uLTpcXC1dKylcXEAodj9bMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8cmVwby11cmw+LzxjaGFydC1uYW1lPkA8Y2hhcnQtdmVyc2lvbj4nLmApO1xuICAgIH1cblxuICAgIGNoYXJ0VXJsID0gaGVsbURldGFpbHNbMV07XG4gICAgY2hhcnROYW1lID0gaGVsbURldGFpbHNbMl07XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzNdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbNF07XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s1XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICB9XG5cbiAgaWYgKCFzZW12ZXIudmFsaWQoY2hhcnRWZXJzaW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFydCB2ZXJzaW9uICgke2NoYXJ0VmVyc2lvbn0pIGluIFVSTDogJHt1cmx9LiBNdXN0IGZvbGxvdyBTZW1WZXItMiAoc2VlIGh0dHBzOi8vc2VtdmVyLm9yZy8pLmApO1xuICB9XG5cbiAgcmV0dXJuIFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dO1xufVxuXG4vKipcbiAqIENvcHkgbG9jYWwgaGVsbSBjaGFydCB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gbWFpbnRhaW4gdGhlIGV4cGVjdGVkIGB3b3JrZGlyL2NoYXJ0TmFtZWAgc3RydWN0dXJlXG4gKiBAcGFyYW0gY2hhcnRVcmwgQ2hhcnQgdXJsXG4gKiBAcGFyYW0gY2hhcnROYW1lIENoYXJ0IG5hbWVcbiAqIEByZXR1cm5zIFRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICovXG5mdW5jdGlvbiBjb3B5SGVsbUxvY2FsQ2hhcnQoY2hhcnRVcmw6IHN0cmluZywgY2hhcnROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBwYXRoLnJlc29sdmUoY2hhcnRVcmwpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoYWJzb2x1dGVQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTG9jYWwgY2hhcnQgcGF0aCBkb2VzIG5vdCBleGlzdDogJHthYnNvbHV0ZVBhdGh9YCk7XG4gIH1cblxuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtaGVsbS1sb2NhbC0nKSk7XG4gIGNvbnN0IGNoYXJ0RGlyID0gcGF0aC5qb2luKHdvcmtkaXIsIGNoYXJ0TmFtZSk7XG5cbiAgZnMubWtkaXJTeW5jKGNoYXJ0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZnMuY3BTeW5jKGFic29sdXRlUGF0aCwgY2hhcnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIHJldHVybiB3b3JrZGlyO1xufVxuXG4vKipcbiAqIFB1bGxzIHRoZSBoZWxtIGNoYXJ0IGluIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeVxuICogQHBhcmFtIGNoYXJ0VXJsIENoYXJ0IHVybFxuICogQHBhcmFtIGNoYXJ0TmFtZSBDaGFydCBuYW1lXG4gKiBAcGFyYW0gY2hhcnRWZXJzaW9uIENoYXJ0IHZlcnNpb25cbiAqIEByZXR1cm5zIFRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICovXG5mdW5jdGlvbiBwdWxsSGVsbVJlcG8oY2hhcnRVcmw6IHN0cmluZywgY2hhcnROYW1lOiBzdHJpbmcsIGNoYXJ0VmVyc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2NkazhzLWhlbG0tJykpO1xuXG4gIGNvbnN0IGFyZ3MgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBhcmdzLnB1c2goJ3B1bGwnKTtcblxuICBpZiAoIWNoYXJ0VXJsLnN0YXJ0c1dpdGgoJ29jaTovLycpKSB7XG4gICAgYXJncy5wdXNoKGNoYXJ0TmFtZSk7XG4gICAgYXJncy5wdXNoKCctLXJlcG8nLCBjaGFydFVybCk7XG4gIH0gZWxzZSB7XG4gICAgYXJncy5wdXNoKGNoYXJ0VXJsKTtcbiAgfVxuXG4gIGFyZ3MucHVzaCgnLS12ZXJzaW9uJywgY2hhcnRWZXJzaW9uKTtcbiAgYXJncy5wdXNoKCctLXVudGFyJyk7XG4gIGFyZ3MucHVzaCgnLS11bnRhcmRpcicsIHdvcmtkaXIpO1xuXG4gIGNvbnN0IGNvbW1hbmQgPSAnaGVsbSc7XG5cbiAgY29uc3QgaGVsbSA9IHNwYXduU3luYyhjb21tYW5kLCBhcmdzLCB7XG4gICAgbWF4QnVmZmVyOiBNQVhfSEVMTV9CVUZGRVIsXG4gIH0pO1xuXG4gIGlmIChoZWxtLmVycm9yKSB7XG4gICAgY29uc3QgZXJyID0gaGVsbS5lcnJvci5tZXNzYWdlO1xuICAgIGlmIChlcnIuaW5jbHVkZXMoJ0VOT0VOVCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleGVjdXRlICcke2NvbW1hbmR9JyB0byBwdWxsIHRoZSBIZWxtIGNoYXJ0LiBJcyBoZWxtIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbT9gKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCBwdWxsaW5nIGhlbG0gY2hhcnQgZnJvbSBVUkwgKCR7Y2hhcnRVcmx9KTogJHtlcnJ9YCk7XG4gIH1cblxuICBpZiAoaGVsbS5zdGF0dXMgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoaGVsbS5zdGRlcnIudG9TdHJpbmcoKSk7XG4gIH1cblxuICByZXR1cm4gd29ya2Rpcjtcbn1cblxuLyoqXG4gKiBDbGVhbnVwIHRlbXAgZGlyZWN0b3J5IGNyZWF0ZWRcbiAqIEBwYXJhbSB0bXBEaXIgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXAodG1wRGlyOiBzdHJpbmcpIHtcbiAgZnMucm1TeW5jKHRtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG59Il19
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVsbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnQvaGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBMEM7QUFDMUMsdUNBQXlCO0FBQ3pCLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsaUNBQTZCO0FBRzdCLHlDQUEwQztBQUMxQywrQ0FBaUM7QUFDakMsaUNBQW9DO0FBQ3BDLHVDQUFrRTtBQUdsRSxNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztBQUMxQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFFaEMsTUFBYSxVQUFXLFNBQVEsaUJBQVU7SUFDakMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBc0I7UUFDakQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM5QixPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFTRCxZQUFvQixNQUFjO1FBQ2hDLEtBQUssRUFBRSxDQUFDO1FBSk8sc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBTWhELE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBRWpDLElBQUksTUFBYyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxD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QUFJLEtBQUssQ0FBQyx1Q0FBdUMsUUFBUSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsT0FBTyxDQUFDLE1BQWM7SUFDN0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgWWFtbCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgdHlwZSB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IEltcG9ydEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgZW1pdEhlbG1IZWFkZXIsIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCB9IGZyb20gJy4vY29kZWdlbic7XG5pbXBvcnQgeyBJbXBvcnRTcGVjIH0gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3QgTUFYX0hFTE1fQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcbmNvbnN0IENIQVJUX1NDSEVNQSA9ICd2YWx1ZXMuc2NoZW1hLmpzb24nO1xuY29uc3QgQ0hBUlRfWUFNTCA9ICdDaGFydC55YW1sJztcblxuZXhwb3J0IGNsYXNzIEltcG9ydEhlbG0gZXh0ZW5kcyBJbXBvcnRCYXNlIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBmcm9tU3BlYyhpbXBvcnRTcGVjOiBJbXBvcnRTcGVjKTogUHJvbWlzZTxJbXBvcnRIZWxtPiB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IGltcG9ydFNwZWM7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRIZWxtKHNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYXJ0VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnRTY2hlbWFQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnREZXBlbmRlbmNpZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBKU09OU2NoZW1hNCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dID0gZXh0cmFjdEhlbG1DaGFydERldGFpbHMoc291cmNlKTtcblxuICAgIHRoaXMuY2hhcnROYW1lID0gY2hhcnROYW1lO1xuICAgIHRoaXMuY2hhcnRVcmwgPSBjaGFydFVybDtcbiAgICB0aGlzLmNoYXJ0VmVyc2lvbiA9IGNoYXJ0VmVyc2lvbjtcblxuICAgIGxldCB0bXBEaXI6IHN0cmluZztcbiAgICBpZiAoIWNoYXJ0VXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSAmJiAhY2hhcnRVcmwuc3RhcnRzV2l0aCgnb2NpOi8vJykpIHtcbiAgICAgIHRtcERpciA9IGNvcHlIZWxtTG9jYWxDaGFydChjaGFydFVybCwgY2hhcnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG1wRGlyID0gcHVsbEhlbG1SZXBvKGNoYXJ0VXJsLCBjaGFydE5hbWUsIGNoYXJ0VmVyc2lvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY2hhcnRZYW1sRmlsZVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfWUFNTCk7XG4gICAgY29uc3QgY29udGVudHMgPSBZYW1sLmxvYWQoY2hhcnRZYW1sRmlsZVBhdGgpO1xuICAgIGlmIChjb250ZW50cy5sZW5ndGggPT09IDEgJiYgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgY29udGVudHNbMF0uZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRoaXMuY2hhcnREZXBlbmRlbmNpZXMucHVzaChkZXBlbmRlbmN5Lm5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBvdGVudGlhbFNjaGVtYVBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCB0aGlzLmNoYXJ0TmFtZSwgQ0hBUlRfU0NIRU1BKTtcbiAgICB0aGlzLmNoYXJ0U2NoZW1hUGF0aCA9IGZzLmV4aXN0c1N5bmMocG90ZW50aWFsU2NoZW1hUGF0aCkgPyBwb3RlbnRpYWxTY2hlbWFQYXRoIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2NoZW1hID0gdGhpcy5jaGFydFNjaGVtYVBhdGggPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyh0aGlzLmNoYXJ0U2NoZW1hUGF0aCwgJ3V0Zi04JykpIDogdW5kZWZpbmVkO1xuXG4gICAgY2xlYW51cCh0bXBEaXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gW3RoaXMuY2hhcnROYW1lXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZW5lcmF0ZVR5cGVTY3JpcHQoY29kZTogQ29kZU1ha2VyKSB7XG4gICAgZW1pdEhlbG1IZWFkZXIoY29kZSk7XG5cbiAgICBjb25zdCB0eXBlcyA9IG5ldyBUeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYT8uZGVmaW5pdGlvbnMgPz8gdGhpcy5zY2hlbWE/LiRkZWZzLFxuICAgICAgdG9Kc29uOiB0cnVlLFxuICAgICAgc2FuaXRpemVFbnVtczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGdlbmVyYXRlSGVsbUNvbnN0cnVjdCh0eXBlcywge1xuICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSxcbiAgICAgIGNoYXJ0TmFtZTogdGhpcy5jaGFydE5hbWUsXG4gICAgICBjaGFydFVybDogdGhpcy5jaGFydFVybCxcbiAgICAgIGNoYXJ0VmVyc2lvbjogdGhpcy5jaGFydFZlcnNpb24sXG4gICAgICBjaGFydERlcGVuZGVuY2llczogdGhpcy5jaGFydERlcGVuZGVuY2llcyxcbiAgICAgIGZxbjogdGhpcy5jaGFydE5hbWUsXG4gICAgfSk7XG5cbiAgICBjb2RlLmxpbmUodHlwZXMucmVuZGVyKCkpO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaGVsbSBjaGFydCBmcm9tIHRoZSBoZWxtIHVybFxuICogQHBhcmFtIHVybFxuICogQHJldHVybnMgY2hhcnRVcmwsIGNoYXJ0TmFtZSBhbmQgY2hhcnRWZXJzaW9uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RIZWxtQ2hhcnREZXRhaWxzKHVybDogc3RyaW5nKSB7XG5cbiAgbGV0IGNoYXJ0VXJsO1xuICBsZXQgY2hhcnROYW1lO1xuICBsZXQgY2hhcnRWZXJzaW9uO1xuXG4gIGlmICh1cmwuc3RhcnRzV2l0aCgnaGVsbTpvY2k6Ly8nKSkge1xuICAgIC8vIFVSTDogaGVsbTpvY2k6Ly9yZWdpc3RyeS0xLmRvY2tlci5pby9iaXRuYW1pY2hhcnRzL3dvcmRwcmVzc0AxNy4xLjE3XG4gICAgY29uc3QgaGVsbVJlZ2V4ID0gL15oZWxtOihvY2k6XFwvXFwvW0EtWmEtejAtOV8uLTpcXC1dKylcXEAodj9bMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8b2NpLXJlZ2lzdHJ5LXVybD5APGNoYXJ0LXZlcnNpb24+Jy5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGhlbG1EZXRhaWxzWzFdO1xuICAgIGNvbnN0IGxhc3RJbmRleE9mU2xhc2ggPSBjaGFydFVybC5sYXN0SW5kZXhPZignLycpO1xuICAgIGNoYXJ0TmFtZSA9IGNoYXJ0VXJsLnN1YnN0cmluZyhsYXN0SW5kZXhPZlNsYXNoICsgMSk7XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzJdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbM107XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s0XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICB9IGVsc2UgaWYgKHVybC5zdGFydHNXaXRoKCdoZWxtOi4nKSB8fCB1cmwuc3RhcnRzV2l0aCgnaGVsbTovJykpIHtcbiAgICAvLyBVUkw6IGhlbG06Li9teS1jaGFydHMgb3IgaGVsbTovYWJzb2x1dGUvcGF0aC90by9teS1jaGFydHNcbiAgICBjb25zdCBsb2NhbFBhdGggPSB1cmwuc2xpY2UoNSk7XG5cbiAgICBpZiAoIWxvY2FsUGF0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8bG9jYWwtcGF0aD4nLmApO1xuICAgIH1cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMobG9jYWxQYXRoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYExvY2FsIGNoYXJ0IHBhdGggZG9lcyBub3QgZXhpc3Q6ICR7bG9jYWxQYXRofWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYXJ0WWFtbFBhdGggPSBwYXRoLmpvaW4obG9jYWxQYXRoLCBDSEFSVF9ZQU1MKTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoY2hhcnRZYW1sUGF0aCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBDaGFydC55YW1sIG5vdCBmb3VuZCBpbiBsb2NhbCBwYXRoOiAke2xvY2FsUGF0aH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFydFlhbWxDb250ZW50ID0gWWFtbC5sb2FkKGNoYXJ0WWFtbFBhdGgpO1xuICAgIGlmIChjaGFydFlhbWxDb250ZW50Lmxlbmd0aCAhPT0gMSB8fCAhY2hhcnRZYW1sQ29udGVudFswXS5uYW1lIHx8ICFjaGFydFlhbWxDb250ZW50WzBdLnZlcnNpb24pIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIENoYXJ0LnlhbWwgaW4gbG9jYWwgcGF0aDogJHtsb2NhbFBhdGh9LiBNaXNzaW5nIG5hbWUgb3IgdmVyc2lvbi5gKTtcbiAgICB9XG5cbiAgICBjaGFydFVybCA9IGxvY2FsUGF0aDtcbiAgICBjaGFydE5hbWUgPSBjaGFydFlhbWxDb250ZW50WzBdLm5hbWU7XG4gICAgY2hhcnRWZXJzaW9uID0gY2hhcnRZYW1sQ29udGVudFswXS52ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIC8vIFVSTDogaGVsbTpodHRwczovL2xhY2V3b3JrLmdpdGh1Yi5pby9oZWxtLWNoYXJ0cy9sYWNld29yay1hZ2VudEA2LjkuMFxuICAgIGNvbnN0IGhlbG1SZWdleCA9IC9eaGVsbTooW0EtWmEtejAtOV8uLTpcXC1dKylcXC8oW0EtWmEtejAtOV8uLTpcXC1dKylcXEAodj9bMC05XSspXFwuKFswLTldKylcXC4oW0EtWmEtejAtOS0rXSspJC87XG4gICAgY29uc3QgaGVsbURldGFpbHMgPSBoZWxtUmVnZXguZXhlYyh1cmwpO1xuXG4gICAgaWYgKCFoZWxtRGV0YWlscykge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaGVsbSBVUkw6ICR7dXJsfS4gTXVzdCBtYXRjaCB0aGUgZm9ybWF0OiAnaGVsbTo8cmVwby11cmw+LzxjaGFydC1uYW1lPkA8Y2hhcnQtdmVyc2lvbj4nLmApO1xuICAgIH1cblxuICAgIGNoYXJ0VXJsID0gaGVsbURldGFpbHNbMV07XG4gICAgY2hhcnROYW1lID0gaGVsbURldGFpbHNbMl07XG5cbiAgICBjb25zdCBtYWpvciA9IGhlbG1EZXRhaWxzWzNdO1xuICAgIGNvbnN0IG1pbm9yID0gaGVsbURldGFpbHNbNF07XG4gICAgY29uc3QgcGF0Y2ggPSBoZWxtRGV0YWlsc1s1XTtcbiAgICBjaGFydFZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH1gO1xuICB9XG5cbiAgaWYgKCFzZW12ZXIudmFsaWQoY2hhcnRWZXJzaW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFydCB2ZXJzaW9uICgke2NoYXJ0VmVyc2lvbn0pIGluIFVSTDogJHt1cmx9LiBNdXN0IGZvbGxvdyBTZW1WZXItMiAoc2VlIGh0dHBzOi8vc2VtdmVyLm9yZy8pLmApO1xuICB9XG5cbiAgcmV0dXJuIFtjaGFydFVybCwgY2hhcnROYW1lLCBjaGFydFZlcnNpb25dO1xufVxuXG4vKipcbiAqIENvcHkgbG9jYWwgaGVsbSBjaGFydCB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gbWFpbnRhaW4gdGhlIGV4cGVjdGVkIGB3b3JrZGlyL2NoYXJ0TmFtZWAgc3RydWN0dXJlXG4gKiBAcGFyYW0gY2hhcnRVcmwgQ2hhcnQgdXJsXG4gKiBAcGFyYW0gY2hhcnROYW1lIENoYXJ0IG5hbWVcbiAqIEByZXR1cm5zIFRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICovXG5mdW5jdGlvbiBjb3B5SGVsbUxvY2FsQ2hhcnQoY2hhcnRVcmw6IHN0cmluZywgY2hhcnROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBwYXRoLnJlc29sdmUoY2hhcnRVcmwpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoYWJzb2x1dGVQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTG9jYWwgY2hhcnQgcGF0aCBkb2VzIG5vdCBleGlzdDogJHthYnNvbHV0ZVBhdGh9YCk7XG4gIH1cblxuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtaGVsbS1sb2NhbC0nKSk7XG4gIGNvbnN0IGNoYXJ0RGlyID0gcGF0aC5qb2luKHdvcmtkaXIsIGNoYXJ0TmFtZSk7XG5cbiAgZnMubWtkaXJTeW5jKGNoYXJ0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZnMuY3BTeW5jKGFic29sdXRlUGF0aCwgY2hhcnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIHJldHVybiB3b3JrZGlyO1xufVxuXG4vKipcbiAqIFB1bGxzIHRoZSBoZWxtIGNoYXJ0IGluIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeVxuICogQHBhcmFtIGNoYXJ0VXJsIENoYXJ0IHVybFxuICogQHBhcmFtIGNoYXJ0TmFtZSBDaGFydCBuYW1lXG4gKiBAcGFyYW0gY2hhcnRWZXJzaW9uIENoYXJ0IHZlcnNpb25cbiAqIEByZXR1cm5zIFRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICovXG5mdW5jdGlvbiBwdWxsSGVsbVJlcG8oY2hhcnRVcmw6IHN0cmluZywgY2hhcnROYW1lOiBzdHJpbmcsIGNoYXJ0VmVyc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2NkazhzLWhlbG0tJykpO1xuXG4gIGNvbnN0IGFyZ3MgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBhcmdzLnB1c2goJ3B1bGwnKTtcblxuICBpZiAoIWNoYXJ0VXJsLnN0YXJ0c1dpdGgoJ29jaTovLycpKSB7XG4gICAgYXJncy5wdXNoKGNoYXJ0TmFtZSk7XG4gICAgYXJncy5wdXNoKCctLXJlcG8nLCBjaGFydFVybCk7XG4gIH0gZWxzZSB7XG4gICAgYXJncy5wdXNoKGNoYXJ0VXJsKTtcbiAgfVxuXG4gIGFyZ3MucHVzaCgnLS12ZXJzaW9uJywgY2hhcnRWZXJzaW9uKTtcbiAgYXJncy5wdXNoKCctLXVudGFyJyk7XG4gIGFyZ3MucHVzaCgnLS11bnRhcmRpcicsIHdvcmtkaXIpO1xuXG4gIGNvbnN0IGNvbW1hbmQgPSAnaGVsbSc7XG5cbiAgY29uc3QgaGVsbSA9IHNwYXduU3luYyhjb21tYW5kLCBhcmdzLCB7XG4gICAgbWF4QnVmZmVyOiBNQVhfSEVMTV9CVUZGRVIsXG4gIH0pO1xuXG4gIGlmIChoZWxtLmVycm9yKSB7XG4gICAgY29uc3QgZXJyID0gaGVsbS5lcnJvci5tZXNzYWdlO1xuICAgIGlmIChlcnIuaW5jbHVkZXMoJ0VOT0VOVCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleGVjdXRlICcke2NvbW1hbmR9JyB0byBwdWxsIHRoZSBIZWxtIGNoYXJ0LiBJcyBoZWxtIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbT9gKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCBwdWxsaW5nIGhlbG0gY2hhcnQgZnJvbSBVUkwgKCR7Y2hhcnRVcmx9KTogJHtlcnJ9YCk7XG4gIH1cblxuICBpZiAoaGVsbS5zdGF0dXMgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoaGVsbS5zdGRlcnIudG9TdHJpbmcoKSk7XG4gIH1cblxuICByZXR1cm4gd29ya2Rpcjtcbn1cblxuLyoqXG4gKiBDbGVhbnVwIHRlbXAgZGlyZWN0b3J5IGNyZWF0ZWRcbiAqIEBwYXJhbSB0bXBEaXIgVGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXAodG1wRGlyOiBzdHJpbmcpIHtcbiAgZnMucm1TeW5jKHRtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG59Il19
|
package/lib/import/k8s-util.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.parseApiTypeName = parseApiTypeName;
|
|
7
|
+
exports.safeParseJsonSchema = safeParseJsonSchema;
|
|
7
8
|
const ajv_1 = __importDefault(require("ajv"));
|
|
8
9
|
const reviver_1 = require("../reviver");
|
|
9
10
|
const util_1 = require("../util");
|
|
@@ -34,7 +35,6 @@ function parseApiTypeName(fullname) {
|
|
|
34
35
|
basename: type,
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
|
-
exports.parseApiTypeName = parseApiTypeName;
|
|
38
38
|
function safeParseJsonSchema(text) {
|
|
39
39
|
const reviver = new reviver_1.SafeReviver({
|
|
40
40
|
allowlistedKeys: ['$ref', '$schema'],
|
|
@@ -45,5 +45,4 @@ function safeParseJsonSchema(text) {
|
|
|
45
45
|
ajv.compile(schema);
|
|
46
46
|
return schema;
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2s4cy11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFzQjtBQUl0Qix3Q0FBeUM7QUFDekMsa0NBQXdDO0FBNEJ4QyxJQUFLLFFBSUo7QUFKRCxXQUFLLFFBQVE7SUFDWCwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKSSxRQUFRLEtBQVIsUUFBUSxRQUlaO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFnQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQVE7UUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDakIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBYSxJQUFJLFFBQVEsQ0FBQyxNQUFNO1lBQ2hELFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztTQUN4QyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2IsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUU7UUFDMUQsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDO0FBQ0osQ0FBQztBQWxCRCw0Q0FrQkM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQVcsQ0FBQztRQUM5QixlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ3BDLFVBQVUsRUFBRSxDQUFDLHFCQUFXLENBQUMscUJBQXFCLEVBQUUscUJBQVcsQ0FBQyxvQkFBb0IsQ0FBQztLQUNsRixDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBRyxFQUFFLENBQUM7SUFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBVEQsa0RBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gJ2Fqdic7XG4vLyB3ZSBqdXN0IG5lZWQgdGhlIHR5cGVzIGZyb20ganNvbi1zY2hlbWFcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgU2FmZVJldml2ZXIgfSBmcm9tICcuLi9yZXZpdmVyJztcbmltcG9ydCB7IHNhZmVQYXJzZUpzb24gfSBmcm9tICcuLi91dGlsJztcblxuXG4vKipcbiAqXG4gKiAgICAgaW8uazhzLmFwaS5leHRlbnNpb25zLnYxYmV0YTEuRGVwbG95bWVudFxuICogICAgIHwtLS0tLS0tLS0gXiAtLS0tLS0tfCAgXiAgXiBeIHwtLS1eLS0tLXxcbiAqICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgIHwgfCAgICAgfFxuICogIC0gbmFtZXNwYWNlIC0tKyAgICAgICAgICAgfCAgfCB8ICAgICB8XG4gKiAgLSBtYWpvciAtLS0tLS0tLS0tLS0tLS0tLS0rICB8IHwgICAgIHxcbiAqICAtIGxldmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgICAgfFxuICogIC0gc3VidmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0rICAgICB8XG4gKiAgLSBiYXNlbmFtZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlUeXBlTmFtZSB7XG4gIGJhc2VuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBmdWxsbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uPzogQXBpVHlwZVZlcnNpb247XG59XG5cbmludGVyZmFjZSBBcGlUeXBlVmVyc2lvbiB7XG4gIHJhdzogc3RyaW5nO1xuICBsZXZlbDogQXBpTGV2ZWw7XG4gIG1ham9yOiBudW1iZXI7XG4gIHN1YnZlcnNpb246IG51bWJlcjtcbn1cblxuZW51bSBBcGlMZXZlbCB7XG4gIEFMUEhBID0gJ2FscGhhJyxcbiAgQkVUQSA9ICdiZXRhJyxcbiAgU1RBQkxFID0gJ3N0YWJsZScsXG59XG5cbi8qKlxuICogUGFyc2VzIGEgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBzdWNoIGFzIHRvIGl0J3MgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXBpVHlwZU5hbWUoZnVsbG5hbWU6IHN0cmluZyk6IEFwaVR5cGVOYW1lIHtcbiAgY29uc3QgcGFydHMgPSBmdWxsbmFtZS5zcGxpdCgnLicpO1xuICBjb25zdCB0eXBlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMikuam9pbignLicpO1xuICBjb25zdCBwcmViYXNlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMl07XG4gIGNvbnN0IHZlcnNpb24gPSAvXnYoWzAtOV0rKSgoW2Etel0rKShbMC05XSspKT8kLy5leGVjKHByZWJhc2UpO1xuICByZXR1cm4ge1xuICAgIGZ1bGxuYW1lOiBmdWxsbmFtZSxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uID8ge1xuICAgICAgcmF3OiB2ZXJzaW9uWzBdLFxuICAgICAgbWFqb3I6IHBhcnNlSW50KHZlcnNpb25bMV0pLFxuICAgICAgbGV2ZWw6IHZlcnNpb25bM10gYXMgQXBpTGV2ZWwgPz8gQXBpTGV2ZWwuU1RBQkxFLFxuICAgICAgc3VidmVyc2lvbjogcGFyc2VJbnQodmVyc2lvbls0XSA/PyAnMCcpLFxuICAgIH0gOiB1bmRlZmluZWQsXG4gICAgbmFtZXNwYWNlOiB2ZXJzaW9uID8gbmFtZXNwYWNlIDogYCR7bmFtZXNwYWNlfS4ke3ByZWJhc2V9YCxcbiAgICBiYXNlbmFtZTogdHlwZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUpzb25TY2hlbWEodGV4dDogc3RyaW5nKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCByZXZpdmVyID0gbmV3IFNhZmVSZXZpdmVyKHtcbiAgICBhbGxvd2xpc3RlZEtleXM6IFsnJHJlZicsICckc2NoZW1hJ10sXG4gICAgc2FuaXRpemVyczogW1NhZmVSZXZpdmVyLkRFU0NSSVBUSU9OX1NBTklUSVpFUiwgU2FmZVJldml2ZXIuTEVHQUxfQ0hBUl9TQU5JVElaRVJdLFxuICB9KTtcbiAgY29uc3Qgc2NoZW1hID0gc2FmZVBhcnNlSnNvbih0ZXh0LCByZXZpdmVyKTtcbiAgY29uc3QgYWp2ID0gbmV3IEFqdigpO1xuICBhanYuY29tcGlsZShzY2hlbWEpO1xuICByZXR1cm4gc2NoZW1hO1xufVxuIl19
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0L2s4cy11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBMENBLDRDQWtCQztBQUVELGtEQVNDO0FBdkVELDhDQUFzQjtBQUl0Qix3Q0FBeUM7QUFDekMsa0NBQXdDO0FBNEJ4QyxJQUFLLFFBSUo7QUFKRCxXQUFLLFFBQVE7SUFDWCwyQkFBZSxDQUFBO0lBQ2YseUJBQWEsQ0FBQTtJQUNiLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKSSxRQUFRLEtBQVIsUUFBUSxRQUlaO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFnQjtJQUMvQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQVE7UUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDakIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBYSxJQUFJLFFBQVEsQ0FBQyxNQUFNO1lBQ2hELFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztTQUN4QyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2IsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUU7UUFDMUQsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBVyxDQUFDO1FBQzlCLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDcEMsVUFBVSxFQUFFLENBQUMscUJBQVcsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBVyxDQUFDLG9CQUFvQixDQUFDO0tBQ2xGLENBQUMsQ0FBQztJQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQWEsRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxhQUFHLEVBQUUsQ0FBQztJQUN0QixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gJ2Fqdic7XG4vLyB3ZSBqdXN0IG5lZWQgdGhlIHR5cGVzIGZyb20ganNvbi1zY2hlbWFcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgU2FmZVJldml2ZXIgfSBmcm9tICcuLi9yZXZpdmVyJztcbmltcG9ydCB7IHNhZmVQYXJzZUpzb24gfSBmcm9tICcuLi91dGlsJztcblxuXG4vKipcbiAqXG4gKiAgICAgaW8uazhzLmFwaS5leHRlbnNpb25zLnYxYmV0YTEuRGVwbG95bWVudFxuICogICAgIHwtLS0tLS0tLS0gXiAtLS0tLS0tfCAgXiAgXiBeIHwtLS1eLS0tLXxcbiAqICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgIHwgfCAgICAgfFxuICogIC0gbmFtZXNwYWNlIC0tKyAgICAgICAgICAgfCAgfCB8ICAgICB8XG4gKiAgLSBtYWpvciAtLS0tLS0tLS0tLS0tLS0tLS0rICB8IHwgICAgIHxcbiAqICAtIGxldmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgICAgfFxuICogIC0gc3VidmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0rICAgICB8XG4gKiAgLSBiYXNlbmFtZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlUeXBlTmFtZSB7XG4gIGJhc2VuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBmdWxsbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uPzogQXBpVHlwZVZlcnNpb247XG59XG5cbmludGVyZmFjZSBBcGlUeXBlVmVyc2lvbiB7XG4gIHJhdzogc3RyaW5nO1xuICBsZXZlbDogQXBpTGV2ZWw7XG4gIG1ham9yOiBudW1iZXI7XG4gIHN1YnZlcnNpb246IG51bWJlcjtcbn1cblxuZW51bSBBcGlMZXZlbCB7XG4gIEFMUEhBID0gJ2FscGhhJyxcbiAgQkVUQSA9ICdiZXRhJyxcbiAgU1RBQkxFID0gJ3N0YWJsZScsXG59XG5cbi8qKlxuICogUGFyc2VzIGEgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBzdWNoIGFzIHRvIGl0J3MgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXBpVHlwZU5hbWUoZnVsbG5hbWU6IHN0cmluZyk6IEFwaVR5cGVOYW1lIHtcbiAgY29uc3QgcGFydHMgPSBmdWxsbmFtZS5zcGxpdCgnLicpO1xuICBjb25zdCB0eXBlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMikuam9pbignLicpO1xuICBjb25zdCBwcmViYXNlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMl07XG4gIGNvbnN0IHZlcnNpb24gPSAvXnYoWzAtOV0rKSgoW2Etel0rKShbMC05XSspKT8kLy5leGVjKHByZWJhc2UpO1xuICByZXR1cm4ge1xuICAgIGZ1bGxuYW1lOiBmdWxsbmFtZSxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uID8ge1xuICAgICAgcmF3OiB2ZXJzaW9uWzBdLFxuICAgICAgbWFqb3I6IHBhcnNlSW50KHZlcnNpb25bMV0pLFxuICAgICAgbGV2ZWw6IHZlcnNpb25bM10gYXMgQXBpTGV2ZWwgPz8gQXBpTGV2ZWwuU1RBQkxFLFxuICAgICAgc3VidmVyc2lvbjogcGFyc2VJbnQodmVyc2lvbls0XSA/PyAnMCcpLFxuICAgIH0gOiB1bmRlZmluZWQsXG4gICAgbmFtZXNwYWNlOiB2ZXJzaW9uID8gbmFtZXNwYWNlIDogYCR7bmFtZXNwYWNlfS4ke3ByZWJhc2V9YCxcbiAgICBiYXNlbmFtZTogdHlwZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUpzb25TY2hlbWEodGV4dDogc3RyaW5nKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCByZXZpdmVyID0gbmV3IFNhZmVSZXZpdmVyKHtcbiAgICBhbGxvd2xpc3RlZEtleXM6IFsnJHJlZicsICckc2NoZW1hJ10sXG4gICAgc2FuaXRpemVyczogW1NhZmVSZXZpdmVyLkRFU0NSSVBUSU9OX1NBTklUSVpFUiwgU2FmZVJldml2ZXIuTEVHQUxfQ0hBUl9TQU5JVElaRVJdLFxuICB9KTtcbiAgY29uc3Qgc2NoZW1hID0gc2FmZVBhcnNlSnNvbih0ZXh0LCByZXZpdmVyKTtcbiAgY29uc3QgYWp2ID0gbmV3IEFqdigpO1xuICBhanYuY29tcGlsZShzY2hlbWEpO1xuICByZXR1cm4gc2NoZW1hO1xufVxuIl19
|