@cdktn/commons 0.25.0-pre.3 → 0.25.0-pre.31
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/build/checkpoint.js +22 -13
- package/build/config.d.ts.map +1 -1
- package/build/config.js +24 -14
- package/build/config.test.js +19 -10
- package/build/debug.js +30 -21
- package/build/debug.test.js +18 -8
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +20 -10
- package/build/gradle.js +6 -7
- package/build/logging.d.ts.map +1 -1
- package/build/logging.js +18 -8
- package/build/provider-schema.js +3 -4
- package/build/terraform-module.js +2 -3
- package/build/util.d.ts +3 -4
- package/build/util.d.ts.map +1 -1
- package/build/util.js +34 -22
- package/package.json +5 -4
package/build/checkpoint.js
CHANGED
|
@@ -15,18 +15,31 @@ 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.sendTelemetry = sendTelemetry;
|
|
40
|
+
exports.getProjectId = getProjectId;
|
|
41
|
+
exports.getUserId = getUserId;
|
|
42
|
+
exports.ReportRequest = ReportRequest;
|
|
30
43
|
// Copyright (c) HashiCorp, Inc
|
|
31
44
|
// SPDX-License-Identifier: MPL-2.0
|
|
32
45
|
const https = __importStar(require("https"));
|
|
@@ -92,7 +105,6 @@ async function sendTelemetry(command, payload) {
|
|
|
92
105
|
logging_1.logger.error(`Could not send telemetry data: ${err}`);
|
|
93
106
|
}
|
|
94
107
|
}
|
|
95
|
-
exports.sendTelemetry = sendTelemetry;
|
|
96
108
|
function getId(filePath, key, forceCreation = false, explanatoryComment) {
|
|
97
109
|
const _uuid = (0, node_crypto_1.randomUUID)(); // create a new UUID in case we don't find one
|
|
98
110
|
let jsonFile;
|
|
@@ -124,7 +136,6 @@ function getId(filePath, key, forceCreation = false, explanatoryComment) {
|
|
|
124
136
|
function getProjectId(projectPath = process.cwd()) {
|
|
125
137
|
return getId(path.resolve(projectPath, "cdktf.json"), "projectId");
|
|
126
138
|
}
|
|
127
|
-
exports.getProjectId = getProjectId;
|
|
128
139
|
function getUserId() {
|
|
129
140
|
return getId(path.resolve(homeDir(), "config.json"), "userId", true, `This signature is a randomly generated UUID used to anonymously differentiate users in telemetry data order to inform product direction.
|
|
130
141
|
This signature is random, it is not based on any personally identifiable information.
|
|
@@ -132,7 +143,6 @@ To create a new signature, you can simply delete this file at any time.
|
|
|
132
143
|
See https://cdktn.io/docs/telemetry for more
|
|
133
144
|
information on how to disable it.`);
|
|
134
145
|
}
|
|
135
|
-
exports.getUserId = getUserId;
|
|
136
146
|
async function ReportRequest(reportParams) {
|
|
137
147
|
// we won't report when checkpoint is disabled.
|
|
138
148
|
// Check at runtime (not import time) to allow tests to modify the env var
|
|
@@ -172,5 +182,4 @@ async function ReportRequest(reportParams) {
|
|
|
172
182
|
(0, logging_1.processLoggerError)(e.message);
|
|
173
183
|
}
|
|
174
184
|
}
|
|
175
|
-
exports.ReportRequest = ReportRequest;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw2Q0FBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDZDQUF5QztBQUN6Qyx1Q0FBeUI7QUFDekIsc0RBQTZCO0FBQzdCLHVDQUF1RDtBQUN2RCwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBQy9CLHVDQUE0QztBQUU1QyxNQUFNLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQztBQUU1RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXRDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBRW5DLFNBQVMsT0FBTzs7SUFDZCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDUCxDQUFDLE1BQUEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUNyRCxRQUFRLENBQ1QsQ0FBQztBQUNSLENBQUM7QUFpQkQsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUMzQyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ3ZCLElBQUEsWUFBTSxFQUFDLEdBQUcsQ0FBQyxFQUNYO1lBQ0UsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxrQkFBa0I7Z0JBQzFCLGdCQUFn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LENBQUM7SUFFOUMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLHFCQUFxQixFQUFFLENBQUM7UUFDNUMsZ0JBQU0sQ0FBQyxJQUFJLENBQ1QsMERBQTBELFFBQVEsQ0FBQyxNQUFNLHdCQUF3QixxQkFBcUIsUUFBUSxDQUMvSCxDQUFDO1FBQ0YsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxHQUFHLFFBQVEsYUFBYSxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsbUNBQW1DO1FBQ25DLElBQUEsNEJBQWtCLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBakRELHNDQWlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwiaHR0cHNcIjtcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gXCJ1cmxcIjtcbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0IGNpSW5mbyBmcm9tIFwiY2ktaW5mb1wiO1xuaW1wb3J0IHsgbG9nZ2VyLCBwcm9jZXNzTG9nZ2VyRXJyb3IgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IERJU1BMQVlfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcblxuY29uc3QgQkFTRV9VUkwgPSBgaHR0cHM6Ly9jaGVja3BvaW50LWFwaS5oYXNoaWNvcnAuY29tL3YxL2A7XG5cbmNvbnN0IFZBTElEX1NUQVRVU19DT0RFUyA9IFsyMDAsIDIwMV07XG5cbmNvbnN0IE1BWF9SRVFVRVNUX0JPRFlfU0laRSA9IDgxOTI7XG5cbmZ1bmN0aW9uIGhvbWVEaXIoKSB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5DREtURl9IT01FXG4gICAgPyBwYXRoLnJlc29sdmUocHJvY2Vzcy5lbnYuQ0RLVEZfSE9NRSlcbiAgICA6IHBhdGguam9pbihcbiAgICAgICAgKG9zLnVzZXJJbmZvKCkuaG9tZWRpciA/PyBvcy5ob21lZGlyKCkpLnRyaW0oKSB8fCBcIi9cIixcbiAgICAgICAgXCIuY2RrdGZcIixcbiAgICAgICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0UGFyYW1zIHtcbiAgZGF0ZVRpbWU/OiBEYXRlO1xuICBhcmNoPzogc3RyaW5nO1xuICBvcz86IHN0cmluZztcbiAgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcHJvZHVjdDogc3RyaW5nO1xuICBydW5JRD86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgY29tbWFuZD86IHN0cmluZztcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgY2k/OiBzdHJpbmc7XG4gIHByb2plY3RJZD86IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcG9zdCh1cmw6IHN0cmluZywgZGF0YTogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigob2ssIGtvKSA9PiB7XG4gICAgY29uc3QgcmVxID0gaHR0cHMucmVxdWVzdChcbiAgICAgIGZvcm1hdCh1cmwpLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICBcIkNvbnRlbnQtTGVuZ3RoXCI6IGRhdGEubGVuZ3RoLFxuICAgICAgICAgIFwiVXNlci1BZ2VudFwiOiBcIk9wZW5Db25zdHJ1Y3RzL2Nka3RuLWNsaVwiLFxuICAgICAgICB9LFxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgfSxcbiAgICAgIChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcy5zdGF0dXNDb2RlKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlO1xuICAgICAgICAgIGlmICghVkFMSURfU1RBVFVTX0NPREVTLmluY2x1ZGVzKHN0YXR1c0NvZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4ga28obmV3IEVycm9yKHJlcy5zdGF0dXNNZXNzYWdlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuICAgICAgICByZXMub24oXCJkYXRhXCIsIChjaHVuaykgPT4gZGF0YS5wdXNoKGNodW5rKSk7XG4gICAgICAgIHJlcy5vbihcImVycm9yXCIsIChlcnIpID0+IGtvKGVycikpO1xuICAgICAgICByZXMub24oXCJlbmRcIiwgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBvaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJlcS5zZXRUaW1lb3V0KDEwMDAsICgpID0+IGtvKG5ldyBFcnJvcihcInJlcXVlc3QgdGltZW91dFwiKSkpO1xuICAgIHJlcS53cml0ZShkYXRhKTtcbiAgICByZXEuZW5kKCk7XG4gICAgcmVxLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ga28oZXJyKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFRlbGVtZXRyeShcbiAgY29tbWFuZDogc3RyaW5nLFxuICBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKSB7XG4gIGNvbnN0IHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zID0ge1xuICAgIGNvbW1hbmQsXG4gICAgcHJvZHVjdDogXCJjZGt0blwiLFxuICAgIHZlcnNpb246IGAke0RJU1BMQVlfVkVSU0lPTn1gLFxuICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIGxhbmd1YWdlOiBwYXlsb2FkLmxhbmd1YWdlLFxuICAgIHBheWxvYWQsXG4gIH07XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBSZXBvcnRSZXF1ZXN0KHJlcG9ydFBhcmFtcyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihgQ291bGQgbm90IHNlbmQgdGVsZW1ldHJ5IGRhdGE6ICR7ZXJyfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldElkKFxuICBmaWxlUGF0aDogc3RyaW5nLFxuICBrZXk6IHN0cmluZyxcbiAgZm9yY2VDcmVhdGlvbiA9IGZhbHNlLFxuICBleHBsYW5hdG9yeUNvbW1lbnQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBfdXVpZCA9IHJhbmRvbVVVSUQoKTsgLy8gY3JlYXRlIGEgbmV3IFVVSUQgaW4gY2FzZSB3ZSBkb24ndCBmaW5kIG9uZVxuXG4gIGxldCBqc29uRmlsZTtcbiAgdHJ5IHtcbiAgICBqc29uRmlsZSA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0Zi04XCIpKTsgLy8gd2UgZm91bmQgdGhlIGZpbGVcbiAgfSBjYXRjaCB7XG4gICAgLy8gd2UgZm91bmQgbm8gZmlsZSwgY3JlYXRlIG9uZSBpZiB3ZSdyZSBmb3JjaW5nIGEgY3JlYXRpb25cbiAgICBpZiAoZm9yY2VDcmVhdGlvbikge1xuICAgICAgY29uc3QgX2lkRmlsZSA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8vIGNvbXBvc2UgSlNPTiBpZCBmaWxlIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcbiAgICAgIGlmIChleHBsYW5hdG9yeUNvbW1lbnQpIHtcbiAgICAgICAgX2lkRmlsZVtcIi8vXCJdID0gZXhwbGFuYXRvcnlDb21tZW50LnJlcGxhY2UoL1xcbi9nLCBcIiBcIik7XG4gICAgICB9XG4gICAgICBfaWRGaWxlW2tleV0gPSBfdXVpZDtcbiAgICAgIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShfaWRGaWxlLCBudWxsLCAyKSk7XG4gICAgfVxuICAgIHJldHVybiBfdXVpZDtcbiAgfVxuXG4gIGlmIChqc29uRmlsZVtrZXldKSB7XG4gICAgcmV0dXJuIGpzb25GaWxlW2tleV07IC8vIHdlIGZvdW5kIGFuIGlkXG4gIH0gZWxzZSB7XG4gICAgLy8gd2UgZm91bmQgbm8gaWQsIHdlIGFkZCBpdCB0byB0aGUgZmlsZSBmb3IgZnV0dXJlIHVzZVxuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBmaWxlUGF0aCxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgLi4uanNvbkZpbGUsIFtrZXldOiBfdXVpZCB9LCBudWxsLCAyKSxcbiAgICApO1xuICAgIHJldHVybiBfdXVpZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdElkKHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRJZChwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKSwgXCJwcm9qZWN0SWRcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VySWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldElkKFxuICAgIHBhdGgucmVzb2x2ZShob21lRGlyKCksIFwiY29uZmlnLmpzb25cIiksXG4gICAgXCJ1c2VySWRcIixcbiAgICB0cnVlLFxuICAgIGBUaGlzIHNpZ25hdHVyZSBpcyBhIHJhbmRvbWx5IGdlbmVyYXRlZCBVVUlEIHVzZWQgdG8gYW5vbnltb3VzbHkgZGlmZmVyZW50aWF0ZSB1c2VycyBpbiB0ZWxlbWV0cnkgZGF0YSBvcmRlciB0byBpbmZvcm0gcHJvZHVjdCBkaXJlY3Rpb24uXG5UaGlzIHNpZ25hdHVyZSBpcyByYW5kb20sIGl0IGlzIG5vdCBiYXNlZCBvbiBhbnkgcGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24uXG5UbyBjcmVhdGUgYSBuZXcgc2lnbmF0dXJlLCB5b3UgY2FuIHNpbXBseSBkZWxldGUgdGhpcyBmaWxlIGF0IGFueSB0aW1lLlxuU2VlIGh0dHBzOi8vY2RrdG4uaW8vZG9jcy90ZWxlbWV0cnkgZm9yIG1vcmVcbmluZm9ybWF0aW9uIG9uIGhvdyB0byBkaXNhYmxlIGl0LmAsXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBSZXBvcnRSZXF1ZXN0KHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIHdlIHdvbid0IHJlcG9ydCB3aGVuIGNoZWNrcG9pbnQgaXMgZGlzYWJsZWQuXG4gIC8vIENoZWNrIGF0IHJ1bnRpbWUgKG5vdCBpbXBvcnQgdGltZSkgdG8gYWxsb3cgdGVzdHMgdG8gbW9kaWZ5IHRoZSBlbnYgdmFyXG4gIGlmIChwcm9jZXNzLmVudi5DSEVDS1BPSU5UX0RJU0FCTEUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5ydW5JRCkge1xuICAgIHJlcG9ydFBhcmFtcy5ydW5JRCA9IHJhbmRvbVVVSUQoKTtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLmRhdGVUaW1lKSB7XG4gICAgcmVwb3J0UGFyYW1zLmRhdGVUaW1lID0gbmV3IERhdGUoKTtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLmFyY2gpIHtcbiAgICByZXBvcnRQYXJhbXMuYXJjaCA9IG9zLmFyY2goKTtcbiAgfVxuXG4gIGlmICghcmVwb3J0UGFyYW1zLm9zKSB7XG4gICAgcmVwb3J0UGFyYW1zLm9zID0gb3MucGxhdGZvcm0oKTtcbiAgfVxuXG4gIGNvbnN0IGNpOiBzdHJpbmcgfCBmYWxzZSA9IGNpSW5mby5pc0NJID8gY2lJbmZvLm5hbWUgfHwgXCJ1bmtub3duXCIgOiBmYWxzZTtcbiAgaWYgKCFyZXBvcnRQYXJhbXMudXNlcklkICYmICFjaSkge1xuICAgIHJlcG9ydFBhcmFtcy51c2VySWQgPSBnZXRVc2VySWQoKTtcbiAgfVxuXG4gIGlmIChjaSkge1xuICAgIHJlcG9ydFBhcmFtcy5jaSA9IGNpO1xuICB9XG5cbiAgcmVwb3J0UGFyYW1zLnByb2plY3RJZCA9IHJlcG9ydFBhcmFtcy5wcm9qZWN0SWQgfHwgZ2V0UHJvamVjdElkKCk7XG5cbiAgY29uc3QgcG9zdERhdGEgPSBKU09OLnN0cmluZ2lmeShyZXBvcnRQYXJhbXMpO1xuXG4gIGlmIChwb3N0RGF0YS5sZW5ndGggPiBNQVhfUkVRVUVTVF9CT0RZX1NJWkUpIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgIGBTa2lwcGVkIHNlbmRpbmcgdGVsZW1ldHJ5IGFzIHRoZSByZXF1ZXN0IGJvZHkgc2l6ZSB3YXMgJHtwb3N0RGF0YS5sZW5ndGh9IGJ5dGVzLiBUaGUgbGltaXQgaXMgJHtNQVhfUkVRVUVTVF9CT0RZX1NJWkV9IGJ5dGVzYCxcbiAgICApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgcG9zdChgJHtCQVNFX1VSTH10ZWxlbWV0cnkvJHtyZXBvcnRQYXJhbXMucHJvZHVjdH1gLCBwb3N0RGF0YSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIC8vIExvZyBlcnJvcnMgd3JpdGluZyB0byBjaGVja3BvaW50XG4gICAgcHJvY2Vzc0xvZ2dlckVycm9yKGUubWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGVja3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkVBLHNDQWtCQztBQXVDRCxvQ0FFQztBQUVELDhCQVdDO0FBRUQsc0NBaURDO0FBeE1ELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQStCO0FBQy9CLDZCQUE2QjtBQUM3Qiw2Q0FBeUM7QUFDekMsdUNBQXlCO0FBQ3pCLHNEQUE2QjtBQUM3Qix1Q0FBdUQ7QUFDdkQsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQix1Q0FBNEM7QUFFNUMsTUFBTSxRQUFRLEdBQUcsMENBQTBDLENBQUM7QUFFNUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUV0QyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQUVuQyxTQUFTLE9BQU87O0lBQ2QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVU7UUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxNQUFBLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFDckQsUUFBUSxDQUNULENBQUM7QUFDUixDQUFDO0FBaUJELEtBQUssVUFBVSxJQUFJLENBQUMsR0FBVyxFQUFFLElBQVk7SUFDM0MsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUN2QixJQUFBLFlBQU0sRUFBQyxHQUFHLENB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QUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU5QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLElBQUksQ0FDVCwwREFBMEQsUUFBUSxDQUFDLE1BQU0sd0JBQXdCLHFCQUFxQixRQUFRLENBQy9ILENBQUM7UUFDRixPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLEdBQUcsUUFBUSxhQUFhLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixtQ0FBbUM7UUFDbkMsSUFBQSw0QkFBa0IsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcImh0dHBzXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCBjaUluZm8gZnJvbSBcImNpLWluZm9cIjtcbmltcG9ydCB7IGxvZ2dlciwgcHJvY2Vzc0xvZ2dlckVycm9yIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBESVNQTEFZX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5cbmNvbnN0IEJBU0VfVVJMID0gYGh0dHBzOi8vY2hlY2twb2ludC1hcGkuaGFzaGljb3JwLmNvbS92MS9gO1xuXG5jb25zdCBWQUxJRF9TVEFUVVNfQ09ERVMgPSBbMjAwLCAyMDFdO1xuXG5jb25zdCBNQVhfUkVRVUVTVF9CT0RZX1NJWkUgPSA4MTkyO1xuXG5mdW5jdGlvbiBob21lRGlyKCkge1xuICByZXR1cm4gcHJvY2Vzcy5lbnYuQ0RLVEZfSE9NRVxuICAgID8gcGF0aC5yZXNvbHZlKHByb2Nlc3MuZW52LkNES1RGX0hPTUUpXG4gICAgOiBwYXRoLmpvaW4oXG4gICAgICAgIChvcy51c2VySW5mbygpLmhvbWVkaXIgPz8gb3MuaG9tZWRpcigpKS50cmltKCkgfHwgXCIvXCIsXG4gICAgICAgIFwiLmNka3RmXCIsXG4gICAgICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFBhcmFtcyB7XG4gIGRhdGVUaW1lPzogRGF0ZTtcbiAgYXJjaD86IHN0cmluZztcbiAgb3M/OiBzdHJpbmc7XG4gIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHByb2R1Y3Q6IHN0cmluZztcbiAgcnVuSUQ/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGNvbW1hbmQ/OiBzdHJpbmc7XG4gIGxhbmd1YWdlPzogc3RyaW5nO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIGNpPzogc3RyaW5nO1xuICBwcm9qZWN0SWQ/OiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBvc3QodXJsOiBzdHJpbmcsIGRhdGE6IHN0cmluZykge1xuICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKG9rLCBrbykgPT4ge1xuICAgIGNvbnN0IHJlcSA9IGh0dHBzLnJlcXVlc3QoXG4gICAgICBmb3JtYXQodXJsKSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgXCJDb250ZW50LUxlbmd0aFwiOiBkYXRhLmxlbmd0aCxcbiAgICAgICAgICBcIlVzZXItQWdlbnRcIjogXCJPcGVuQ29uc3RydWN0cy9jZGt0bi1jbGlcIixcbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIH0sXG4gICAgICAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzQ29kZSkge1xuICAgICAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSByZXMuc3RhdHVzQ29kZTtcbiAgICAgICAgICBpZiAoIVZBTElEX1NUQVRVU19DT0RFUy5pbmNsdWRlcyhzdGF0dXNDb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGtvKG5ldyBFcnJvcihyZXMuc3RhdHVzTWVzc2FnZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRhID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICAgICAgcmVzLm9uKFwiZGF0YVwiLCAoY2h1bmspID0+IGRhdGEucHVzaChjaHVuaykpO1xuICAgICAgICByZXMub24oXCJlcnJvclwiLCAoZXJyKSA9PiBrbyhlcnIpKTtcbiAgICAgICAgcmVzLm9uKFwiZW5kXCIsICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gb2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXEuc2V0VGltZW91dCgxMDAwLCAoKSA9PiBrbyhuZXcgRXJyb3IoXCJyZXF1ZXN0IHRpbWVvdXRcIikpKTtcbiAgICByZXEud3JpdGUoZGF0YSk7XG4gICAgcmVxLmVuZCgpO1xuICAgIHJlcS5vbihcImVycm9yXCIsIChlcnIpID0+IGtvKGVycikpO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRUZWxlbWV0cnkoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pixcbikge1xuICBjb25zdCByZXBvcnRQYXJhbXM6IFJlcG9ydFBhcmFtcyA9IHtcbiAgICBjb21tYW5kLFxuICAgIHByb2R1Y3Q6IFwiY2RrdG5cIixcbiAgICB2ZXJzaW9uOiBgJHtESVNQTEFZX1ZFUlNJT059YCxcbiAgICBkYXRlVGltZTogbmV3IERhdGUoKSxcbiAgICBsYW5ndWFnZTogcGF5bG9hZC5sYW5ndWFnZSxcbiAgICBwYXlsb2FkLFxuICB9O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZXJyb3IoYENvdWxkIG5vdCBzZW5kIHRlbGVtZXRyeSBkYXRhOiAke2Vycn1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJZChcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAga2V5OiBzdHJpbmcsXG4gIGZvcmNlQ3JlYXRpb24gPSBmYWxzZSxcbiAgZXhwbGFuYXRvcnlDb21tZW50Pzogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgX3V1aWQgPSByYW5kb21VVUlEKCk7IC8vIGNyZWF0ZSBhIG5ldyBVVUlEIGluIGNhc2Ugd2UgZG9uJ3QgZmluZCBvbmVcblxuICBsZXQganNvbkZpbGU7XG4gIHRyeSB7XG4gICAganNvbkZpbGUgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKSk7IC8vIHdlIGZvdW5kIHRoZSBmaWxlXG4gIH0gY2F0Y2gge1xuICAgIC8vIHdlIGZvdW5kIG5vIGZpbGUsIGNyZWF0ZSBvbmUgaWYgd2UncmUgZm9yY2luZyBhIGNyZWF0aW9uXG4gICAgaWYgKGZvcmNlQ3JlYXRpb24pIHtcbiAgICAgIGNvbnN0IF9pZEZpbGUgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyAvLyBjb21wb3NlIEpTT04gaWQgZmlsZSBpbiBjYXNlIHdlIGRvbid0IGZpbmQgb25lXG4gICAgICBpZiAoZXhwbGFuYXRvcnlDb21tZW50KSB7XG4gICAgICAgIF9pZEZpbGVbXCIvL1wiXSA9IGV4cGxhbmF0b3J5Q29tbWVudC5yZXBsYWNlKC9cXG4vZywgXCIgXCIpO1xuICAgICAgfVxuICAgICAgX2lkRmlsZVtrZXldID0gX3V1aWQ7XG4gICAgICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoX2lkRmlsZSwgbnVsbCwgMikpO1xuICAgIH1cbiAgICByZXR1cm4gX3V1aWQ7XG4gIH1cblxuICBpZiAoanNvbkZpbGVba2V5XSkge1xuICAgIHJldHVybiBqc29uRmlsZVtrZXldOyAvLyB3ZSBmb3VuZCBhbiBpZFxuICB9IGVsc2Uge1xuICAgIC8vIHdlIGZvdW5kIG5vIGlkLCB3ZSBhZGQgaXQgdG8gdGhlIGZpbGUgZm9yIGZ1dHVyZSB1c2VcbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgZmlsZVBhdGgsXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IC4uLmpzb25GaWxlLCBba2V5XTogX3V1aWQgfSwgbnVsbCwgMiksXG4gICAgKTtcbiAgICByZXR1cm4gX3V1aWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RJZChwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0SWQocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwicHJvamVjdElkXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlcklkKCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRJZChcbiAgICBwYXRoLnJlc29sdmUoaG9tZURpcigpLCBcImNvbmZpZy5qc29uXCIpLFxuICAgIFwidXNlcklkXCIsXG4gICAgdHJ1ZSxcbiAgICBgVGhpcyBzaWduYXR1cmUgaXMgYSByYW5kb21seSBnZW5lcmF0ZWQgVVVJRCB1c2VkIHRvIGFub255bW91c2x5IGRpZmZlcmVudGlhdGUgdXNlcnMgaW4gdGVsZW1ldHJ5IGRhdGEgb3JkZXIgdG8gaW5mb3JtIHByb2R1Y3QgZGlyZWN0aW9uLlxuVGhpcyBzaWduYXR1cmUgaXMgcmFuZG9tLCBpdCBpcyBub3QgYmFzZWQgb24gYW55IHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uLlxuVG8gY3JlYXRlIGEgbmV3IHNpZ25hdHVyZSwgeW91IGNhbiBzaW1wbHkgZGVsZXRlIHRoaXMgZmlsZSBhdCBhbnkgdGltZS5cblNlZSBodHRwczovL2Nka3RuLmlvL2RvY3MvdGVsZW1ldHJ5IGZvciBtb3JlXG5pbmZvcm1hdGlvbiBvbiBob3cgdG8gZGlzYWJsZSBpdC5gLFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXM6IFJlcG9ydFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyB3ZSB3b24ndCByZXBvcnQgd2hlbiBjaGVja3BvaW50IGlzIGRpc2FibGVkLlxuICAvLyBDaGVjayBhdCBydW50aW1lIChub3QgaW1wb3J0IHRpbWUpIHRvIGFsbG93IHRlc3RzIHRvIG1vZGlmeSB0aGUgZW52IHZhclxuICBpZiAocHJvY2Vzcy5lbnYuQ0hFQ0tQT0lOVF9ESVNBQkxFKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFyZXBvcnRQYXJhbXMucnVuSUQpIHtcbiAgICByZXBvcnRQYXJhbXMucnVuSUQgPSByYW5kb21VVUlEKCk7XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5kYXRlVGltZSkge1xuICAgIHJlcG9ydFBhcmFtcy5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5hcmNoKSB7XG4gICAgcmVwb3J0UGFyYW1zLmFyY2ggPSBvcy5hcmNoKCk7XG4gIH1cblxuICBpZiAoIXJlcG9ydFBhcmFtcy5vcykge1xuICAgIHJlcG9ydFBhcmFtcy5vcyA9IG9zLnBsYXRmb3JtKCk7XG4gIH1cblxuICBjb25zdCBjaTogc3RyaW5nIHwgZmFsc2UgPSBjaUluZm8uaXNDSSA/IGNpSW5mby5uYW1lIHx8IFwidW5rbm93blwiIDogZmFsc2U7XG4gIGlmICghcmVwb3J0UGFyYW1zLnVzZXJJZCAmJiAhY2kpIHtcbiAgICByZXBvcnRQYXJhbXMudXNlcklkID0gZ2V0VXNlcklkKCk7XG4gIH1cblxuICBpZiAoY2kpIHtcbiAgICByZXBvcnRQYXJhbXMuY2kgPSBjaTtcbiAgfVxuXG4gIHJlcG9ydFBhcmFtcy5wcm9qZWN0SWQgPSByZXBvcnRQYXJhbXMucHJvamVjdElkIHx8IGdldFByb2plY3RJZCgpO1xuXG4gIGNvbnN0IHBvc3REYXRhID0gSlNPTi5zdHJpbmdpZnkocmVwb3J0UGFyYW1zKTtcblxuICBpZiAocG9zdERhdGEubGVuZ3RoID4gTUFYX1JFUVVFU1RfQk9EWV9TSVpFKSB7XG4gICAgbG9nZ2VyLndhcm4oXG4gICAgICBgU2tpcHBlZCBzZW5kaW5nIHRlbGVtZXRyeSBhcyB0aGUgcmVxdWVzdCBib2R5IHNpemUgd2FzICR7cG9zdERhdGEubGVuZ3RofSBieXRlcy4gVGhlIGxpbWl0IGlzICR7TUFYX1JFUVVFU1RfQk9EWV9TSVpFfSBieXRlc2AsXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IHBvc3QoYCR7QkFTRV9VUkx9dGVsZW1ldHJ5LyR7cmVwb3J0UGFyYW1zLnByb2R1Y3R9YCwgcG9zdERhdGEpO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAvLyBMb2cgZXJyb3JzIHdyaXRpbmcgdG8gY2hlY2twb2ludFxuICAgIHByb2Nlc3NMb2dnZXJFcnJvcihlLm1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
|
package/build/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/config.js
CHANGED
|
@@ -19,15 +19,30 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
19
19
|
}) : function(o, v) {
|
|
20
20
|
o["default"] = v;
|
|
21
21
|
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
29
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
40
|
+
exports.parseConfig = exports.DEFAULT_TARGET_VERSIONS = exports.TerraformProviderConstraint = exports.TerraformModuleConstraint = exports.CONFIG_DEFAULTS = exports.LANGUAGES = exports.Language = void 0;
|
|
41
|
+
exports.isLocalModule = isLocalModule;
|
|
42
|
+
exports.validateTargetVersions = validateTargetVersions;
|
|
43
|
+
exports.readConfigSync = readConfigSync;
|
|
44
|
+
exports.shouldCheckCodeMakerOutput = shouldCheckCodeMakerOutput;
|
|
45
|
+
exports.logTimespan = logTimespan;
|
|
31
46
|
const fs = __importStar(require("fs-extra"));
|
|
32
47
|
const path = __importStar(require("path"));
|
|
33
48
|
const semver = __importStar(require("semver"));
|
|
@@ -65,7 +80,6 @@ function getLocalMatch(source) {
|
|
|
65
80
|
function isLocalModule(source) {
|
|
66
81
|
return getLocalMatch(source) !== null;
|
|
67
82
|
}
|
|
68
|
-
exports.isLocalModule = isLocalModule;
|
|
69
83
|
class TerraformModuleConstraint {
|
|
70
84
|
constructor(item) {
|
|
71
85
|
if (typeof item === "string") {
|
|
@@ -272,7 +286,6 @@ function validateTargetVersions(targetVersions) {
|
|
|
272
286
|
}
|
|
273
287
|
return problems;
|
|
274
288
|
}
|
|
275
|
-
exports.validateTargetVersions = validateTargetVersions;
|
|
276
289
|
const parseConfig = (configJSON) => {
|
|
277
290
|
var _a, _b;
|
|
278
291
|
const config = {
|
|
@@ -310,11 +323,9 @@ function readConfigSync(configFile = path.join(process.cwd(), CONFIG_FILE)) {
|
|
|
310
323
|
}
|
|
311
324
|
return (0, exports.parseConfig)(configFileContent);
|
|
312
325
|
}
|
|
313
|
-
exports.readConfigSync = readConfigSync;
|
|
314
326
|
function shouldCheckCodeMakerOutput(config) {
|
|
315
327
|
return (isPresent(config.terraformModules) || isPresent(config.terraformProviders));
|
|
316
328
|
}
|
|
317
|
-
exports.shouldCheckCodeMakerOutput = shouldCheckCodeMakerOutput;
|
|
318
329
|
function logTimespan(message) {
|
|
319
330
|
logging_1.logger.debug(`Start timer for ${message}...`);
|
|
320
331
|
const start = Date.now();
|
|
@@ -324,5 +335,4 @@ function logTimespan(message) {
|
|
|
324
335
|
logging_1.logger.debug(`${message} took ${duration}ms`);
|
|
325
336
|
};
|
|
326
337
|
}
|
|
327
|
-
exports.logTimespan = logTimespan;
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDZDQUErQjtBQUMvQiwyQ0FBNkI7QUFDN0IsK0NBQWlDO0FBQ2pDLHVDQUFtQztBQUNuQyx5REFBc0Q7QUFDdEQscUNBQThCO0FBQzlCLHlDQUF5QztBQUV6QyxJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIscUNBQXlCLENBQUE7SUFDekIsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtJQUNiLHFCQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsUUFBUSx3QkFBUixRQUFRLFFBTW5CO0FBRVksUUFBQSxTQUFTLEdBQUc7SUFDdkIsUUFBUSxDQUFDLFVBQVU7SUFDbkIsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsSUFBSTtJQUNiLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLEVBQUU7Q0FDWixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUM7QUFFekMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBd0JwQixRQUFBLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsV0FBVztJQUNuQixlQUFlLEVBQUUsTUFBTTtDQUN4QixDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsS0FBd0I7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFTRCxTQUFTLGFBQWEsQ0FBQyxNQUFjO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLGFBQWEsQ0FBQyxN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QUVELFNBQWdCLDBCQUEwQixDQUFDLE1BQWM7SUFDdkQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQzNFLENBQUM7QUFDSixDQUFDO0FBSkQsZ0VBSUM7QUFFRCxTQUFnQixXQUFXLENBQUMsT0FBZTtJQUN6QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFekIsT0FBTyxTQUFTLGNBQWM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDN0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLFNBQVMsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBVEQsa0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGlzUmVnaXN0cnlNb2R1bGUgfSBmcm9tIFwiLi90ZXJyYWZvcm0tbW9kdWxlXCI7XG5pbXBvcnQgeyBlbnYgfSBmcm9tIFwicHJvY2Vzc1wiO1xuaW1wb3J0IHsgdG9QYXNjYWxDYXNlIH0gZnJvbSBcImNvZGVtYWtlclwiO1xuXG5leHBvcnQgZW51bSBMYW5ndWFnZSB7XG4gIFRZUEVTQ1JJUFQgPSBcInR5cGVzY3JpcHRcIixcbiAgUFlUSE9OID0gXCJweXRob25cIixcbiAgQ1NIQVJQID0gXCJjc2hhcnBcIixcbiAgSkFWQSA9IFwiamF2YVwiLFxuICBHTyA9IFwiZ29cIixcbn1cblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFUyA9IFtcbiAgTGFuZ3VhZ2UuVFlQRVNDUklQVCxcbiAgTGFuZ3VhZ2UuUFlUSE9OLFxuICBMYW5ndWFnZS5KQVZBLFxuICBMYW5ndWFnZS5DU0hBUlAsXG4gIExhbmd1YWdlLkdPLFxuXTtcblxuY29uc3QgQ09OVEVYVF9FTlYgPSBcIkNES1RGX0NPTlRFWFRfSlNPTlwiO1xuXG5jb25zdCBDT05GSUdfRklMRSA9IFwiY2RrdGYuanNvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTY3JpcHRMYW5ndWFnZU9wdGlvbnMge1xuICAvKipcbiAgICogU3VmZml4IHRvIGFwcGVuZCB0byByZWxhdGl2ZSBpbXBvcnRzLlxuICAgKiBEZWZhdWx0cyB0byBcIlwiIChDb21tb25KUykuXG4gICAqIFVzZSBcIi5qc1wiIG9yIFwiLnRzXCIgZm9yIEVTTS1jb21wYXRpYmxlIGltcG9ydHMuXG4gICAqL1xuICByZWFkb25seSBpbXBvcnRFeHRlbnNpb24/OiBzdHJpbmc7XG59XG5cbi8vIEZvciBub3csIHRoZXNlIGxhbmd1YWdlcyBoYXZlIG5vIGxhbmd1YWdlLXNwZWNpZmljIG9wdGlvbnMuXG5leHBvcnQgdHlwZSBQeXRob25MYW5ndWFnZU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5leHBvcnQgdHlwZSBDU2hhcnBMYW5ndWFnZU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5leHBvcnQgdHlwZSBKYXZhTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgR29MYW5ndWFnZU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIExhbmd1YWdlT3B0aW9ucyA9XG4gIHwgVHlwZVNjcmlwdExhbmd1YWdlT3B0aW9uc1xuICB8IFB5dGhvbkxhbmd1YWdlT3B0aW9uc1xuICB8IENTaGFycExhbmd1YWdlT3B0aW9uc1xuICB8IEphdmFMYW5ndWFnZU9wdGlvbnNcbiAgfCBHb0xhbmd1YWdlT3B0aW9ucztcblxuZXhwb3J0IGNvbnN0IENPTkZJR19ERUZBVUxUUyA9IHtcbiAgb3V0cHV0OiBcImNka3RmLm91dFwiLFxuICBjb2RlTWFrZXJPdXRwdXQ6IFwiLmdlblwiLFxufTtcblxuZnVuY3Rpb24gaXNQcmVzZW50KGlucHV0OiBhbnlbXSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShpbnB1dCkgJiYgaW5wdXQubGVuZ3RoID4gMDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBmcW46IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRMb2NhbE1hdGNoKHNvdXJjZTogc3RyaW5nKTogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGwge1xuICByZXR1cm4gc291cmNlLm1hdGNoKC9eKFxcLlxcL3xcXC5cXC5cXC98XFwuXFxcXFxcXFx8XFwuXFwuXFxcXFxcXFwpKC4qKS8pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMb2NhbE1vZHVsZShzb3VyY2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TG9jYWxNYXRjaChzb3VyY2UpICE9PSBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCBpbXBsZW1lbnRzIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGg/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoaXRlbTogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQgfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VEZXBlbmRlbmN5Q29uc3RyYWludChpdGVtKTtcbiAgICAgIHRoaXMubmFtZSA9IHBhcnNlZC5uYW1lO1xuICAgICAgdGhpcy5zb3VyY2UgPSBwYXJzZWQuc291cmNlO1xuICAgICAgdGhpcy5mcW4gPSBwYXJzZWQuZnFuO1xuICAgICAgdGhpcy52ZXJzaW9uID0gcGFyc2VkLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IHBhcnNlZC5uYW1lc3BhY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc291cmNlID0gaXRlbS5zb3VyY2U7XG4gICAgICB0aGlzLm5hbWUgPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMudmVyc2lvbiA9IGl0ZW0udmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gaXRlbS5uYW1lc3BhY2U7XG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxNYXRjaCA9IGdldExvY2FsTWF0Y2godGhpcy5zb3VyY2UpO1xuICAgIGlmIChsb2NhbE1hdGNoKSB7XG4gICAgICB0aGlzLmxvY2FsU291cmNlQWJzb2x1dGVQYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIHRoaXMuc291cmNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdG9QYXNjYWxDYXNlKHRoaXMubmFtZS5yZXBsYWNlKC9bLS8uXS9nLCBcIl9cIikpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWxlTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lc3BhY2UgPyBgJHt0aGlzLm5hbWVzcGFjZX0vJHt0aGlzLm5hbWV9YCA6IHRoaXMubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VEZXBlbmRlbmN5Q29uc3RyYWludChcbiAgICBpdGVtOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgICBjb25zdCBsb2NhbE1hdGNoID0gZ2V0TG9jYWxNYXRjaChpdGVtKTtcbiAgICBpZiAobG9jYWxNYXRjaCkge1xuICAgICAgY29uc3QgZnFuID0gbG9jYWxNYXRjaFsyXTtcbiAgICAgIGNvbnN0IG5hbWVQYXJ0cyA9IGZxbi5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpID8/IGZxbjtcbiAgICAgIGNvbnN0IG5hbWVzcGFjZSA9IG5hbWVQYXJ0cy5wb3AoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZnFuLFxuICAgICAgICBzb3VyY2U6IGl0ZW0sXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgW3NvdXJjZSwgdmVyc2lvbl0gPSBpdGVtLnNwbGl0KFwiQFwiKTtcbiAgICBsZXQgbW9kdWxlUGFydHMgPSBzb3VyY2Uuc3BsaXQoXCIvL1wiKTtcbiAgICBpZiAoaXNSZWdpc3RyeU1vZHVsZShtb2R1bGVQYXJ0c1swXSkpIHtcbiAgICAgIGNvbnN0IG5hbWVQYXJ0cyA9IG1vZHVsZVBhcnRzWzBdLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IHByb3ZpZGVyID0gbmFtZVBhcnRzLnBvcCgpOyAvLyBsYXN0IHBhcnQgaXMgdGhlIHByb3ZpZGVyXG4gICAgICBsZXQgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKSA/PyBzb3VyY2U7XG4gICAgICBsZXQgbmFtZXNwYWNlID0gYCR7bmFtZVBhcnRzLnBvcCgpfS8ke3Byb3ZpZGVyfWA7XG5cbiAgICAgIGlmIChtb2R1bGVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWVQYXJ0cyA9IG1vZHVsZVBhcnRzWzFdLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVQYXJ0cy5wb3AoKTtcbiAgICAgICAgbmFtZXNwYWNlID0gYCR7bmFtZXNwYWNlfS8ke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICAgIG5hbWUgPSBtb2R1bGVOYW1lID8/IG5hbWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBmcW46IHNvdXJjZS5yZXBsYWNlKFwiLy9cIiwgXCIvXCIpLnJlcGxhY2UoL1xcLi9nLCBcIi1cIiksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGxldCB0b1Byb2Nlc3MgPSBpdGVtOyAvLyBwcm9jZXNzIG9uZSBwYXJ0IGF0IGEgdGltZVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwcmVmaXhcbiAgICBjb25zdCBwcmVmaXhNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXihbYS16QS1aMC05XSopOjooLiopLyk7XG4gICAgaWYgKHByZWZpeE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwcmVmaXhNYXRjaFsyXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHByb3RvY29sXG4gICAgY29uc3QgcHJvdG9jb2xNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXihbYS16QS1aXSopOlxcL1xcLyguKikvKTtcbiAgICBpZiAocHJvdG9jb2xNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcHJvdG9jb2xNYXRjaFsyXTtcbiAgICB9XG5cbiAgICAvLyBhbnl0aGluZyBiZWZvcmUgbGFzdCAnOicgd29uJ3QgY29udHJpYnV0ZVxuICAgIGNvbnN0IGNvbG9uUGFydHMgPSB0b1Byb2Nlc3Muc3BsaXQoXCI6XCIpO1xuICAgIHRvUHJvY2VzcyA9IGNvbG9uUGFydHMucG9wKCkgPz8gdG9Qcm9jZXNzO1xuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwb3J0XG4gICAgY29uc3QgcG9ydE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eW1xcZF0qKC4qKS8pO1xuICAgIGlmIChwb3J0TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHBvcnRNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IGhvc3RuYW1lXG4gICAgY29uc3QgaG9zdE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9bXi9dKlxcLlteL10qXFwvKC4qKS8pO1xuICAgIGlmIChob3N0TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IGhvc3RNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IGFyZ3VtZW50c1xuICAgIGNvbnN0IGFyZ3VtZW50TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goLyguKilcXD8uKi8pO1xuICAgIGlmIChhcmd1bWVudE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBhcmd1bWVudE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgdHlwZXNcbiAgICB0b1Byb2Nlc3MgPSB0b1Byb2Nlc3MucmVwbGFjZSgvXFwuZ2l0fFxcLmhnfFxcLnppcC8sIFwiXCIpO1xuXG4gICAgbW9kdWxlUGFydHMgPSB0b1Byb2Nlc3Muc3BsaXQoXCIvL1wiKTtcbiAgICBjb25zdCBuYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1swXS5zcGxpdChcIi9cIik7XG4gICAgbGV0IG5hbWUgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgbGV0IG5hbWVzcGFjZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIG5hbWUgc2hvdWxkIGJlIHByb3Blcmx5IHNldCBpbiAke2l0ZW19YCk7XG4gICAgfVxuXG4gICAgaWYgKG1vZHVsZVBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWVQYXJ0cyA9IG1vZHVsZVBhcnRzWzFdLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lUGFydHMucG9wKCk7XG4gICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWVzcGFjZX0vJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmFtZXNwYWNlID0gYCR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgIH1cbiAgICAgIG5hbWUgPSBtb2R1bGVOYW1lID8/IG5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBzb3VyY2U6IGl0ZW0sXG4gICAgICBmcW46IHRvUHJvY2Vzcy5yZXBsYWNlKFwiLy9cIiwgXCIvXCIpLFxuICAgICAgbmFtZXNwYWNlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCBpbXBsZW1lbnRzIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IE9taXQ8VGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQsIFwiZnFuXCI+IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hbWUgPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMudmVyc2lvbiA9IGl0ZW0udmVyc2lvbjtcbiAgICAgIHRoaXMuc291cmNlID0gaXRlbS5zb3VyY2U7XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VEZXBlbmRlbmN5Q29uc3RyYWludChcbiAgICBpdGVtOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgICBjb25zdCBbZnFuLCB2ZXJzaW9uXSA9IGl0ZW0uc3BsaXQoXCJAXCIpO1xuICAgIGNvbnN0IG5hbWVQYXJ0cyA9IGZxbi5zcGxpdChcIi9cIik7XG4gICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3ZpZGVyIG5hbWUgc2hvdWxkIGJlIHByb3Blcmx5IHNldCBpbiAke2l0ZW19YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBzb3VyY2U6IGZxbixcbiAgICAgIC8vIFRlcnJhZm9ybSBkb2Vzbid0IHN1cHBvcnQgKiwgaW5zdGVhZCBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgICAgdmVyc2lvbjogdmVyc2lvbiA9PT0gXCIqXCIgPyB1bmRlZmluZWQgOiB2ZXJzaW9uLFxuICAgICAgZnFuLFxuICAgICAgbmFtZXNwYWNlLFxuICAgIH07XG4gIH1cbn1cblxuLy8gVGhlIHRhcmdldFZlcnNpb25zIHZvY2FidWxhcnkgaXMgb3duZWQgYnkgdGhlIGNka3RuIHBhY2thZ2UgKGl0cyBjYW5vbmljYWxcbi8vIGhvbWU7IGNka3RuIG11c3Qgbm90IGRlcGVuZCBvbiBjb21tb25zLCBzbyB0aGUgZGVwZW5kZW5jeSBnb2VzIHRoaXMgd2F5KS5cbi8vIGNka3RuJ3MgcHVibGljIChqc2lpKSBBUEkgaW50ZW50aW9uYWxseSBleHBvc2VzIG9ubHkgdGhlIGF1dGhvci1mYWNpbmdcbi8vIHZhbGlkYXRpb24sIHNvIGNvbW1vbnMgY29uc3VtZXMgdGhlIHByb2plY3QtZmFjaW5nIHR5cGUsIGRlZmF1bHQgYmFzZWxpbmUsXG4vLyBjb250ZXh0IGtleSwgYW5kIHByb2R1Y3QgbGlzdCBhcyBpbnRlcm5hbCB3aXJpbmcgdmlhIHRoZSBzdWJwYXRoLlxuaW1wb3J0IHtcbiAgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMsXG4gIFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuICBUQVJHRVRfUFJPRFVDVFMsXG4gIFRBUkdFVF9WRVJTSU9OU19DT05URVhUX0tFWSxcbn0gZnJvbSBcImNka3RuL2xpYi92YWxpZGF0aW9uc1wiO1xuXG4vLyBSZS1leHBvcnRlZCBzbyBleGlzdGluZyBjb21tb25zIGNvbnN1bWVycyAoZS5nLiBAY2RrdG4vY2xpLWNvcmUpIGtlZXAgYVxuLy8gc2luZ2xlIGltcG9ydCBzdXJmYWNlLlxuZXhwb3J0IHsgREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMgfTtcbmV4cG9ydCB0eXBlIHsgVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMgfTtcblxuaW50ZXJmYWNlIENvbmZpZ0Jhc2Uge1xuICByZWFkb25seSBhcHA/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dHB1dDogc3RyaW5nO1xuICByZWFkb25seSBjb2RlTWFrZXJPdXRwdXQ6IHN0cmluZztcbiAgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50W107XG4gIHRlcnJhZm9ybU1vZHVsZXM/OiBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50W107XG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICByZWFkb25seSB0YXJnZXRWZXJzaW9ucz86IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBjb21tYW5kcyB0aGF0IGV4ZWN1dGUgdGhlIFRlcnJhZm9ybS1jb21wYXRpYmxlIENMSSAoZGlmZixcbiAgICogZGVwbG95LCBkZXN0cm95KSB2ZXJpZnkgdGhhdCB0aGUgaW5zdGFsbGVkIGJpbmFyeSBzYXRpc2ZpZXMgdGhlIGRlY2xhcmVkXG4gICAqIGB0YXJnZXRWZXJzaW9uc2AgYmVmb3JlIHJ1bm5pbmcgaXQuXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZUluc3RhbGxlZEJpbmFyeT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBzaGFwZSBvZiBhIGB0YXJnZXRWZXJzaW9uc2AgZGVjbGFyYXRpb247IHJldHVybnMgYSBsaXN0IG9mXG4gKiBodW1hbi1yZWFkYWJsZSBwcm9ibGVtcyAoZW1wdHkgd2hlbiB2YWxpZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRhcmdldFZlcnNpb25zKHRhcmdldFZlcnNpb25zOiB1bmtub3duKTogc3RyaW5nW10ge1xuICBpZiAodGFyZ2V0VmVyc2lvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuXG4gIGlmIChcbiAgICB0eXBlb2YgdGFyZ2V0VmVyc2lvbnMgIT09IFwib2JqZWN0XCIgfHxcbiAgICB0YXJnZXRWZXJzaW9ucyA9PT0gbnVsbCB8fFxuICAgIEFycmF5LmlzQXJyYXkodGFyZ2V0VmVyc2lvbnMpXG4gICkge1xuICAgIHJldHVybiBbXG4gICAgICBgdGFyZ2V0VmVyc2lvbnMgbXVzdCBiZSBhbiBvYmplY3QgbWFwcGluZyBwcm9kdWN0cyB0byBzZW12ZXIgcmFuZ2VzLCBlLmcuIHsgXCJ0ZXJyYWZvcm1cIjogXCI+PTEuNS43XCIgfWAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0YXJnZXRWZXJzaW9ucyk7XG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXG4gICAgICBgdGFyZ2V0VmVyc2lvbnMgbXVzdCBkZWNsYXJlIGF0IGxlYXN0IG9uZSBwcm9kdWN0IChcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIikgb3IgYmUgb21pdHRlZCBlbnRpcmVseWAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0IHByb2JsZW1zOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IFtwcm9kdWN0LCByYW5nZV0gb2YgZW50cmllcykge1xuICAgIGlmICghKFRBUkdFVF9QUk9EVUNUUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocHJvZHVjdCkpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucyBoYXMgdW5rbm93biBwcm9kdWN0IFwiJHtwcm9kdWN0fVwiIChleHBlY3RlZCBcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIilgLFxuICAgICAgKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJhbmdlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBtdXN0IGJlIGEgc2VtdmVyIHJhbmdlIHN0cmluZywgZ290ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgcmFuZ2UsXG4gICAgICAgICl9YCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHJhbmdlLmluY2x1ZGVzKFwifj5cIikpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucy4ke3Byb2R1Y3R9IFwiJHtyYW5nZX1cIiB1c2VzIFRlcnJhZm9ybSBwcm92aWRlciBjb25zdHJhaW50IHN5bnRheDsgdXNlIG5wbSBzZW12ZXIgcmFuZ2VzIGluc3RlYWQgKGUuZy4gXCI+PTEuNS43XCIgb3IgXCJ+MS41LjdcIilgLFxuICAgICAgKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoc2VtdmVyLnZhbGlkUmFuZ2UocmFuZ2UpID09PSBudWxsKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBcIiR7cmFuZ2V9XCIgaXMgbm90IGEgdmFsaWQgc2VtdmVyIHJhbmdlYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb2JsZW1zO1xufVxuXG4vKipcbiAqIExhbmd1YWdlLXNwZWNpZmljIGNvZGUgZ2VuZXJhdGlvbiBvcHRpb25zLCBkaXNjcmltaW5hdGVkIGJ5IGBsYW5ndWFnZWAuXG4gKiBPbmx5IFR5cGVTY3JpcHQgY3VycmVudGx5IGhhcyB0dW5hYmxlIG9wdGlvbnM7IGFsbCBvdGhlciBsYW5ndWFnZXNcbiAqIGFjY2VwdCBhbiBlbXB0eSBgbGFuZ3VhZ2VPcHRpb25zYCBvYmplY3QgYXMgYSBmdXR1cmUgZXh0ZW5zaW9uIHBvaW50LlxuICovXG5leHBvcnQgdHlwZSBDb25maWcgPSBDb25maWdCYXNlICZcbiAgKFxuICAgIHwge1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZT86IExhbmd1YWdlLlRZUEVTQ1JJUFQ7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IFR5cGVTY3JpcHRMYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5QWVRIT047XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IFB5dGhvbkxhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlLkNTSEFSUDtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2VPcHRpb25zPzogQ1NoYXJwTGFuZ3VhZ2VPcHRpb25zO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZTogTGFuZ3VhZ2UuSkFWQTtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2VPcHRpb25zPzogSmF2YUxhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlLkdPO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBHb0xhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgKTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29uZmlnID0gKGNvbmZpZ0pTT04/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY29uZmlnOiBDb25maWcgPSB7XG4gICAgLi4uQ09ORklHX0RFRkFVTFRTLFxuICAgIC4uLkpTT04ucGFyc2UoY29uZmlnSlNPTiB8fCBcInt9XCIpLFxuICB9O1xuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMpKSB7XG4gICAgY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMgPSBjb25maWcudGVycmFmb3JtTW9kdWxlcz8ubWFwKFxuICAgICAgKG1vZCkgPT4gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQobW9kKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGlzUHJlc2VudChjb25maWcudGVycmFmb3JtUHJvdmlkZXJzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMgPSBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzPy5tYXAoXG4gICAgICAocHJvdmlkZXIpID0+IG5ldyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQocHJvdmlkZXIpLFxuICAgICk7XG4gIH1cblxuICBjb25zdCB0YXJnZXRWZXJzaW9uUHJvYmxlbXMgPSB2YWxpZGF0ZVRhcmdldFZlcnNpb25zKGNvbmZpZy50YXJnZXRWZXJzaW9ucyk7XG4gIGlmICh0YXJnZXRWZXJzaW9uUHJvYmxlbXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkICR7Q09ORklHX0ZJTEV9OlxcbiAgJHt0YXJnZXRWZXJzaW9uUHJvYmxlbXMuam9pbihcIlxcbiAgXCIpfWAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIGRlY2xhcmVkIHRhcmdldCB2ZXJzaW9ucyByaWRlIGFsb25nIGluIHRoZSBjb250ZXh0IHNvIHRoZXkgcmVhY2ggdGhlXG4gIC8vIHN5bnRoZXNpemVkIGFwcCB3aXRob3V0IGEgc2VwYXJhdGUgY2hhbm5lbFxuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIC4uLmNvbmZpZy5jb250ZXh0LFxuICAgIC4uLihjb25maWcudGFyZ2V0VmVyc2lvbnNcbiAgICAgID8geyBbVEFSR0VUX1ZFUlNJT05TX0NPTlRFWFRfS0VZXTogY29uZmlnLnRhcmdldFZlcnNpb25zIH1cbiAgICAgIDoge30pLFxuICB9O1xuICBpZiAoT2JqZWN0LmtleXMoY29udGV4dCkubGVuZ3RoID4gMCkge1xuICAgIGVudltDT05URVhUX0VOVl0gPSBKU09OLnN0cmluZ2lmeShjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZENvbmZpZ1N5bmMoXG4gIGNvbmZpZ0ZpbGUgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgQ09ORklHX0ZJTEUpLFxuKTogQ29uZmlnIHtcbiAgbGV0IGNvbmZpZ0ZpbGVDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgaWYgKGZzLmV4aXN0c1N5bmMoY29uZmlnRmlsZSkpIHtcbiAgICBjb25maWdGaWxlQ29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhjb25maWdGaWxlKS50b1N0cmluZygpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlQ29uZmlnKGNvbmZpZ0ZpbGVDb250ZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENoZWNrQ29kZU1ha2VyT3V0cHV0KGNvbmZpZzogQ29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSB8fCBpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycylcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ1RpbWVzcGFuKG1lc3NhZ2U6IHN0cmluZykge1xuICBsb2dnZXIuZGVidWcoYFN0YXJ0IHRpbWVyIGZvciAke21lc3NhZ2V9Li4uYCk7XG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICByZXR1cm4gZnVuY3Rpb24gbG9nVGltZXNwYW5FbmQoKSB7XG4gICAgY29uc3QgZW5kID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IGVuZCAtIHN0YXJ0O1xuICAgIGxvZ2dlci5kZWJ1ZyhgJHttZXNzYWdlfSB0b29rICR7ZHVyYXRpb259bXNgKTtcbiAgfTtcbn1cbiJdfQ==
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3RUgsc0NBRUM7QUF3T0Qsd0RBa0RDO0FBdUVELHdDQVVDO0FBRUQsZ0VBSUM7QUFFRCxrQ0FTQztBQXBjRCw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyx1Q0FBbUM7QUFDbkMseURBQXNEO0FBQ3RELHFDQUE4QjtBQUM5Qix5Q0FBeUM7QUFFekMsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUF5QixDQUFBO0lBQ3pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixxQkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFFBQVEsd0JBQVIsUUFBUSxRQU1uQjtBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7SUFDYixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxFQUFFO0NBQ1osQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXpDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQXdCcEIsUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsZUFBZSxFQUFFLE1BQU07Q0FDeEIsQ0FBQztBQUVGLFNBQVMsU0FBUyxDQUFDLEtBQXdCO0lBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBU0QsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9D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LEVBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxPQUFPLENBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixXQUFXLENBQUMsT0FBZTtJQUN6QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFekIsT0FBTyxTQUFTLGNBQWM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDN0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLFNBQVMsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuaW1wb3J0IHsgZW52IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxuZXhwb3J0IGVudW0gTGFuZ3VhZ2Uge1xuICBUWVBFU0NSSVBUID0gXCJ0eXBlc2NyaXB0XCIsXG4gIFBZVEhPTiA9IFwicHl0aG9uXCIsXG4gIENTSEFSUCA9IFwiY3NoYXJwXCIsXG4gIEpBVkEgPSBcImphdmFcIixcbiAgR08gPSBcImdvXCIsXG59XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRVMgPSBbXG4gIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gIExhbmd1YWdlLlBZVEhPTixcbiAgTGFuZ3VhZ2UuSkFWQSxcbiAgTGFuZ3VhZ2UuQ1NIQVJQLFxuICBMYW5ndWFnZS5HTyxcbl07XG5cbmNvbnN0IENPTlRFWFRfRU5WID0gXCJDREtURl9DT05URVhUX0pTT05cIjtcblxuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNka3RmLmpzb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN1ZmZpeCB0byBhcHBlbmQgdG8gcmVsYXRpdmUgaW1wb3J0cy5cbiAgICogRGVmYXVsdHMgdG8gXCJcIiAoQ29tbW9uSlMpLlxuICAgKiBVc2UgXCIuanNcIiBvciBcIi50c1wiIGZvciBFU00tY29tcGF0aWJsZSBpbXBvcnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXh0ZW5zaW9uPzogc3RyaW5nO1xufVxuXG4vLyBGb3Igbm93LCB0aGVzZSBsYW5ndWFnZXMgaGF2ZSBubyBsYW5ndWFnZS1zcGVjaWZpYyBvcHRpb25zLlxuZXhwb3J0IHR5cGUgUHl0aG9uTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgQ1NoYXJwTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgSmF2YUxhbmd1YWdlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbmV4cG9ydCB0eXBlIEdvTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSBMYW5ndWFnZU9wdGlvbnMgPVxuICB8IFR5cGVTY3JpcHRMYW5ndWFnZU9wdGlvbnNcbiAgfCBQeXRob25MYW5ndWFnZU9wdGlvbnNcbiAgfCBDU2hhcnBMYW5ndWFnZU9wdGlvbnNcbiAgfCBKYXZhTGFuZ3VhZ2VPcHRpb25zXG4gIHwgR29MYW5ndWFnZU9wdGlvbnM7XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIG91dHB1dDogXCJjZGt0Zi5vdXRcIixcbiAgY29kZU1ha2VyT3V0cHV0OiBcIi5nZW5cIixcbn07XG5cbmZ1bmN0aW9uIGlzUHJlc2VudChpbnB1dDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA+IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxNYXRjaChzb3VyY2U6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXRjaCgvXihcXC5cXC98XFwuXFwuXFwvfFxcLlxcXFxcXFxcfFxcLlxcLlxcXFxcXFxcKSguKikvKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxNb2R1bGUoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldExvY2FsTWF0Y2goc291cmNlKSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU291cmNlQWJzb2x1dGVQYXRoPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKHRoaXMuc291cmNlKTtcbiAgICBpZiAobG9jYWxNYXRjaCkge1xuICAgICAgdGhpcy5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCB0aGlzLnNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuIHRvUGFzY2FsQ2FzZSh0aGlzLm5hbWUucmVwbGFjZSgvWy0vLl0vZywgXCJfXCIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlID8gYCR7dGhpcy5uYW1lc3BhY2V9LyR7dGhpcy5uYW1lfWAgOiB0aGlzLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgbG9jYWxNYXRjaCA9IGdldExvY2FsTWF0Y2goaXRlbSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGZxbiA9IGxvY2FsTWF0Y2hbMl07XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKSA/PyBmcW47XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZxbixcbiAgICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IFtzb3VyY2UsIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgbGV0IG1vZHVsZVBhcnRzID0gc291cmNlLnNwbGl0KFwiLy9cIik7XG4gICAgaWYgKGlzUmVnaXN0cnlNb2R1bGUobW9kdWxlUGFydHNbMF0pKSB7XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1swXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBwcm92aWRlciA9IG5hbWVQYXJ0cy5wb3AoKTsgLy8gbGFzdCBwYXJ0IGlzIHRoZSBwcm92aWRlclxuICAgICAgbGV0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gc291cmNlO1xuICAgICAgbGV0IG5hbWVzcGFjZSA9IGAke25hbWVQYXJ0cy5wb3AoKX0vJHtwcm92aWRlcn1gO1xuXG4gICAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lUGFydHMucG9wKCk7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWVzcGFjZX0vJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgZnFuOiBzb3VyY2UucmVwbGFjZShcIi8vXCIsIFwiL1wiKS5yZXBsYWNlKC9cXC4vZywgXCItXCIpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgdG9Qcm9jZXNzID0gaXRlbTsgLy8gcHJvY2VzcyBvbmUgcGFydCBhdCBhIHRpbWVcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJlZml4XG4gICAgY29uc3QgcHJlZml4TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWjAtOV0qKTo6KC4qKS8pO1xuICAgIGlmIChwcmVmaXhNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcHJlZml4TWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwcm90b2NvbFxuICAgIGNvbnN0IHByb3RvY29sTWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWl0qKTpcXC9cXC8oLiopLyk7XG4gICAgaWYgKHByb3RvY29sTWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByb3RvY29sTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgYmVmb3JlIGxhc3QgJzonIHdvbid0IGNvbnRyaWJ1dGVcbiAgICBjb25zdCBjb2xvblBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiOlwiKTtcbiAgICB0b1Byb2Nlc3MgPSBjb2xvblBhcnRzLnBvcCgpID8/IHRvUHJvY2VzcztcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcG9ydFxuICAgIGNvbnN0IHBvcnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXltcXGRdKiguKikvKTtcbiAgICBpZiAocG9ydE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwb3J0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBob3N0bmFtZVxuICAgIGNvbnN0IGhvc3RNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvW14vXSpcXC5bXi9dKlxcLyguKikvKTtcbiAgICBpZiAoaG9zdE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBob3N0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBhcmd1bWVudHNcbiAgICBjb25zdCBhcmd1bWVudE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC8oLiopXFw/LiovKTtcbiAgICBpZiAoYXJndW1lbnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gYXJndW1lbnRNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHR5cGVzXG4gICAgdG9Qcm9jZXNzID0gdG9Qcm9jZXNzLnJlcGxhY2UoL1xcLmdpdHxcXC5oZ3xcXC56aXAvLCBcIlwiKTtcblxuICAgIG1vZHVsZVBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiLy9cIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGxldCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIGlmIChtb2R1bGVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9XG4gICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgZnFuOiB0b1Byb2Nlc3MucmVwbGFjZShcIi8vXCIsIFwiL1wiKSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBPbWl0PFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LCBcImZxblwiPiB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgW2ZxbiwgdmVyc2lvbl0gPSBpdGVtLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBmcW4sXG4gICAgICAvLyBUZXJyYWZvcm0gZG9lc24ndCBzdXBwb3J0ICosIGluc3RlYWQgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICAgIHZlcnNpb246IHZlcnNpb24gPT09IFwiKlwiID8gdW5kZWZpbmVkIDogdmVyc2lvbixcbiAgICAgIGZxbixcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbi8vIFRoZSB0YXJnZXRWZXJzaW9ucyB2b2NhYnVsYXJ5IGlzIG93bmVkIGJ5IHRoZSBjZGt0biBwYWNrYWdlIChpdHMgY2Fub25pY2FsXG4vLyBob21lOyBjZGt0biBtdXN0IG5vdCBkZXBlbmQgb24gY29tbW9ucywgc28gdGhlIGRlcGVuZGVuY3kgZ29lcyB0aGlzIHdheSkuXG4vLyBjZGt0bidzIHB1YmxpYyAoanNpaSkgQVBJIGludGVudGlvbmFsbHkgZXhwb3NlcyBvbmx5IHRoZSBhdXRob3ItZmFjaW5nXG4vLyB2YWxpZGF0aW9uLCBzbyBjb21tb25zIGNvbnN1bWVzIHRoZSBwcm9qZWN0LWZhY2luZyB0eXBlLCBkZWZhdWx0IGJhc2VsaW5lLFxuLy8gY29udGV4dCBrZXksIGFuZCBwcm9kdWN0IGxpc3QgYXMgaW50ZXJuYWwgd2lyaW5nIHZpYSB0aGUgc3VicGF0aC5cbmltcG9ydCB7XG4gIERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TLFxuICBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbiAgVEFSR0VUX1BST0RVQ1RTLFxuICBUQVJHRVRfVkVSU0lPTlNfQ09OVEVYVF9LRVksXG59IGZyb20gXCJjZGt0bi9saWIvdmFsaWRhdGlvbnNcIjtcblxuLy8gUmUtZXhwb3J0ZWQgc28gZXhpc3RpbmcgY29tbW9ucyBjb25zdW1lcnMgKGUuZy4gQGNka3RuL2NsaS1jb3JlKSBrZWVwIGFcbi8vIHNpbmdsZSBpbXBvcnQgc3VyZmFjZS5cbmV4cG9ydCB7IERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TIH07XG5leHBvcnQgdHlwZSB7IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zIH07XG5cbmludGVyZmFjZSBDb25maWdCYXNlIHtcbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZU1ha2VyT3V0cHV0OiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVycz86IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludFtdO1xuICB0ZXJyYWZvcm1Nb2R1bGVzPzogVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludFtdO1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgcmVhZG9ubHkgdGFyZ2V0VmVyc2lvbnM/OiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgY29tbWFuZHMgdGhhdCBleGVjdXRlIHRoZSBUZXJyYWZvcm0tY29tcGF0aWJsZSBDTEkgKGRpZmYsXG4gICAqIGRlcGxveSwgZGVzdHJveSkgdmVyaWZ5IHRoYXQgdGhlIGluc3RhbGxlZCBiaW5hcnkgc2F0aXNmaWVzIHRoZSBkZWNsYXJlZFxuICAgKiBgdGFyZ2V0VmVyc2lvbnNgIGJlZm9yZSBydW5uaW5nIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVJbnN0YWxsZWRCaW5hcnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgc2hhcGUgb2YgYSBgdGFyZ2V0VmVyc2lvbnNgIGRlY2xhcmF0aW9uOyByZXR1cm5zIGEgbGlzdCBvZlxuICogaHVtYW4tcmVhZGFibGUgcHJvYmxlbXMgKGVtcHR5IHdoZW4gdmFsaWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRWZXJzaW9ucyh0YXJnZXRWZXJzaW9uczogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgaWYgKHRhcmdldFZlcnNpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcblxuICBpZiAoXG4gICAgdHlwZW9mIHRhcmdldFZlcnNpb25zICE9PSBcIm9iamVjdFwiIHx8XG4gICAgdGFyZ2V0VmVyc2lvbnMgPT09IG51bGwgfHxcbiAgICBBcnJheS5pc0FycmF5KHRhcmdldFZlcnNpb25zKVxuICApIHtcbiAgICByZXR1cm4gW1xuICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgYmUgYW4gb2JqZWN0IG1hcHBpbmcgcHJvZHVjdHMgdG8gc2VtdmVyIHJhbmdlcywgZS5nLiB7IFwidGVycmFmb3JtXCI6IFwiPj0xLjUuN1wiIH1gLFxuICAgIF07XG4gIH1cblxuICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGFyZ2V0VmVyc2lvbnMpO1xuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW1xuICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdCAoXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpIG9yIGJlIG9taXR0ZWQgZW50aXJlbHlgLFxuICAgIF07XG4gIH1cblxuICBjb25zdCBwcm9ibGVtczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBbcHJvZHVjdCwgcmFuZ2VdIG9mIGVudHJpZXMpIHtcbiAgICBpZiAoIShUQVJHRVRfUFJPRFVDVFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHByb2R1Y3QpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMgaGFzIHVua25vd24gcHJvZHVjdCBcIiR7cHJvZHVjdH1cIiAoZXhwZWN0ZWQgXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByYW5nZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gbXVzdCBiZSBhIHNlbXZlciByYW5nZSBzdHJpbmcsIGdvdCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJhbmdlLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChyYW5nZS5pbmNsdWRlcyhcIn4+XCIpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBcIiR7cmFuZ2V9XCIgdXNlcyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXg7IHVzZSBucG0gc2VtdmVyIHJhbmdlcyBpbnN0ZWFkIChlLmcuIFwiPj0xLjUuN1wiIG9yIFwifjEuNS43XCIpYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHNlbXZlci52YWxpZFJhbmdlKHJhbmdlKSA9PT0gbnVsbCkge1xuICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gXCIke3JhbmdlfVwiIGlzIG5vdCBhIHZhbGlkIHNlbXZlciByYW5nZWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcm9ibGVtcztcbn1cblxuLyoqXG4gKiBMYW5ndWFnZS1zcGVjaWZpYyBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucywgZGlzY3JpbWluYXRlZCBieSBgbGFuZ3VhZ2VgLlxuICogT25seSBUeXBlU2NyaXB0IGN1cnJlbnRseSBoYXMgdHVuYWJsZSBvcHRpb25zOyBhbGwgb3RoZXIgbGFuZ3VhZ2VzXG4gKiBhY2NlcHQgYW4gZW1wdHkgYGxhbmd1YWdlT3B0aW9uc2Agb2JqZWN0IGFzIGEgZnV0dXJlIGV4dGVuc2lvbiBwb2ludC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gQ29uZmlnQmFzZSAmXG4gIChcbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U/OiBMYW5ndWFnZS5UWVBFU0NSSVBUO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZTogTGFuZ3VhZ2UuUFlUSE9OO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBQeXRob25MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5DU0hBUlA7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IENTaGFycExhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlLkpBVkE7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IEphdmFMYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5HTztcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2VPcHRpb25zPzogR29MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbmZpZyA9IChjb25maWdKU09OPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIC4uLkNPTkZJR19ERUZBVUxUUyxcbiAgICAuLi5KU09OLnBhcnNlKGNvbmZpZ0pTT04gfHwgXCJ7fVwiKSxcbiAgfTtcblxuICBpZiAoaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzID0gY29uZmlnLnRlcnJhZm9ybU1vZHVsZXM/Lm1hcChcbiAgICAgIChtb2QpID0+IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KG1vZCksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycykpIHtcbiAgICBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycz8ubWFwKFxuICAgICAgKHByb3ZpZGVyKSA9PiBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KHByb3ZpZGVyKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgdGFyZ2V0VmVyc2lvblByb2JsZW1zID0gdmFsaWRhdGVUYXJnZXRWZXJzaW9ucyhjb25maWcudGFyZ2V0VmVyc2lvbnMpO1xuICBpZiAodGFyZ2V0VmVyc2lvblByb2JsZW1zLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCAke0NPTkZJR19GSUxFfTpcXG4gICR7dGFyZ2V0VmVyc2lvblByb2JsZW1zLmpvaW4oXCJcXG4gIFwiKX1gLFxuICAgICk7XG4gIH1cblxuICAvLyBkZWNsYXJlZCB0YXJnZXQgdmVyc2lvbnMgcmlkZSBhbG9uZyBpbiB0aGUgY29udGV4dCBzbyB0aGV5IHJlYWNoIHRoZVxuICAvLyBzeW50aGVzaXplZCBhcHAgd2l0aG91dCBhIHNlcGFyYXRlIGNoYW5uZWxcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICAuLi5jb25maWcuY29udGV4dCxcbiAgICAuLi4oY29uZmlnLnRhcmdldFZlcnNpb25zXG4gICAgICA/IHsgW1RBUkdFVF9WRVJTSU9OU19DT05URVhUX0tFWV06IGNvbmZpZy50YXJnZXRWZXJzaW9ucyB9XG4gICAgICA6IHt9KSxcbiAgfTtcbiAgaWYgKE9iamVjdC5rZXlzKGNvbnRleHQpLmxlbmd0aCA+IDApIHtcbiAgICBlbnZbQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb25maWdTeW5jKFxuICBjb25maWdGaWxlID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIENPTkZJR19GSUxFKSxcbik6IENvbmZpZyB7XG4gIGxldCBjb25maWdGaWxlQ29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGNvbmZpZ0ZpbGUpKSB7XG4gICAgY29uZmlnRmlsZUNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoY29uZmlnRmlsZSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZUNvbmZpZyhjb25maWdGaWxlQ29udGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRDaGVja0NvZGVNYWtlck91dHB1dChjb25maWc6IENvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzUHJlc2VudChjb25maWcudGVycmFmb3JtTW9kdWxlcykgfHwgaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dUaW1lc3BhbihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgbG9nZ2VyLmRlYnVnKGBTdGFydCB0aW1lciBmb3IgJHttZXNzYWdlfS4uLmApO1xuICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGxvZ1RpbWVzcGFuRW5kKCkge1xuICAgIGNvbnN0IGVuZCA9IERhdGUubm93KCk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBlbmQgLSBzdGFydDtcbiAgICBsb2dnZXIuZGVidWcoYCR7bWVzc2FnZX0gdG9vayAke2R1cmF0aW9ufW1zYCk7XG4gIH07XG59XG4iXX0=
|