aws-delivlib 13.4.1 → 13.4.2
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/.gitattributes +22 -20
- package/cdk.out/{asset.663163693e04179c71265b44a325be7e6b8c4e90b081883a1b3f3393de2546ea → asset.7820644cf1fdec7cec290ed6fdd561e35f4015d4dcf03a20f8035dda3c0ac88a}/watcher-handler.d.ts +0 -0
- package/cdk.out/asset.7820644cf1fdec7cec290ed6fdd561e35f4015d4dcf03a20f8035dda3c0ac88a/watcher-handler.js +108 -0
- package/cdk.out/{asset.663163693e04179c71265b44a325be7e6b8c4e90b081883a1b3f3393de2546ea → asset.7820644cf1fdec7cec290ed6fdd561e35f4015d4dcf03a20f8035dda3c0ac88a}/watcher-handler.ts +0 -0
- package/cdk.out/asset.dc2e98009b027861f34e56eebb81faa5a3951ed9da80ce4a903a45de04268238/index.js +16465 -0
- package/cdk.out/cdk.out +1 -1
- package/cdk.out/delivlib-test.assets.json +9 -9
- package/cdk.out/delivlib-test.template.json +3 -3
- package/cdk.out/manifest.json +988 -988
- package/cdk.out/tree.json +412 -412
- package/lib/__tests__/build-spec.test.js +21 -2
- package/lib/__tests__/bump.test.js +21 -2
- package/lib/__tests__/canary.test.js +22 -3
- package/lib/__tests__/change-control-lambda/disable-transition.test.js +2 -1
- package/lib/__tests__/change-control-lambda/handler.test.js +23 -3
- package/lib/__tests__/chime-notifier.test.js +4 -3
- package/lib/__tests__/code-signing-cert.test.js +21 -2
- package/lib/__tests__/integ.delivlib.js +21 -2
- package/lib/__tests__/open-pgp-key-pair.test.js +21 -2
- package/lib/__tests__/pipeline.test.js +22 -3
- package/lib/__tests__/pr.test.js +21 -2
- package/lib/__tests__/publishing.test.js +21 -2
- package/lib/__tests__/registry-sync/ecr-mirror.test.js +21 -2
- package/lib/__tests__/registry-sync/mirror-source.test.js +21 -2
- package/lib/__tests__/shellable.test.js +22 -3
- package/lib/__tests__/test-stack.js +22 -3
- package/lib/change-control-lambda/disable-transition.js +21 -2
- package/lib/change-control-lambda/index.js +21 -2
- package/lib/change-controller.js +21 -2
- package/lib/chime-notifier/chime-notifier.js +22 -12
- package/lib/chime-notifier/chime-notifier.ts +1 -11
- package/lib/chime-notifier/{notifier-handler.d.ts → handler/notifier-handler.d.ts} +0 -0
- package/lib/chime-notifier/handler/notifier-handler.js +110 -0
- package/lib/chime-notifier/{notifier-handler.ts → handler/notifier-handler.ts} +4 -4
- package/lib/code-signing/certificate-signing-request.js +21 -2
- package/lib/code-signing/code-signing-certificate.js +21 -2
- package/lib/code-signing/private-key.js +21 -2
- package/lib/custom-resource-handlers/src/_cloud-formation.js +22 -3
- package/lib/custom-resource-handlers/src/_exec.js +22 -3
- package/lib/custom-resource-handlers/src/_rmrf.js +23 -4
- package/lib/custom-resource-handlers/src/certificate-signing-request.js +26 -7
- package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/pgp-secret.js +27 -8
- package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/private-key.js +26 -7
- package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
- package/lib/open-pgp-key-pair.js +21 -2
- package/lib/pipeline-notifications/chime.js +21 -2
- package/lib/pipeline-notifications/slack.js +21 -2
- package/lib/pipeline-watcher/handler/watcher-handler.js +21 -2
- package/lib/pipeline-watcher/watcher.js +21 -2
- package/lib/pipeline.js +21 -2
- package/lib/publishing.js +22 -3
- package/lib/pull-request/bump.js +21 -2
- package/lib/pull-request/merge-back.js +22 -3
- package/lib/pull-request/pr.js +21 -2
- package/lib/shellable.js +22 -3
- package/lib/util.js +23 -4
- package/package.json +35 -36
- package/cdk.out/asset.663163693e04179c71265b44a325be7e6b8c4e90b081883a1b3f3393de2546ea/watcher-handler.js +0 -89
- package/cdk.out/asset.d81bf2d4c389ecd69472cf4b27599e1ffbe0c1543104f45d035834e863f64ca7/index.js +0 -14129
- package/lib/chime-notifier/notifier-handler.js +0 -91
package/lib/pull-request/bump.js
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.AutoBump = void 0;
|
|
4
|
-
const cdk = require("monocdk");
|
|
23
|
+
const cdk = __importStar(require("monocdk"));
|
|
5
24
|
const pr_1 = require("./pr");
|
|
6
25
|
class AutoBump extends cdk.Construct {
|
|
7
26
|
constructor(parent, id, props) {
|
|
@@ -32,4 +51,4 @@ class AutoBump extends cdk.Construct {
|
|
|
32
51
|
}
|
|
33
52
|
}
|
|
34
53
|
exports.AutoBump = AutoBump;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1bXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUErQjtBQUUvQiw2QkFBK0Q7QUE4RS9ELE1BQWEsUUFBUyxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBT3pDLFlBQVksTUFBcUIsRUFBRSxFQUFVLEVBQUUsS0FBb0I7O1FBQ2pFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEIsTUFBTSxVQUFVLEdBQUcsTUFBQSxNQUFBLEtBQUssQ0FBQyxJQUFJLDBDQUFFLElBQUksbUNBQUksZUFBZSxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsSUFBSSwwQ0FBRSxJQUFJLG1DQUFJLFFBQVEsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxNQUFBLEtBQUssQ0FBQyxXQUFXLG1DQUFJLG1CQUFtQixDQUFDO1FBQzdELE1BQU0sY0FBYyxHQUFHLE1BQUEsS0FBSyxDQUFDLGNBQWMsbUNBQUksY0FBYyxDQUFDO1FBQzlELE1BQU0sS0FBSyxHQUFHLE1BQUEsS0FBSyxDQUFDLEtBQUssbUNBQUksMEJBQTBCLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxtQ0FBSSxzQ0FBc0MsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsVUFBVSxnQkFBZ0IsQ0FBQztRQUV4SSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksb0JBQWUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDckQsR0FBRyxLQUFLO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxVQUFVO2dCQUNoQixNQUFNLEVBQUUsTUFBQSxLQUFLLENBQUMsSUFBSSwwQ0FBRSxNQUFNO2FBQzNCO1lBQ0QsS0FBSztZQUNMLElBQUk7WUFDSixRQUFRLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDdkIsT0FBTyxFQUFFO2dCQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxjQUFjO2FBQ3hCO1lBQ0Qsb0NBQW9DO1lBQ3BDLFNBQVMsRUFBRSw4QkFBOEIsVUFBVSxFQUFFO1NBQ3RELENBQUMsQ0FBQztJQUVMLENBQUM7Q0FDRjtBQW5DRCw0QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcbmltcG9ydCB7IEF1dG9QdWxsUmVxdWVzdCwgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vcHInO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgYnVtcCBQUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvQnVtcEhlYWQge1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBicmFuY2guIFdpbGwgYmUgY3JlYXRlZCBpZiBpdCBkb2Vzbid0IGV4aXN0LlxuICAgKlxuICAgKiAkVkVSU0lPTiB3aWxsIGJlIHN1YnN0aXR1dGVkIGJ5IHRoZSBjdXJyZW50IHZlcnNpb24gKG9idGFpbmVkIGJ5IGV4ZWN1dGluZyBgdmVyc2lvbkNvbW1hbmRgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2J1bXAvJFZFUlNJT04nXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2VlICdzb3VyY2UnIHByb3BlcnR5IGluIEF1dG9QdWxsUmVxdWVzdC5IZWFkXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgYW4gQXV0byBCdW1wIHByb2plY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0J1bXBQcm9wcyBleHRlbmRzIEF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgUFIgaW4uXG4gICAqL1xuICByZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUgaW4gb3JkZXIgdG8gYnVtcCB0aGUgcmVwby5cbiAgICpcbiAgICogVGhlIGJ1bXAgY29tbWFuZCBpcyByZXNwb25zaWJsZSB0byBidW1wIGFueSB2ZXJzaW9uIG1ldGFkYXRhLCB1cGRhdGVcbiAgICogQ0hBTkdFTE9HIGFuZCBjb21taXQgdGhpcyB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgJy9iaW4vYmFzaCAuL2J1bXAuc2gnXG4gICAqL1xuICBidW1wQ29tbWFuZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdG8gZGV0ZXJtaW5lIHRoZSBjdXJyZW50IHZlcnNpb24uXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHZhbHVlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGV2YWx1YXRlICRWRVJTSU9OLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZ2l0IGRlc2NyaWJlJyAodGhlIGxhdGVzdCBnaXQgdGFnIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgdmVyc2lvbilcbiAgICovXG4gIHZlcnNpb25Db21tYW5kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgUFIuXG4gICAqXG4gICAqICRWRVJTSU9OIHdpbGwgYmUgc3Vic3RpdHV0ZWQgYnkgdGhlIGN1cnJlbnQgdmVyc2lvbiAob2J0YWluZWQgYnkgZXhlY3V0aW5nIGB2ZXJzaW9uQ29tbWFuZGApLlxuICAgKlxuICAgKiBAZGVmYXVsdCcgY2hvcmUocmVsZWFzZSk6ICRWRVJTSU9OJ1xuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJvZHkgb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnU2VlIFtDSEFOR0VMT0ddKGh0dHBzOi8vZ2l0aHViLmNvbS8ke3Byb3BzLnJlcG8ub3duZXJ9LyR7cHJvcHMucmVwby5yZXBvfS9ibG9iLyR7aGVhZH0vQ0hBTkdFTE9HLm1kKSdcbiAgICogKExpbmsgdG8gdGhlIENIQU5HRUxPRyBmaWxlIG9mIHRoZSBoZWFkIGJyYW5jaClcbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgUFIuXG4gICAqXG4gICAqICRWRVJTSU9OIHdpbGwgYmUgc3Vic3RpdHV0ZWQgYnkgdGhlIGN1cnJlbnQgdmVyc2lvbiAob2J0YWluZWQgYnkgZXhlY3V0aW5nIGB2ZXJzaW9uQ29tbWFuZGApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFdpbCBiZSBjcmVhdGVkIGZyb20gbWFzdGVyIGFuZCBuYW1lZCAnYnVtcC8kVkVSU0lPTidcbiAgICovXG4gIGhlYWQ/OiBBdXRvQnVtcEhlYWQ7XG5cbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9CdW1wIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIEF1dG9QdWxsUmVxdWVzdCBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHI6IEF1dG9QdWxsUmVxdWVzdDtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRvQnVtcFByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBpZCk7XG5cbiAgICBjb25zdCBicmFuY2hOYW1lID0gcHJvcHMuaGVhZD8ubmFtZSA/PyAnYnVtcC8kVkVSU0lPTic7XG4gICAgY29uc3QgYmFzZUJyYW5jaCA9IHByb3BzLmJhc2U/Lm5hbWUgPz8gJ21hc3Rlcic7XG4gICAgY29uc3QgYnVtcENvbW1hbmQgPSBwcm9wcy5idW1wQ29tbWFuZCA/PyAnL2Jpbi9zaCAuL2J1bXAuc2gnO1xuICAgIGNvbnN0IHZlcnNpb25Db21tYW5kID0gcHJvcHMudmVyc2lvbkNvbW1hbmQgPz8gJ2dpdCBkZXNjcmliZSc7XG4gICAgY29uc3QgdGl0bGUgPSBwcm9wcy50aXRsZSA/PyAnY2hvcmUocmVsZWFzZSk6ICRWRVJTSU9OJztcbiAgICBjb25zdCBib2R5ID0gcHJvcHMuYm9keSA/PyBgU2VlIFtDSEFOR0VMT0ddKGh0dHBzOi8vZ2l0aHViLmNvbS8ke3Byb3BzLnJlcG8ub3duZXJ9LyR7cHJvcHMucmVwby5yZXBvfS9ibG9iLyR7YnJhbmNoTmFtZX0vQ0hBTkdFTE9HLm1kKWA7XG5cbiAgICB0aGlzLnByID0gbmV3IEF1dG9QdWxsUmVxdWVzdCh0aGlzLCAnQXV0b1B1bGxSZXF1ZXN0Jywge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBoZWFkOiB7XG4gICAgICAgIG5hbWU6IGJyYW5jaE5hbWUsXG4gICAgICAgIHNvdXJjZTogcHJvcHMuaGVhZD8uc291cmNlLFxuICAgICAgfSxcbiAgICAgIHRpdGxlLFxuICAgICAgYm9keSxcbiAgICAgIGNvbW1hbmRzOiBbYnVtcENvbW1hbmRdLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAuLi5wcm9wcy5leHBvcnRzLFxuICAgICAgICBWRVJTSU9OOiB2ZXJzaW9uQ29tbWFuZCxcbiAgICAgIH0sXG4gICAgICAvLyBjaGVjayBpZiBiYXNlIGlzIGFscmVhZHkgcmVsZWFzZWRcbiAgICAgIGNvbmRpdGlvbjogYGdpdCBkZXNjcmliZSAtLWV4YWN0LW1hdGNoICR7YmFzZUJyYW5jaH1gLFxuICAgIH0pO1xuXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.AutoMergeBack = void 0;
|
|
4
|
-
const cdk = require("monocdk");
|
|
5
|
-
const pr = require("./pr");
|
|
23
|
+
const cdk = __importStar(require("monocdk"));
|
|
24
|
+
const pr = __importStar(require("./pr"));
|
|
6
25
|
class AutoMergeBack extends cdk.Construct {
|
|
7
26
|
constructor(parent, id, props) {
|
|
8
27
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -27,4 +46,4 @@ class AutoMergeBack extends cdk.Construct {
|
|
|
27
46
|
}
|
|
28
47
|
}
|
|
29
48
|
exports.AutoMergeBack = AutoMergeBack;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtYmFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lcmdlLWJhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUErQjtBQUUvQix5Q0FBMkI7QUFtRzNCLE1BQWEsYUFBYyxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBTzlDLFlBQVksTUFBcUIsRUFBRSxFQUFVLEVBQUUsS0FBeUI7O1FBQ3RFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEIsTUFBTSxjQUFjLEdBQUcsTUFBQSxLQUFLLENBQUMsY0FBYyxtQ0FBSSxjQUFjLENBQUM7UUFDOUQsTUFBTSxRQUFRLEdBQUcsTUFBQSxNQUFBLEtBQUssQ0FBQyxJQUFJLDBDQUFFLElBQUksbUNBQUkscUJBQXFCLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBQSxLQUFLLENBQUMsS0FBSyxtQ0FBSSw2QkFBNkIsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxNQUFBLEtBQUssQ0FBQyxJQUFJLG1DQUFJLHNDQUFzQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxRQUFRLGdCQUFnQixDQUFDO1FBRXRJLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDdEQsR0FBRyxLQUFLO1lBQ1IsSUFBSTtZQUNKLEtBQUs7WUFDTCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsTUFBTSxFQUFFLE1BQUEsS0FBSyxDQUFDLElBQUksMENBQUUsTUFBTTthQUMzQjtZQUNELE9BQU8sRUFBRTtnQkFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO2dCQUNoQixPQUFPLEVBQUUsY0FBYzthQUN4QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdCRCxzQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcbmltcG9ydCAqIGFzIHByIGZyb20gJy4vcHInO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgYnVtcCBQUi5cbiAqIChUaGUgYnJhbmNoIHRoZSBQUiB3aWxsIGJlIG1lcmdlZCBmcm9tKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9NZXJnZUJhY2tIZWFkIHtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgYnJhbmNoLiBXaWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICogJFZFUlNJT04gd2lsbCBiZSBzdWJzdGl0dXRlZCBieSB0aGUgY3VycmVudCB2ZXJzaW9uIChvYnRhaW5lZCBieSBleGVjdXRpbmcgYHZlcnNpb25Db21tYW5kYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtZXJnZS1iYWNrLyRWRVJTSU9OJ1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNlZSAnc291cmNlJyBwcm9wZXJ0eSBpbiBBdXRvUHVsbFJlcXVlc3QuSGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQmFja1N0YWdlIHtcblxuICAvKipcbiAgICogV2hpY2ggc3RhZ2Ugc2hvdWxkIHRoZSBtZXJnZSBiYWNrIGJlIHBhcnQgb2YuIChDcmVhdGVkIGlmIG1pc3NpbmcpXG4gICAqXG4gICAqIEBkZWZhdWx0ICdNZXJnZUJhY2snXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhZ2UgdGhhdCB0aGUgbWVyZ2UgYmFjayBzdGFnZSBzaG91bGQgZ28gYWZ0ZXIgb2YuIChNdXN0IGV4aXN0KVxuICAgKi9cbiAgcmVhZG9ubHkgYWZ0ZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvTWVyZ2VCYWNrT3B0aW9ucyBleHRlbmRzIHByLkF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdG8gZGV0ZXJtaW5lIHRoZSBjdXJyZW50IHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdnaXQgZGVzY3JpYmUnXG4gICAqL1xuICB2ZXJzaW9uQ29tbWFuZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGl0bGUgb2YgdGhlIFBSLlxuICAgKlxuICAgKiAkVkVSU0lPTiB3aWxsIGJlIHN1YnN0aXR1dGVkIGJ5IHRoZSBjdXJyZW50IHZlcnNpb24gKG9idGFpbmVkIGJ5IGV4ZWN1dGluZyBgdmVyc2lvbkNvbW1hbmRgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2Nob3JlKHJlbGVhc2UpOiBtZXJnZSBiYWNrICRWRVJTSU9OJ1xuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJvZHkgb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnU2VlIFtDSEFOR0VMT0ddKGh0dHBzOi8vZ2l0aHViLmNvbS8ke3Byb3BzLnJlcG8ub3duZXJ9LyR7cHJvcHMucmVwby5yZXBvfS9ibG9iLyR7aGVhZH0vQ0hBTkdFTE9HLm1kKSdcbiAgICogKExpbmsgdG8gdGhlIENIQU5HRUxPRyBmaWxlIG9mIHRoZSBoZWFkIGJyYW5jaClcbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhlYWQgYnJhbmNoIG9mIHRoZSBQUi5cbiAgICpcbiAgICogJFZFUlNJT04gd2lsbCBiZSBzdWJzdGl0dXRlZCBieSB0aGUgY3VycmVudCB2ZXJzaW9uIChvYnRhaW5lZCBieSBleGVjdXRpbmcgYHZlcnNpb25Db21tYW5kYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gV2lsbCBiZSBjcmVhdGVkIGZyb20gcmVsZWFzZSBhbmQgbmFtZWQgJ21lcmdlLWJhY2svJFZFUlNJT04nXG4gICAqL1xuICBoZWFkPzogQXV0b01lcmdlQmFja0hlYWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBleGl0IGNvZGUgb2YgdGhpcyBjb21tYW5kIGRldGVybWluZXMgd2hldGhlciBvciBub3QgdG8gcHJvY2VlZCB3aXRoIHRoZVxuICAgKiBQUiBjcmVhdGlvbi4gSWYgY29uZmlndXJlZCwgdGhpcyBjb21tYW5kIGlzIHRoZSBmaXJzdCBvbmUgdG8gcnVuLCBhbmQgaWYgaXQgZmFpbHMsIGFsbFxuICAgKiBvdGhlciBjb21tYW5kcyB3aWxsIGJlIHNraXBwZWQuXG4gICAqXG4gICAqIFRoaXMgY29tbWFuZCBpcyB0aGUgZmlyc3QgdG8gZXhlY3V0ZSwgYW5kIHNob3VsZCBub3QgYXNzdW1lIGFueSBwcmUtZXhpc3Rpbmcgc3RhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29uZGl0aW9uXG4gICAqL1xuICBjb25kaXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b01lcmdlQmFja1BpcGVsaW5lT3B0aW9ucyBleHRlbmRzIEF1dG9NZXJnZUJhY2tPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNwZWNpZnkgc3RhZ2Ugb3B0aW9ucyB0byBjcmVhdGUgdGhlIG1lcmdlIGJhY2sgaW5zaWRlIGEgc3RhZ2Ugb2YgdGhlIHBpcGVsaW5lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBDb2RlQnVpbGQgcHJvamVjdCB3aWxsIGJlIGNyZWF0ZWQgaW5kZXBkZW50IG9mIGFueSBzdGFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlPzogTWVyZ2VCYWNrU3RhZ2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b01lcmdlQmFja1Byb3BzIGV4dGVuZHMgQXV0b01lcmdlQmFja09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gYnVtcC5cbiAgICovXG4gIHJlcG86IFdyaXRhYmxlR2l0SHViUmVwbztcbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9NZXJnZUJhY2sgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQXV0b1B1bGxSZXF1ZXN0IGNvbnN0cnVjdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcjogcHIuQXV0b1B1bGxSZXF1ZXN0O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF1dG9NZXJnZUJhY2tQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgY29uc3QgdmVyc2lvbkNvbW1hbmQgPSBwcm9wcy52ZXJzaW9uQ29tbWFuZCA/PyAnZ2l0IGRlc2NyaWJlJztcbiAgICBjb25zdCBoZWFkTmFtZSA9IHByb3BzLmhlYWQ/Lm5hbWUgPz8gJ21lcmdlLWJhY2svJFZFUlNJT04nO1xuICAgIGNvbnN0IHRpdGxlID0gcHJvcHMudGl0bGUgPz8gJ2Nob3JlKG1lcmdlLWJhY2spOiAkVkVSU0lPTic7XG4gICAgY29uc3QgYm9keSA9IHByb3BzLmJvZHkgPz8gYFNlZSBbQ0hBTkdFTE9HXShodHRwczovL2dpdGh1Yi5jb20vJHtwcm9wcy5yZXBvLm93bmVyfS8ke3Byb3BzLnJlcG8ucmVwb30vYmxvYi8ke2hlYWROYW1lfS9DSEFOR0VMT0cubWQpYDtcblxuICAgIHRoaXMucHIgPSBuZXcgcHIuQXV0b1B1bGxSZXF1ZXN0KHRoaXMsICdBdXRvTWVyZ2VCYWNrJywge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBib2R5LFxuICAgICAgdGl0bGUsXG4gICAgICBoZWFkOiB7XG4gICAgICAgIG5hbWU6IGhlYWROYW1lLFxuICAgICAgICBzb3VyY2U6IHByb3BzLmhlYWQ/LnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBleHBvcnRzOiB7XG4gICAgICAgIC4uLnByb3BzLmV4cG9ydHMsXG4gICAgICAgIFZFUlNJT046IHZlcnNpb25Db21tYW5kLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/pull-request/pr.js
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.AutoPullRequest = void 0;
|
|
4
23
|
const monocdk_1 = require("monocdk");
|
|
5
24
|
const build_env_1 = require("../build-env");
|
|
6
|
-
const permissions = require("../permissions");
|
|
25
|
+
const permissions = __importStar(require("../permissions"));
|
|
7
26
|
/**
|
|
8
27
|
* Creates a CodeBuild job that, when triggered, opens a GitHub Pull Request.
|
|
9
28
|
*/
|
|
@@ -200,4 +219,4 @@ class AutoPullRequest extends monocdk_1.Construct {
|
|
|
200
219
|
}
|
|
201
220
|
}
|
|
202
221
|
exports.AutoPullRequest = AutoPullRequest;
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FNaUI7QUFDakIsNENBQTZFO0FBQzdFLDhDQUE4QztBQW9MOUM7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsbUJBQVM7SUFrQjVDLFlBQVksTUFBaUIsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBQ3BFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLE1BQUEsS0FBSyxDQUFDLElBQUksMENBQUUsSUFBSSxtQ0FBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxtQ0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxLQUFLLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUM7UUFFbkMsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hGLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzNGO1NBQ0Y7UUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzQyxNQUFNLGNB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LENBQUM7U0FDdkc7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUVsQixDQUFDO0lBRU8sVUFBVSxDQUFDLEdBQVcsRUFBRSxPQUFlLEVBQUUsT0FBWTtRQUMzRCxPQUFPO1lBQ0wsYUFBYTtZQUNiLE9BQU87WUFDUCwrQ0FBK0M7WUFDL0MsMkNBQTJDO1lBQzNDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7WUFDL0MsZ0NBQWdDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO1NBQ3RGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFXLEVBQUUsT0FBZTtRQUNoRCxPQUFPO1lBQ0wsYUFBYTtZQUNiLE9BQU87WUFDUCwrQ0FBK0M7WUFDL0MsMkNBQTJDO1lBQzNDLDBCQUEwQixHQUFHLEdBQUc7U0FDakMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0NBRUY7QUEzUUQsMENBMlFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uc3RydWN0LCBEdXJhdGlvbixcbiAgYXdzX2Nsb3Vkd2F0Y2ggYXMgY2xvdWR3YXRjaCxcbiAgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQsXG4gIGF3c19ldmVudHMgYXMgZXZlbnRzLFxuICBhd3NfZXZlbnRzX3RhcmdldHMgYXMgZXZlbnRzX3RhcmdldHMsXG59IGZyb20gJ21vbm9jZGsnO1xuaW1wb3J0IHsgQnVpbGRFbnZpcm9ubWVudFByb3BzLCBjcmVhdGVCdWlsZEVudmlyb25tZW50IH0gZnJvbSAnLi4vYnVpbGQtZW52JztcbmltcG9ydCAqIGFzIHBlcm1pc3Npb25zIGZyb20gJy4uL3Blcm1pc3Npb25zJztcbmltcG9ydCB7IFdyaXRhYmxlR2l0SHViUmVwbyB9IGZyb20gJy4uL3JlcG8nO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgUHVsbCBSZXF1ZXN0IEpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvUHVsbFJlcXVlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYXN0ZXInXG4gICAqL1xuICBiYXNlPzogQmFzZTtcblxuICAvKipcbiAgICogVHJ1ZSBpZiB5b3Ugb25seSB3YW50IHRvIHB1c2ggdGhlIGhlYWQgYnJhbmNoIHdpdGhvdXQgY3JlYXRpbmcgYSBQUi5cbiAgICogVXNlZnVsIHdoZW4gdXNlZCBhbG9uZyB3aXRoICdjb21taXRzJyB0byBleGVjdXRlIGEgY29tbWl0LWFuZC1wdXNoIGF1dG9tYXRpY2FsbHkuXG4gICAqXG4gICAqIC8vIFRPRE86IENvbnNpZGVyIG1vdmluZyB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gYSBzZXBhcmF0ZSBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdXNoT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRpdGxlIG9mIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgYE1lcmdlICR7aGVhZH0gdG8gJHtiYXNlfWBcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb2R5IHRoZSBQUi4gTm90ZSB0aGF0IHRoZSBib2R5IGlzIHVwZGF0ZWQgcG9zdCBQUiBjcmVhdGlvbixcbiAgICogdGhpcyBtZWFucyB5b3UgY2FuIHVzZSB0aGUgJFBSX05VTUJFUiBlbnYgdmFyaWFibGUgdG8gcmVmZXIgdG8gdGhlIFBSIGl0c2VsZi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBib2R5LlxuICAgKi9cbiAgYm9keT86IHN0cmluZztcblxuICAvKipcbiAgICogTGFiZWxzIGFwcGxpZWQgdG8gdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxhYmVscy5cbiAgICovXG4gIGxhYmVscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBCdWlsZCBlbnZpcm9ubWVudCBmb3IgdGhlIENvZGVCdWlsZCBqb2IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgYnVpbGQ/OiBCdWlsZEVudmlyb25tZW50UHJvcHM7XG5cbiAgLyoqXG4gICAqIEdpdCBjbG9uZSBkZXB0aC5cbiAgICpcbiAgICogQGRlZmF1bHQgMCAoY2xvbmVzIHRoZSBlbnRpcmUgcmVwb3NpdG9yeSByZXZpc2lvbnMpXG4gICAqL1xuICBjbG9uZURlcHRoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBLZXkgdmFsdWUgcGFpcnMgb2YgdmFyaWFibGVzIHRvIGV4cG9ydC4gVGhlc2UgdmFyaWFibGVzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBkeW5hbWljIGV2YWx1YXRpb24gaW4gYW55XG4gICAqIHN1YnNlcXVlbnQgY29tbWFuZC5cbiAgICpcbiAgICogS2V5IC0gVmFyaWFibGUgbmFtZSAoZS5nIFZFUlNJT04pXG4gICAqIFZhbHVlIC0gQ29tbWFuZCB0aGF0IGV2YWx1YXRlcyB0byB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIChlLmcgJ2dpdCBkZXNjcmliZScpXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIENvbmZpZ3VyZSBhbiBleHBvcnQgaW4gdGhlIGZvcm0gb2Y6XG4gICAqXG4gICAqIHsgJ1ZFUlNJT04nOiAnZ2l0IGRlc2NyaWJlJyB9XG4gICAqXG4gICAqIFVzZSB0aGUgJFZFUlNJT04gdmFyaWFibGUgaW4gdGhlIFBSIHRpdGxlOiAnY2hvcmUocmVsZWFzZSk6ICRWRVJTSU9OJ1xuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlc2UgZXhwb3J0cyBhcmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGBjb21tYW5kc2AgZXhlY3V0aW9uLFxuICAgKiBzbyB0aGV5IGhhdmUgYWNjZXNzIHRvIHRoZSBhcnRpZmFjdHMgc2FpZCBjb21tYW5kcyBwcm9kdWNlIChlLmcgdmVyc2lvbiBidW1wKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleHBvcnRzXG4gICAqL1xuICBleHBvcnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIHNjaGVkdWxlIHRvIHByb2R1Y2UgYW4gYXV0b21hdGljIFBSLlxuICAgKlxuICAgKiBUaGUgZXhwcmVzc2lvbiBjYW4gYmUgb25lIG9mOlxuICAgKlxuICAgKiAgLSBjcm9uIGV4cHJlc3Npb24sIHN1Y2ggYXMgXCJjcm9uKDAgMTIgKiAqID8gKilcIiB3aWxsIHRyaWdnZXIgZXZlcnkgZGF5IGF0IDEycG0gVVRDXG4gICAqICAtIHJhdGUgZXhwcmVzc2lvbiwgc3VjaCBhcyBcInJhdGUoMSBkYXkpXCIgd2lsbCB0cmlnZ2VyIGV2ZXJ5IDI0IGhvdXJzIGZyb20gdGhlIHRpbWUgb2YgZGVwbG95bWVudFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvU2NoZWR1bGVkRXZlbnRzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzY2hlZHVsZSwgc2hvdWxkIGJlIHRyaWdnZXJlZCBtYW51YWxseS5cbiAgICovXG4gIHNjaGVkdWxlRXhwcmVzc2lvbj86IHN0cmluZztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9QdWxsUmVxdWVzdFByb3BzIGV4dGVuZHMgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSB0byBjcmVhdGUgYSBQUiBpbi5cbiAgICovXG4gIHJlcG86IFdyaXRhYmxlR2l0SHViUmVwbztcblxuICAvKipcbiAgICogQSBzZXQgb2YgY29tbWFuZHMgdG8gcnVuIGFnYWluc3QgdGhlIGhlYWQgYnJhbmNoLlxuICAgKiBVc2VmdWwgZm9yIHRoaW5ncyBsaWtlIHZlcnNpb24gYnVtcHMgb3IgYW55IGF1dG8tZ2VuZXJhdGVkIGNvbW1pdHMuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB5b3UgY2Fubm90IHVzZSBleHBvcnQga2V5cyBpbiB0aGVzZSBjb21tYW5kcyAoU2VlIGBleHBvcnRzYCBwcm9wZXJ0eSlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb21tYW5kcy5cbiAgICovXG4gIGNvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgUFIuXG4gICAqL1xuICBoZWFkOiBIZWFkO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhpdCBjb2RlIG9mIHRoaXMgY29tbWFuZCBkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRvIHByb2NlZWQgd2l0aCB0aGVcbiAgICogUFIgY3JlYXRpb24uIElmIGNvbmZpZ3VyZWQsIHRoaXMgY29tbWFuZCBpcyB0aGUgZmlyc3Qgb25lIHRvIHJ1biwgYW5kIGlmIGl0IGZhaWxzLCBhbGxcbiAgICogb3RoZXIgY29tbWFuZHMgd2lsbCBiZSBza2lwcGVkLlxuICAgKlxuICAgKiBUaGlzIGNvbW1hbmQgaXMgdGhlIGZpcnN0IHRvIGV4ZWN1dGUsIGFuZCBzaG91bGQgbm90IGFzc3VtZSBhbnkgcHJlLWV4aXN0aW5nIHN0YXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbmRpdGlvblxuICAgKi9cbiAgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBhbnkgUFIgbGFiZWxlZCB3aXRoIHRoZSBnaXZlbiBsYWJlbHMgaXMgc3RpbGwgb3Blbiwgbm8gbmV3IFBSIHdpbGwgYmUgY3JlYXRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvbid0IGxvb2sgYXQgb3BlbiBQUnNcbiAgICovXG4gIHJlYWRvbmx5IHNraXBJZk9wZW5QcnNXaXRoTGFiZWxzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgdGhlIGJhc2UgYnJhbmNoIG9mIHRoZSBQUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlIHtcblxuICAvKipcbiAgICogQnJhbmNoIG5hbWUuXG4gICAqXG4gICAqIFRoaXMgYnJhbmNoIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYXN0ZXInXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgUFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZCB7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGJyYW5jaCB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBzaGEgb2YgdGhlIGJyYW5jaC5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBhbHJlYWR5IGV4aXN0cywgdGhpcyBzaGEgd2lsbCBiZSBhdXRvLW1lcmdlZCBvbnRvIGl0LiBOb3RlIHRoYXQgaW4gc3VjaCBhIGNhc2UsXG4gICAqIHRoZSBQUiBjcmVhdGlvbiBtaWdodCBmYWlsIGluIGNhc2UgdGhlcmUgYXJlIG1lcmdlIGNvbmZsaWN0cy5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBkb2Vzbid0IGV4aXN0LCB0aGUgbmV3bHkgY3JlYXRlZCBicmFuY2ggd2lsbCBiZSBiYXNlZCBvZiB0aGlzIGhhc2guXG4gICAqXG4gICAqIE5vdGUgdGhhdCBkeW5hbWljIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgcHIuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIENvZGVCdWlsZCBqb2IgdGhhdCwgd2hlbiB0cmlnZ2VyZWQsIG9wZW5zIGEgR2l0SHViIFB1bGwgUmVxdWVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9QdWxsUmVxdWVzdCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggYWxhcm0gdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBpZiB0aGUgam9iIGZhaWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtOiBjbG91ZHdhdGNoLkFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUJ1aWxkIHByb2plY3QgdGhpcyBjb25zdHJ1Y3QgY3JlYXRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuSVByb2plY3Q7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXV0b1B1bGxSZXF1ZXN0UHJvcHM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQnJhbmNoOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZFNvdXJjZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRvUHVsbFJlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5iYXNlQnJhbmNoID0gcHJvcHMuYmFzZT8ubmFtZSA/PyAnbWFzdGVyJztcbiAgICB0aGlzLmhlYWRTb3VyY2UgPSBwcm9wcy5oZWFkLnNvdXJjZSA/PyB0aGlzLmJhc2VCcmFuY2g7XG4gICAgdGhpcy5leHBvcnRzID0gcHJvcHMuZXhwb3J0cyA/PyB7fTtcblxuICAgIGZvciAoY29uc3QgZXggb2YgT2JqZWN0LmtleXModGhpcy5leHBvcnRzKSkge1xuICAgICAgaWYgKHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkeyR7ZXh9fWApIHx8IHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkJHtleH1gKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGhlYWQgc291cmNlICgke3RoaXMuaGVhZFNvdXJjZX0pIGNhbm5vdCBjb250YWluIGR5bmFtaWMgZXhwb3J0czogJHtleH1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzc2hLZXlTZWNyZXQgPSBwcm9wcy5yZXBvLnNzaEtleVNlY3JldDtcbiAgICBjb25zdCBjb21taXRFbWFpbCA9IHByb3BzLnJlcG8uY29tbWl0RW1haWw7XG4gICAgY29uc3QgY29tbWl0VXNlcm5hbWUgPSBwcm9wcy5yZXBvLmNvbW1pdFVzZXJuYW1lO1xuICAgIGNvbnN0IGNsb25lRGVwdGggPSBwcm9wcy5jbG9uZURlcHRoID09PSB1bmRlZmluZWQgPyAwIDogcHJvcHMuY2xvbmVEZXB0aDtcblxuICAgIGNvbnN0IG5lZWRzR2l0SHViVG9rZW5TZWNyZXQgPSAhdGhpcy5wcm9wcy5wdXNoT25seSB8fCAhIXRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHM7XG5cbiAgICBsZXQgY29tbWFuZHM6IHN0cmluZ1tdID0gW1xuXG4gICAgICAuLi50aGlzLmNvbmZpZ3VyZVNzaEFjY2VzcygpLFxuXG4gICAgICAvLyB3aGVuIHRoZSBqb2IgaXMgdHJpZ2dlcmVkIGFzIGEgQ29kZVBpcGVsaW5lIGFjdGlvbiwgdGhlIHdvcmtpbmcgZGlyZWN0b3J5XG4gICAgICAvLyBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgb3V0cHV0IGFydGlmYWN0IG9mIHRoZSBDb2RlQ29tbWl0U291cmNlQWN0aW9uLCB3aGljaCBkb2Vzbid0IGluY2x1ZGVcbiAgICAgIC8vIHRoZSAuZ2l0IGRpcmVjdG9yeSBpbiB0aGUgemlwcGVkIHMzIGFyY2hpdmUuIChZZWFoLCBmdW4gc3R1ZmYpLlxuICAgICAgLy8gc2VlIGh0dHBzOi8vaXRuZXh0LmlvL2hvdy10by1hY2Nlc3MtZ2l0LW1ldGFkYXRhLWluLWNvZGVidWlsZC13aGVuLXVzaW5nLWNvZGVwaXBlbGluZS1jb2RlY29tbWl0LWNlYWNmMmM1YzFkY1xuICAgICAgLi4udGhpcy5jbG9uZUlmTmVlZGVkKCksXG4gICAgXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNvbmRpdGlvbikge1xuICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gc3RvcCBhIEJ1aWxkU3BlYyBleGVjdXRpb24gaGFsZndheSB0aHJvdWdoIHdpdGhvdXQgdGhyb3dpbmcgYW4gZXJyb3IuIEJlbGlldmUgbWUsIElcbiAgICAgIC8vIGNoZWNrZWQgdGhlIGNvZGUuIEluc3RlYWQgd2UgZGVmaW5lIGEgdmFyaWFibGUgdGhhdCB3ZSB3aWxsIHN3aXRjaCBhbGwgb3RoZXIgbGluZXMgb24vb2ZmLlxuICAgICAgY29tbWFuZHMucHVzaChgJHt0aGlzLnByb3BzLmNvbmRpdGlvbn0gYCArXG4gICAgICAnJiYgeyBlY2hvIFxcJ1NraXAgY29uZGl0aW9uIGlzIG1ldCwgc2tpcHBpbmcuLi5cXCcgJiYgZXhwb3J0IFNLSVA9dHJ1ZTsgfSAnICtcbiAgICAgICd8fCB7IGVjaG8gXFwnU2tpcCBjb25kaXRpb24gaXMgbm90IG1ldCwgY29udGludWluZy4uLlxcJyAmJiBleHBvcnQgU0tJUD1mYWxzZTsgfScpO1xuICAgIH1cblxuICAgIC8vIHJlYWQgdGhlIHRva2VuXG4gICAgaWYgKG5lZWRzR2l0SHViVG9rZW5TZWNyZXQpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goYGV4cG9ydCBHSVRIVUJfVE9LRU49JChhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAtLXNlY3JldC1pZCBcIiR7dGhpcy5wcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJufVwiIC0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcpYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4udGhpcy5za2lwSWZPcGVuUHJzKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpKTtcbiAgICB9XG5cbiAgICBjb21tYW5kcy5wdXNoKFxuICAgICAgLi4udGhpcy5jcmVhdGVIZWFkKCksXG4gICAgICAuLi50aGlzLnB1c2hIZWFkKCksXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5wdXNoT25seSkge1xuICAgICAgY29tbWFuZHMucHVzaCguLi50aGlzLmNyZWF0ZVB1bGxSZXF1ZXN0KCkpO1xuICAgIH1cblxuICAgIC8vIHRvZ2dsZSBhbGwgY29tbWFuZHMgYWNjb3JkaW5nIHRvIHRoZSBTS0lQIHZhcmlhYmxlLlxuICAgIGNvbW1hbmRzID0gY29tbWFuZHMubWFwKChjb21tYW5kOiBzdHJpbmcpID0+IGAkU0tJUCB8fCB7ICR7Y29tbWFuZH0gOyB9YCk7XG5cbiAgICAvLyBpbnRpYWxseSBhbGwgY29tbWFuZHMgYXJlIGVuYWJsZWQuXG4gICAgY29tbWFuZHMudW5zaGlmdCgnZXhwb3J0IFNLSVA9ZmFsc2UnKTtcblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjYnVpbGQuUHJvamVjdCh0aGlzLCAnUHVsbFJlcXVlc3QnLCB7XG4gICAgICBzb3VyY2U6IHByb3BzLnJlcG8uY3JlYXRlQnVpbGRTb3VyY2UodGhpcywgZmFsc2UsIHsgY2xvbmVEZXB0aCB9KSxcbiAgICAgIGVudmlyb25tZW50OiBjcmVhdGVCdWlsZEVudmlyb25tZW50KHByb3BzLmJ1aWxkID8/IHt9KSxcbiAgICAgIGJ1aWxkU3BlYzogY2J1aWxkLkJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICAgICAgdmVyc2lvbjogJzAuMicsXG4gICAgICAgIHBoYXNlczoge1xuICAgICAgICAgIHByZV9idWlsZDoge1xuICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgYGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCBcIiR7Y29tbWl0RW1haWx9XCJgLFxuICAgICAgICAgICAgICBgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCIke2NvbW1pdFVzZXJuYW1lfVwiYCxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBidWlsZDogeyBjb21tYW5kcyB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9qZWN0LnJvbGUpIHtcbiAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChzc2hLZXlTZWNyZXQsIHRoaXMucHJvamVjdC5yb2xlKTtcblxuICAgICAgaWYgKG5lZWRzR2l0SHViVG9rZW5TZWNyZXQpIHtcbiAgICAgICAgcGVybWlzc2lvbnMuZ3JhbnRTZWNyZXRSZWFkKHsgc2VjcmV0QXJuOiBwcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJuIH0sIHRoaXMucHJvamVjdC5yb2xlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2NoZWR1bGVFeHByZXNzaW9uKSB7XG4gICAgICBjb25zdCBzY2hlZHVsZSA9IGV2ZW50cy5TY2hlZHVsZS5leHByZXNzaW9uKHByb3BzLnNjaGVkdWxlRXhwcmVzc2lvbik7XG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1NjaGVkdWxlcicsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTY2hlZHVsZXMgYW4gYXV0b21hdGljIFB1bGwgUmVxdWVzdCBmb3IgdGhpcyByZXBvc2l0b3J5JyxcbiAgICAgICAgc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgZXZlbnRzX3RhcmdldHMuQ29kZUJ1aWxkUHJvamVjdCh0aGlzLnByb2plY3QpXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYWxhcm0gPSB0aGlzLnByb2plY3QubWV0cmljRmFpbGVkQnVpbGRzKHsgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDMwMCkgfSkuY3JlYXRlQWxhcm0odGhpcywgJ0F1dG9QdWxsUmVxdWVzdEZhaWxlZEFsYXJtJywge1xuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlSGVhZCgpOiBzdHJpbmdbXSB7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gY2hlY2sgaWYgaGVhZCBicmFuY2ggZXhpc3RzXG4gICAgICBgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBvcmlnaW4vJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gYCArXG5cbiAgICAgIC8vIGNoZWNrb3V0IGFuZCBtZXJnZSBpZiBpdCBkb2VzICh0aGlzIG1pZ2h0IGZhaWwgZHVlIHRvIG1lcmdlIGNvbmZsaWN0cylcbiAgICAgIGAmJiB7IGdpdCBjaGVja291dCAke3RoaXMucHJvcHMuaGVhZC5uYW1lfSAmJiBnaXQgbWVyZ2UgJHt0aGlzLmhlYWRTb3VyY2V9ICYmICR7dGhpcy5ydW5Db21tYW5kcygpfTsgIH0gYCArXG5cbiAgICAgIC8vIGNyZWF0ZSBpZiBpdCBkb2VzbnQuIHdlIGluaXRpYWxseSB1c2UgJ3RlbXAnIHRvIGFsbG93IHVzaW5nIGV4cG9ydHMgaW4gdGhlIGhlYWQgYnJhbmNoIG5hbWUuIChlLmcgYnVtcC8kVkVSU0lPTilcbiAgICAgIGB8fCB7IGdpdCBjaGVja291dCAke3RoaXMuaGVhZFNvdXJjZX0gJiYgZ2l0IGNoZWNrb3V0IC1iIHRlbXAgJiYgJHt0aGlzLnJ1bkNvbW1hbmRzKCl9ICYmIGdpdCBicmFuY2ggLU0gJHt0aGlzLnByb3BzLmhlYWQubmFtZX07IH1gLFxuXG4gICAgXTtcblxuICB9XG5cbiAgcHJpdmF0ZSBjbG9uZUlmTmVlZGVkKCk6IHN0cmluZ1tdIHtcblxuICAgIHJldHVybiBbXG4gICAgICAvLyBjaGVjayBpZiAuZ2l0IGV4aXN0XG4gICAgICAnbHMgLmdpdCAnICtcblxuICAgICAgLy8gYWxsIGdvb2RcbiAgICAgICcmJiB7IGVjaG8gXCIuZ2l0IGRpcmVjdG9yeSBleGlzdHNcIjsgIH0gJyArXG5cbiAgICAgIC8vIGNsb25lIGlmIGl0IGRvZXNuJ3RcbiAgICAgIGB8fCB7IGVjaG8gXCIuZ2l0IGRpcmVjdG9yeSBkb2Vzbm90IGV4aXN0IC0gY2xvbmluZy4uLlwiICYmIGdpdCBpbml0IC4gJiYgZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIGdpdEBnaXRodWIuY29tOiR7dGhpcy5wcm9wcy5yZXBvLm93bmVyfS8ke3RoaXMucHJvcHMucmVwby5yZXBvfS5naXQgJiYgZ2l0IGZldGNoICYmIGdpdCByZXNldCAtLWhhcmQgb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofSAmJiBnaXQgYnJhbmNoIC1NICR7dGhpcy5iYXNlQnJhbmNofSAmJiBnaXQgY2xlYW4gLWZxZHg7IH1gLFxuXG4gICAgXTtcblxuICB9XG5cbiAgcHJpdmF0ZSBydW5Db21tYW5kcygpOiBzdHJpbmcge1xuXG4gICAgY29uc3QgdXNlckNvbW1hbmRzID0gdGhpcy5wcm9wcy5jb21tYW5kcyA/PyBbXTtcbiAgICBjb25zdCBleHBvcnRzID0gT2JqZWN0LmVudHJpZXModGhpcy5leHBvcnRzKS5tYXAoZW50cnkgPT4gYGV4cG9ydCAke2VudHJ5WzBdfT0kKCR7ZW50cnlbMV19KWApO1xuXG4gICAgcmV0dXJuIFtcblxuICAgICAgLi4udXNlckNvbW1hbmRzLFxuXG4gICAgICAvLyBleHBvcnRzIHNob3VsZCBiZSBleGVjdXRlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgdXNlciBjb21tYW5kcyAobm90IGJlZm9yZSlcbiAgICAgIC8vIGJlY2F1c2UgdGhleSBtaWdodCBuZWVkIGFjY2VzcyB0byBhcnRpZmFjdHMgcHJvZHVjZWQgYnkgdGhlbSAoZS5nIHZlcnNpb24gZmlsZSkuXG4gICAgICAuLi5leHBvcnRzLFxuXG4gICAgICAnZWNobyBGaW5pc2hlZCBydW5uaW5nIHVzZXIgY29tbWFuZHMnLFxuICAgIF0uam9pbignICYmICcpO1xuXG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZVNzaEFjY2VzcygpOiBzdHJpbmdbXSB7XG5cbiAgICByZXR1cm4gW1xuICAgICAgJ2F3cyBzZWNyZXRzbWFuYWdlciBnZXQtc2VjcmV0LXZhbHVlICdcbiAgICAgICAgKyBgLS1zZWNyZXQtaWQgXCIke3RoaXMucHJvcHMucmVwby5zc2hLZXlTZWNyZXQuc2VjcmV0QXJufVwiIGBcbiAgICAgICAgKyAnLS1vdXRwdXQ9dGV4dCAtLXF1ZXJ5PVNlY3JldFN0cmluZyA+IH4vLnNzaC9pZF9yc2EnLFxuICAgICAgJ21rZGlyIC1wIH4vLnNzaCcsXG4gICAgICAnY2htb2QgMDYwMCB+Ly5zc2gvaWRfcnNhIH4vLnNzaC9jb25maWcnLFxuICAgICAgJ3NzaC1rZXlzY2FuIC10IHJzYSBnaXRodWIuY29tID4+IH4vLnNzaC9rbm93bl9ob3N0cycsXG4gICAgXTtcblxuICB9XG5cbiAgcHJpdmF0ZSBwdXNoSGVhZCgpOiBzdHJpbmdbXSB7XG4gICAgLy8gV2Ugd2lsbCBkbyBub3RoaW5nIGFuZCBzZXQgYFNLSVA9dHJ1ZWAgaWYgdGhlIGhlYWQgcmVmIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBiYXNlIGJyYW5jaCAobm8gUFIgY291bGQgYmUgY3JlYXRlZClcbiAgICByZXR1cm4gW1xuICAgICAgYGdpdCBtZXJnZS1iYXNlIC0taXMtYW5jZXN0b3IgJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofWBcbiAgICAgICAgKyBgICYmIHsgZWNobyBcIlNraXBwaW5nOiAke3RoaXMucHJvcHMuaGVhZC5uYW1lfSBpcyBhbiBhbmNlc3RvciBvZiBvcmlnaW4vJHt0aGlzLmJhc2VCcmFuY2h9XCI7IGV4cG9ydCBTS0lQPXRydWU7IH1gXG4gICAgICAgICsgYCB8fCB7IGVjaG8gXCJQdXNoaW5nOiAke3RoaXMucHJvcHMuaGVhZC5uYW1lfSBpcyBhaGVhZCBvZiBvcmlnaW4vJHt0aGlzLmJhc2VCcmFuY2h9XCI7IGV4cG9ydCBTS0lQPWZhbHNlOyB9YCxcbiAgICAgIGBnaXQgcmVtb3RlIGFkZCBvcmlnaW5fc3NoICR7dGhpcy5wcm9wcy5yZXBvLnJlcG9zaXRvcnlVcmxTc2h9YCxcbiAgICAgIC8vIE5lZWQgYC0tYXRvbWljYCwgb3RoZXJ3aXNlIGBnaXQgcHVzaGAgbWlnaHQgc3VjY2Vzc2Z1bGx5IHB1c2ggdGhlIHRhZ3MgYnV0IG5vdCB0byBgbWFpbmAuXG4gICAgICBgZ2l0IHB1c2ggLS1hdG9taWMgLS1mb2xsb3ctdGFncyBvcmlnaW5fc3NoICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9OiR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9YCxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBza2lwSWZPcGVuUHJzKGxhYmVsczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZmlsdGVycyA9IFtcbiAgICAgIGByZXBvOiR7dGhpcy5wcm9wcy5yZXBvLm93bmVyfS8ke3RoaXMucHJvcHMucmVwby5yZXBvfWAsXG4gICAgICAnaXM6cHInLFxuICAgICAgJ2lzOm9wZW4nLFxuICAgICAgLi4ubGFiZWxzLm1hcChsID0+IGBsYWJlbDoke2x9YCksXG4gICAgXTtcblxuICAgIHJldHVybiBbXG4gICAgICBgJHt0aGlzLmdpdGh1YkN1cmxHZXQoYC9zZWFyY2gvaXNzdWVzP3E9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5qb2luKCcgJykpfWAsICctbyBzZWFyY2guanNvbicpfWAsXG4gICAgICAnbm9kZSAtZSBcXCdwcm9jZXNzLmV4aXRDb2RlID0gcmVxdWlyZShcIi4vc2VhcmNoLmpzb25cIikudG90YWxfY291bnRcXCcnXG4gICAgICAgICsgYCB8fCB7IGVjaG8gXCJGb3VuZCBvcGVuIFBScyB3aXRoIGxhYmVsICR7bGFiZWxzfSwgc2tpcHBpbmcgUFIuXCI7IGV4cG9ydCBTS0lQPXRydWU7IH1gLFxuICAgIF07XG4gIH1cblxuXG4gIHByaXZhdGUgY3JlYXRlUHVsbFJlcXVlc3QoKTogc3RyaW5nW10ge1xuXG4gICAgY29uc3QgaGVhZCA9IHRoaXMucHJvcHMuaGVhZC5uYW1lO1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmJhc2VCcmFuY2g7XG5cbiAgICBpZiAoaGVhZCA9PT0gYmFzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIZWFkIGJyYW5jaCAoXCIke2Jhc2V9XCIpIGlzIHRoZSBzYW1lIGFzIHRoZSBiYXNlIGJyYW5jaCAoXCIke2hlYWR9XCIpYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHRpdGxlID0gcHJvcHMudGl0bGUgPz8gYE1lcmdlICR7aGVhZH0gdG8gJHtiYXNlfWA7XG4gICAgY29uc3QgYm9keSA9IHRoaXMucHJvcHMuYm9keSA/PyAnJztcblxuICAgIGNvbnN0IGNyZWF0ZVJlcXVlc3QgPSB7IHRpdGxlLCBiYXNlLCBoZWFkIH07XG5cbiAgICBjb25zdCBjb21tYW5kcyA9IFtdO1xuXG4gICAgLy8gY3JlYXRlIHRoZSBQUlxuICAgIGNvbW1hbmRzLnB1c2goYCR7dGhpcy5naXRodWJDdXJsKCcvcHVsbHMnLCAnLVggUE9TVCAtbyBwci5qc29uJywgY3JlYXRlUmVxdWVzdCl9ICYmIGV4cG9ydCBQUl9OVU1CRVI9JChub2RlIC1wICdyZXF1aXJlKFwiLi9wci5qc29uXCIpLm51bWJlcicpYCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGJvZHlcbiAgICBjb21tYW5kcy5wdXNoKHRoaXMuZ2l0aHViQ3VybCgnL3B1bGxzLyRQUl9OVU1CRVInLCAnLVggUEFUQ0gnLCB7IGJvZHk6IGJvZHkgfSkpO1xuXG4gICAgaWYgKHRoaXMucHJvcHMubGFiZWxzICYmIHRoaXMucHJvcHMubGFiZWxzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBhcHBseSBsYWJlbHMuXG4gICAgICBjb21tYW5kcy5wdXNoKHRoaXMuZ2l0aHViQ3VybCgnL2lzc3Vlcy8kUFJfTlVNQkVSL2xhYmVscycsICctWCBQT1NUJywgeyBsYWJlbHM6IHRoaXMucHJvcHMubGFiZWxzIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tbWFuZHM7XG5cbiAgfVxuXG4gIHByaXZhdGUgZ2l0aHViQ3VybCh1cmk6IHN0cmluZywgY29tbWFuZDogc3RyaW5nLCByZXF1ZXN0OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnY3VybCAtLWZhaWwnLFxuICAgICAgY29tbWFuZCxcbiAgICAgICctLWhlYWRlciBcIkF1dGhvcml6YXRpb246IHRva2VuICRHSVRIVUJfVE9LRU5cIicsXG4gICAgICAnLS1oZWFkZXIgXCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cIicsXG4gICAgICBgLWQgJHtKU09OLnN0cmluZ2lmeShKU09OLnN0cmluZ2lmeShyZXF1ZXN0KSl9YCxcbiAgICAgIGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7dGhpcy5wcm9wcy5yZXBvLm93bmVyfS8ke3RoaXMucHJvcHMucmVwby5yZXBvfSR7dXJpfWAsXG4gICAgXS5qb2luKCcgJyk7XG4gIH1cblxuICBwcml2YXRlIGdpdGh1YkN1cmxHZXQodXJpOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdjdXJsIC0tZmFpbCcsXG4gICAgICBjb21tYW5kLFxuICAgICAgJy0taGVhZGVyIFwiQXV0aG9yaXphdGlvbjogdG9rZW4gJEdJVEhVQl9UT0tFTlwiJyxcbiAgICAgICctLWhlYWRlciBcIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiJyxcbiAgICAgIGAnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSR7dXJpfSdgLFxuICAgIF0uam9pbignICcpO1xuICB9XG5cbn1cblxuIl19
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBTWlCO0FBQ2pCLDRDQUE2RTtBQUM3RSw0REFBOEM7QUFvTDlDOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1CQUFTO0lBa0I1QyxZQUFZLE1BQWlCLEVBQUUsRUFBVSxFQUFFLEtBQTJCOztRQUNwRSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFBLEtBQUssQ0FBQyxJQUFJLDBDQUFFLElBQUksbUNBQUksUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDO1FBRW5DLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNoRixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSxxQ0FBcUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMzRjtTQUNGO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFX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TUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZHO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFFbEIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLE9BQVk7UUFDM0QsT0FBTztZQUNMLGFBQWE7WUFDYixPQUFPO1lBQ1AsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQy9DLGdDQUFnQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtTQUN0RixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDaEQsT0FBTztZQUNMLGFBQWE7WUFDYixPQUFPO1lBQ1AsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQywwQkFBMEIsR0FBRyxHQUFHO1NBQ2pDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztDQUVGO0FBM1FELDBDQTJRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnN0cnVjdCwgRHVyYXRpb24sXG4gIGF3c19jbG91ZHdhdGNoIGFzIGNsb3Vkd2F0Y2gsXG4gIGF3c19jb2RlYnVpbGQgYXMgY2J1aWxkLFxuICBhd3NfZXZlbnRzIGFzIGV2ZW50cyxcbiAgYXdzX2V2ZW50c190YXJnZXRzIGFzIGV2ZW50c190YXJnZXRzLFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnRQcm9wcywgY3JlYXRlQnVpbGRFbnZpcm9ubWVudCB9IGZyb20gJy4uL2J1aWxkLWVudic7XG5pbXBvcnQgKiBhcyBwZXJtaXNzaW9ucyBmcm9tICcuLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBKb2IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBicmFuY2ggb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgYmFzZT86IEJhc2U7XG5cbiAgLyoqXG4gICAqIFRydWUgaWYgeW91IG9ubHkgd2FudCB0byBwdXNoIHRoZSBoZWFkIGJyYW5jaCB3aXRob3V0IGNyZWF0aW5nIGEgUFIuXG4gICAqIFVzZWZ1bCB3aGVuIHVzZWQgYWxvbmcgd2l0aCAnY29tbWl0cycgdG8gZXhlY3V0ZSBhIGNvbW1pdC1hbmQtcHVzaCBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiAvLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIGEgc2VwYXJhdGUgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVzaE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9keSB0aGUgUFIuIE5vdGUgdGhhdCB0aGUgYm9keSBpcyB1cGRhdGVkIHBvc3QgUFIgY3JlYXRpb24sXG4gICAqIHRoaXMgbWVhbnMgeW91IGNhbiB1c2UgdGhlICRQUl9OVU1CRVIgZW52IHZhcmlhYmxlIHRvIHJlZmVyIHRvIHRoZSBQUiBpdHNlbGYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYm9keS5cbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhYmVscyBhcHBsaWVkIHRvIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsYWJlbHMuXG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoZSBDb2RlQnVpbGQgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGJ1aWxkPzogQnVpbGRFbnZpcm9ubWVudFByb3BzO1xuXG4gIC8qKlxuICAgKiBHaXQgY2xvbmUgZGVwdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IDAgKGNsb25lcyB0aGUgZW50aXJlIHJlcG9zaXRvcnkgcmV2aXNpb25zKVxuICAgKi9cbiAgY2xvbmVEZXB0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogS2V5IHZhbHVlIHBhaXJzIG9mIHZhcmlhYmxlcyB0byBleHBvcnQuIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZHluYW1pYyBldmFsdWF0aW9uIGluIGFueVxuICAgKiBzdWJzZXF1ZW50IGNvbW1hbmQuXG4gICAqXG4gICAqIEtleSAtIFZhcmlhYmxlIG5hbWUgKGUuZyBWRVJTSU9OKVxuICAgKiBWYWx1ZSAtIENvbW1hbmQgdGhhdCBldmFsdWF0ZXMgdG8gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSAoZS5nICdnaXQgZGVzY3JpYmUnKVxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiBDb25maWd1cmUgYW4gZXhwb3J0IGluIHRoZSBmb3JtIG9mOlxuICAgKlxuICAgKiB7ICdWRVJTSU9OJzogJ2dpdCBkZXNjcmliZScgfVxuICAgKlxuICAgKiBVc2UgdGhlICRWRVJTSU9OIHZhcmlhYmxlIGluIHRoZSBQUiB0aXRsZTogJ2Nob3JlKHJlbGVhc2UpOiAkVkVSU0lPTidcbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydHMgYXJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBgY29tbWFuZHNgIGV4ZWN1dGlvbixcbiAgICogc28gdGhleSBoYXZlIGFjY2VzcyB0byB0aGUgYXJ0aWZhY3RzIHNhaWQgY29tbWFuZHMgcHJvZHVjZSAoZS5nIHZlcnNpb24gYnVtcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhwb3J0c1xuICAgKi9cbiAgZXhwb3J0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlZHVsZSB0byBwcm9kdWNlIGFuIGF1dG9tYXRpYyBQUi5cbiAgICpcbiAgICogVGhlIGV4cHJlc3Npb24gY2FuIGJlIG9uZSBvZjpcbiAgICpcbiAgICogIC0gY3JvbiBleHByZXNzaW9uLCBzdWNoIGFzIFwiY3JvbigwIDEyICogKiA/ICopXCIgd2lsbCB0cmlnZ2VyIGV2ZXJ5IGRheSBhdCAxMnBtIFVUQ1xuICAgKiAgLSByYXRlIGV4cHJlc3Npb24sIHN1Y2ggYXMgXCJyYXRlKDEgZGF5KVwiIHdpbGwgdHJpZ2dlciBldmVyeSAyNCBob3VycyBmcm9tIHRoZSB0aW1lIG9mIGRlcGxveW1lbnRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2NoZWR1bGUsIHNob3VsZCBiZSB0cmlnZ2VyZWQgbWFudWFsbHkuXG4gICAqL1xuICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvUHVsbFJlcXVlc3RQcm9wcyBleHRlbmRzIEF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgUFIgaW4uXG4gICAqL1xuICByZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGNvbW1hbmRzIHRvIHJ1biBhZ2FpbnN0IHRoZSBoZWFkIGJyYW5jaC5cbiAgICogVXNlZnVsIGZvciB0aGluZ3MgbGlrZSB2ZXJzaW9uIGJ1bXBzIG9yIGFueSBhdXRvLWdlbmVyYXRlZCBjb21taXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbm5vdCB1c2UgZXhwb3J0IGtleXMgaW4gdGhlc2UgY29tbWFuZHMgKFNlZSBgZXhwb3J0c2AgcHJvcGVydHkpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHMuXG4gICAqL1xuICBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICAgKi9cbiAgaGVhZDogSGVhZDtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZSBvZiB0aGlzIGNvbW1hbmQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byBwcm9jZWVkIHdpdGggdGhlXG4gICAqIFBSIGNyZWF0aW9uLiBJZiBjb25maWd1cmVkLCB0aGlzIGNvbW1hbmQgaXMgdGhlIGZpcnN0IG9uZSB0byBydW4sIGFuZCBpZiBpdCBmYWlscywgYWxsXG4gICAqIG90aGVyIGNvbW1hbmRzIHdpbGwgYmUgc2tpcHBlZC5cbiAgICpcbiAgICogVGhpcyBjb21tYW5kIGlzIHRoZSBmaXJzdCB0byBleGVjdXRlLCBhbmQgc2hvdWxkIG5vdCBhc3N1bWUgYW55IHByZS1leGlzdGluZyBzdGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25kaXRpb25cbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYW55IFBSIGxhYmVsZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWxzIGlzIHN0aWxsIG9wZW4sIG5vIG5ldyBQUiB3aWxsIGJlIGNyZWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBsb29rIGF0IG9wZW4gUFJzXG4gICAqL1xuICByZWFkb25seSBza2lwSWZPcGVuUHJzV2l0aExhYmVscz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgUFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZSB7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGJyYW5jaCBtdXN0IGV4aXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyB0aGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWQge1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggbmFtZS5cbiAgICpcbiAgICogVGhpcyBicmFuY2ggd2lsbCBiZSBjcmVhdGVkIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugc2hhIG9mIHRoZSBicmFuY2guXG4gICAqXG4gICAqIElmIHRoZSBnaXZlbiBicmFuY2ggYWxyZWFkeSBleGlzdHMsIHRoaXMgc2hhIHdpbGwgYmUgYXV0by1tZXJnZWQgb250byBpdC4gTm90ZSB0aGF0IGluIHN1Y2ggYSBjYXNlLFxuICAgKiB0aGUgUFIgY3JlYXRpb24gbWlnaHQgZmFpbCBpbiBjYXNlIHRoZXJlIGFyZSBtZXJnZSBjb25mbGljdHMuXG4gICAqXG4gICAqIElmIHRoZSBnaXZlbiBicmFuY2ggZG9lc24ndCBleGlzdCwgdGhlIG5ld2x5IGNyZWF0ZWQgYnJhbmNoIHdpbGwgYmUgYmFzZWQgb2YgdGhpcyBoYXNoLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgZHluYW1pYyBleHBvcnRzIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgYmFzZSBicmFuY2ggb2YgdGhlIHByLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBDb2RlQnVpbGQgam9iIHRoYXQsIHdoZW4gdHJpZ2dlcmVkLCBvcGVucyBhIEdpdEh1YiBQdWxsIFJlcXVlc3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRvUHVsbFJlcXVlc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBDbG91ZFdhdGNoIGFsYXJtIHRoYXQgd2lsbCBiZSB0cmlnZ2VyZWQgaWYgdGhlIGpvYiBmYWlscy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybTogY2xvdWR3YXRjaC5BbGFybTtcblxuICAvKipcbiAgICogVGhlIENvZGVCdWlsZCBwcm9qZWN0IHRoaXMgY29uc3RydWN0IGNyZWF0ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLklQcm9qZWN0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEF1dG9QdWxsUmVxdWVzdFByb3BzO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZUJyYW5jaDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRTb3VyY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBleHBvcnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXV0b1B1bGxSZXF1ZXN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYmFzZUJyYW5jaCA9IHByb3BzLmJhc2U/Lm5hbWUgPz8gJ21hc3Rlcic7XG4gICAgdGhpcy5oZWFkU291cmNlID0gcHJvcHMuaGVhZC5zb3VyY2UgPz8gdGhpcy5iYXNlQnJhbmNoO1xuICAgIHRoaXMuZXhwb3J0cyA9IHByb3BzLmV4cG9ydHMgPz8ge307XG5cbiAgICBmb3IgKGNvbnN0IGV4IG9mIE9iamVjdC5rZXlzKHRoaXMuZXhwb3J0cykpIHtcbiAgICAgIGlmICh0aGlzLmhlYWRTb3VyY2UuaW5jbHVkZXMoYFxcJHske2V4fX1gKSB8fCB0aGlzLmhlYWRTb3VyY2UuaW5jbHVkZXMoYFxcJCR7ZXh9YCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBoZWFkIHNvdXJjZSAoJHt0aGlzLmhlYWRTb3VyY2V9KSBjYW5ub3QgY29udGFpbiBkeW5hbWljIGV4cG9ydHM6ICR7ZXh9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3NoS2V5U2VjcmV0ID0gcHJvcHMucmVwby5zc2hLZXlTZWNyZXQ7XG4gICAgY29uc3QgY29tbWl0RW1haWwgPSBwcm9wcy5yZXBvLmNvbW1pdEVtYWlsO1xuICAgIGNvbnN0IGNvbW1pdFVzZXJuYW1lID0gcHJvcHMucmVwby5jb21taXRVc2VybmFtZTtcbiAgICBjb25zdCBjbG9uZURlcHRoID0gcHJvcHMuY2xvbmVEZXB0aCA9PT0gdW5kZWZpbmVkID8gMCA6IHByb3BzLmNsb25lRGVwdGg7XG5cbiAgICBjb25zdCBuZWVkc0dpdEh1YlRva2VuU2VjcmV0ID0gIXRoaXMucHJvcHMucHVzaE9ubHkgfHwgISF0aGlzLnByb3BzLnNraXBJZk9wZW5QcnNXaXRoTGFiZWxzO1xuXG4gICAgbGV0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtcblxuICAgICAgLi4udGhpcy5jb25maWd1cmVTc2hBY2Nlc3MoKSxcblxuICAgICAgLy8gd2hlbiB0aGUgam9iIGlzIHRyaWdnZXJlZCBhcyBhIENvZGVQaXBlbGluZSBhY3Rpb24sIHRoZSB3b3JraW5nIGRpcmVjdG9yeVxuICAgICAgLy8gaXMgcG9wdWxhdGVkIHdpdGggdGhlIG91dHB1dCBhcnRpZmFjdCBvZiB0aGUgQ29kZUNvbW1pdFNvdXJjZUFjdGlvbiwgd2hpY2ggZG9lc24ndCBpbmNsdWRlXG4gICAgICAvLyB0aGUgLmdpdCBkaXJlY3RvcnkgaW4gdGhlIHppcHBlZCBzMyBhcmNoaXZlLiAoWWVhaCwgZnVuIHN0dWZmKS5cbiAgICAgIC8vIHNlZSBodHRwczovL2l0bmV4dC5pby9ob3ctdG8tYWNjZXNzLWdpdC1tZXRhZGF0YS1pbi1jb2RlYnVpbGQtd2hlbi11c2luZy1jb2RlcGlwZWxpbmUtY29kZWNvbW1pdC1jZWFjZjJjNWMxZGNcbiAgICAgIC4uLnRoaXMuY2xvbmVJZk5lZWRlZCgpLFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jb25kaXRpb24pIHtcbiAgICAgIC8vIHRoZXJlJ3Mgbm8gd2F5IHRvIHN0b3AgYSBCdWlsZFNwZWMgZXhlY3V0aW9uIGhhbGZ3YXkgdGhyb3VnaCB3aXRob3V0IHRocm93aW5nIGFuIGVycm9yLiBCZWxpZXZlIG1lLCBJXG4gICAgICAvLyBjaGVja2VkIHRoZSBjb2RlLiBJbnN0ZWFkIHdlIGRlZmluZSBhIHZhcmlhYmxlIHRoYXQgd2Ugd2lsbCBzd2l0Y2ggYWxsIG90aGVyIGxpbmVzIG9uL29mZi5cbiAgICAgIGNvbW1hbmRzLnB1c2goYCR7dGhpcy5wcm9wcy5jb25kaXRpb259IGAgK1xuICAgICAgJyYmIHsgZWNobyBcXCdTa2lwIGNvbmRpdGlvbiBpcyBtZXQsIHNraXBwaW5nLi4uXFwnICYmIGV4cG9ydCBTS0lQPXRydWU7IH0gJyArXG4gICAgICAnfHwgeyBlY2hvIFxcJ1NraXAgY29uZGl0aW9uIGlzIG5vdCBtZXQsIGNvbnRpbnVpbmcuLi5cXCcgJiYgZXhwb3J0IFNLSVA9ZmFsc2U7IH0nKTtcbiAgICB9XG5cbiAgICAvLyByZWFkIHRoZSB0b2tlblxuICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICBjb21tYW5kcy5wdXNoKGBleHBvcnQgR0lUSFVCX1RPS0VOPSQoYXdzIHNlY3JldHNtYW5hZ2VyIGdldC1zZWNyZXQtdmFsdWUgLS1zZWNyZXQtaWQgXCIke3RoaXMucHJvcHMucmVwby50b2tlblNlY3JldEFybn1cIiAtLW91dHB1dD10ZXh0IC0tcXVlcnk9U2VjcmV0U3RyaW5nKWApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnNraXBJZk9wZW5QcnNXaXRoTGFiZWxzKSB7XG4gICAgICBjb21tYW5kcy5wdXNoKC4uLnRoaXMuc2tpcElmT3BlblBycyh0aGlzLnByb3BzLnNraXBJZk9wZW5QcnNXaXRoTGFiZWxzKSk7XG4gICAgfVxuXG4gICAgY29tbWFuZHMucHVzaChcbiAgICAgIC4uLnRoaXMuY3JlYXRlSGVhZCgpLFxuICAgICAgLi4udGhpcy5wdXNoSGVhZCgpLFxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMucHJvcHMucHVzaE9ubHkpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4udGhpcy5jcmVhdGVQdWxsUmVxdWVzdCgpKTtcbiAgICB9XG5cbiAgICAvLyB0b2dnbGUgYWxsIGNvbW1hbmRzIGFjY29yZGluZyB0byB0aGUgU0tJUCB2YXJpYWJsZS5cbiAgICBjb21tYW5kcyA9IGNvbW1hbmRzLm1hcCgoY29tbWFuZDogc3RyaW5nKSA9PiBgJFNLSVAgfHwgeyAke2NvbW1hbmR9IDsgfWApO1xuXG4gICAgLy8gaW50aWFsbHkgYWxsIGNvbW1hbmRzIGFyZSBlbmFibGVkLlxuICAgIGNvbW1hbmRzLnVuc2hpZnQoJ2V4cG9ydCBTS0lQPWZhbHNlJyk7XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgY2J1aWxkLlByb2plY3QodGhpcywgJ1B1bGxSZXF1ZXN0Jywge1xuICAgICAgc291cmNlOiBwcm9wcy5yZXBvLmNyZWF0ZUJ1aWxkU291cmNlKHRoaXMsIGZhbHNlLCB7IGNsb25lRGVwdGggfSksXG4gICAgICBlbnZpcm9ubWVudDogY3JlYXRlQnVpbGRFbnZpcm9ubWVudChwcm9wcy5idWlsZCA/PyB7fSksXG4gICAgICBidWlsZFNwZWM6IGNidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgIGBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCIke2NvbW1pdEVtYWlsfVwiYCxcbiAgICAgICAgICAgICAgYGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiJHtjb21taXRVc2VybmFtZX1cImAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVpbGQ6IHsgY29tbWFuZHMgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucHJvamVjdC5yb2xlKSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQoc3NoS2V5U2VjcmV0LCB0aGlzLnByb2plY3Qucm9sZSk7XG5cbiAgICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZCh7IHNlY3JldEFybjogcHJvcHMucmVwby50b2tlblNlY3JldEFybiB9LCB0aGlzLnByb2plY3Qucm9sZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNjaGVkdWxlRXhwcmVzc2lvbikge1xuICAgICAgY29uc3Qgc2NoZWR1bGUgPSBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pO1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZXInLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU2NoZWR1bGVzIGFuIGF1dG9tYXRpYyBQdWxsIFJlcXVlc3QgZm9yIHRoaXMgcmVwb3NpdG9yeScsXG4gICAgICAgIHNjaGVkdWxlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IGV2ZW50c190YXJnZXRzLkNvZGVCdWlsZFByb2plY3QodGhpcy5wcm9qZWN0KV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFsYXJtID0gdGhpcy5wcm9qZWN0Lm1ldHJpY0ZhaWxlZEJ1aWxkcyh7IHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcygzMDApIH0pLmNyZWF0ZUFsYXJtKHRoaXMsICdBdXRvUHVsbFJlcXVlc3RGYWlsZWRBbGFybScsIHtcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZUhlYWQoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGNoZWNrIGlmIGhlYWQgYnJhbmNoIGV4aXN0c1xuICAgICAgYGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgb3JpZ2luLyR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGAgK1xuXG4gICAgICAvLyBjaGVja291dCBhbmQgbWVyZ2UgaWYgaXQgZG9lcyAodGhpcyBtaWdodCBmYWlsIGR1ZSB0byBtZXJnZSBjb25mbGljdHMpXG4gICAgICBgJiYgeyBnaXQgY2hlY2tvdXQgJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gJiYgZ2l0IG1lcmdlICR7dGhpcy5oZWFkU291cmNlfSAmJiAke3RoaXMucnVuQ29tbWFuZHMoKX07ICB9IGAgK1xuXG4gICAgICAvLyBjcmVhdGUgaWYgaXQgZG9lc250LiB3ZSBpbml0aWFsbHkgdXNlICd0ZW1wJyB0byBhbGxvdyB1c2luZyBleHBvcnRzIGluIHRoZSBoZWFkIGJyYW5jaCBuYW1lLiAoZS5nIGJ1bXAvJFZFUlNJT04pXG4gICAgICBgfHwgeyBnaXQgY2hlY2tvdXQgJHt0aGlzLmhlYWRTb3VyY2V9ICYmIGdpdCBjaGVja291dCAtYiB0ZW1wICYmICR7dGhpcy5ydW5Db21tYW5kcygpfSAmJiBnaXQgYnJhbmNoIC1NICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9OyB9YCxcblxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgY2xvbmVJZk5lZWRlZCgpOiBzdHJpbmdbXSB7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gY2hlY2sgaWYgLmdpdCBleGlzdFxuICAgICAgJ2xzIC5naXQgJyArXG5cbiAgICAgIC8vIGFsbCBnb29kXG4gICAgICAnJiYgeyBlY2hvIFwiLmdpdCBkaXJlY3RvcnkgZXhpc3RzXCI7ICB9ICcgK1xuXG4gICAgICAvLyBjbG9uZSBpZiBpdCBkb2Vzbid0XG4gICAgICBgfHwgeyBlY2hvIFwiLmdpdCBkaXJlY3RvcnkgZG9lc25vdCBleGlzdCAtIGNsb25pbmcuLi5cIiAmJiBnaXQgaW5pdCAuICYmIGdpdCByZW1vdGUgYWRkIG9yaWdpbiBnaXRAZ2l0aHViLmNvbToke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb30uZ2l0ICYmIGdpdCBmZXRjaCAmJiBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH0gJiYgZ2l0IGJyYW5jaCAtTSAke3RoaXMuYmFzZUJyYW5jaH0gJiYgZ2l0IGNsZWFuIC1mcWR4OyB9YCxcblxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgcnVuQ29tbWFuZHMoKTogc3RyaW5nIHtcblxuICAgIGNvbnN0IHVzZXJDb21tYW5kcyA9IHRoaXMucHJvcHMuY29tbWFuZHMgPz8gW107XG4gICAgY29uc3QgZXhwb3J0cyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZXhwb3J0cykubWFwKGVudHJ5ID0+IGBleHBvcnQgJHtlbnRyeVswXX09JCgke2VudHJ5WzFdfSlgKTtcblxuICAgIHJldHVybiBbXG5cbiAgICAgIC4uLnVzZXJDb21tYW5kcyxcblxuICAgICAgLy8gZXhwb3J0cyBzaG91bGQgYmUgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHVzZXIgY29tbWFuZHMgKG5vdCBiZWZvcmUpXG4gICAgICAvLyBiZWNhdXNlIHRoZXkgbWlnaHQgbmVlZCBhY2Nlc3MgdG8gYXJ0aWZhY3RzIHByb2R1Y2VkIGJ5IHRoZW0gKGUuZyB2ZXJzaW9uIGZpbGUpLlxuICAgICAgLi4uZXhwb3J0cyxcblxuICAgICAgJ2VjaG8gRmluaXNoZWQgcnVubmluZyB1c2VyIGNvbW1hbmRzJyxcbiAgICBdLmpvaW4oJyAmJiAnKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVTc2hBY2Nlc3MoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICdhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAnXG4gICAgICAgICsgYC0tc2VjcmV0LWlkIFwiJHt0aGlzLnByb3BzLnJlcG8uc3NoS2V5U2VjcmV0LnNlY3JldEFybn1cIiBgXG4gICAgICAgICsgJy0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcgPiB+Ly5zc2gvaWRfcnNhJyxcbiAgICAgICdta2RpciAtcCB+Ly5zc2gnLFxuICAgICAgJ2NobW9kIDA2MDAgfi8uc3NoL2lkX3JzYSB+Ly5zc2gvY29uZmlnJyxcbiAgICAgICdzc2gta2V5c2NhbiAtdCByc2EgZ2l0aHViLmNvbSA+PiB+Ly5zc2gva25vd25faG9zdHMnLFxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgcHVzaEhlYWQoKTogc3RyaW5nW10ge1xuICAgIC8vIFdlIHdpbGwgZG8gbm90aGluZyBhbmQgc2V0IGBTS0lQPXRydWVgIGlmIHRoZSBoZWFkIHJlZiBpcyBhbiBhbmNlc3RvciBvZiB0aGUgYmFzZSBicmFuY2ggKG5vIFBSIGNvdWxkIGJlIGNyZWF0ZWQpXG4gICAgcmV0dXJuIFtcbiAgICAgIGBnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1gXG4gICAgICAgICsgYCAmJiB7IGVjaG8gXCJTa2lwcGluZzogJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gaXMgYW4gYW5jZXN0b3Igb2Ygb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofVwiOyBleHBvcnQgU0tJUD10cnVlOyB9YFxuICAgICAgICArIGAgfHwgeyBlY2hvIFwiUHVzaGluZzogJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gaXMgYWhlYWQgb2Ygb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofVwiOyBleHBvcnQgU0tJUD1mYWxzZTsgfWAsXG4gICAgICBgZ2l0IHJlbW90ZSBhZGQgb3JpZ2luX3NzaCAke3RoaXMucHJvcHMucmVwby5yZXBvc2l0b3J5VXJsU3NofWAsXG4gICAgICAvLyBOZWVkIGAtLWF0b21pY2AsIG90aGVyd2lzZSBgZ2l0IHB1c2hgIG1pZ2h0IHN1Y2Nlc3NmdWxseSBwdXNoIHRoZSB0YWdzIGJ1dCBub3QgdG8gYG1haW5gLlxuICAgICAgYGdpdCBwdXNoIC0tYXRvbWljIC0tZm9sbG93LXRhZ3Mgb3JpZ2luX3NzaCAke3RoaXMucHJvcHMuaGVhZC5uYW1lfToke3RoaXMucHJvcHMuaGVhZC5uYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgc2tpcElmT3BlblBycyhsYWJlbHM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICBgcmVwbzoke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb31gLFxuICAgICAgJ2lzOnByJyxcbiAgICAgICdpczpvcGVuJyxcbiAgICAgIC4uLmxhYmVscy5tYXAobCA9PiBgbGFiZWw6JHtsfWApLFxuICAgIF07XG5cbiAgICByZXR1cm4gW1xuICAgICAgYCR7dGhpcy5naXRodWJDdXJsR2V0KGAvc2VhcmNoL2lzc3Vlcz9xPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuam9pbignICcpKX1gLCAnLW8gc2VhcmNoLmpzb24nKX1gLFxuICAgICAgJ25vZGUgLWUgXFwncHJvY2Vzcy5leGl0Q29kZSA9IHJlcXVpcmUoXCIuL3NlYXJjaC5qc29uXCIpLnRvdGFsX2NvdW50XFwnJ1xuICAgICAgICArIGAgfHwgeyBlY2hvIFwiRm91bmQgb3BlbiBQUnMgd2l0aCBsYWJlbCAke2xhYmVsc30sIHNraXBwaW5nIFBSLlwiOyBleHBvcnQgU0tJUD10cnVlOyB9YCxcbiAgICBdO1xuICB9XG5cblxuICBwcml2YXRlIGNyZWF0ZVB1bGxSZXF1ZXN0KCk6IHN0cmluZ1tdIHtcblxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLnByb3BzLmhlYWQubmFtZTtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5iYXNlQnJhbmNoO1xuXG4gICAgaWYgKGhlYWQgPT09IGJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSGVhZCBicmFuY2ggKFwiJHtiYXNlfVwiKSBpcyB0aGUgc2FtZSBhcyB0aGUgYmFzZSBicmFuY2ggKFwiJHtoZWFkfVwiKWApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB0aXRsZSA9IHByb3BzLnRpdGxlID8/IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLnByb3BzLmJvZHkgPz8gJyc7XG5cbiAgICBjb25zdCBjcmVhdGVSZXF1ZXN0ID0geyB0aXRsZSwgYmFzZSwgaGVhZCB9O1xuXG4gICAgY29uc3QgY29tbWFuZHMgPSBbXTtcblxuICAgIC8vIGNyZWF0ZSB0aGUgUFJcbiAgICBjb21tYW5kcy5wdXNoKGAke3RoaXMuZ2l0aHViQ3VybCgnL3B1bGxzJywgJy1YIFBPU1QgLW8gcHIuanNvbicsIGNyZWF0ZVJlcXVlc3QpfSAmJiBleHBvcnQgUFJfTlVNQkVSPSQobm9kZSAtcCAncmVxdWlyZShcIi4vcHIuanNvblwiKS5udW1iZXInKWApO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBib2R5XG4gICAgY29tbWFuZHMucHVzaCh0aGlzLmdpdGh1YkN1cmwoJy9wdWxscy8kUFJfTlVNQkVSJywgJy1YIFBBVENIJywgeyBib2R5OiBib2R5IH0pKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmxhYmVscyAmJiB0aGlzLnByb3BzLmxhYmVscy5sZW5ndGggPiAwKSB7XG4gICAgLy8gYXBwbHkgbGFiZWxzLlxuICAgICAgY29tbWFuZHMucHVzaCh0aGlzLmdpdGh1YkN1cmwoJy9pc3N1ZXMvJFBSX05VTUJFUi9sYWJlbHMnLCAnLVggUE9TVCcsIHsgbGFiZWxzOiB0aGlzLnByb3BzLmxhYmVscyB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1hbmRzO1xuXG4gIH1cblxuICBwcml2YXRlIGdpdGh1YkN1cmwodXJpOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZywgcmVxdWVzdDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2N1cmwgLS1mYWlsJyxcbiAgICAgIGNvbW1hbmQsXG4gICAgICAnLS1oZWFkZXIgXCJBdXRob3JpemF0aW9uOiB0b2tlbiAkR0lUSFVCX1RPS0VOXCInLFxuICAgICAgJy0taGVhZGVyIFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCInLFxuICAgICAgYC1kICR7SlNPTi5zdHJpbmdpZnkoSlNPTi5zdHJpbmdpZnkocmVxdWVzdCkpfWAsXG4gICAgICBgaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8ke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb30ke3VyaX1gLFxuICAgIF0uam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnaXRodWJDdXJsR2V0KHVyaTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnY3VybCAtLWZhaWwnLFxuICAgICAgY29tbWFuZCxcbiAgICAgICctLWhlYWRlciBcIkF1dGhvcml6YXRpb246IHRva2VuICRHSVRIVUJfVE9LRU5cIicsXG4gICAgICAnLS1oZWFkZXIgXCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cIicsXG4gICAgICBgJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20ke3VyaX0nYCxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG59XG5cbiJdfQ==
|
package/lib/shellable.js
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.WindowsPlatform = exports.LinuxPlatform = exports.ShellPlatform = exports.PlatformType = exports.Shellable = void 0;
|
|
4
|
-
const fs = require("fs");
|
|
5
|
-
const path = require("path");
|
|
23
|
+
const fs = __importStar(require("fs"));
|
|
24
|
+
const path = __importStar(require("path"));
|
|
6
25
|
const monocdk_1 = require("monocdk");
|
|
7
26
|
const build_spec_1 = require("./build-spec");
|
|
8
27
|
const util_1 = require("./util");
|
|
@@ -236,4 +255,4 @@ class WindowsPlatform extends ShellPlatform {
|
|
|
236
255
|
}
|
|
237
256
|
}
|
|
238
257
|
exports.WindowsPlatform = WindowsPlatform;
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2hlbGxhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IscUNBS2lCO0FBQ2pCLDZDQUF5QztBQUN6QyxpQ0FBb0Q7QUFFcEQsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFDekMsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDO0FBK01uQzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxtQkFBUztJQWN0QyxZQUFZLE1BQWlCLEVBQUUsRUFBVSxFQUFFLEtBQXFCOztRQUM5RCxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDO1FBRTVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUMvRDtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksdUJBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3RELElBQUksRUFBRSxLQUFLLENBQUMsZUFBZTtTQUM1QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxDQUFD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YXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0LCBEdXJhdGlvbixcbiAgYXdzX2Nsb3Vkd2F0Y2ggYXMgY2xvdWR3YXRjaCwgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQsXG4gIGF3c19jb2RlcGlwZWxpbmUgYXMgY3BpcGVsaW5lLCBhd3NfY29kZXBpcGVsaW5lX2FjdGlvbnMgYXMgY3BpcGVsaW5lX2FjdGlvbnMsXG4gIGF3c19pYW0gYXMgaWFtLCBhd3NfczNfYXNzZXRzIGFzIGFzc2V0cywgYXdzX3NlY3JldHNtYW5hZ2VyLCBhd3Nfc3NtLFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IEJ1aWxkU3BlYyB9IGZyb20gJy4vYnVpbGQtc3BlYyc7XG5pbXBvcnQgeyByZW5kZXJFbnZpcm9ubWVudFZhcmlhYmxlcyB9IGZyb20gJy4vdXRpbCc7XG5cbmNvbnN0IFMzX0JVQ0tFVF9FTlYgPSAnU0NSSVBUX1MzX0JVQ0tFVCc7XG5jb25zdCBTM19LRVlfRU5WID0gJ1NDUklQVF9TM19LRVknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoZWxsYWJsZU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgZm9yIHRoZSBDb2RlQnVpbGQgcHJvamVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBzb3VyY2VcbiAgICovXG4gIHNvdXJjZT86IGNidWlsZC5JU291cmNlO1xuXG4gIC8qKlxuICAgKiBXaGF0IHBsYXRmb3JtIHRvIHVzIHRvIHJ1biB0aGUgc2NyaXB0cyBvblxuICAgKlxuICAgKiBAZGVmYXVsdCBTaGVsbFBsYXRmb3JtLkxpbnV4VWJ1bnR1XG4gICAqL1xuICBwbGF0Zm9ybT86IFNoZWxsUGxhdGZvcm07XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gYWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICovXG4gIGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc2VjcmV0cyBtYW5hZ2VyIHZhbHVlcy4gVGhlIHZhbHVlcyBtdXN0IGJlIGNvbXBsZXRlIFNlY3JldCBNYW5hZ2VyIEFSTnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAqL1xuICBlbnZpcm9ubWVudFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBTU00gcGFyYW1ldGVyIHZhbHVlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gYWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICovXG4gIGVudmlyb25tZW50UGFyYW1ldGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBjb21wdXRlIHR5cGUgdG8gdXNlIGZvciB0aGUgYnVpbGQgY29udGFpbmVyLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgbm90IGFsbCBjb21iaW5hdGlvbnMgYXJlIGF2YWlsYWJsZS4gRm9yIGV4YW1wbGUsXG4gICAqIFdpbmRvd3MgaW1hZ2VzIGNhbm5vdCBiZSBydW4gb24gQ29tcHV0ZVR5cGUuU21hbGwuXG4gICAqXG4gICAqIEBkZWZhdWx0IENvbXB1dGVUeXBlLk1lZGl1bVxuICAgKi9cbiAgY29tcHV0ZVR5cGU/OiBjYnVpbGQuQ29tcHV0ZVR5cGU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBob3cgdGhlIHByb2plY3QgYnVpbGRzIERvY2tlciBpbWFnZXMuIFNwZWNpZnkgdHJ1ZSB0byBlbmFibGVcbiAgICogcnVubmluZyB0aGUgRG9ja2VyIGRhZW1vbiBpbnNpZGUgYSBEb2NrZXIgY29udGFpbmVyLiBUaGlzIHZhbHVlIG11c3QgYmVcbiAgICogc2V0IHRvIHRydWUgb25seSBpZiB0aGlzIGJ1aWxkIHByb2plY3Qgd2lsbCBiZSB1c2VkIHRvIGJ1aWxkIERvY2tlclxuICAgKiBpbWFnZXMsIGFuZCB0aGUgc3BlY2lmaWVkIGJ1aWxkIGVudmlyb25tZW50IGltYWdlIGlzIG5vdCBvbmUgcHJvdmlkZWQgYnlcbiAgICogQVdTIENvZGVCdWlsZCB3aXRoIERvY2tlciBzdXBwb3J0LiBPdGhlcndpc2UsIGFsbCBhc3NvY2lhdGVkIGJ1aWxkcyB0aGF0XG4gICAqIGF0dGVtcHQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRG9ja2VyIGRhZW1vbiB3aWxsIGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwcml2aWxlZ2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgZm9yIHRoZSBidWlsZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBhIG5hbWUgaXMgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uLlxuICAgKi9cbiAgYnVpbGRQcm9qZWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIFJlZ2lvbmFsIEFXUyBTVFMgZW5kcG9pbnRzIHNob3VsZCBiZSB1c2VkIGluc3RlYWRcbiAgICogb2YgdGhlIGdsb2JhbCBlbmRwb2ludC4gU3BlY2lmeSB0cnVlIHRvIHVzZSBSZWdpb25hbCBBV1MgU1RTIGVuZHBvaW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHVzZVJlZ2lvbmFsU3RzRW5kcG9pbnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gcnVuIHRoaXMgYnVpbGQgdXNpbmcgYSBzcGVjaWZpYyBJQU0gcm9sZS4gVGhpcyBjYW4gYmUgdXNlZCxcbiAgICogZm9yIGV4YW1wbGUsIHRvIGV4ZWN1dGUgaW4gdGhlIGNvbnRleHQgb2YgYW5vdGhlciBhY2NvdW50IChlLmcuIHRvIHJ1blxuICAgKiB0ZXN0cyBpbiBpc29sYXRpb24pLlxuICAgKi9cbiAgYXNzdW1lUm9sZT86IEFzc3VtZVJvbGU7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYnVpbGRzcGVjIChmb3IgYXJ0aWZhY3RzIGV0Yy4pXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIGFkZGl0aW9uYWwgYnVpbGRzcGVjXG4gICAqL1xuICBidWlsZFNwZWM/OiBCdWlsZFNwZWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IG9mIHRoZSBidWlsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdGhlIENvZGVCdWlsZCBkZWZhdWx0ICgxIGhvdXIpXG4gICAqL1xuICB0aW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEFsYXJtIHBlcmlvZC5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwIHNlY29uZHMgKDUgbWludXRlcylcbiAgICovXG4gIGFsYXJtUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEFsYXJtIHRocmVzaG9sZC5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgYWxhcm1UaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFsYXJtIGV2YWx1YXRpb24gcGVyaW9kcy5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgYWxhcm1FdmFsdWF0aW9uUGVyaW9kcz86IG51bWJlcjtcblxuICBzZWNvbmRhcnlBcnRpZmFjdE5hbWVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB1c2VkIHRvIGNyZWF0ZSBhIFNoZWxsYWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoZWxsYWJsZVByb3BzIGV4dGVuZHMgU2hlbGxhYmxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEaXJlY3Rvcnkgd2l0aCB0aGUgc2NyaXB0cy5cbiAgICpcbiAgICogVGhlIHdob2xlIGRpcmVjdG9yeSB3aWxsIGJlIHVwbG9hZGVkLlxuICAgKi9cbiAgc2NyaXB0RGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVuYW1lIG9mIHRoZSBpbml0aWFsIHNjcmlwdCB0byBzdGFydCwgcmVsYXRpdmUgdG8gc2NyaXB0RGlyZWN0b3J5LlxuICAgKi9cbiAgZW50cnlwb2ludDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc3VtZVJvbGUge1xuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSByb2xlIHRvIGFzc3VtZS5cbiAgICovXG4gIHJvbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQW4gaWRlbnRpZmllciBmb3IgdGhlIGFzc3VtZWQgcm9sZSBzZXNzaW9uLlxuICAgKlxuICAgKiBVc2UgIHRoZSAgcm9sZSAgc2Vzc2lvbiBuYW1lIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgc2Vzc2lvbiB3aGVuIHRoZSBzYW1lXG4gICAqIHJvbGUgaXMgYXNzdW1lZCBieSBkaWZmZXJlbnQgcHJpbmNpcGFscyBvciBmb3IgZGlmZmVyZW50IHJlYXNvbnMuIEluXG4gICAqIGNyb3NzLWFjY291bnQgc2NlbmFyaW9zLCB0aGUgcm9sZSBzZXNzaW9uIG5hbWUgaXMgdmlzaWJsZSB0bywgYW5kIGNhbiBiZVxuICAgKiBsb2dnZWQgYnkgdGhlIGFjY291bnQgdGhhdCBvd25zIHRoZSByb2xlLiAgVGhlIHJvbGUgc2Vzc2lvbiBuYW1lIGlzIGFsc29cbiAgICogdXNlZCBpbiB0aGUgQVJOIG9mIHRoZSBhc3N1bWVkIHJvbGUgcHJpbmNpcGFsLiBUaGlzIG1lYW5zIHRoYXQgc3Vic2VxdWVudFxuICAgKiBjcm9zcy1hY2NvdW50IEFQSSByZXF1ZXN0cyB1c2luZyB0aGUgdGVtLSBwb3Jhcnkgc2VjdXJpdHkgY3JlZGVudGlhbHMgd2lsbFxuICAgKiBleHBvc2UgdGhlIHJvbGUgc2Vzc2lvbiBuYW1lIHRvIHRoZSBleHRlcm5hbCBhY2NvdW50IGluIHRoZWlyIENsb3VkVHJhaWxcbiAgICogbG9ncy5cbiAgICpcbiAgICogVGhlIHJlZ2V4IHVzZWQgdG8gdmFsaWRhdGUgdGhpcyBwYXJhbWV0ZXIgaXMgYSBzdHJpbmcgb2YgY2hhcmFjdGVyc1xuICAgKiBjb25zaXN0aW5nICBvZiB1cHBlci0gYW5kIGxvd2VyLWNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd2l0aCBub1xuICAgKiBzcGFjZXMuIFlvdSBjYW4gYWxzbyBpbmNsdWRlIHVuZGVyc2NvcmVzIG9yIGFueSBvZiB0aGUgZm9sbG93aW5nXG4gICAqIGNoYXJhY3RlcnM6ID0sLkAtXG4gICAqL1xuICBzZXNzaW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBICB1bmlxdWUgIGlkZW50aWZpZXIgIHRoYXQgIGlzICB1c2VkIGJ5IHRoaXJkIHBhcnRpZXMgd2hlbiBhc3N1bWluZyByb2xlc1xuICAgKiBpbiB0aGVpciBjdXN0b21lcnMnIGFjY291bnRzLiBGb3IgZWFjaCAgcm9sZSAgdGhhdCAgdGhlICB0aGlyZCBwYXJ0eSBjYW5cbiAgICogYXNzdW1lLCB0aGV5IHNob3VsZCBpbnN0cnVjdCB0aGVpciBjdXN0b21lcnMgdG8gZW5zdXJlIHRoZSByb2xlJ3MgdHJ1c3RcbiAgICogcG9saWN5IGNoZWNrcyBmb3IgdGhlIGV4dGVybmFsIElEIHRoYXQgdGhlIHRoaXJkICBwYXJ0eSBnZW5lcmF0ZWQuICBFYWNoXG4gICAqIHRpbWUgdGhlIHRoaXJkIHBhcnR5IGFzc3VtZXMgdGhlIHJvbGUsIHRoZXkgc2hvdWxkIHBhc3MgdGhlIGN1c3RvbWVyJ3NcbiAgICogZXh0ZXJuYWwgSUQuIFRoZSBleHRlcm5hbCBJRCBpcyB1c2VmdWwgaW4gIG9yZGVyIHRvICBoZWxwICB0aGlyZCAgcGFydGllc1xuICAgKiBiaW5kIGEgcm9sZSB0byB0aGUgY3VzdG9tZXIgd2hvIGNyZWF0ZWQgaXQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZVxuICAgKiBleHRlcm5hbCBJRCwgc2VlIEhvdyB0byBVc2UgYW4gRXh0ZXItIG5hbCAgSUQgIFdoZW4gR3JhbnRpbmcgQWNjZXNzIHRvIFlvdXJcbiAgICogQVdTIFJlc291cmNlcyB0byBhIFRoaXJkIFBhcnR5IGluIHRoZSBJQU0gVXNlciBHdWlkZSAuXG4gICAqXG4gICAqIFRoaXMgcGFyYW1ldGVyIG11c3QgYmUgYSBzdHJpbmcgb2YgY2hhcmFjdGVycyBjb25zaXN0aW5nICBvZiB1cHBlci0gYW5kXG4gICAqIGxvd2VyLWNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd2l0aCBubyBzcGFjZXMuIFlvdSBjYW4gYWxzbyBpbmNsdWRlXG4gICAqIHVuZGVyc2NvcmVzIG9yICBhbnkgIG9mICB0aGUgIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiA9LC5AOi8tXG4gICAqL1xuICBleHRlcm5hbElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIGEgcHJvZmllIG5hbWUgaXMgY29uZmlndXJlZCwgYW4gYXNzdW1lZCByb2xlIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBjcmVhdGVkXG4gICAqIGluIHRoZSBzaGFyZWQgYXdzIGNvbmZpZ3VyYXRpb24gZmlsZSAofi8uYXdzL2NvbmZpZykuIFRoaXMgaXMgaW4gY29udHJhcnkgb2Ygc2ltcGx5IGludm9raW5nXG4gICAqIGFuIGBzdHMgYXNzdW1lLXJvbGVgIGNvbW1hbmQgdGhhdCBjcmVhdGVzIGEgc2Vzc2lvbiB3aXRoIGEgZml4ZWQgZXhwaXJ5IGRhdGUuXG4gICAqXG4gICAqIFVzaW5nIGEgcHJvZmlsZSB3aWxsIGRlbGVnYXRlIGNyZWRlbnRpYWwgcmVmcmVzaGluZyB0byB0aGUgU0RLL0NMSS5cbiAgICogVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBsb25nIHJ1bm5pbmcgc2Vzc2lvbnMgdGhhdCBuZWVkcyBzZXNzaW9ucyB0aGF0IGFyZSBsb25nZXIgdGhhblxuICAgKiB0aGUgc2Vzc2lvbiBkdXJhdGlvbiB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHdpdGggYSBgc3RzIGFzc3VtZS1yb2xlYC5cbiAgICpcbiAgICogVGhlIGFwcGxpY2F0aW9uIGNvZGUgd2lsbCBhY2Nlc3MgdG8gdGhpcyBwcm9maWxlIGluIHRoZSBgQVdTX1BST0ZJTEVgIGVudiB2YXJpYWJsZS5cbiAgICpcbiAgICogT25seSByZWxldmFudCBpZiBgcmVmcmVzaGAgaXMgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3VzZXJndWlkZS9jbGktY29uZmlndXJlLWZpbGVzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgJ2xvbmctcnVubmluZy1wcm9maWxlJ1xuICAgKi9cbiAgcHJvZmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhpcyBpZiB5b3UgaGF2ZSBhIGxvbmcgcnVubmluZyBleGVjdXRpb24gdGhhdCBuZWVkcyBsb25nIHJ1bm5pbmcgc2Vzc2lvbnMuXG4gICAqIFRoaXMgd2lsbCBjcmVhdGUgYSBwcm9maWxlIGFuZCB1c2UgaXQgdG8gZGVsZWdhdGUgY3JlZGVudGlhbCByZWZyZXNoaW5nIHRvIHRoZSBTREsvQ0xJXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWZyZXNoPzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIEEgQ29kZUJ1aWxkIHByb2plY3QgdGhhdCBydW5zIGFyYml0cmFyeSBzY3JpcHRzLlxuICpcbiAqIFRoZSBzY3JpcHRzIHRvIGJlIHJ1biBhcmUgc3BlY2lmaWVkIGJ5IHN1cHBseWluZyBhIGRpcmVjdG9yeS5cbiAqIEFsbCBmaWxlcyBpbiB0aGUgZGlyZWN0b3J5IGFyZSB1cGxvYWRlZCwgdGhlbiB0aGUgc2NyaXB0IGRlc2lnbmF0ZWRcbiAqIGFzIHRoZSBlbnRyeSBwb2ludCBpcyBzdGFydGVkLlxuICpcbiAqIFRoZSBzY3JpcHQgaXMgZXhlY3V0ZWQgaW4gdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgYnVpbGQgcHJvamVjdCdzXG4gKiBpbnB1dCBpcyBzdG9yZWQuIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHNjcmlwdCBmaWxlcyBhcmUgc3RvcmVkXG4gKiBpcyBpbiB0aGUgJFNDUklQVF9ESVIgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gKlxuICogU3VwcG9ydHMgYm90aCBXaW5kb3dzIGFuZCBMaW51eCBjb21wdXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNoZWxsYWJsZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuUHJvamVjdDtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQ2xvdWRXYXRjaCBhbGFybSB0aGF0IHdpbGwgYmUgdHJpZ2dlcmVkIGlmIHRoaXMgYWN0aW9uIGZhaWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtOiBjbG91ZHdhdGNoLkFsYXJtO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm06IFNoZWxsUGxhdGZvcm07XG4gIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRTcGVjOiBCdWlsZFNwZWM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXRBcnRpZmFjdE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNoZWxsYWJsZVByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBpZCk7XG5cbiAgICB0aGlzLnBsYXRmb3JtID0gcHJvcHMucGxhdGZvcm0gfHwgU2hlbGxQbGF0Zm9ybS5MaW51eFVidW50dTtcblxuICAgIGNvbnN0IGVudHJ5cG9pbnQgPSBwYXRoLmpvaW4ocHJvcHMuc2NyaXB0RGlyZWN0b3J5LCBwcm9wcy5lbnRyeXBvaW50KTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZW50cnlwb2ludCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgdGVzdCBlbnRyeXBvaW50OiAke2VudHJ5cG9pbnR9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXQgPSBuZXcgYXNzZXRzLkFzc2V0KHRoaXMsICdTY3JpcHREaXJlY3RvcnknLCB7XG4gICAgICBwYXRoOiBwcm9wcy5zY3JpcHREaXJlY3RvcnksXG4gICAgfSk7XG5cbiAgICB0aGlzLm91dHB1dEFydGlmYWN0TmFtZSA9IGBBcnRpZmFjdF8ke3RoaXMubm9kZS51bmlxdWVJZH1gO1xuICAgIGlmICh0aGlzLm91dHB1dEFydGlmYWN0TmFtZS5sZW5ndGggPiAxMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgV2hvb3BzLCB0b28gbG9uZzogJHt0aGlzLm91dHB1dEFydGlmYWN0TmFtZX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1aWxkU3BlYyA9IEJ1aWxkU3BlYy5zaW1wbGUoe1xuICAgICAgcHJlQnVpbGQ6IHRoaXMucGxhdGZvcm0ucHJlYnVpbGRDb21tYW5kcyhwcm9wcy5hc3N1bWVSb2xlLCBwcm9wcy51c2VSZWdpb25hbFN0c0VuZHBvaW50cyksXG4gICAgICBidWlsZDogdGhpcy5wbGF0Zm9ybS5idWlsZENvbW1hbmRzKHByb3BzLmVudHJ5cG9pbnQpLFxuICAgIH0pLm1lcmdlKHByb3BzLmJ1aWxkU3BlYyB8fCBCdWlsZFNwZWMuZW1wdHkoKSk7XG5cbiAgICBjb25zdCBlbnZpcm9ubWVudFNlY3JldHNBc1NlY3JldE5hbWVzID0gdGhpcy5jb252ZXJ0RW52aXJvbm1lbnRTZWNyZXRBcm5zVG9TZWNyZXROYW1lcyhwcm9wcy5lbnZpcm9ubWVudFNlY3JldHMpO1xuXG4gICAgdGhpcy5wcm9qZWN0ID0gbmV3IGNidWlsZC5Qcm9qZWN0KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9wcy5idWlsZFByb2plY3ROYW1lLFxuICAgICAgc291cmNlOiBwcm9wcy5zb3VyY2UsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOiB0aGlzLnBsYXRmb3JtLmJ1aWxkSW1hZ2UsXG4gICAgICAgIGNvbXB1dGVUeXBlOiBwcm9wcy5jb21wdXRlVHlwZSB8fCBjYnVpbGQuQ29tcHV0ZVR5cGUuTUVESVVNLFxuICAgICAgICBwcml2aWxlZ2VkOiBwcm9wcy5wcml2aWxlZ2VkLFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgIFtTM19CVUNLRVRfRU5WXTogeyB2YWx1ZTogYXNzZXQuczNCdWNrZXROYW1lIH0sXG4gICAgICAgIFtTM19LRVlfRU5WXTogeyB2YWx1ZTogYXNzZXQuczNPYmplY3RLZXkgfSxcbiAgICAgICAgLi4ucmVuZGVyRW52aXJvbm1lbnRWYXJpYWJsZXMocHJvcHMuZW52aXJvbm1lbnQpLFxuICAgICAgICAuLi5yZW5kZXJFbnZpcm9ubWVudFZhcmlhYmxlcyhlbnZpcm9ubWVudFNlY3JldHNBc1NlY3JldE5hbWVzLCBjYnVpbGQuQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZS5TRUNSRVRTX01BTkFHRVIpLFxuICAgICAgICAuLi5yZW5kZXJFbnZpcm9ubWVudFZhcmlhYmxlcyhwcm9wcy5lbnZpcm9ubWVudFBhcmFtZXRlcnMsIGNidWlsZC5CdWlsZEVudmlyb25tZW50VmFyaWFibGVUeXBlLlBBUkFNRVRFUl9TVE9SRSksXG4gICAgICB9LFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCxcbiAgICAgIGJ1aWxkU3BlYzogY2J1aWxkLkJ1aWxkU3BlYy5mcm9tT2JqZWN0KHRoaXMuYnVpbGRTcGVjLnJlbmRlcih7IHByaW1hcnlBcnRpZmFjdE5hbWU6IHRoaXMub3V0cHV0QXJ0aWZhY3ROYW1lIH0pKSxcbiAgICB9KTtcblxuICAgIHRoaXMucm9sZSA9IHRoaXMucHJvamVjdC5yb2xlITsgLy8gbm90IHVuZGVmaW5lZCwgYXMgaXQncyBhIG5ldyBQcm9qZWN0XG4gICAgYXNzZXQuZ3JhbnRSZWFkKHRoaXMucm9sZSk7XG5cbiAgICAvLyBHcmFudCByZWFkIGFjY2VzcyB0byBzZWNyZXRzXG4gICAgT2JqZWN0LmVudHJpZXMocHJvcHMuZW52aXJvbm1lbnRTZWNyZXRzID8/IHt9KS5mb3JFYWNoKChbbmFtZSwgc2VjcmV0QXJuXSkgPT4ge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gYXdzX3NlY3JldHNtYW5hZ2VyLlNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgYCR7bmFtZX1TZWNyZXRgLCBzZWNyZXRBcm4pO1xuICAgICAgc2VjcmV0LmdyYW50UmVhZCh0aGlzLnJvbGUpO1xuICAgIH0pO1xuXG4gICAgLy8gR3JhbnQgcmVhZCBhY2Nlc3MgdG8gcGFyYW1ldGVyc1xuICAgIE9iamVjdC5lbnRyaWVzKHByb3BzLmVudmlyb25tZW50UGFyYW1ldGVycyA/PyB7fSkuZm9yRWFjaCgoW25hbWUsIHBhcmFtZXRlck5hbWVdKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbWV0ZXIgPSBhd3Nfc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCBgJHtuYW1lfVBhcmFtZXRlcmAsIHBhcmFtZXRlck5hbWUpO1xuICAgICAgcGFyYW1ldGVyLmdyYW50UmVhZCh0aGlzLnJvbGUpO1xuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmFzc3VtZVJvbGUpIHtcbiAgICAgIHRoaXMucm9sZS5hZGRUb1BvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnc3RzOkFzc3VtZVJvbGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMuYXNzdW1lUm9sZS5yb2xlQXJuXSxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICB0aGlzLmFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guQWxhcm0odGhpcywgJ0FsYXJtJywge1xuICAgICAgbWV0cmljOiB0aGlzLnByb2plY3QubWV0cmljRmFpbGVkQnVpbGRzKHsgcGVyaW9kOiBwcm9wcy5hbGFybVBlcmlvZCB8fCBEdXJhdGlvbi5zZWNvbmRzKDMwMCkgfSksXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLmFsYXJtVGhyZXNob2xkIHx8IDEsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogcHJvcHMuYWxhcm1FdmFsdWF0aW9uUGVyaW9kcyB8fCAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1BpcGVsaW5lKHN0YWdlOiBjcGlwZWxpbmUuSVN0YWdlLCBuYW1lOiBzdHJpbmcsIGlucHV0QXJ0aWZhY3Q6IGNwaXBlbGluZS5BcnRpZmFjdCwgcnVuT3JkZXI/OiBudW1iZXIpOlxuICBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24ge1xuICAgIGNvbnN0IGNvZGVCdWlsZEFjdGlvbiA9IG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogbmFtZSxcbiAgICAgIHByb2plY3Q6IHRoaXMucHJvamVjdCxcbiAgICAgIHJ1bk9yZGVyLFxuICAgICAgaW5wdXQ6IGlucHV0QXJ0aWZhY3QsXG4gICAgICBvdXRwdXRzOiBbbmV3IGNwaXBlbGluZS5BcnRpZmFjdCh0aGlzLm91dHB1dEFydGlmYWN0TmFtZSldLmNvbmNhdChcbiAgICAgICAgdGhpcy5idWlsZFNwZWMuYWRkaXRpb25hbEFydGlmYWN0TmFtZXMubWFwKGFydGlmYWN0TmFtZSA9PiBuZXcgY3BpcGVsaW5lLkFydGlmYWN0KGFydGlmYWN0TmFtZSkpKSxcbiAgICB9KTtcbiAgICBzdGFnZS5hZGRBY3Rpb24oY29kZUJ1aWxkQWN0aW9uKTtcbiAgICByZXR1cm4gY29kZUJ1aWxkQWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250cmFjdCBvZiBgZW52aXJvbm1lbnRTZWNyZXRzYCBpcyB0aGF0IHRoZSB2YWx1ZXMgYXJlIGNvbXBsZXRlIFNlY3JldCBBUk5zO1xuICAgKiBob3dldmVyLCB0aGUgQ29kZUJ1aWxkIGNvbnN0cnVjdCBleHBlY3RzIHNlY3JldCBuYW1lcyBhcyB0aGUgaW5wdXRzIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqIFRoaXMgbWV0aG9kIGNvbnZlcnRzIHRoZSBlbnZpcm9ubWVudCBzZWNyZXRzIGZyb20gQVJOcyB0byBuYW1lcy5cbiAgICovXG4gIHByaXZhdGUgY29udmVydEVudmlyb25tZW50U2VjcmV0QXJuc1RvU2VjcmV0TmFtZXMoZW52aXJvbm1lbnRTZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIGlmICghZW52aXJvbm1lbnRTZWNyZXRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG91dDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHsgfTtcbiAgICBPYmplY3QuZW50cmllcyhlbnZpcm9ubWVudFNlY3JldHMgPz8ge30pLmZvckVhY2goKFtuYW1lLCBzZWNyZXRBcm5dKSA9PiB7XG4gICAgICBjb25zdCBzZWNyZXQgPSBhd3Nfc2VjcmV0c21hbmFnZXIuU2VjcmV0LmZyb21TZWNyZXRDb21wbGV0ZUFybih0aGlzLCBgJHtuYW1lfVNlY3JldEZyb21Bcm5gLCBzZWNyZXRBcm4pO1xuICAgICAgb3V0W25hbWVdID0gc2VjcmV0LnNlY3JldE5hbWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIG91dDtcbiAgfVxufVxuXG4vKipcbiAqIFBsYXRmb3JtIGFyY2hldHlwZVxuICovXG5leHBvcnQgZW51bSBQbGF0Zm9ybVR5cGUge1xuICBMaW51eCA9ICdMaW51eCcsXG4gIFdpbmRvd3MgPSAnV2luZG93cydcbn1cblxuLyoqXG4gKiBUaGUgcGxhdGZvcm0gdHlwZSB0byBydW4gdGhlIHNjcmlwdHMgb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNoZWxsUGxhdGZvcm0ge1xuICAvKipcbiAgICogUmV0dXJuIGEgZGVmYXVsdCBVYnVudHUgTGludXggcGxhdGZvcm1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IExpbnV4VWJ1bnR1KCk6IFNoZWxsUGxhdGZvcm0ge1xuICAgIC8vIENhbm5vdCBiZSBzdGF0aWMgbWVtYmVyIGJlY2F1c2Ugb2YgaW5pdGlhbGl6YXRpb24gb3JkZXJcbiAgICByZXR1cm4gbmV3IExpbnV4UGxhdGZvcm0oY2J1aWxkLkxpbnV4QnVpbGRJbWFnZS5TVEFOREFSRF80XzApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGRlZmF1bHQgV2luZG93cyBwbGF0Zm9ybVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgV2luZG93cygpOiBTaGVsbFBsYXRmb3JtIHtcbiAgICAvLyBDYW5ub3QgYmUgc3RhdGljIG1lbWJlciBiZWNhdXNlIG9mIGluaXRpYWxpemF0aW9uIG9yZGVyXG4gICAgcmV0dXJuIG5ldyBXaW5kb3dzUGxhdGZvcm0oY2J1aWxkLldpbmRvd3NCdWlsZEltYWdlLldJTl9TRVJWRVJfQ09SRV8yMDE5X0JBU0UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGJ1aWxkSW1hZ2U6IGNidWlsZC5JQnVpbGRJbWFnZSkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBjb21tYW5kcyB0byBkb3dubG9hZCB0aGUgc2NyaXB0IGJ1bmRsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHByZWJ1aWxkQ29tbWFuZHMoYXNzdW1lUm9sZT86IEFzc3VtZVJvbGUsIHVzZVJlZ2lvbmFsU3RzRW5kcG9pbnRzPzogYm9vbGVhbik6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gY29tbWFuZHMgdG8gc3RhcnQgdGhlIGVudHJ5cG9pbnQgc2NyaXB0XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYnVpbGRDb21tYW5kcyhlbnRyeXBvaW50OiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVHlwZSBvZiBwbGF0Zm9ybVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldCBwbGF0Zm9ybVR5cGUoKTogUGxhdGZvcm1UeXBlO1xufVxuXG4vKipcbiAqIEEgTGludXggUGxhdGZvcm1cbiAqL1xuZXhwb3J0IGNsYXNzIExpbnV4UGxhdGZvcm0gZXh0ZW5kcyBTaGVsbFBsYXRmb3JtIHtcbiAgcHVibGljIHJlYWRvbmx5IHBsYXRmb3JtVHlwZSA9IFBsYXRmb3JtVHlwZS5MaW51eDtcblxuICBwdWJsaWMgcHJlYnVpbGRDb21tYW5kcyhhc3N1bWVSb2xlPzogQXNzdW1lUm9sZSwgdXNlUmVnaW9uYWxTdHNFbmRwb2ludHM/OiBib29sZWFuKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICAvLyBCZXR0ZXIgZWNobyB0aGUgbG9jYXRpb24gaGVyZTsgaWYgdGhpcyBmYWlscywgdGhlIGVycm9yIG1lc3NhZ2Ugb25seSBjb250YWluc1xuICAgIC8vIHRoZSB1bmV4cGFuZGVkIHZhcmlhYmxlcyBieSBkZWZhdWx0LiBJdCBtaWdodCBmYWlsIGlmIHlvdSdyZSBydW5uaW5nIGFuIG9sZFxuICAgIC8vIGRlZmluaXRpb24gb2YgdGhlIENvZGVCdWlsZCBwcm9qZWN0LS10aGUgcGVybWlzc2lvbnMgd2lsbCBoYXZlIGJlZW4gY2hhbmdlZFxuICAgIC8vIHRvIG9ubHkgYWxsb3cgZG93bmxvYWRpbmcgdGhlIHZlcnkgbGF0ZXN0IHZlcnNpb24uXG4gICAgbGluZXMucHVzaChgZWNobyBcIkRvd25sb2FkaW5nIHNjcmlwdHMgZnJvbSBzMzovL1xcJHske1MzX0JVQ0tFVF9FTlZ9fS9cXCR7JHtTM19LRVlfRU5WfX1cImApO1xuICAgIGxpbmVzLnB1c2goYGF3cyBzMyBjcCBzMzovL1xcJHske1MzX0JVQ0tFVF9FTlZ9fS9cXCR7JHtTM19LRVlfRU5WfX0gL3RtcGApO1xuICAgIGxpbmVzLnB1c2goJ21rZGlyIC1wIC90bXAvc2NyaXB0ZGlyJyk7XG4gICAgbGluZXMucHVzaChgdW56aXAgL3RtcC8kKGJhc2VuYW1lIFxcJCR7UzNfS0VZX0VOVn0pIC1kIC90bXAvc2NyaXB0ZGlyYCk7XG5cbiAgICBpZiAoYXNzdW1lUm9sZSkge1xuXG4gICAgICBpZiAoYXNzdW1lUm9sZS5yZWZyZXNoKSB7XG5cbiAgICAgICAgY29uc3QgYXdzSG9tZSA9ICd+Ly5hd3MnO1xuXG4gICAgICAgIGNvbnN0IHByb2ZpbGVOYW1lID0gYXNzdW1lUm9sZS5wcm9maWxlTmFtZSA/PyAnbG9uZy1ydW5uaW5nLXByb2ZpbGUnO1xuXG4gICAgICAgIGxpbmVzLnB1c2goYG1rZGlyIC1wICR7YXdzSG9tZX1gKTtcbiAgICAgICAgbGluZXMucHVzaChgdG91Y2ggJHthd3NIb21lfS9jcmVkZW50aWFsc2ApO1xuICAgICAgICBsaW5lcy5wdXNoKGBjb25maWc9JHthd3NIb21lfS9jb25maWdgKTtcbiAgICAgICAgbGluZXMucHVzaChgZWNobyBbcHJvZmlsZSAke3Byb2ZpbGVOYW1lfV0+PiAkXFx7Y29uZmlnXFx9YCk7XG4gICAgICAgIGxpbmVzLnB1c2goJ2VjaG8gY3JlZGVudGlhbF9zb3VyY2UgPSBFY3NDb250YWluZXIgPj4gJFxce2NvbmZpZ1xcfScpO1xuICAgICAgICBsaW5lcy5wdXNoKGBlY2hvIHJvbGVfc2Vzc2lvbl9uYW1lID0gJHthc3N1bWVSb2xlLnNlc3Npb25OYW1lfSA+PiAkXFx7Y29uZmlnXFx9YCk7XG4gICAgICAgIGxpbmVzLnB1c2goYGVjaG8gcm9sZV9hcm4gPSAke2Fzc3VtZVJvbGUucm9sZUFybn0gPj4gJGNvbmZpZ2ApO1xuXG4gICAgICAgIGlmIChhc3N1bWVSb2xlLmV4dGVybmFsSWQpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKGBlY2hvIGV4dGVybmFsX2lkID0gJHthc3N1bWVSb2xlLmV4dGVybmFsSWR9ID4+ICRjb25maWdgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGxldCB0aGUgYXBwbGljYXRpb24gY29kZSBrbm93IHdoaWNoIHJvbGUgaXMgYmVpbmcgdXNlZC5cbiAgICAgICAgbGluZXMucHVzaChgZXhwb3J0IEFXU19QUk9GSUxFPSR7cHJvZmlsZU5hbWV9YCk7XG5cbiAgICAgICAgLy8gZm9yY2UgdGhlIEFXUyBTREsgZm9yIEphdmFTY3JpcHQgdG8gYWN0dWFsbHkgbG9hZCB0aGUgY29uZmlnIGZpbGUgKGRvIGF1dG9tYXRpY2FsbHkgc28gdXNlcnMgZG9uJ3QgZm9yZ2V0KVxuICAgICAgICBsaW5lcy5wdXNoKCdleHBvcnQgQVdTX1NES19MT0FEX0NPTkZJRz0xJyk7XG5cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgY29uc3QgZXh0ZXJuYWxJZCA9IGFzc3VtZVJvbGUuZXh0ZXJuYWxJZCA/IGAtLWV4dGVybmFsLWlkIFwiJHthc3N1bWVSb2xlLmV4dGVybmFsSWR9XCJgIDogJyc7XG4gICAgICAgIGNvbnN0IFN0c0VuZHBvaW50cyA9IHVzZVJlZ2lvbmFsU3RzRW5kcG9pbnRzID8gJ3JlZ2lvbmFsJyA6ICdsZWdhY3knO1xuXG4gICAgICAgIGxpbmVzLnB1c2goJ2NyZWRzPSQobWt0ZW1wIC1kKS9jcmVkcy5qc29uJyk7XG4gICAgICAgIGxpbmVzLnB1c2goYEFXU19TVFNfUkVHSU9OQUxfRU5EUE9JTlRTPSR7U3RzRW5kcG9pbnRzfSBhd3Mgc3RzIGFzc3VtZS1yb2xlIC0tcm9sZS1hcm4gXCIke2Fzc3VtZVJvbGUucm9sZUFybn1cIiAtLXJvbGUtc2Vzc2lvbi1uYW1lIFwiJHthc3N1bWVSb2xlLnNlc3Npb25OYW1lfVwiICR7ZXh0ZXJuYWxJZH0gPiAkY3JlZHNgKTtcbiAgICAgICAgbGluZXMucHVzaCgnZXhwb3J0IEFXU19BQ0NFU1NfS0VZX0lEPVwiJChjYXQgJHtjcmVkc30gfCBncmVwIFwiQWNjZXNzS2V5SWRcIiB8IGN1dCAtZFxcJ1wiXFwnIC1mIDQpXCInKTtcbiAgICAgICAgbGluZXMucHVzaCgnZXhwb3J0IEFXU19TRUNSRVRfQUNDRVNTX0tFWT1cIiQoY2F0ICR7Y3JlZHN9IHwgZ3JlcCBcIlNlY3JldEFjY2Vzc0tleVwiIHwgY3V0IC1kXFwnXCJcXCcgLWYgNClcIicpO1xuICAgICAgICBsaW5lcy5wdXNoKCdleHBvcnQgQVdTX1NFU1NJT05fVE9LRU49XCIkKGNhdCAke2NyZWRzfSB8IGdyZXAgXCJTZXNzaW9uVG9rZW5cIiB8IGN1dCAtZFxcJ1wiXFwnIC1mIDQpXCInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDb21tYW5kcyhlbnRyeXBvaW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdleHBvcnQgU0NSSVBUX0RJUj0vdG1wL3NjcmlwdGRpcicsXG4gICAgICBgZWNobyBcIlJ1bm5pbmcgJHtlbnRyeXBvaW50fVwiYCxcbiAgICAgIGAvYmluL2Jhc2ggL3RtcC9zY3JpcHRkaXIvJHtlbnRyeXBvaW50fWAsXG4gICAgXTtcbiAgfVxufVxuXG4vKipcbiAqIEEgV2luZG93cyBQbGF0Zm9ybVxuICovXG5leHBvcnQgY2xhc3MgV2luZG93c1BsYXRmb3JtIGV4dGVuZHMgU2hlbGxQbGF0Zm9ybSB7XG4gIHB1YmxpYyByZWFkb25seSBwbGF0Zm9ybVR5cGUgPSBQbGF0Zm9ybVR5cGUuV2luZG93cztcblxuICBwdWJsaWMgcHJlYnVpbGRDb21tYW5kcyhhc3N1bWVSb2xlPzogQXNzdW1lUm9sZSwgX3VzZVJlZ2lvbmFsU3RzRW5kcG9pbnRzPzogYm9vbGVhbik6IHN0cmluZ1tdIHtcbiAgICBpZiAoYXNzdW1lUm9sZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhc3N1bWVSb2xlIGlzIG5vdCBzdXBwb3J0ZWQgb24gV2luZG93czogaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvYXdzLWRlbGl2bGliL2lzc3Vlcy81NycpO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAvLyBXb3VsZCBsb3ZlIHRvIGRvIGRvd25sb2FkaW5nIGhlcmUgYW5kIGV4ZWN1dGluZyBpbiB0aGUgbmV4dCBzdGVwLFxuICAgICAgLy8gYnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gcHJvcGFnYXRlIHRoZSB2YWx1ZSBvZiAkVEVNUERJUi5cbiAgICAgIC8vXG4gICAgICAvLyBQdW50aW5nIGZvciBzb21lb25lIHdobyBrbm93cyBQb3dlclNoZWxsIHdlbGwgZW5vdWdoLlxuICAgIF07XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDb21tYW5kcyhlbnRyeXBvaW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdTZXQtVmFyaWFibGUgLU5hbWUgVEVNUERJUiAtVmFsdWUgKE5ldy1UZW1wb3JhcnlGaWxlKS5EaXJlY3RvcnlOYW1lJyxcbiAgICAgIGBhd3MgczMgY3AgczM6Ly8kZW52OiR7UzNfQlVDS0VUX0VOVn0vJGVudjoke1MzX0tFWV9FTlZ9ICRURU1QRElSXFxcXHNjcmlwdHMuemlwYCxcbiAgICAgICdOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRURU1QRElSXFxcXHNjcmlwdGRpcicsXG4gICAgICAnRXhwYW5kLUFyY2hpdmUgLVBhdGggJFRFTVBESVIvc2NyaXB0cy56aXAgLURlc3RpbmF0aW9uUGF0aCAkVEVNUERJUlxcXFxzY3JpcHRkaXInLFxuICAgICAgJyRlbnY6U0NSSVBUX0RJUiA9IFwiJFRFTVBESVJcXFxcc2NyaXB0ZGlyXCInLFxuICAgICAgYCYgJFRFTVBESVJcXFxcc2NyaXB0ZGlyXFxcXCR7ZW50cnlwb2ludH1gLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2hlbGxhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLHFDQUtpQjtBQUNqQiw2Q0FBeUM7QUFDekMsaUNBQW9EO0FBRXBELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQztBQStNbkM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsbUJBQVM7SUFjdEMsWUFBWSxNQUFpQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDOUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUU1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLHVCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN0RCxJQUFJLEVBQUUsS0FBSyxDQUFDLGVBQWU7U0FDNUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENB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ZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIENvbnN0cnVjdCwgRHVyYXRpb24sXG4gIGF3c19jbG91ZHdhdGNoIGFzIGNsb3Vkd2F0Y2gsIGF3c19jb2RlYnVpbGQgYXMgY2J1aWxkLFxuICBhd3NfY29kZXBpcGVsaW5lIGFzIGNwaXBlbGluZSwgYXdzX2NvZGVwaXBlbGluZV9hY3Rpb25zIGFzIGNwaXBlbGluZV9hY3Rpb25zLFxuICBhd3NfaWFtIGFzIGlhbSwgYXdzX3MzX2Fzc2V0cyBhcyBhc3NldHMsIGF3c19zZWNyZXRzbWFuYWdlciwgYXdzX3NzbSxcbn0gZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBCdWlsZFNwZWMgfSBmcm9tICcuL2J1aWxkLXNwZWMnO1xuaW1wb3J0IHsgcmVuZGVyRW52aXJvbm1lbnRWYXJpYWJsZXMgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBTM19CVUNLRVRfRU5WID0gJ1NDUklQVF9TM19CVUNLRVQnO1xuY29uc3QgUzNfS0VZX0VOViA9ICdTQ1JJUFRfUzNfS0VZJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGVsbGFibGVPcHRpb25zIHtcblxuICAvKipcbiAgICogU291cmNlIGZvciB0aGUgQ29kZUJ1aWxkIHByb2plY3RcbiAgICpcbiAgICogQGRlZmF1bHQgbm8gc291cmNlXG4gICAqL1xuICBzb3VyY2U/OiBjYnVpbGQuSVNvdXJjZTtcblxuICAvKipcbiAgICogV2hhdCBwbGF0Zm9ybSB0byB1cyB0byBydW4gdGhlIHNjcmlwdHMgb25cbiAgICpcbiAgICogQGRlZmF1bHQgU2hlbGxQbGF0Zm9ybS5MaW51eFVidW50dVxuICAgKi9cbiAgcGxhdGZvcm0/OiBTaGVsbFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAqL1xuICBlbnZpcm9ubWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHNlY3JldHMgbWFuYWdlciB2YWx1ZXMuIFRoZSB2YWx1ZXMgbXVzdCBiZSBjb21wbGV0ZSBTZWNyZXQgTWFuYWdlciBBUk5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgKi9cbiAgZW52aXJvbm1lbnRTZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggU1NNIHBhcmFtZXRlciB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAqL1xuICBlbnZpcm9ubWVudFBhcmFtZXRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcHV0ZSB0eXBlIHRvIHVzZSBmb3IgdGhlIGJ1aWxkIGNvbnRhaW5lci5cbiAgICpcbiAgICogTm90ZSB0aGF0IG5vdCBhbGwgY29tYmluYXRpb25zIGFyZSBhdmFpbGFibGUuIEZvciBleGFtcGxlLFxuICAgKiBXaW5kb3dzIGltYWdlcyBjYW5ub3QgYmUgcnVuIG9uIENvbXB1dGVUeXBlLlNtYWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDb21wdXRlVHlwZS5NZWRpdW1cbiAgICovXG4gIGNvbXB1dGVUeXBlPzogY2J1aWxkLkNvbXB1dGVUeXBlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaG93IHRoZSBwcm9qZWN0IGJ1aWxkcyBEb2NrZXIgaW1hZ2VzLiBTcGVjaWZ5IHRydWUgdG8gZW5hYmxlXG4gICAqIHJ1bm5pbmcgdGhlIERvY2tlciBkYWVtb24gaW5zaWRlIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhpcyB2YWx1ZSBtdXN0IGJlXG4gICAqIHNldCB0byB0cnVlIG9ubHkgaWYgdGhpcyBidWlsZCBwcm9qZWN0IHdpbGwgYmUgdXNlZCB0byBidWlsZCBEb2NrZXJcbiAgICogaW1hZ2VzLCBhbmQgdGhlIHNwZWNpZmllZCBidWlsZCBlbnZpcm9ubWVudCBpbWFnZSBpcyBub3Qgb25lIHByb3ZpZGVkIGJ5XG4gICAqIEFXUyBDb2RlQnVpbGQgd2l0aCBEb2NrZXIgc3VwcG9ydC4gT3RoZXJ3aXNlLCBhbGwgYXNzb2NpYXRlZCBidWlsZHMgdGhhdFxuICAgKiBhdHRlbXB0IHRvIGludGVyYWN0IHdpdGggdGhlIERvY2tlciBkYWVtb24gd2lsbCBmYWlsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHJpdmlsZWdlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgYnVpbGQgcHJvamVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgYSBuYW1lIGlzIGdlbmVyYXRlZCBieSBDbG91ZEZvcm1hdGlvbi5cbiAgICovXG4gIGJ1aWxkUHJvamVjdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBSZWdpb25hbCBBV1MgU1RTIGVuZHBvaW50cyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkXG4gICAqIG9mIHRoZSBnbG9iYWwgZW5kcG9pbnQuIFNwZWNpZnkgdHJ1ZSB0byB1c2UgUmVnaW9uYWwgQVdTIFNUUyBlbmRwb2ludHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICB1c2VSZWdpb25hbFN0c0VuZHBvaW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENhbiBiZSB1c2VkIHRvIHJ1biB0aGlzIGJ1aWxkIHVzaW5nIGEgc3BlY2lmaWMgSUFNIHJvbGUuIFRoaXMgY2FuIGJlIHVzZWQsXG4gICAqIGZvciBleGFtcGxlLCB0byBleGVjdXRlIGluIHRoZSBjb250ZXh0IG9mIGFub3RoZXIgYWNjb3VudCAoZS5nLiB0byBydW5cbiAgICogdGVzdHMgaW4gaXNvbGF0aW9uKS5cbiAgICovXG4gIGFzc3VtZVJvbGU/OiBBc3N1bWVSb2xlO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJ1aWxkc3BlYyAoZm9yIGFydGlmYWN0cyBldGMuKVxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBhZGRpdGlvbmFsIGJ1aWxkc3BlY1xuICAgKi9cbiAgYnVpbGRTcGVjPzogQnVpbGRTcGVjO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBvZiB0aGUgYnVpbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRoZSBDb2RlQnVpbGQgZGVmYXVsdCAoMSBob3VyKVxuICAgKi9cbiAgdGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBbGFybSBwZXJpb2QuXG4gICAqXG4gICAqIEBkZWZhdWx0IDMwMCBzZWNvbmRzICg1IG1pbnV0ZXMpXG4gICAqL1xuICBhbGFybVBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aHJlc2hvbGQuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGFsYXJtVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBbGFybSBldmFsdWF0aW9uIHBlcmlvZHMuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGFsYXJtRXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXI7XG5cbiAgc2Vjb25kYXJ5QXJ0aWZhY3ROYW1lcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdXNlZCB0byBjcmVhdGUgYSBTaGVsbGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaGVsbGFibGVQcm9wcyBleHRlbmRzIFNoZWxsYWJsZU9wdGlvbnMge1xuICAvKipcbiAgICogRGlyZWN0b3J5IHdpdGggdGhlIHNjcmlwdHMuXG4gICAqXG4gICAqIFRoZSB3aG9sZSBkaXJlY3Rvcnkgd2lsbCBiZSB1cGxvYWRlZC5cbiAgICovXG4gIHNjcmlwdERpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWxlbmFtZSBvZiB0aGUgaW5pdGlhbCBzY3JpcHQgdG8gc3RhcnQsIHJlbGF0aXZlIHRvIHNjcmlwdERpcmVjdG9yeS5cbiAgICovXG4gIGVudHJ5cG9pbnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3N1bWVSb2xlIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcm9sZSB0byBhc3N1bWUuXG4gICAqL1xuICByb2xlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGlkZW50aWZpZXIgZm9yIHRoZSBhc3N1bWVkIHJvbGUgc2Vzc2lvbi5cbiAgICpcbiAgICogVXNlICB0aGUgIHJvbGUgIHNlc3Npb24gbmFtZSB0byB1bmlxdWVseSBpZGVudGlmeSBhIHNlc3Npb24gd2hlbiB0aGUgc2FtZVxuICAgKiByb2xlIGlzIGFzc3VtZWQgYnkgZGlmZmVyZW50IHByaW5jaXBhbHMgb3IgZm9yIGRpZmZlcmVudCByZWFzb25zLiBJblxuICAgKiBjcm9zcy1hY2NvdW50IHNjZW5hcmlvcywgdGhlIHJvbGUgc2Vzc2lvbiBuYW1lIGlzIHZpc2libGUgdG8sIGFuZCBjYW4gYmVcbiAgICogbG9nZ2VkIGJ5IHRoZSBhY2NvdW50IHRoYXQgb3ducyB0aGUgcm9sZS4gIFRoZSByb2xlIHNlc3Npb24gbmFtZSBpcyBhbHNvXG4gICAqIHVzZWQgaW4gdGhlIEFSTiBvZiB0aGUgYXNzdW1lZCByb2xlIHByaW5jaXBhbC4gVGhpcyBtZWFucyB0aGF0IHN1YnNlcXVlbnRcbiAgICogY3Jvc3MtYWNjb3VudCBBUEkgcmVxdWVzdHMgdXNpbmcgdGhlIHRlbS0gcG9yYXJ5IHNlY3VyaXR5IGNyZWRlbnRpYWxzIHdpbGxcbiAgICogZXhwb3NlIHRoZSByb2xlIHNlc3Npb24gbmFtZSB0byB0aGUgZXh0ZXJuYWwgYWNjb3VudCBpbiB0aGVpciBDbG91ZFRyYWlsXG4gICAqIGxvZ3MuXG4gICAqXG4gICAqIFRoZSByZWdleCB1c2VkIHRvIHZhbGlkYXRlIHRoaXMgcGFyYW1ldGVyIGlzIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnNcbiAgICogY29uc2lzdGluZyAgb2YgdXBwZXItIGFuZCBsb3dlci1jYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdpdGggbm9cbiAgICogc3BhY2VzLiBZb3UgY2FuIGFsc28gaW5jbHVkZSB1bmRlcnNjb3JlcyBvciBhbnkgb2YgdGhlIGZvbGxvd2luZ1xuICAgKiBjaGFyYWN0ZXJzOiA9LC5ALVxuICAgKi9cbiAgc2Vzc2lvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSAgdW5pcXVlICBpZGVudGlmaWVyICB0aGF0ICBpcyAgdXNlZCBieSB0aGlyZCBwYXJ0aWVzIHdoZW4gYXNzdW1pbmcgcm9sZXNcbiAgICogaW4gdGhlaXIgY3VzdG9tZXJzJyBhY2NvdW50cy4gRm9yIGVhY2ggIHJvbGUgIHRoYXQgIHRoZSAgdGhpcmQgcGFydHkgY2FuXG4gICAqIGFzc3VtZSwgdGhleSBzaG91bGQgaW5zdHJ1Y3QgdGhlaXIgY3VzdG9tZXJzIHRvIGVuc3VyZSB0aGUgcm9sZSdzIHRydXN0XG4gICAqIHBvbGljeSBjaGVja3MgZm9yIHRoZSBleHRlcm5hbCBJRCB0aGF0IHRoZSB0aGlyZCAgcGFydHkgZ2VuZXJhdGVkLiAgRWFjaFxuICAgKiB0aW1lIHRoZSB0aGlyZCBwYXJ0eSBhc3N1bWVzIHRoZSByb2xlLCB0aGV5IHNob3VsZCBwYXNzIHRoZSBjdXN0b21lcidzXG4gICAqIGV4dGVybmFsIElELiBUaGUgZXh0ZXJuYWwgSUQgaXMgdXNlZnVsIGluICBvcmRlciB0byAgaGVscCAgdGhpcmQgIHBhcnRpZXNcbiAgICogYmluZCBhIHJvbGUgdG8gdGhlIGN1c3RvbWVyIHdobyBjcmVhdGVkIGl0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVcbiAgICogZXh0ZXJuYWwgSUQsIHNlZSBIb3cgdG8gVXNlIGFuIEV4dGVyLSBuYWwgIElEICBXaGVuIEdyYW50aW5nIEFjY2VzcyB0byBZb3VyXG4gICAqIEFXUyBSZXNvdXJjZXMgdG8gYSBUaGlyZCBQYXJ0eSBpbiB0aGUgSUFNIFVzZXIgR3VpZGUgLlxuICAgKlxuICAgKiBUaGlzIHBhcmFtZXRlciBtdXN0IGJlIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgY29uc2lzdGluZyAgb2YgdXBwZXItIGFuZFxuICAgKiBsb3dlci1jYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdpdGggbm8gc3BhY2VzLiBZb3UgY2FuIGFsc28gaW5jbHVkZVxuICAgKiB1bmRlcnNjb3JlcyBvciAgYW55ICBvZiAgdGhlICBmb2xsb3dpbmcgY2hhcmFjdGVyczogPSwuQDovLVxuICAgKi9cbiAgZXh0ZXJuYWxJZD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiBhIHByb2ZpZSBuYW1lIGlzIGNvbmZpZ3VyZWQsIGFuIGFzc3VtZWQgcm9sZSBjb25maWd1cmF0aW9uIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBpbiB0aGUgc2hhcmVkIGF3cyBjb25maWd1cmF0aW9uIGZpbGUgKH4vLmF3cy9jb25maWcpLiBUaGlzIGlzIGluIGNvbnRyYXJ5IG9mIHNpbXBseSBpbnZva2luZ1xuICAgKiBhbiBgc3RzIGFzc3VtZS1yb2xlYCBjb21tYW5kIHRoYXQgY3JlYXRlcyBhIHNlc3Npb24gd2l0aCBhIGZpeGVkIGV4cGlyeSBkYXRlLlxuICAgKlxuICAgKiBVc2luZyBhIHByb2ZpbGUgd2lsbCBkZWxlZ2F0ZSBjcmVkZW50aWFsIHJlZnJlc2hpbmcgdG8gdGhlIFNESy9DTEkuXG4gICAqIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgbG9uZyBydW5uaW5nIHNlc3Npb25zIHRoYXQgbmVlZHMgc2Vzc2lvbnMgdGhhdCBhcmUgbG9uZ2VyIHRoYW5cbiAgICogdGhlIHNlc3Npb24gZHVyYXRpb24gdGhhdCBjYW4gYmUgY29uZmlndXJlZCB3aXRoIGEgYHN0cyBhc3N1bWUtcm9sZWAuXG4gICAqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBjb2RlIHdpbGwgYWNjZXNzIHRvIHRoaXMgcHJvZmlsZSBpbiB0aGUgYEFXU19QUk9GSUxFYCBlbnYgdmFyaWFibGUuXG4gICAqXG4gICAqIE9ubHkgcmVsZXZhbnQgaWYgYHJlZnJlc2hgIGlzIHNwZWNpZmllZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1maWxlcy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0ICdsb25nLXJ1bm5pbmctcHJvZmlsZSdcbiAgICovXG4gIHByb2ZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoaXMgaWYgeW91IGhhdmUgYSBsb25nIHJ1bm5pbmcgZXhlY3V0aW9uIHRoYXQgbmVlZHMgbG9uZyBydW5uaW5nIHNlc3Npb25zLlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlIGEgcHJvZmlsZSBhbmQgdXNlIGl0IHRvIGRlbGVnYXRlIGNyZWRlbnRpYWwgcmVmcmVzaGluZyB0byB0aGUgU0RLL0NMSVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVmcmVzaD86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBBIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgcnVucyBhcmJpdHJhcnkgc2NyaXB0cy5cbiAqXG4gKiBUaGUgc2NyaXB0cyB0byBiZSBydW4gYXJlIHNwZWNpZmllZCBieSBzdXBwbHlpbmcgYSBkaXJlY3RvcnkuXG4gKiBBbGwgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeSBhcmUgdXBsb2FkZWQsIHRoZW4gdGhlIHNjcmlwdCBkZXNpZ25hdGVkXG4gKiBhcyB0aGUgZW50cnkgcG9pbnQgaXMgc3RhcnRlZC5cbiAqXG4gKiBUaGUgc2NyaXB0IGlzIGV4ZWN1dGVkIGluIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGJ1aWxkIHByb2plY3Qnc1xuICogaW5wdXQgaXMgc3RvcmVkLiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBzY3JpcHQgZmlsZXMgYXJlIHN0b3JlZFxuICogaXMgaW4gdGhlICRTQ1JJUFRfRElSIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICpcbiAqIFN1cHBvcnRzIGJvdGggV2luZG93cyBhbmQgTGludXggY29tcHV0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTaGVsbGFibGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLlByb2plY3Q7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggYWxhcm0gdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBpZiB0aGlzIGFjdGlvbiBmYWlscy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybTogY2xvdWR3YXRjaC5BbGFybTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtOiBTaGVsbFBsYXRmb3JtO1xuICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkU3BlYzogQnVpbGRTcGVjO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3V0cHV0QXJ0aWZhY3ROYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTaGVsbGFibGVQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgdGhpcy5wbGF0Zm9ybSA9IHByb3BzLnBsYXRmb3JtIHx8IFNoZWxsUGxhdGZvcm0uTGludXhVYnVudHU7XG5cbiAgICBjb25zdCBlbnRyeXBvaW50ID0gcGF0aC5qb2luKHByb3BzLnNjcmlwdERpcmVjdG9yeSwgcHJvcHMuZW50cnlwb2ludCk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGVudHJ5cG9pbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHRlc3QgZW50cnlwb2ludDogJHtlbnRyeXBvaW50fWApO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0ID0gbmV3IGFzc2V0cy5Bc3NldCh0aGlzLCAnU2NyaXB0RGlyZWN0b3J5Jywge1xuICAgICAgcGF0aDogcHJvcHMuc2NyaXB0RGlyZWN0b3J5LFxuICAgIH0pO1xuXG4gICAgdGhpcy5vdXRwdXRBcnRpZmFjdE5hbWUgPSBgQXJ0aWZhY3RfJHt0aGlzLm5vZGUudW5pcXVlSWR9YDtcbiAgICBpZiAodGhpcy5vdXRwdXRBcnRpZmFjdE5hbWUubGVuZ3RoID4gMTAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdob29wcywgdG9vIGxvbmc6ICR7dGhpcy5vdXRwdXRBcnRpZmFjdE5hbWV9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5idWlsZFNwZWMgPSBCdWlsZFNwZWMuc2ltcGxlKHtcbiAgICAgIHByZUJ1aWxkOiB0aGlzLnBsYXRmb3JtLnByZWJ1aWxkQ29tbWFuZHMocHJvcHMuYXNzdW1lUm9sZSwgcHJvcHMudXNlUmVnaW9uYWxTdHNFbmRwb2ludHMpLFxuICAgICAgYnVpbGQ6IHRoaXMucGxhdGZvcm0uYnVpbGRDb21tYW5kcyhwcm9wcy5lbnRyeXBvaW50KSxcbiAgICB9KS5tZXJnZShwcm9wcy5idWlsZFNwZWMgfHwgQnVpbGRTcGVjLmVtcHR5KCkpO1xuXG4gICAgY29uc3QgZW52aXJvbm1lbnRTZWNyZXRzQXNTZWNyZXROYW1lcyA9IHRoaXMuY29udmVydEVudmlyb25tZW50U2VjcmV0QXJuc1RvU2VjcmV0TmFtZXMocHJvcHMuZW52aXJvbm1lbnRTZWNyZXRzKTtcblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjYnVpbGQuUHJvamVjdCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBwcm9qZWN0TmFtZTogcHJvcHMuYnVpbGRQcm9qZWN0TmFtZSxcbiAgICAgIHNvdXJjZTogcHJvcHMuc291cmNlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgYnVpbGRJbWFnZTogdGhpcy5wbGF0Zm9ybS5idWlsZEltYWdlLFxuICAgICAgICBjb21wdXRlVHlwZTogcHJvcHMuY29tcHV0ZVR5cGUgfHwgY2J1aWxkLkNvbXB1dGVUeXBlLk1FRElVTSxcbiAgICAgICAgcHJpdmlsZWdlZDogcHJvcHMucHJpdmlsZWdlZCxcbiAgICAgIH0sXG4gICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczoge1xuICAgICAgICBbUzNfQlVDS0VUX0VOVl06IHsgdmFsdWU6IGFzc2V0LnMzQnVja2V0TmFtZSB9LFxuICAgICAgICBbUzNfS0VZX0VOVl06IHsgdmFsdWU6IGFzc2V0LnMzT2JqZWN0S2V5IH0sXG4gICAgICAgIC4uLnJlbmRlckVudmlyb25tZW50VmFyaWFibGVzKHByb3BzLmVudmlyb25tZW50KSxcbiAgICAgICAgLi4ucmVuZGVyRW52aXJvbm1lbnRWYXJpYWJsZXMoZW52aXJvbm1lbnRTZWNyZXRzQXNTZWNyZXROYW1lcywgY2J1aWxkLkJ1aWxkRW52aXJvbm1lbnRWYXJpYWJsZVR5cGUuU0VDUkVUU19NQU5BR0VSKSxcbiAgICAgICAgLi4ucmVuZGVyRW52aXJvbm1lbnRWYXJpYWJsZXMocHJvcHMuZW52aXJvbm1lbnRQYXJhbWV0ZXJzLCBjYnVpbGQuQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZS5QQVJBTUVURVJfU1RPUkUpLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQsXG4gICAgICBidWlsZFNwZWM6IGNidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh0aGlzLmJ1aWxkU3BlYy5yZW5kZXIoeyBwcmltYXJ5QXJ0aWZhY3ROYW1lOiB0aGlzLm91dHB1dEFydGlmYWN0TmFtZSB9KSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnJvbGUgPSB0aGlzLnByb2plY3Qucm9sZSE7IC8vIG5vdCB1bmRlZmluZWQsIGFzIGl0J3MgYSBuZXcgUHJvamVjdFxuICAgIGFzc2V0LmdyYW50UmVhZCh0aGlzLnJvbGUpO1xuXG4gICAgLy8gR3JhbnQgcmVhZCBhY2Nlc3MgdG8gc2VjcmV0c1xuICAgIE9iamVjdC5lbnRyaWVzKHByb3BzLmVudmlyb25tZW50U2VjcmV0cyA/PyB7fSkuZm9yRWFjaCgoW25hbWUsIHNlY3JldEFybl0pID0+IHtcbiAgICAgIGNvbnN0IHNlY3JldCA9IGF3c19zZWNyZXRzbWFuYWdlci5TZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIGAke25hbWV9U2VjcmV0YCwgc2VjcmV0QXJuKTtcbiAgICAgIHNlY3JldC5ncmFudFJlYWQodGhpcy5yb2xlKTtcbiAgICB9KTtcblxuICAgIC8vIEdyYW50IHJlYWQgYWNjZXNzIHRvIHBhcmFtZXRlcnNcbiAgICBPYmplY3QuZW50cmllcyhwcm9wcy5lbnZpcm9ubWVudFBhcmFtZXRlcnMgPz8ge30pLmZvckVhY2goKFtuYW1lLCBwYXJhbWV0ZXJOYW1lXSkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1ldGVyID0gYXdzX3NzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgYCR7bmFtZX1QYXJhbWV0ZXJgLCBwYXJhbWV0ZXJOYW1lKTtcbiAgICAgIHBhcmFtZXRlci5ncmFudFJlYWQodGhpcy5yb2xlKTtcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5hc3N1bWVSb2xlKSB7XG4gICAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ3N0czpBc3N1bWVSb2xlJ10sXG4gICAgICAgIHJlc291cmNlczogW3Byb3BzLmFzc3VtZVJvbGUucm9sZUFybl0sXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGFybSA9IG5ldyBjbG91ZHdhdGNoLkFsYXJtKHRoaXMsICdBbGFybScsIHtcbiAgICAgIG1ldHJpYzogdGhpcy5wcm9qZWN0Lm1ldHJpY0ZhaWxlZEJ1aWxkcyh7IHBlcmlvZDogcHJvcHMuYWxhcm1QZXJpb2QgfHwgRHVyYXRpb24uc2Vjb25kcygzMDApIH0pLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy5hbGFybVRocmVzaG9sZCB8fCAxLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLmFsYXJtRXZhbHVhdGlvblBlcmlvZHMgfHwgMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgbmFtZTogc3RyaW5nLCBpbnB1dEFydGlmYWN0OiBjcGlwZWxpbmUuQXJ0aWZhY3QsIHJ1bk9yZGVyPzogbnVtYmVyKTpcbiAgY3BpcGVsaW5lX2FjdGlvbnMuQ29kZUJ1aWxkQWN0aW9uIHtcbiAgICBjb25zdCBjb2RlQnVpbGRBY3Rpb24gPSBuZXcgY3BpcGVsaW5lX2FjdGlvbnMuQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgIGFjdGlvbk5hbWU6IG5hbWUsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgICBydW5PcmRlcixcbiAgICAgIGlucHV0OiBpbnB1dEFydGlmYWN0LFxuICAgICAgb3V0cHV0czogW25ldyBjcGlwZWxpbmUuQXJ0aWZhY3QodGhpcy5vdXRwdXRBcnRpZmFjdE5hbWUpXS5jb25jYXQoXG4gICAgICAgIHRoaXMuYnVpbGRTcGVjLmFkZGl0aW9uYWxBcnRpZmFjdE5hbWVzLm1hcChhcnRpZmFjdE5hbWUgPT4gbmV3IGNwaXBlbGluZS5BcnRpZmFjdChhcnRpZmFjdE5hbWUpKSksXG4gICAgfSk7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKGNvZGVCdWlsZEFjdGlvbik7XG4gICAgcmV0dXJuIGNvZGVCdWlsZEFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udHJhY3Qgb2YgYGVudmlyb25tZW50U2VjcmV0c2AgaXMgdGhhdCB0aGUgdmFsdWVzIGFyZSBjb21wbGV0ZSBTZWNyZXQgQVJOcztcbiAgICogaG93ZXZlciwgdGhlIENvZGVCdWlsZCBjb25zdHJ1Y3QgZXhwZWN0cyBzZWNyZXQgbmFtZXMgYXMgdGhlIGlucHV0cyBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKiBUaGlzIG1ldGhvZCBjb252ZXJ0cyB0aGUgZW52aXJvbm1lbnQgc2VjcmV0cyBmcm9tIEFSTnMgdG8gbmFtZXMuXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRFbnZpcm9ubWVudFNlY3JldEFybnNUb1NlY3JldE5hbWVzKGVudmlyb25tZW50U2VjcmV0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICBpZiAoIWVudmlyb25tZW50U2VjcmV0cykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBvdXQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7IH07XG4gICAgT2JqZWN0LmVudHJpZXMoZW52aXJvbm1lbnRTZWNyZXRzID8/IHt9KS5mb3JFYWNoKChbbmFtZSwgc2VjcmV0QXJuXSkgPT4ge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gYXdzX3NlY3JldHNtYW5hZ2VyLlNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgYCR7bmFtZX1TZWNyZXRGcm9tQXJuYCwgc2VjcmV0QXJuKTtcbiAgICAgIG91dFtuYW1lXSA9IHNlY3JldC5zZWNyZXROYW1lO1xuICAgIH0pO1xuICAgIHJldHVybiBvdXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQbGF0Zm9ybSBhcmNoZXR5cGVcbiAqL1xuZXhwb3J0IGVudW0gUGxhdGZvcm1UeXBlIHtcbiAgTGludXggPSAnTGludXgnLFxuICBXaW5kb3dzID0gJ1dpbmRvd3MnXG59XG5cbi8qKlxuICogVGhlIHBsYXRmb3JtIHR5cGUgdG8gcnVuIHRoZSBzY3JpcHRzIG9uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTaGVsbFBsYXRmb3JtIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIGRlZmF1bHQgVWJ1bnR1IExpbnV4IHBsYXRmb3JtXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBMaW51eFVidW50dSgpOiBTaGVsbFBsYXRmb3JtIHtcbiAgICAvLyBDYW5ub3QgYmUgc3RhdGljIG1lbWJlciBiZWNhdXNlIG9mIGluaXRpYWxpemF0aW9uIG9yZGVyXG4gICAgcmV0dXJuIG5ldyBMaW51eFBsYXRmb3JtKGNidWlsZC5MaW51eEJ1aWxkSW1hZ2UuU1RBTkRBUkRfNF8wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBkZWZhdWx0IFdpbmRvd3MgcGxhdGZvcm1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IFdpbmRvd3MoKTogU2hlbGxQbGF0Zm9ybSB7XG4gICAgLy8gQ2Fubm90IGJlIHN0YXRpYyBtZW1iZXIgYmVjYXVzZSBvZiBpbml0aWFsaXphdGlvbiBvcmRlclxuICAgIHJldHVybiBuZXcgV2luZG93c1BsYXRmb3JtKGNidWlsZC5XaW5kb3dzQnVpbGRJbWFnZS5XSU5fU0VSVkVSX0NPUkVfMjAxOV9CQVNFKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBidWlsZEltYWdlOiBjYnVpbGQuSUJ1aWxkSW1hZ2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gY29tbWFuZHMgdG8gZG93bmxvYWQgdGhlIHNjcmlwdCBidW5kbGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwcmVidWlsZENvbW1hbmRzKGFzc3VtZVJvbGU/OiBBc3N1bWVSb2xlLCB1c2VSZWdpb25hbFN0c0VuZHBvaW50cz86IGJvb2xlYW4pOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmV0dXJuIGNvbW1hbmRzIHRvIHN0YXJ0IHRoZSBlbnRyeXBvaW50IHNjcmlwdFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJ1aWxkQ29tbWFuZHMoZW50cnlwb2ludDogc3RyaW5nKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgcGxhdGZvcm1cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgcGxhdGZvcm1UeXBlKCk6IFBsYXRmb3JtVHlwZTtcbn1cblxuLyoqXG4gKiBBIExpbnV4IFBsYXRmb3JtXG4gKi9cbmV4cG9ydCBjbGFzcyBMaW51eFBsYXRmb3JtIGV4dGVuZHMgU2hlbGxQbGF0Zm9ybSB7XG4gIHB1YmxpYyByZWFkb25seSBwbGF0Zm9ybVR5cGUgPSBQbGF0Zm9ybVR5cGUuTGludXg7XG5cbiAgcHVibGljIHByZWJ1aWxkQ29tbWFuZHMoYXNzdW1lUm9sZT86IEFzc3VtZVJvbGUsIHVzZVJlZ2lvbmFsU3RzRW5kcG9pbnRzPzogYm9vbGVhbik6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgLy8gQmV0dGVyIGVjaG8gdGhlIGxvY2F0aW9uIGhlcmU7IGlmIHRoaXMgZmFpbHMsIHRoZSBlcnJvciBtZXNzYWdlIG9ubHkgY29udGFpbnNcbiAgICAvLyB0aGUgdW5leHBhbmRlZCB2YXJpYWJsZXMgYnkgZGVmYXVsdC4gSXQgbWlnaHQgZmFpbCBpZiB5b3UncmUgcnVubmluZyBhbiBvbGRcbiAgICAvLyBkZWZpbml0aW9uIG9mIHRoZSBDb2RlQnVpbGQgcHJvamVjdC0tdGhlIHBlcm1pc3Npb25zIHdpbGwgaGF2ZSBiZWVuIGNoYW5nZWRcbiAgICAvLyB0byBvbmx5IGFsbG93IGRvd25sb2FkaW5nIHRoZSB2ZXJ5IGxhdGVzdCB2ZXJzaW9uLlxuICAgIGxpbmVzLnB1c2goYGVjaG8gXCJEb3dubG9hZGluZyBzY3JpcHRzIGZyb20gczM6Ly9cXCR7JHtTM19CVUNLRVRfRU5WfX0vXFwkeyR7UzNfS0VZX0VOVn19XCJgKTtcbiAgICBsaW5lcy5wdXNoKGBhd3MgczMgY3AgczM6Ly9cXCR7JHtTM19CVUNLRVRfRU5WfX0vXFwkeyR7UzNfS0VZX0VOVn19IC90bXBgKTtcbiAgICBsaW5lcy5wdXNoKCdta2RpciAtcCAvdG1wL3NjcmlwdGRpcicpO1xuICAgIGxpbmVzLnB1c2goYHVuemlwIC90bXAvJChiYXNlbmFtZSBcXCQke1MzX0tFWV9FTlZ9KSAtZCAvdG1wL3NjcmlwdGRpcmApO1xuXG4gICAgaWYgKGFzc3VtZVJvbGUpIHtcblxuICAgICAgaWYgKGFzc3VtZVJvbGUucmVmcmVzaCkge1xuXG4gICAgICAgIGNvbnN0IGF3c0hvbWUgPSAnfi8uYXdzJztcblxuICAgICAgICBjb25zdCBwcm9maWxlTmFtZSA9IGFzc3VtZVJvbGUucHJvZmlsZU5hbWUgPz8gJ2xvbmctcnVubmluZy1wcm9maWxlJztcblxuICAgICAgICBsaW5lcy5wdXNoKGBta2RpciAtcCAke2F3c0hvbWV9YCk7XG4gICAgICAgIGxpbmVzLnB1c2goYHRvdWNoICR7YXdzSG9tZX0vY3JlZGVudGlhbHNgKTtcbiAgICAgICAgbGluZXMucHVzaChgY29uZmlnPSR7YXdzSG9tZX0vY29uZmlnYCk7XG4gICAgICAgIGxpbmVzLnB1c2goYGVjaG8gW3Byb2ZpbGUgJHtwcm9maWxlTmFtZX1dPj4gJFxce2NvbmZpZ1xcfWApO1xuICAgICAgICBsaW5lcy5wdXNoKCdlY2hvIGNyZWRlbnRpYWxfc291cmNlID0gRWNzQ29udGFpbmVyID4+ICRcXHtjb25maWdcXH0nKTtcbiAgICAgICAgbGluZXMucHVzaChgZWNobyByb2xlX3Nlc3Npb25fbmFtZSA9ICR7YXNzdW1lUm9sZS5zZXNzaW9uTmFtZX0gPj4gJFxce2NvbmZpZ1xcfWApO1xuICAgICAgICBsaW5lcy5wdXNoKGBlY2hvIHJvbGVfYXJuID0gJHthc3N1bWVSb2xlLnJvbGVBcm59ID4+ICRjb25maWdgKTtcblxuICAgICAgICBpZiAoYXNzdW1lUm9sZS5leHRlcm5hbElkKSB7XG4gICAgICAgICAgbGluZXMucHVzaChgZWNobyBleHRlcm5hbF9pZCA9ICR7YXNzdW1lUm9sZS5leHRlcm5hbElkfSA+PiAkY29uZmlnYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsZXQgdGhlIGFwcGxpY2F0aW9uIGNvZGUga25vdyB3aGljaCByb2xlIGlzIGJlaW5nIHVzZWQuXG4gICAgICAgIGxpbmVzLnB1c2goYGV4cG9ydCBBV1NfUFJPRklMRT0ke3Byb2ZpbGVOYW1lfWApO1xuXG4gICAgICAgIC8vIGZvcmNlIHRoZSBBV1MgU0RLIGZvciBKYXZhU2NyaXB0IHRvIGFjdHVhbGx5IGxvYWQgdGhlIGNvbmZpZyBmaWxlIChkbyBhdXRvbWF0aWNhbGx5IHNvIHVzZXJzIGRvbid0IGZvcmdldClcbiAgICAgICAgbGluZXMucHVzaCgnZXhwb3J0IEFXU19TREtfTE9BRF9DT05GSUc9MScpO1xuXG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGNvbnN0IGV4dGVybmFsSWQgPSBhc3N1bWVSb2xlLmV4dGVybmFsSWQgPyBgLS1leHRlcm5hbC1pZCBcIiR7YXNzdW1lUm9sZS5leHRlcm5hbElkfVwiYCA6ICcnO1xuICAgICAgICBjb25zdCBTdHNFbmRwb2ludHMgPSB1c2VSZWdpb25hbFN0c0VuZHBvaW50cyA/ICdyZWdpb25hbCcgOiAnbGVnYWN5JztcblxuICAgICAgICBsaW5lcy5wdXNoKCdjcmVkcz0kKG1rdGVtcCAtZCkvY3JlZHMuanNvbicpO1xuICAgICAgICBsaW5lcy5wdXNoKGBBV1NfU1RTX1JFR0lPTkFMX0VORFBPSU5UUz0ke1N0c0VuZHBvaW50c30gYXdzIHN0cyBhc3N1bWUtcm9sZSAtLXJvbGUtYXJuIFwiJHthc3N1bWVSb2xlLnJvbGVBcm59XCIgLS1yb2xlLXNlc3Npb24tbmFtZSBcIiR7YXNzdW1lUm9sZS5zZXNzaW9uTmFtZX1cIiAke2V4dGVybmFsSWR9ID4gJGNyZWRzYCk7XG4gICAgICAgIGxpbmVzLnB1c2goJ2V4cG9ydCBBV1NfQUNDRVNTX0tFWV9JRD1cIiQoY2F0ICR7Y3JlZHN9IHwgZ3JlcCBcIkFjY2Vzc0tleUlkXCIgfCBjdXQgLWRcXCdcIlxcJyAtZiA0KVwiJyk7XG4gICAgICAgIGxpbmVzLnB1c2goJ2V4cG9ydCBBV1NfU0VDUkVUX0FDQ0VTU19LRVk9XCIkKGNhdCAke2NyZWRzfSB8IGdyZXAgXCJTZWNyZXRBY2Nlc3NLZXlcIiB8IGN1dCAtZFxcJ1wiXFwnIC1mIDQpXCInKTtcbiAgICAgICAgbGluZXMucHVzaCgnZXhwb3J0IEFXU19TRVNTSU9OX1RPS0VOPVwiJChjYXQgJHtjcmVkc30gfCBncmVwIFwiU2Vzc2lvblRva2VuXCIgfCBjdXQgLWRcXCdcIlxcJyAtZiA0KVwiJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmVzO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkQ29tbWFuZHMoZW50cnlwb2ludDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAnZXhwb3J0IFNDUklQVF9ESVI9L3RtcC9zY3JpcHRkaXInLFxuICAgICAgYGVjaG8gXCJSdW5uaW5nICR7ZW50cnlwb2ludH1cImAsXG4gICAgICBgL2Jpbi9iYXNoIC90bXAvc2NyaXB0ZGlyLyR7ZW50cnlwb2ludH1gLFxuICAgIF07XG4gIH1cbn1cblxuLyoqXG4gKiBBIFdpbmRvd3MgUGxhdGZvcm1cbiAqL1xuZXhwb3J0IGNsYXNzIFdpbmRvd3NQbGF0Zm9ybSBleHRlbmRzIFNoZWxsUGxhdGZvcm0ge1xuICBwdWJsaWMgcmVhZG9ubHkgcGxhdGZvcm1UeXBlID0gUGxhdGZvcm1UeXBlLldpbmRvd3M7XG5cbiAgcHVibGljIHByZWJ1aWxkQ29tbWFuZHMoYXNzdW1lUm9sZT86IEFzc3VtZVJvbGUsIF91c2VSZWdpb25hbFN0c0VuZHBvaW50cz86IGJvb2xlYW4pOiBzdHJpbmdbXSB7XG4gICAgaWYgKGFzc3VtZVJvbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXNzdW1lUm9sZSBpcyBub3Qgc3VwcG9ydGVkIG9uIFdpbmRvd3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9jZGtsYWJzL2F3cy1kZWxpdmxpYi9pc3N1ZXMvNTcnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gV291bGQgbG92ZSB0byBkbyBkb3dubG9hZGluZyBoZXJlIGFuZCBleGVjdXRpbmcgaW4gdGhlIG5leHQgc3RlcCxcbiAgICAgIC8vIGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIHByb3BhZ2F0ZSB0aGUgdmFsdWUgb2YgJFRFTVBESVIuXG4gICAgICAvL1xuICAgICAgLy8gUHVudGluZyBmb3Igc29tZW9uZSB3aG8ga25vd3MgUG93ZXJTaGVsbCB3ZWxsIGVub3VnaC5cbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkQ29tbWFuZHMoZW50cnlwb2ludDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAnU2V0LVZhcmlhYmxlIC1OYW1lIFRFTVBESVIgLVZhbHVlIChOZXctVGVtcG9yYXJ5RmlsZSkuRGlyZWN0b3J5TmFtZScsXG4gICAgICBgYXdzIHMzIGNwIHMzOi8vJGVudjoke1MzX0JVQ0tFVF9FTlZ9LyRlbnY6JHtTM19LRVlfRU5WfSAkVEVNUERJUlxcXFxzY3JpcHRzLnppcGAsXG4gICAgICAnTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkVEVNUERJUlxcXFxzY3JpcHRkaXInLFxuICAgICAgJ0V4cGFuZC1BcmNoaXZlIC1QYXRoICRURU1QRElSL3NjcmlwdHMuemlwIC1EZXN0aW5hdGlvblBhdGggJFRFTVBESVJcXFxcc2NyaXB0ZGlyJyxcbiAgICAgICckZW52OlNDUklQVF9ESVIgPSBcIiRURU1QRElSXFxcXHNjcmlwdGRpclwiJyxcbiAgICAgIGAmICRURU1QRElSXFxcXHNjcmlwdGRpclxcXFwke2VudHJ5cG9pbnR9YCxcbiAgICBdO1xuICB9XG59XG4iXX0=
|
package/lib/util.js
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.flatMap = exports.mapValues = exports.noUndefined = exports.renderEnvironmentVariables = exports.hashFileOrDirectory = exports.determineRunOrder = void 0;
|
|
4
|
-
const crypto = require("crypto");
|
|
5
|
-
const fs = require("fs");
|
|
6
|
-
const path = require("path");
|
|
23
|
+
const crypto = __importStar(require("crypto"));
|
|
24
|
+
const fs = __importStar(require("fs"));
|
|
25
|
+
const path = __importStar(require("path"));
|
|
7
26
|
/**
|
|
8
27
|
* Determines the "RunOrder" property for the next action to be added to a stage.
|
|
9
28
|
* @param index Index of new action
|
|
@@ -79,4 +98,4 @@ function flatMap(xs, fn) {
|
|
|
79
98
|
return ret;
|
|
80
99
|
}
|
|
81
100
|
exports.flatMap = flatMap;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUNqQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBSTdCOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsV0FBb0I7SUFDbkUsaURBQWlEO0lBQ2pELElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRTtRQUM3QixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFQRCw4Q0FPQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxTQUFpQjtJQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ3RCLEtBQUssTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RDtLQUNGO1NBQU07UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN6QztJQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBWkQsa0RBWUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxHQUEyQyxFQUFFLElBQTBDO0lBQ2hJLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sR0FBRyxHQUF1RCxFQUFHLENBQUM7SUFDcEUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDOUMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUM1QjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBWkQsZ0VBWUM7QUFFRCxTQUFnQixXQUFXLENBQUksRUFBYztJQUMzQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDdkMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ25CLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDWjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixTQUFTLENBQU8sRUFBc0IsRUFBRSxFQUFlO0lBQ3JFLE1BQU0sR0FBRyxHQUF1QixFQUFFLENBQUM7SUFDbkMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNoQjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQU5ELDhCQU1DO0FBRUQsU0FBZ0IsT0FBTyxDQUFPLEVBQU8sRUFBRSxFQUFpQjtJQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBSyxDQUFDO0lBQzNCLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQU5ELDBCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQgfSBmcm9tICdtb25vY2RrJztcblxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIFwiUnVuT3JkZXJcIiBwcm9wZXJ0eSBmb3IgdGhlIG5leHQgYWN0aW9uIHRvIGJlIGFkZGVkIHRvIGEgc3RhZ2UuXG4gKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgbmV3IGFjdGlvblxuICogQHBhcmFtIGNvbmN1cnJlbmN5IFRoZSBjb25jdXJyZW5jeSBsaW1pdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZXJtaW5lUnVuT3JkZXIoaW5kZXg6IG51bWJlciwgY29uY3VycmVuY3k/OiBudW1iZXIpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAvLyBubyBydW5PcmRlciBpZiB3ZSBhcmUgYXQgdW5saW1pdGVkIGNvbmN1cnJlbmN5XG4gIGlmIChjb25jdXJyZW5jeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBNYXRoLmZsb29yKGluZGV4IC8gY29uY3VycmVuY3kpICsgMTtcbn1cblxuLyoqXG4gKiBIYXNoZXMgdGhlIGNvbnRlbnRzIG9mIGEgZmlsZSBvciBkaXJlY3RvcnkuIElmIHRoZSBhcmd1bWVudCBpcyBhIGRpcmVjdG9yeSxcbiAqIGl0IGlzIGFzc3VtZWQgbm90IHRvIGNvbnRhaW4gc3ltbGlua3MgdGhhdCB3b3VsZCByZXN1bHQgaW4gYSBjeWNsaWMgdHJlZS5cbiAqXG4gKiBAcGFyYW0gZmlsZU9yRGlyIHRoZSBwYXRoIHRvIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSB0aGF0IHNob3VsZCBiZSBoYXNoZWQuXG4gKlxuICogQHJldHVybnMgYSBTSEEyNTYgaGFzaCwgYmFzZS02NCBlbmNvZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaEZpbGVPckRpcmVjdG9yeShmaWxlT3JEaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnU0hBMjU2Jyk7XG4gIGhhc2gudXBkYXRlKHBhdGguYmFzZW5hbWUoZmlsZU9yRGlyKSkudXBkYXRlKCdcXDAnKTtcbiAgY29uc3Qgc3RhdCA9IGZzLnN0YXRTeW5jKGZpbGVPckRpcik7XG4gIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZnMucmVhZGRpclN5bmMoZmlsZU9yRGlyKS5zb3J0KCkpIHtcbiAgICAgIGhhc2gudXBkYXRlKGhhc2hGaWxlT3JEaXJlY3RvcnkocGF0aC5qb2luKGZpbGVPckRpciwgaXRlbSkpKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaGFzaC51cGRhdGUoZnMucmVhZEZpbGVTeW5jKGZpbGVPckRpcikpO1xuICB9XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJFbnZpcm9ubWVudFZhcmlhYmxlcyhlbnY/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9LCB0eXBlPzogY2J1aWxkLkJ1aWxkRW52aXJvbm1lbnRWYXJpYWJsZVR5cGUpIHtcbiAgaWYgKCFlbnYpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgb3V0OiB7IFtrZXk6IHN0cmluZ106IGNidWlsZC5CdWlsZEVudmlyb25tZW50VmFyaWFibGUgfSA9IHsgfTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZW52KSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvdXRba2V5XSA9IHsgdmFsdWUsIHR5cGUgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vVW5kZWZpbmVkPFQ+KHhzOiBQYXJ0aWFsPFQ+KToge1trIGluIGtleW9mIFRdOiBUW2tdfSB7XG4gIGNvbnN0IHJldDogYW55ID0ge307XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHhzKSkge1xuICAgIGlmICh2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldFtrXSA9IHY7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBWYWx1ZXM8VCwgVT4oeHM6IHtba2V5OiBzdHJpbmddOiBUfSwgZm46ICh4OiBUKSA9PiBVKToge1trZXk6IHN0cmluZ106IFV9IHtcbiAgY29uc3QgcmV0OiB7W2tleTogc3RyaW5nXTogVX0gPSB7fTtcbiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgcmV0W2tdID0gZm4odik7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oeHM6IFRbXSwgZm46ICh4OiBUKSA9PiBVW10pOiBVW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goLi4uZm4oeCkpO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
|