@cdktn/provider-schema 0.25.0-pre.11 → 0.25.0-pre.12

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.
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  Object.defineProperty(exports, "__esModule", { value: true });
28
38
  const fs = __importStar(require("fs-extra"));
29
39
  const os = __importStar(require("os"));
@@ -74,4 +84,4 @@ describe("cachedAccess", () => {
74
84
  expect(files[0]).not.toContain("undefined");
75
85
  });
76
86
  });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2FjaGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixvQ0FBd0M7QUFFeEMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsSUFBSSxRQUFnQixDQUFDO0lBRXJCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFZLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVqRSxNQUFNLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFTLENBQUMsQ0FBQztRQUVqRSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMs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QUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGNhY2hlZEFjY2VzcyB9IGZyb20gXCIuLi9jYWNoZVwiO1xuXG5kZXNjcmliZShcImNhY2hlZEFjY2Vzc1wiLCAoKSA9PiB7XG4gIGxldCBjYWNoZURpcjogc3RyaW5nO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNhY2hlRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcInByb3ZpZGVyLXNjaGVtYS1jYWNoZS1cIikpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGZzLnJlbW92ZVN5bmMoY2FjaGVEaXIpO1xuICB9KTtcblxuICBpdChcIndyaXRlcyB0byBhIHN1ZmZpeC1xdWFsaWZpZWQgY2FjaGUgZmlsZSB3aGVuIGEga2V5U3VmZml4IGlzIGdpdmVuXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlciA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSh7IGhlbGxvOiBcIndvcmxkXCIgfSk7XG4gICAgY29uc3QgYWNjZXNzID0gY2FjaGVkQWNjZXNzKHByb2R1Y2VyLCBjYWNoZURpciwgXCJ0ZXJyYWZvcm0tMS43XCIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueSk7XG5cbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBlY3QoZmlsZXNbMF0pLnRvQ29udGFpbihcInRlcnJhZm9ybS0xLjdcIik7XG4gIH0pO1xuXG4gIGl0KFwia2VlcHMgZGlzdGluY3QgY2FjaGUgZmlsZXMgZm9yIGRpc3RpbmN0IHN1ZmZpeGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlckEgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyB2OiBcImFcIiB9KTtcbiAgICBjb25zdCBwcm9kdWNlckIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyB2OiBcImJcIiB9KTtcblxuICAgIGNvbnN0IGlucHV0ID0geyBmcW46IFwiaGFzaGljb3JwL251bGxcIiwgdmVyc2lvbjogXCIzLjEuMFwiIH0gYXMgYW55O1xuXG4gICAgYXdhaXQgY2FjaGVkQWNjZXNzKHByb2R1Y2VyQSwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKShpbnB1dCk7XG4gICAgYXdhaXQgY2FjaGVkQWNjZXNzKHByb2R1Y2VyQiwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuMTVcIikoaW5wdXQpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMik7XG4gICAgZXhwZWN0KHByb2R1Y2VyQSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChwcm9kdWNlckIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJoaXRzIHRoZSBzYW1lIGNhY2hlIGZpbGUgb24gcmVwZWF0ZWQgY2FsbHMgd2l0aCB0aGUgc2FtZSBzdWZmaXhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2R1Y2VyID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJhXCIgfSk7XG4gICAgY29uc3QgaW5wdXQgPSB7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnk7XG4gICAgY29uc3QgYWNjZXNzID0gY2FjaGVkQWNjZXNzKHByb2R1Y2VyLCBjYWNoZURpciwgXCJ0ZXJyYWZvcm0tMS43XCIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKGlucHV0KTtcbiAgICBhd2FpdCBhY2Nlc3MoaW5wdXQpO1xuXG4gICAgZXhwZWN0KHByb2R1Y2VyKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKSkudG9IYXZlTGVuZ3RoKDEpO1xuICB9KTtcblxuICBpdChcInN0YXlzIGJhY2t3YXJkLWNvbXBhdGlibGUgd2l0aG91dCBhIGtleVN1ZmZpeFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyBoZWxsbzogXCJ3b3JsZFwiIH0pO1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIpO1xuXG4gICAgYXdhaXQgYWNjZXNzKHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueSk7XG5cbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGNhY2hlRGlyKTtcbiAgICBleHBlY3QoZmlsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBlY3QoZmlsZXNbMF0pLm5vdC50b0NvbnRhaW4oXCJ1bmRlZmluZWRcIik7XG4gIH0pO1xufSk7XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2FjaGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0Isb0NBQXdDO0FBRXhDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksUUFBZ0IsQ0FBQztJQUVyQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQkFBWSxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFakUsTUFBTSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBUyxDQUFDLENBQUM7UUFFakUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMs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QUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBjYWNoZWRBY2Nlc3MgfSBmcm9tIFwiLi4vY2FjaGVcIjtcblxuZGVzY3JpYmUoXCJjYWNoZWRBY2Nlc3NcIiwgKCkgPT4ge1xuICBsZXQgY2FjaGVEaXI6IHN0cmluZztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjYWNoZURpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJwcm92aWRlci1zY2hlbWEtY2FjaGUtXCIpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBmcy5yZW1vdmVTeW5jKGNhY2hlRGlyKTtcbiAgfSk7XG5cbiAgaXQoXCJ3cml0ZXMgdG8gYSBzdWZmaXgtcXVhbGlmaWVkIGNhY2hlIGZpbGUgd2hlbiBhIGtleVN1ZmZpeCBpcyBnaXZlblwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXIgPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoeyBoZWxsbzogXCJ3b3JsZFwiIH0pO1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKTtcblxuICAgIGF3YWl0IGFjY2Vzcyh7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnkpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgZXhwZWN0KGZpbGVzWzBdKS50b0NvbnRhaW4oXCJ0ZXJyYWZvcm0tMS43XCIpO1xuICB9KTtcblxuICBpdChcImtlZXBzIGRpc3RpbmN0IGNhY2hlIGZpbGVzIGZvciBkaXN0aW5jdCBzdWZmaXhlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjZXJBID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJhXCIgfSk7XG4gICAgY29uc3QgcHJvZHVjZXJCID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgdjogXCJiXCIgfSk7XG5cbiAgICBjb25zdCBpbnB1dCA9IHsgZnFuOiBcImhhc2hpY29ycC9udWxsXCIsIHZlcnNpb246IFwiMy4xLjBcIiB9IGFzIGFueTtcblxuICAgIGF3YWl0IGNhY2hlZEFjY2Vzcyhwcm9kdWNlckEsIGNhY2hlRGlyLCBcInRlcnJhZm9ybS0xLjdcIikoaW5wdXQpO1xuICAgIGF3YWl0IGNhY2hlZEFjY2Vzcyhwcm9kdWNlckIsIGNhY2hlRGlyLCBcInRlcnJhZm9ybS0xLjE1XCIpKGlucHV0KTtcblxuICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmMoY2FjaGVEaXIpO1xuICAgIGV4cGVjdChmaWxlcykudG9IYXZlTGVuZ3RoKDIpO1xuICAgIGV4cGVjdChwcm9kdWNlckEpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QocHJvZHVjZXJCKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KFwiaGl0cyB0aGUgc2FtZSBjYWNoZSBmaWxlIG9uIHJlcGVhdGVkIGNhbGxzIHdpdGggdGhlIHNhbWUgc3VmZml4XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9kdWNlciA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSh7IHY6IFwiYVwiIH0pO1xuICAgIGNvbnN0IGlucHV0ID0geyBmcW46IFwiaGFzaGljb3JwL251bGxcIiwgdmVyc2lvbjogXCIzLjEuMFwiIH0gYXMgYW55O1xuICAgIGNvbnN0IGFjY2VzcyA9IGNhY2hlZEFjY2Vzcyhwcm9kdWNlciwgY2FjaGVEaXIsIFwidGVycmFmb3JtLTEuN1wiKTtcblxuICAgIGF3YWl0IGFjY2VzcyhpbnB1dCk7XG4gICAgYXdhaXQgYWNjZXNzKGlucHV0KTtcblxuICAgIGV4cGVjdChwcm9kdWNlcikudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChmcy5yZWFkZGlyU3luYyhjYWNoZURpcikpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgfSk7XG5cbiAgaXQoXCJzdGF5cyBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGhvdXQgYSBrZXlTdWZmaXhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2R1Y2VyID0gamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgaGVsbG86IFwid29ybGRcIiB9KTtcbiAgICBjb25zdCBhY2Nlc3MgPSBjYWNoZWRBY2Nlc3MocHJvZHVjZXIsIGNhY2hlRGlyKTtcblxuICAgIGF3YWl0IGFjY2Vzcyh7IGZxbjogXCJoYXNoaWNvcnAvbnVsbFwiLCB2ZXJzaW9uOiBcIjMuMS4wXCIgfSBhcyBhbnkpO1xuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhjYWNoZURpcik7XG4gICAgZXhwZWN0KGZpbGVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgZXhwZWN0KGZpbGVzWzBdKS5ub3QudG9Db250YWluKFwidW5kZWZpbmVkXCIpO1xuICB9KTtcbn0pO1xuIl19
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  var __importDefault = (this && this.__importDefault) || function (mod) {
28
38
  return (mod && mod.__esModule) ? mod : { "default": mod };
29
39
  };
@@ -238,4 +248,4 @@ describe("sanitizeProviderSchema", () => {
238
248
  expect(result).toMatchSnapshot();
239
249
  });
240
250
  });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Byb3ZpZGVyLXNjaGVtYS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLDJDQUE2QjtBQUM3QixrRkFBb0Q7QUFDcEQsNENBT3dCO0FBQ3hCLHdEQUk0QjtBQUU1QixTQUFTLFlBQVksQ0FBQyxLQUFVO0lBQzlCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO0lBQzVDLHlFQUF5RTtJQUN6RSxpQkFBaUI7SUFDakIsSUFBSSxVQUFVLElBQUksS0FBSztRQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDM0QsSUFBSSxhQUFhLElBQUksS0FBSztRQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUNyRSxPQUFPLElBQUEsK0JBQWUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQ0FBMkIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksdUNBQTZCLENBQzlDLFFBQVEsRUFDUixrQkFBUSxDQUFDLFVBQVUsQ0FDcEIsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQ0FBa0IsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDakQsQ0FBQyxFQUFFLE1BQU0s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QUNGO1NBQ0YsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQXNCLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgc3RhYmxlU3RyaW5naWZ5IGZyb20gXCJzYWZlLXN0YWJsZS1zdHJpbmdpZnlcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCxcbiAgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0LFxuICBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldCxcbiAgTGFuZ3VhZ2UsXG4gIFByb3ZpZGVyU2NoZW1hLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7XG4gIHJlYWRNb2R1bGVTY2hlbWEsXG4gIHJlYWRQcm92aWRlclNjaGVtYSxcbiAgc2FuaXRpemVQcm92aWRlclNjaGVtYSxcbn0gZnJvbSBcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5mdW5jdGlvbiBzYW5pdGl6ZUpzb24odmFsdWU6IGFueSkge1xuICB2YWx1ZVtcImZvcm1hdF92ZXJzaW9uXCJdID0gXCJTVFVCQkVEIFZFUlNJT05cIjtcbiAgLy8gY2xpX25hbWUvY2xpX3ZlcnNpb24gc3RhbXAgd2hhdGV2ZXIgYmluYXJ5IGZldGNoZWQgdGhlIHNjaGVtYSBhbmQgdmFyeVxuICAvLyBieSBlbnZpcm9ubWVudFxuICBpZiAoXCJjbGlfbmFtZVwiIGluIHZhbHVlKSB2YWx1ZVtcImNsaV9uYW1lXCJdID0gXCJTVFVCQkVEIENMSVwiO1xuICBpZiAoXCJjbGlfdmVyc2lvblwiIGluIHZhbHVlKSB2YWx1ZVtcImNsaV92ZXJzaW9uXCJdID0gXCJTVFVCQkVEIFZFUlNJT05cIjtcbiAgcmV0dXJuIHN0YWJsZVN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMik7XG59XG5cbmRlc2NyaWJlKFwicmVhZFNjaGVtYVwiLCAoKSA9PiB7XG4gIGl0KFwiZ2VuZXJhdGVzIGEgc2luZ2xlIHByb3ZpZGVyIHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KFwiaGFzaGljb3JwL251bGxAMy4xLjBcIik7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0KFxuICAgICAgcHJvdmlkZXIsXG4gICAgICBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgICk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZFByb3ZpZGVyU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIHNpbmdsZSBtb2R1bGUgc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvL21vZHVsZXMvaWFtLWFjY291bnRAMy4xMi4wXCIsXG4gICAgKTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBtb3JlIGNvbXBsZXggc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2Vrcy9hd3NANy4wLjFcIixcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIG1vZHVsZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImxvY2FsLW1vZHVsZVwiKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGUgd2l0aCBpbmxpbmUgY29tbWVudHMgaW4gdHlwZSBjb25zdHJhaW50c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJsb2NhbC1tb2R1bGUtaW5saW5lLWNvbW1lbnRzXCIsXG4gICAgICApLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIG1vZHVsZSB0aGF0IHJlcXVpcmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gYWxpYXNlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJsb2NhbC1tb2R1bGUtcHJvdmlkZXItYWxpYXNlc1wiLFxuICAgICAgKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJzdXJmYWNlcyB0aGUgdGVycmFmb3JtIGZhaWx1cmUgd2hlbiBhIG1vZHVsZSBjYW5ub3QgYmUgZmV0Y2hlZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogXCIuL3RoaXMtbW9kdWxlLWRvZXMtbm90LWV4aXN0XCIsXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuXG4gICAgLy8gdGhlIGZldGNoIGlzIHJ1biB0b2xlcmFudGx5IHNvIGEgbW9kdWxlIGRlY2xhcmluZyBjb25maWd1cmF0aW9uX2FsaWFzZXNcbiAgICAvLyBnZXRzIGEgc2Vjb25kIGNoYW5jZSAtIGV2ZXJ5dGhpbmcgZWxzZSBoYXMgdG8ga2VlcCBmYWlsaW5nIGxvdWRseVxuICAgIGF3YWl0IGV4cGVjdChyZWFkTW9kdWxlU2NoZW1hKHRhcmdldCkpLnJlamVjdHMudG9UaHJvdyhcbiAgICAgIC9nZXQgZXhpdGVkIHdpdGggY29kZS8sXG4gICAgKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIGpzb24gbW9kdWxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIFwibG9jYWwtanNvbi1tb2R1bGVcIiksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwganNvbiBtb2R1bGUgdGhhdCByZXF1aXJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIGFsaWFzZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwibG9jYWwtanNvbi1tb2R1bGUtcHJvdmlkZXItYWxpYXNlc1wiLFxuICAgICAgKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGUgdGhhdCBkZWNsYXJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIGFsaWFzZXMgYWNyb3NzIC50ZiBhbmQgLnRmLmpzb24gZmlsZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwibG9jYWwtbWl4ZWQtbW9kdWxlLXByb3ZpZGVyLWFsaWFzZXNcIixcbiAgICAgICksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xufSk7XG5cbmRlc2NyaWJlKFwic2FuaXRpemVQcm92aWRlclNjaGVtYVwiLCAoKSA9PiB7XG4gIGl0KFwic2FuaXRpemVzIGEgcHJvdmlkZXIgc2NoZW1hXCIsICgpID0+IHtcbiAgICBjb25zdCBzY2hlbWE6IFByb3ZpZGVyU2NoZW1hID0ge1xuICAgICAgZm9ybWF0X3ZlcnNpb246IFwiMC4xXCIgYXMgY29uc3QsXG4gICAgICBwcm92aWRlcl92ZXJzaW9uczoge1xuICAgICAgICBcInJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvbnVsbFwiOiBcIjMuMS4wXCIsXG4gICAgICB9LFxuICAgICAgcHJvdmlkZXJfc2NoZW1hczoge1xuICAgICAgICBcInJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvbnVsbFwiOiB7XG4gICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7XG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIixcbiAgICAgICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc291cmNlX3NjaGVtYXM6IHtcbiAgICAgICAgICAgIG51bGxfcmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBpZDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBjb21wdXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBibG9ja190eXBlczoge1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZ19tb2RlOiBcInNpbmdsZVwiLFxuICAgICAgICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhX3NvdXJjZV9zY2hlbWFzOiB7fSxcbiAgICAgICAgICBlcGhlbWVyYWxfcmVzb3VyY2Vfc2NoZW1hczoge1xuICAgICAgICAgICAgbnVsbF9lcGhlbWVyYWw6IHtcbiAgICAgICAgICAgICAgdmVyc2lvbjogMCxcbiAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBibG9ja190eXBlczoge30sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQgPSBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hKHNjaGVtYSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG4iXX0=
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Byb3ZpZGVyLXNjaGVtYS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQywyQ0FBNkI7QUFDN0Isa0ZBQW9EO0FBQ3BELDRDQU93QjtBQUN4Qix3REFJNEI7QUFFNUIsU0FBUyxZQUFZLENBQUMsS0FBVTtJQUM5QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUM1Qyx5RUFBeUU7SUFDekUsaUJBQWlCO0lBQ2pCLElBQUksVUFBVSxJQUFJLEtBQUs7UUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksYUFBYSxJQUFJLEtBQUs7UUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7SUFDckUsT0FBTyxJQUFBLCtCQUFlLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUkscUNBQTJCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLHVDQUE2QixDQUM5QyxRQUFRLEVBQ1Isa0JBQVEsQ0FBQyxVQUFVLENBQ3BCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsb0NBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pELENBQUMs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Q0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxJQUFBLHdDQUFzQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHN0YWJsZVN0cmluZ2lmeSBmcm9tIFwic2FmZS1zdGFibGUtc3RyaW5naWZ5XCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50LFxuICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQsXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4gIExhbmd1YWdlLFxuICBQcm92aWRlclNjaGVtYSxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICByZWFkTW9kdWxlU2NoZW1hLFxuICByZWFkUHJvdmlkZXJTY2hlbWEsXG4gIHNhbml0aXplUHJvdmlkZXJTY2hlbWEsXG59IGZyb20gXCIuLi9wcm92aWRlci1zY2hlbWFcIjtcblxuZnVuY3Rpb24gc2FuaXRpemVKc29uKHZhbHVlOiBhbnkpIHtcbiAgdmFsdWVbXCJmb3JtYXRfdmVyc2lvblwiXSA9IFwiU1RVQkJFRCBWRVJTSU9OXCI7XG4gIC8vIGNsaV9uYW1lL2NsaV92ZXJzaW9uIHN0YW1wIHdoYXRldmVyIGJpbmFyeSBmZXRjaGVkIHRoZSBzY2hlbWEgYW5kIHZhcnlcbiAgLy8gYnkgZW52aXJvbm1lbnRcbiAgaWYgKFwiY2xpX25hbWVcIiBpbiB2YWx1ZSkgdmFsdWVbXCJjbGlfbmFtZVwiXSA9IFwiU1RVQkJFRCBDTElcIjtcbiAgaWYgKFwiY2xpX3ZlcnNpb25cIiBpbiB2YWx1ZSkgdmFsdWVbXCJjbGlfdmVyc2lvblwiXSA9IFwiU1RVQkJFRCBWRVJTSU9OXCI7XG4gIHJldHVybiBzdGFibGVTdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpO1xufVxuXG5kZXNjcmliZShcInJlYWRTY2hlbWFcIiwgKCkgPT4ge1xuICBpdChcImdlbmVyYXRlcyBhIHNpbmdsZSBwcm92aWRlciBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludChcImhhc2hpY29ycC9udWxsQDMuMS4wXCIpO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldChcbiAgICAgIHByb3ZpZGVyLFxuICAgICAgTGFuZ3VhZ2UuVFlQRVNDUklQVCxcbiAgICApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRQcm92aWRlclNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBzaW5nbGUgbW9kdWxlIHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXG4gICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9pYW0vYXdzLy9tb2R1bGVzL2lhbS1hY2NvdW50QDMuMTIuMFwiLFxuICAgICk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbW9yZSBjb21wbGV4IHNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXG4gICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9la3MvYXdzQDcuMC4xXCIsXG4gICAgKTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwiZml4dHVyZXNcIiwgXCJsb2NhbC1tb2R1bGVcIiksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwgbW9kdWxlIHdpdGggaW5saW5lIGNvbW1lbnRzIGluIHR5cGUgY29uc3RyYWludHNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwibG9jYWwtbW9kdWxlLWlubGluZS1jb21tZW50c1wiLFxuICAgICAgKSxcbiAgICB9KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KG1vZHVsZSwgTGFuZ3VhZ2UuVFlQRVNDUklQVCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpO1xuICAgIGV4cGVjdChzYW5pdGl6ZUpzb24ocmVzdWx0KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBtb2R1bGUgdGhhdCByZXF1aXJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIGFsaWFzZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwibG9jYWwtbW9kdWxlLXByb3ZpZGVyLWFsaWFzZXNcIixcbiAgICAgICksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwic3VyZmFjZXMgdGhlIHRlcnJhZm9ybSBmYWlsdXJlIHdoZW4gYSBtb2R1bGUgY2Fubm90IGJlIGZldGNoZWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KHtcbiAgICAgIG5hbWU6IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBmcW46IFwibG9jYWxfbW9kdWxlXCIsXG4gICAgICBzb3VyY2U6IFwiLi90aGlzLW1vZHVsZS1kb2VzLW5vdC1leGlzdFwiLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcblxuICAgIC8vIHRoZSBmZXRjaCBpcyBydW4gdG9sZXJhbnRseSBzbyBhIG1vZHVsZSBkZWNsYXJpbmcgY29uZmlndXJhdGlvbl9hbGlhc2VzXG4gICAgLy8gZ2V0cyBhIHNlY29uZCBjaGFuY2UgLSBldmVyeXRoaW5nIGVsc2UgaGFzIHRvIGtlZXAgZmFpbGluZyBsb3VkbHlcbiAgICBhd2FpdCBleHBlY3QocmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQpKS5yZWplY3RzLnRvVGhyb3coXG4gICAgICAvZ2V0IGV4aXRlZCB3aXRoIGNvZGUvLFxuICAgICk7XG4gIH0sIDEyMDAwMCk7XG5cbiAgaXQoXCJnZW5lcmF0ZXMgYSBsb2NhbCBqc29uIG1vZHVsZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kdWxlID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoe1xuICAgICAgbmFtZTogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIGZxbjogXCJsb2NhbF9tb2R1bGVcIixcbiAgICAgIHNvdXJjZTogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImxvY2FsLWpzb24tbW9kdWxlXCIpLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcblxuICBpdChcImdlbmVyYXRlcyBhIGxvY2FsIGpzb24gbW9kdWxlIHRoYXQgcmVxdWlyZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBhbGlhc2VzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcImxvY2FsLWpzb24tbW9kdWxlLXByb3ZpZGVyLWFsaWFzZXNcIixcbiAgICAgICksXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChtb2R1bGUsIExhbmd1YWdlLlRZUEVTQ1JJUFQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0KTtcbiAgICBleHBlY3Qoc2FuaXRpemVKc29uKHJlc3VsdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9LCAxMjAwMDApO1xuXG4gIGl0KFwiZ2VuZXJhdGVzIGEgbG9jYWwgbW9kdWxlIHRoYXQgZGVjbGFyZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBhbGlhc2VzIGFjcm9zcyAudGYgYW5kIC50Zi5qc29uIGZpbGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCh7XG4gICAgICBuYW1lOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgZnFuOiBcImxvY2FsX21vZHVsZVwiLFxuICAgICAgc291cmNlOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcImxvY2FsLW1peGVkLW1vZHVsZS1wcm92aWRlci1hbGlhc2VzXCIsXG4gICAgICApLFxuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQobW9kdWxlLCBMYW5ndWFnZS5UWVBFU0NSSVBUKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkTW9kdWxlU2NoZW1hKHRhcmdldCk7XG4gICAgZXhwZWN0KHNhbml0aXplSnNvbihyZXN1bHQpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSwgMTIwMDAwKTtcbn0pO1xuXG5kZXNjcmliZShcInNhbml0aXplUHJvdmlkZXJTY2hlbWFcIiwgKCkgPT4ge1xuICBpdChcInNhbml0aXplcyBhIHByb3ZpZGVyIHNjaGVtYVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hOiBQcm92aWRlclNjaGVtYSA9IHtcbiAgICAgIGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiIGFzIGNvbnN0LFxuICAgICAgcHJvdmlkZXJfdmVyc2lvbnM6IHtcbiAgICAgICAgXCJyZWdpc3RyeS50ZXJyYWZvcm0uaW8vaGFzaGljb3JwL251bGxcIjogXCIzLjEuMFwiLFxuICAgICAgfSxcbiAgICAgIHByb3ZpZGVyX3NjaGVtYXM6IHtcbiAgICAgICAgXCJyZWdpc3RyeS50ZXJyYWZvcm0uaW8vaGFzaGljb3JwL251bGxcIjoge1xuICAgICAgICAgIHByb3ZpZGVyOiB7XG4gICAgICAgICAgICB2ZXJzaW9uOiAwLFxuICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgIHZlcnNpb246IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBibG9ja190eXBlczoge1xuICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICBuZXN0aW5nX21vZGU6IFwic2luZ2xlXCIsXG4gICAgICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogW1wibGlzdFwiLCBcInN0cmluZ1wiLCBcImxpc3RcIiwgXCJzdHJpbmdcIl0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvdXJjZV9zY2hlbWFzOiB7XG4gICAgICAgICAgICBudWxsX3Jlc291cmNlOiB7XG4gICAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgaWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIixcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIl0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBibG9ja190eXBlczoge30sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YV9zb3VyY2Vfc2NoZW1hczoge30sXG4gICAgICAgICAgZXBoZW1lcmFsX3Jlc291cmNlX3NjaGVtYXM6IHtcbiAgICAgICAgICAgIG51bGxfZXBoZW1lcmFsOiB7XG4gICAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCJdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gc2FuaXRpemVQcm92aWRlclNjaGVtYShzY2hlbWEpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuIl19
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  Object.defineProperty(exports, "__esModule", { value: true });
28
38
  jest.mock("@cdktn/commons", () => ({
29
39
  ...jest.requireActual("@cdktn/commons"),
@@ -298,4 +308,4 @@ describe("fetchedModuleDir", () => {
298
308
  expect((0, provider_schema_1.fetchedModuleDir)(workdir, "my_module", "../mod", "/abs/path/to/mod")).toEqual("/abs/path/to/mod");
299
309
  });
300
310
  });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBRUosdUNBQXlCO0FBQ3pCLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0IsNENBQXNDO0FBQ3RDLHdEQVE0QjtBQUU1QixNQUFNLFFBQVEsR0FBRyxjQUE0QixDQUFDO0FBRTlDLFNBQVMsY0FBYyxDQUFDLE9BQU8sR0FBRyxpQ0FBaUM7SUFDakUsTUFBTSxHQUFHLEdBQVEsSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNyQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDO0lBQzdELE1BQU0sR0FBRyxHQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxJQUFJLGVBQWlDLENBQUM7SUFFdEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQixlQUFlLEdB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QUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmplc3QubW9jayhcIkBjZGt0bi9jb21tb25zXCIsICgpID0+ICh7XG4gIC4uLmplc3QucmVxdWlyZUFjdHVhbChcIkBjZGt0bi9jb21tb25zXCIpLFxuICBleGVjOiBqZXN0LmZuKCksXG59KSk7XG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybUNvbmZpZyxcbiAgYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXMsXG4gIGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMsXG4gIGZldGNoZWRNb2R1bGVEaXIsXG4gIGdldEZldGNoaW5nQ2xpVmVyc2lvbixcbiAgcGFja2FnZVN1YmRpcixcbiAgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSxcbn0gZnJvbSBcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5jb25zdCBleGVjTW9jayA9IGV4ZWMgYXMgdW5rbm93biBhcyBqZXN0Lk1vY2s7XG5cbmZ1bmN0aW9uIHRyYW5zaWVudEVycm9yKG1lc3NhZ2UgPSBcIjUwMiBCYWQgR2F0ZXdheSBmcm9tIGdpdGh1Yi5jb21cIikge1xuICBjb25zdCBlcnI6IGFueSA9IG5ldyBFcnJvcihcIm5vbi16ZXJvIGV4aXQgY29kZSAxXCIpO1xuICBlcnIuc3RkZXJyID0gbWVzc2FnZTtcbiAgcmV0dXJuIGVycjtcbn1cblxuZnVuY3Rpb24gZmF0YWxFcnJvcihtZXNzYWdlID0gXCJFcnJvcjogSW52YWxpZCBwcm92aWRlciB2ZXJzaW9uXCIpIHtcbiAgY29uc3QgZXJyOiBhbnkgPSBuZXcgRXJyb3IoXCJub24temVybyBleGl0IGNvZGUgMVwiKTtcbiAgZXJyLnN0ZGVyciA9IG1lc3NhZ2U7XG4gIHJldHVybiBlcnI7XG59XG5cbmRlc2NyaWJlKFwidGVycmFmb3JtSW5pdFdpdGhSZXRyeVwiLCAoKSA9PiB7XG4gIGxldCBjb25zb2xlRXJyb3JTcHk6IGplc3QuU3B5SW5zdGFuY2U7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1Jlc2V0KCk7XG4gICAgY29uc29sZUVycm9yU3B5ID0gamVzdFxuICAgICAgLnNweU9uKGNvbnNvbGUsIFwiZXJyb3JcIilcbiAgICAgIC5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBjb25zb2xlRXJyb3JTcHkubW9ja1Jlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXR1cm5zIGltbWVkaWF0ZWx5IG9uIGZpcnN0LWF0dGVtcHQgc3VjY2Vzc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1Jlc29sdmVkVmFsdWVPbmNlKFwib2tcIik7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApO1xuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9CZShcIm9rXCIpO1xuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcblxuICBpdChcInJldHJpZXMgb24gdHJhbnNpZW50IHN0ZGVyciBhbmQgZXZlbnR1YWxseSBzdWNjZWVkc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2tcbiAgICAgIC5tb2NrUmVqZWN0ZWRWYWx1ZU9uY2UodHJhbnNpZW50RXJyb3IoKSlcbiAgICAgIC5tb2NrUmVqZWN0ZWRWYWx1ZU9uY2UodHJhbnNpZW50RXJyb3IoXCJFQ09OTlJFU0VUXCIpKVxuICAgICAgLm1vY2tSZXNvbHZlZFZhbHVlT25jZShcIm9rXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoXCJva1wiKTtcbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygzKTtcbiAgfSk7XG5cbiAgaXQoXCJkb2VzIG5vdCByZXRyeSBvbiBub24tdHJhbnNpZW50IGVycm9yc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1JlamVjdGVkVmFsdWVPbmNlKGZhdGFsRXJyb3IoKSk7XG5cbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApLFxuICAgICkucmVqZWN0cy50b01hdGNoT2JqZWN0KHsgc3RkZXJyOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZyhcIkludmFsaWRcIikgfSk7XG5cbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJ0aHJvd3MgYWZ0ZXIgZXhoYXVzdGluZyByZXRyaWVzIG9uIHBlcnNpc3RlbnQgdHJhbnNpZW50IGVycm9yc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1JlamVjdGVkVmFsdWUodHJhbnNpZW50RXJyb3IoXCI1MDMgU2VydmljZSBVbmF2YWlsYWJsZVwiKSk7XG5cbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBcIi90bXAveFwiIH0sIDMsIDApLFxuICAgICkucmVqZWN0cy50b01hdGNoT2JqZWN0KHsgc3RkZXJyOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZyhcIjUwM1wiKSB9KTtcblxuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDMpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcImdldEZldGNoaW5nQ2xpVmVyc2lvblwiLCAoKSA9PiB7XG4gIGl0KFwiZXhlY3MgYHRlcnJhZm9ybSB2ZXJzaW9uYCBvbmNlIGFuZCBtZW1vaXplcyB0aGUgcmVzdWx0XCIsIGFzeW5jICgpID0+IHtcbiAgICBleGVjTW9jay5tb2NrUmVzZXQoKTtcbiAgICBleGVjTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZShcIlRlcnJhZm9ybSB2MS43LjVcXG5vbiBsaW51eF9hbWQ2NFxcblwiKTtcblxuICAgIGNvbnN0IGZpcnN0ID0gYXdhaXQgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uKCk7XG4gICAgY29uc3Qgc2Vjb25kID0gYXdhaXQgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uKCk7XG5cbiAgICBleHBlY3QoZmlyc3QpLnRvRXF1YWwoeyBuYW1lOiBcInRlcnJhZm9ybVwiLCB2ZXJzaW9uOiBcIjEuNy41XCIgfSk7XG4gICAgZXhwZWN0KHNlY29uZCkudG9CZShmaXJzdCk7XG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlc1wiLCAoKSA9PiB7XG4gIGl0KFwicmV0dXJucyBub3RoaW5nIGZvciBhIG1vZHVsZSB3aXRob3V0IHJlcXVpcmVkX3Byb3ZpZGVyc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMoeyB2YXJpYWJsZTogeyBmb286IFt7fV0gfSB9KSkudG9FcXVhbChcbiAgICAgIFtdLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0KFwicmV0dXJucyBub3RoaW5nIGZvciByZXF1aXJlZCBwcm92aWRlcnMgd2l0aG91dCBjb25maWd1cmF0aW9uIGFsaWFzZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHBhcnNlZCA9IHtcbiAgICAgIHRlcnJhZm9ybTogW1xuICAgICAgICB7IHJlcXVpcmVkX3Byb3ZpZGVyczogW3sgYXdzOiB7IHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSB9XSB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXSk7XG4gIH0pO1xuXG4gIGl0KFwiY29sbGVjdHMgZXZlcnkgYWxpYXMgZGVjbGFyZWQgYWNyb3NzIHRlcnJhZm9ybSBibG9ja3NcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHBhcnNlZCA9IHtcbiAgICAgIHRlcnJhZm9ybTogW1xuICAgICAgICB7XG4gICAgICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGF3czoge1xuICAgICAgICAgICAgICAgIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbl9hbGlhc2VzOiBbXG4gICAgICAgICAgICAgICAgICBcIiR7YXdzLmdsb2JhbF9yZWdpb259XCIsXG4gICAgICAgICAgICAgICAgICBcIiR7YXdzLnNlY29uZGFyeX1cIixcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByYW5kb206IHsgc291cmNlOiBcImhhc2hpY29ycC9yYW5kb21cIiB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGF3c3g6IHtcbiAgICAgICAgICAgICAgICBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1wiJHthd3N4LnRlcnRpYXJ5fVwiXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHBhcnNlZCkpLnRvRXF1YWwoW1xuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcImdsb2JhbF9yZWdpb25cIiwgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9LFxuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcInNlY29uZGFyeVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0sXG4gICAgICB7IGxvY2FsTmFtZTogXCJhd3N4XCIsIGFsaWFzOiBcInRlcnRpYXJ5XCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJkZWR1cGxpY2F0ZXMgYWxpYXNlcyBkZWNsYXJlZCBpbiBtb3JlIHRoYW4gb25lIGZpbGVcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGRlY2xhcmF0aW9uID0ge1xuICAgICAgYXdzOiB7XG4gICAgICAgIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1wiJHthd3MuZ2xvYmFsX3JlZ2lvbn1cIl0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcGFyc2VkID0ge1xuICAgICAgdGVycmFmb3JtOiBbeyByZXF1aXJlZF9wcm92aWRlcnM6IFtkZWNsYXJhdGlvbiwgZGVjbGFyYXRpb25dIH1dLFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJrZWVwcyBhbGlhc2VzIG9mIHByb3ZpZGVycyBkZWNsYXJlZCB3aXRob3V0IGEgc291cmNlXCIsICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB7XG4gICAgICAgICAgYXdzOiB7IGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1wiJHthd3Mub3RoZXJ9XCJdIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJvdGhlclwiLCBzb3VyY2U6IHVuZGVmaW5lZCB9LFxuICAgIF0pO1xuICB9KTtcblxuICBpdChcInJlYWRzIHRoZSBwbGFpbiByZWZlcmVuY2VzIGEgLnRmLmpzb24gbW9kdWxlIGRlY2xhcmVzXCIsICgpID0+IHtcbiAgICAvLyBoY2wyanNvbiBvbmx5IHdyYXBzIEhDTCBleHByZXNzaW9ucyBpbiBhbiBpbnRlcnBvbGF0aW9uOyBKU09OIHN5bnRheFxuICAgIC8vIGNhcnJpZXMgdGhlIHJlZmVyZW5jZSBhcy1pcywgYW5kIGl0cyBibG9ja3MgY29tZSB0aHJvdWdoIHVud3JhcHBlZFxuICAgIGNvbnN0IHBhcnNlZCA9IHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICByZXF1aXJlZF9wcm92aWRlcnM6IHtcbiAgICAgICAgICBudWxsOiB7XG4gICAgICAgICAgICBzb3VyY2U6IFwiaGFzaGljb3JwL251bGxcIixcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1wibnVsbC5leHRyYVwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXG4gICAgICB7IGxvY2FsTmFtZTogXCJudWxsXCIsIGFsaWFzOiBcImV4dHJhXCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvbnVsbFwiIH0sXG4gICAgXSk7XG4gIH0pO1xuXG4gIGl0KFwicmVhZHMgYWxpYXNlcyBhIG1vZHVsZSBzcHJlYWQgYWNyb3NzIC50ZiBhbmQgLnRmLmpzb24gZmlsZXNcIiwgKCkgPT4ge1xuICAgIC8vIGhjbDJqc29uIG1lcmdlcyBhIC50Zi5qc29uIGZpbGUgaW50byB0aGUgcGFyc2VkIEhDTCBieSByZWN1cnNpbmcgaW50b1xuICAgIC8vIHRoZSBIQ0wgYmxvY2sgYXJyYXksIHNvIHRoZSBKU09OIGhhbGYgZW5kcyB1cCBhcyBhIG5hbWVkIHByb3BlcnR5IG9uXG4gICAgLy8gdGhhdCBhcnJheSByYXRoZXIgdGhhbiBhbm90aGVyIGVudHJ5IGluIGl0XG4gICAgY29uc3QgcGFyc2VkOiBhbnkgPSB7XG4gICAgICB0ZXJyYWZvcm06IFtcbiAgICAgICAgeyByZXF1aXJlZF9wcm92aWRlcnM6IFt7IGF3czogeyBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0gfV0gfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBwYXJzZWQudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycyA9IHtcbiAgICAgIG51bGw6IHtcbiAgICAgICAgc291cmNlOiBcImhhc2hpY29ycC9udWxsXCIsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1wibnVsbC5leHRyYVwiXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHBhcnNlZCkpLnRvRXF1YWwoW1xuICAgICAgeyBsb2NhbE5hbWU6IFwibnVsbFwiLCBhbGlhczogXCJleHRyYVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL251bGxcIiB9LFxuICAgIF0pO1xuICB9KTtcblxuICBpdChcImlnbm9yZXMgZW50cmllcyB0aGF0IGFyZSBub3QgcHJvdmlkZXIgY29uZmlndXJhdGlvbiByZWZlcmVuY2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB7XG4gICAgICAgICAgYXdzOiB7IGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1wiJHthd3N9XCIsIFwiJHt2YXIubm90X2FuX2FsaWFzLnh9XCJdIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtdKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlc1wiLCAoKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ1dpdGhNb2R1bGUgPSAoKTogVGVycmFmb3JtQ29uZmlnID0+ICh7XG4gICAgdGVycmFmb3JtOiB7fSxcbiAgICBtb2R1bGU6IHsgbXlfbW9kdWxlOiB7IHNvdXJjZTogXCIuL21vZFwiIH0gfSxcbiAgfSk7XG5cbiAgaXQoXCJkZWNsYXJlcyB0aGUgYWxpYXNlZCBwcm92aWRlcnMgYW5kIHBhc3NlcyB0aGVtIHRvIHRoZSBtb2R1bGVcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzKGNvbmZpZ1dpdGhNb2R1bGUoKSwgXCJteV9tb2R1bGVcIiwgW1xuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcImdsb2JhbF9yZWdpb25cIiwgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9LFxuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcInNlY29uZGFyeVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0sXG4gICAgXSk7XG5cbiAgICBleHBlY3QoY29uZmlnKS50b0VxdWFsKHtcbiAgICAgIHRlcnJhZm9ybTogeyByZXF1aXJlZF9wcm92aWRlcnM6IHsgYXdzOiB7IHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSB9IH0sXG4gICAgICBwcm92aWRlcjogeyBhd3M6IFt7IGFsaWFzOiBcImdsb2JhbF9yZWdpb25cIiB9LCB7IGFsaWFzOiBcInNlY29uZGFyeVwiIH1dIH0sXG4gICAgICBtb2R1bGU6IHtcbiAgICAgICAgbXlfbW9kdWxlOiB7XG4gICAgICAgICAgc291cmNlOiBcIi4vbW9kXCIsXG4gICAgICAgICAgcHJvdmlkZXJzOiB7XG4gICAgICAgICAgICBcImF3cy5nbG9iYWxfcmVnaW9uXCI6IFwiYXdzLmdsb2JhbF9yZWdpb25cIixcbiAgICAgICAgICAgIFwiYXdzLnNlY29uZGFyeVwiOiBcImF3cy5zZWNvbmRhcnlcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJvbWl0cyByZXF1aXJlZF9wcm92aWRlcnMgZm9yIGFsaWFzZXMgd2l0aG91dCBhIGRlY2xhcmVkIHNvdXJjZVwiLCAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXMoY29uZmlnV2l0aE1vZHVsZSgpLCBcIm15X21vZHVsZVwiLCBbXG4gICAgICB7IGxvY2FsTmFtZTogXCJhd3NcIiwgYWxpYXM6IFwib3RoZXJcIiB9LFxuICAgIF0pO1xuXG4gICAgZXhwZWN0KGNvbmZpZy50ZXJyYWZvcm0ucmVxdWlyZWRfcHJvdmlkZXJzKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgZXhwZWN0KGNvbmZpZy5wcm92aWRlcikudG9FcXVhbCh7IGF3czogW3sgYWxpYXM6IFwib3RoZXJcIiB9XSB9KTtcbiAgfSk7XG5cbiAgaXQoXCJsZWF2ZXMgdGhlIGNvbmZpZyB1bnRvdWNoZWQgd2hlbiB0aGVyZSBhcmUgbm8gYWxpYXNlc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXMoY29uZmlnV2l0aE1vZHVsZSgpLCBcIm15X21vZHVsZVwiLCBbXSksXG4gICAgKS50b0VxdWFsKGNvbmZpZ1dpdGhNb2R1bGUoKSk7XG4gIH0pO1xuXG4gIGl0KFwibGVhdmVzIHRoZSBjb25maWcgdW50b3VjaGVkIHdoZW4gdGhlIG1vZHVsZSBjYWxsIGlzIHVua25vd25cIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzKGNvbmZpZ1dpdGhNb2R1bGUoKSwgXCJvdGhlcl9tb2R1bGVcIiwgW1xuICAgICAgICB7IGxvY2FsTmFtZTogXCJhd3NcIiwgYWxpYXM6IFwiZ2xvYmFsX3JlZ2lvblwiIH0sXG4gICAgICBdKSxcbiAgICApLnRvRXF1YWwoY29uZmlnV2l0aE1vZHVsZSgpKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJwYWNrYWdlU3ViZGlyXCIsICgpID0+IHtcbiAgaXQuZWFjaChbXG4gICAgW1widGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3NcIiwgdW5kZWZpbmVkXSxcbiAgICBbXG4gICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9pYW0vYXdzLy9tb2R1bGVzL2lhbS1hY2NvdW50XCIsXG4gICAgICBcIm1vZHVsZXMvaWFtLWFjY291bnRcIixcbiAgICBdLFxuICAgIFtcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL29yZy9yZXBvLmdpdC8vc3ViP3JlZj12MS4yLjNcIiwgXCJzdWJcIl0sXG4gICAgW1wiZ2l0Ojpzc2g6Ly9naXRAZ2l0aHViLmNvbS9vcmcvcmVwby5naXRcIiwgdW5kZWZpbmVkXSxcbiAgICBbXCIuL2xvY2FsL21vZHVsZVwiLCB1bmRlZmluZWRdLFxuICBdKShcInNwbGl0cyAlc1wiLCAoc291cmNlLCBleHBlY3RlZCkgPT4ge1xuICAgIGV4cGVjdChwYWNrYWdlU3ViZGlyKHNvdXJjZSBhcyBzdHJpbmcpKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJmZXRjaGVkTW9kdWxlRGlyXCIsICgpID0+IHtcbiAgbGV0IHdvcmtkaXI6IHN0cmluZztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcImZldGNoZWQtbW9kdWxlLWRpci1cIikpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGZzLnJtU3luYyh3b3JrZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHdyaXRlTWFuaWZlc3QobW9kdWxlczogeyBLZXk6IHN0cmluZzsgRGlyOiBzdHJpbmcgfVtdKSB7XG4gICAgY29uc3QgZGlyID0gcGF0aC5qb2luKHdvcmtkaXIsIFwiLnRlcnJhZm9ybVwiLCBcIm1vZHVsZXNcIik7XG4gICAgZnMubWtkaXJTeW5jKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihkaXIsIFwibW9kdWxlcy5qc29uXCIpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoeyBNb2R1bGVzOiBtb2R1bGVzIH0pLFxuICAgICk7XG4gIH1cblxuICBpdChcInByZWZlcnMgdGhlIGRpcmVjdG9yeSByZWNvcmRlZCBpbiB0aGUgbW9kdWxlIG1hbmlmZXN0XCIsICgpID0+IHtcbiAgICB3cml0ZU1hbmlmZXN0KFtcbiAgICAgIHsgS2V5OiBcIlwiLCBEaXI6IFwiLlwiIH0sXG4gICAgICB7IEtleTogXCJteV9tb2R1bGVcIiwgRGlyOiBcIi50ZXJyYWZvcm0vbW9kdWxlcy9teV9tb2R1bGUvbW9kdWxlcy9zdWJcIiB9LFxuICAgIF0pO1xuXG4gICAgZXhwZWN0KFxuICAgICAgZmV0Y2hlZE1vZHVsZURpcih3b3JrZGlyLCBcIm15X21vZHVsZVwiLCBcIm9yZy9uYW1lL2F3cy8vbW9kdWxlcy9zdWJcIiksXG4gICAgKS50b0VxdWFsKFxuICAgICAgcGF0aC5qb2luKFxuICAgICAgICB3b3JrZGlyLFxuICAgICAgICBcIi50ZXJyYWZvcm1cIixcbiAgICAgICAgXCJtb2R1bGVzXCIsXG4gICAgICAgIFwibXlfbW9kdWxlXCIsXG4gICAgICAgIFwibW9kdWxlc1wiLFxuICAgICAgICBcInN1YlwiLFxuICAgICAgKSxcbiAgICApO1xuICB9KTtcblxuICBpdChcImZhbGxzIGJhY2sgdG8gdGhlIGluc3RhbGwgcGF0aCB3aGVuIHRoZSBtYW5pZmVzdCB3YXMgbm90IHdyaXR0ZW5cIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGZldGNoZWRNb2R1bGVEaXIod29ya2RpciwgXCJteV9tb2R1bGVcIiwgXCJvcmcvbmFtZS9hd3MvL21vZHVsZXMvc3ViXCIpLFxuICAgICkudG9FcXVhbChcbiAgICAgIHBhdGguam9pbihcbiAgICAgICAgd29ya2RpcixcbiAgICAgICAgXCIudGVycmFmb3JtXCIsXG4gICAgICAgIFwibW9kdWxlc1wiLFxuICAgICAgICBcIm15X21vZHVsZVwiLFxuICAgICAgICBcIm1vZHVsZXNcIixcbiAgICAgICAgXCJzdWJcIixcbiAgICAgICksXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJmYWxscyBiYWNrIHRvIHRoZSBpbnN0YWxsIHBhdGggd2hlbiB0aGUgbWFuaWZlc3QgbGFja3MgdGhlIG1vZHVsZVwiLCAoKSA9PiB7XG4gICAgd3JpdGVNYW5pZmVzdChbeyBLZXk6IFwiXCIsIERpcjogXCIuXCIgfV0pO1xuXG4gICAgZXhwZWN0KGZldGNoZWRNb2R1bGVEaXIod29ya2RpciwgXCJteV9tb2R1bGVcIiwgXCJvcmcvbmFtZS9hd3NcIikpLnRvRXF1YWwoXG4gICAgICBwYXRoLmpvaW4od29ya2RpciwgXCIudGVycmFmb3JtXCIsIFwibW9kdWxlc1wiLCBcIm15X21vZHVsZVwiKSxcbiAgICApO1xuICB9KTtcblxuICBpdChcInJlYWRzIGxvY2FsIG1vZHVsZXMgd2hlcmUgdGhleSBhcmVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGZldGNoZWRNb2R1bGVEaXIod29ya2RpciwgXCJteV9tb2R1bGVcIiwgXCIuLi9tb2RcIiwgXCIvYWJzL3BhdGgvdG8vbW9kXCIpLFxuICAgICkudG9FcXVhbChcIi9hYnMvcGF0aC90by9tb2RcIik7XG4gIH0pO1xufSk7XG4iXX0=
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcHJvdmlkZXItc2NoZW1hLnVuaXQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUNoQixDQUFDLENBQUMsQ0FBQztBQUVKLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLDRDQUFzQztBQUN0Qyx3REFRNEI7QUFFNUIsTUFBTSxRQUFRLEdBQUcsY0FBNEIsQ0FBQztBQUU5QyxTQUFTLGNBQWMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDO0lBQ2pFLE1BQU0sR0FBRyxHQUFRLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsT0FBTyxHQUFHLGlDQUFpQztJQUM3RCxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ25ELEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsSUFBSSxlQUFpQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFD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QUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5qZXN0Lm1vY2soXCJAY2RrdG4vY29tbW9uc1wiLCAoKSA9PiAoe1xuICAuLi5qZXN0LnJlcXVpcmVBY3R1YWwoXCJAY2RrdG4vY29tbW9uc1wiKSxcbiAgZXhlYzogamVzdC5mbigpLFxufSkpO1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1Db25maWcsXG4gIGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzLFxuICBjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzLFxuICBmZXRjaGVkTW9kdWxlRGlyLFxuICBnZXRGZXRjaGluZ0NsaVZlcnNpb24sXG4gIHBhY2thZ2VTdWJkaXIsXG4gIHRlcnJhZm9ybUluaXRXaXRoUmV0cnksXG59IGZyb20gXCIuLi9wcm92aWRlci1zY2hlbWFcIjtcblxuY29uc3QgZXhlY01vY2sgPSBleGVjIGFzIHVua25vd24gYXMgamVzdC5Nb2NrO1xuXG5mdW5jdGlvbiB0cmFuc2llbnRFcnJvcihtZXNzYWdlID0gXCI1MDIgQmFkIEdhdGV3YXkgZnJvbSBnaXRodWIuY29tXCIpIHtcbiAgY29uc3QgZXJyOiBhbnkgPSBuZXcgRXJyb3IoXCJub24temVybyBleGl0IGNvZGUgMVwiKTtcbiAgZXJyLnN0ZGVyciA9IG1lc3NhZ2U7XG4gIHJldHVybiBlcnI7XG59XG5cbmZ1bmN0aW9uIGZhdGFsRXJyb3IobWVzc2FnZSA9IFwiRXJyb3I6IEludmFsaWQgcHJvdmlkZXIgdmVyc2lvblwiKSB7XG4gIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKFwibm9uLXplcm8gZXhpdCBjb2RlIDFcIik7XG4gIGVyci5zdGRlcnIgPSBtZXNzYWdlO1xuICByZXR1cm4gZXJyO1xufVxuXG5kZXNjcmliZShcInRlcnJhZm9ybUluaXRXaXRoUmV0cnlcIiwgKCkgPT4ge1xuICBsZXQgY29uc29sZUVycm9yU3B5OiBqZXN0LlNweUluc3RhbmNlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNldCgpO1xuICAgIGNvbnNvbGVFcnJvclNweSA9IGplc3RcbiAgICAgIC5zcHlPbihjb25zb2xlLCBcImVycm9yXCIpXG4gICAgICAubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgY29uc29sZUVycm9yU3B5Lm1vY2tSZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGl0KFwicmV0dXJucyBpbW1lZGlhdGVseSBvbiBmaXJzdC1hdHRlbXB0IHN1Y2Nlc3NcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZXNvbHZlZFZhbHVlT25jZShcIm9rXCIpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoXCJva1wiKTtcbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgaXQoXCJyZXRyaWVzIG9uIHRyYW5zaWVudCBzdGRlcnIgYW5kIGV2ZW50dWFsbHkgc3VjY2VlZHNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrXG4gICAgICAubW9ja1JlamVjdGVkVmFsdWVPbmNlKHRyYW5zaWVudEVycm9yKCkpXG4gICAgICAubW9ja1JlamVjdGVkVmFsdWVPbmNlKHRyYW5zaWVudEVycm9yKFwiRUNPTk5SRVNFVFwiKSlcbiAgICAgIC5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UoXCJva1wiKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IFwiL3RtcC94XCIgfSwgMywgMCk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlKFwib2tcIik7XG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMyk7XG4gIH0pO1xuXG4gIGl0KFwiZG9lcyBub3QgcmV0cnkgb24gbm9uLXRyYW5zaWVudCBlcnJvcnNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZWplY3RlZFZhbHVlT25jZShmYXRhbEVycm9yKCkpO1xuXG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKSxcbiAgICApLnJlamVjdHMudG9NYXRjaE9iamVjdCh7IHN0ZGVycjogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoXCJJbnZhbGlkXCIpIH0pO1xuXG4gICAgZXhwZWN0KGV4ZWNNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIGl0KFwidGhyb3dzIGFmdGVyIGV4aGF1c3RpbmcgcmV0cmllcyBvbiBwZXJzaXN0ZW50IHRyYW5zaWVudCBlcnJvcnNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4ZWNNb2NrLm1vY2tSZWplY3RlZFZhbHVlKHRyYW5zaWVudEVycm9yKFwiNTAzIFNlcnZpY2UgVW5hdmFpbGFibGVcIikpO1xuXG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgdGVycmFmb3JtSW5pdFdpdGhSZXRyeSh7IGN3ZDogXCIvdG1wL3hcIiB9LCAzLCAwKSxcbiAgICApLnJlamVjdHMudG9NYXRjaE9iamVjdCh7IHN0ZGVycjogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoXCI1MDNcIikgfSk7XG5cbiAgICBleHBlY3QoZXhlY01vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygzKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJnZXRGZXRjaGluZ0NsaVZlcnNpb25cIiwgKCkgPT4ge1xuICBpdChcImV4ZWNzIGB0ZXJyYWZvcm0gdmVyc2lvbmAgb25jZSBhbmQgbWVtb2l6ZXMgdGhlIHJlc3VsdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhlY01vY2subW9ja1Jlc2V0KCk7XG4gICAgZXhlY01vY2subW9ja1Jlc29sdmVkVmFsdWUoXCJUZXJyYWZvcm0gdjEuNy41XFxub24gbGludXhfYW1kNjRcXG5cIik7XG5cbiAgICBjb25zdCBmaXJzdCA9IGF3YWl0IGdldEZldGNoaW5nQ2xpVmVyc2lvbigpO1xuICAgIGNvbnN0IHNlY29uZCA9IGF3YWl0IGdldEZldGNoaW5nQ2xpVmVyc2lvbigpO1xuXG4gICAgZXhwZWN0KGZpcnN0KS50b0VxdWFsKHsgbmFtZTogXCJ0ZXJyYWZvcm1cIiwgdmVyc2lvbjogXCIxLjcuNVwiIH0pO1xuICAgIGV4cGVjdChzZWNvbmQpLnRvQmUoZmlyc3QpO1xuICAgIGV4cGVjdChleGVjTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcImNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXNcIiwgKCkgPT4ge1xuICBpdChcInJldHVybnMgbm90aGluZyBmb3IgYSBtb2R1bGUgd2l0aG91dCByZXF1aXJlZF9wcm92aWRlcnNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHsgdmFyaWFibGU6IHsgZm9vOiBbe31dIH0gfSkpLnRvRXF1YWwoXG4gICAgICBbXSxcbiAgICApO1xuICB9KTtcblxuICBpdChcInJldHVybnMgbm90aGluZyBmb3IgcmVxdWlyZWQgcHJvdmlkZXJzIHdpdGhvdXQgY29uZmlndXJhdGlvbiBhbGlhc2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IFtcbiAgICAgICAgeyByZXF1aXJlZF9wcm92aWRlcnM6IFt7IGF3czogeyBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0gfV0gfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHBhcnNlZCkpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICBpdChcImNvbGxlY3RzIGV2ZXJ5IGFsaWFzIGRlY2xhcmVkIGFjcm9zcyB0ZXJyYWZvcm0gYmxvY2tzXCIsICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IFtcbiAgICAgICAge1xuICAgICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhd3M6IHtcbiAgICAgICAgICAgICAgICBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25fYWxpYXNlczogW1xuICAgICAgICAgICAgICAgICAgXCIke2F3cy5nbG9iYWxfcmVnaW9ufVwiLFxuICAgICAgICAgICAgICAgICAgXCIke2F3cy5zZWNvbmRhcnl9XCIsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmFuZG9tOiB7IHNvdXJjZTogXCJoYXNoaWNvcnAvcmFuZG9tXCIgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhd3N4OiB7XG4gICAgICAgICAgICAgICAgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzeC50ZXJ0aWFyeX1cIl0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSxcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJzZWNvbmRhcnlcIiwgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9LFxuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzeFwiLCBhbGlhczogXCJ0ZXJ0aWFyeVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0sXG4gICAgXSk7XG4gIH0pO1xuXG4gIGl0KFwiZGVkdXBsaWNhdGVzIGFsaWFzZXMgZGVjbGFyZWQgaW4gbW9yZSB0aGFuIG9uZSBmaWxlXCIsICgpID0+IHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IHtcbiAgICAgIGF3czoge1xuICAgICAgICBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzLmdsb2JhbF9yZWdpb259XCJdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHBhcnNlZCA9IHtcbiAgICAgIHRlcnJhZm9ybTogW3sgcmVxdWlyZWRfcHJvdmlkZXJzOiBbZGVjbGFyYXRpb24sIGRlY2xhcmF0aW9uXSB9XSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXG4gICAgICB7IGxvY2FsTmFtZTogXCJhd3NcIiwgYWxpYXM6IFwiZ2xvYmFsX3JlZ2lvblwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0sXG4gICAgXSk7XG4gIH0pO1xuXG4gIGl0KFwia2VlcHMgYWxpYXNlcyBvZiBwcm92aWRlcnMgZGVjbGFyZWQgd2l0aG91dCBhIHNvdXJjZVwiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0ge1xuICAgICAgdGVycmFmb3JtOiB7XG4gICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczoge1xuICAgICAgICAgIGF3czogeyBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzLm90aGVyfVwiXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXG4gICAgICB7IGxvY2FsTmFtZTogXCJhd3NcIiwgYWxpYXM6IFwib3RoZXJcIiwgc291cmNlOiB1bmRlZmluZWQgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJyZWFkcyB0aGUgcGxhaW4gcmVmZXJlbmNlcyBhIC50Zi5qc29uIG1vZHVsZSBkZWNsYXJlc1wiLCAoKSA9PiB7XG4gICAgLy8gaGNsMmpzb24gb25seSB3cmFwcyBIQ0wgZXhwcmVzc2lvbnMgaW4gYW4gaW50ZXJwb2xhdGlvbjsgSlNPTiBzeW50YXhcbiAgICAvLyBjYXJyaWVzIHRoZSByZWZlcmVuY2UgYXMtaXMsIGFuZCBpdHMgYmxvY2tzIGNvbWUgdGhyb3VnaCB1bndyYXBwZWRcbiAgICBjb25zdCBwYXJzZWQgPSB7XG4gICAgICB0ZXJyYWZvcm06IHtcbiAgICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB7XG4gICAgICAgICAgbnVsbDoge1xuICAgICAgICAgICAgc291cmNlOiBcImhhc2hpY29ycC9udWxsXCIsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIm51bGwuZXh0cmFcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGV4cGVjdChjb2xsZWN0TW9kdWxlUHJvdmlkZXJBbGlhc2VzKHBhcnNlZCkpLnRvRXF1YWwoW1xuICAgICAgeyBsb2NhbE5hbWU6IFwibnVsbFwiLCBhbGlhczogXCJleHRyYVwiLCBzb3VyY2U6IFwiaGFzaGljb3JwL251bGxcIiB9LFxuICAgIF0pO1xuICB9KTtcblxuICBpdChcInJlYWRzIGFsaWFzZXMgYSBtb2R1bGUgc3ByZWFkIGFjcm9zcyAudGYgYW5kIC50Zi5qc29uIGZpbGVzXCIsICgpID0+IHtcbiAgICAvLyBoY2wyanNvbiBtZXJnZXMgYSAudGYuanNvbiBmaWxlIGludG8gdGhlIHBhcnNlZCBIQ0wgYnkgcmVjdXJzaW5nIGludG9cbiAgICAvLyB0aGUgSENMIGJsb2NrIGFycmF5LCBzbyB0aGUgSlNPTiBoYWxmIGVuZHMgdXAgYXMgYSBuYW1lZCBwcm9wZXJ0eSBvblxuICAgIC8vIHRoYXQgYXJyYXkgcmF0aGVyIHRoYW4gYW5vdGhlciBlbnRyeSBpbiBpdFxuICAgIGNvbnN0IHBhcnNlZDogYW55ID0ge1xuICAgICAgdGVycmFmb3JtOiBbXG4gICAgICAgIHsgcmVxdWlyZWRfcHJvdmlkZXJzOiBbeyBhd3M6IHsgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9IH1dIH0sXG4gICAgICBdLFxuICAgIH07XG4gICAgcGFyc2VkLnRlcnJhZm9ybS5yZXF1aXJlZF9wcm92aWRlcnMgPSB7XG4gICAgICBudWxsOiB7XG4gICAgICAgIHNvdXJjZTogXCJoYXNoaWNvcnAvbnVsbFwiLFxuICAgICAgICBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIm51bGwuZXh0cmFcIl0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBleHBlY3QoY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhwYXJzZWQpKS50b0VxdWFsKFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcIm51bGxcIiwgYWxpYXM6IFwiZXh0cmFcIiwgc291cmNlOiBcImhhc2hpY29ycC9udWxsXCIgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoXCJpZ25vcmVzIGVudHJpZXMgdGhhdCBhcmUgbm90IHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gcmVmZXJlbmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0ge1xuICAgICAgdGVycmFmb3JtOiB7XG4gICAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczoge1xuICAgICAgICAgIGF3czogeyBjb25maWd1cmF0aW9uX2FsaWFzZXM6IFtcIiR7YXdzfVwiLCBcIiR7dmFyLm5vdF9hbl9hbGlhcy54fVwiXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMocGFyc2VkKSkudG9FcXVhbChbXSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXNcIiwgKCkgPT4ge1xuICBjb25zdCBjb25maWdXaXRoTW9kdWxlID0gKCk6IFRlcnJhZm9ybUNvbmZpZyA9PiAoe1xuICAgIHRlcnJhZm9ybToge30sXG4gICAgbW9kdWxlOiB7IG15X21vZHVsZTogeyBzb3VyY2U6IFwiLi9tb2RcIiB9IH0sXG4gIH0pO1xuXG4gIGl0KFwiZGVjbGFyZXMgdGhlIGFsaWFzZWQgcHJvdmlkZXJzIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUgbW9kdWxlXCIsICgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSBhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlcyhjb25maWdXaXRoTW9kdWxlKCksIFwibXlfbW9kdWxlXCIsIFtcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIsIHNvdXJjZTogXCJoYXNoaWNvcnAvYXdzXCIgfSxcbiAgICAgIHsgbG9jYWxOYW1lOiBcImF3c1wiLCBhbGlhczogXCJzZWNvbmRhcnlcIiwgc291cmNlOiBcImhhc2hpY29ycC9hd3NcIiB9LFxuICAgIF0pO1xuXG4gICAgZXhwZWN0KGNvbmZpZykudG9FcXVhbCh7XG4gICAgICB0ZXJyYWZvcm06IHsgcmVxdWlyZWRfcHJvdmlkZXJzOiB7IGF3czogeyBzb3VyY2U6IFwiaGFzaGljb3JwL2F3c1wiIH0gfSB9LFxuICAgICAgcHJvdmlkZXI6IHsgYXdzOiBbeyBhbGlhczogXCJnbG9iYWxfcmVnaW9uXCIgfSwgeyBhbGlhczogXCJzZWNvbmRhcnlcIiB9XSB9LFxuICAgICAgbW9kdWxlOiB7XG4gICAgICAgIG15X21vZHVsZToge1xuICAgICAgICAgIHNvdXJjZTogXCIuL21vZFwiLFxuICAgICAgICAgIHByb3ZpZGVyczoge1xuICAgICAgICAgICAgXCJhd3MuZ2xvYmFsX3JlZ2lvblwiOiBcImF3cy5nbG9iYWxfcmVnaW9uXCIsXG4gICAgICAgICAgICBcImF3cy5zZWNvbmRhcnlcIjogXCJhd3Muc2Vjb25kYXJ5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwib21pdHMgcmVxdWlyZWRfcHJvdmlkZXJzIGZvciBhbGlhc2VzIHdpdGhvdXQgYSBkZWNsYXJlZCBzb3VyY2VcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzKGNvbmZpZ1dpdGhNb2R1bGUoKSwgXCJteV9tb2R1bGVcIiwgW1xuICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcIm90aGVyXCIgfSxcbiAgICBdKTtcblxuICAgIGV4cGVjdChjb25maWcudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycykudG9CZVVuZGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb25maWcucHJvdmlkZXIpLnRvRXF1YWwoeyBhd3M6IFt7IGFsaWFzOiBcIm90aGVyXCIgfV0gfSk7XG4gIH0pO1xuXG4gIGl0KFwibGVhdmVzIHRoZSBjb25maWcgdW50b3VjaGVkIHdoZW4gdGhlcmUgYXJlIG5vIGFsaWFzZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGFwcGx5TW9kdWxlUHJvdmlkZXJBbGlhc2VzKGNvbmZpZ1dpdGhNb2R1bGUoKSwgXCJteV9tb2R1bGVcIiwgW10pLFxuICAgICkudG9FcXVhbChjb25maWdXaXRoTW9kdWxlKCkpO1xuICB9KTtcblxuICBpdChcImxlYXZlcyB0aGUgY29uZmlnIHVudG91Y2hlZCB3aGVuIHRoZSBtb2R1bGUgY2FsbCBpcyB1bmtub3duXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlcyhjb25maWdXaXRoTW9kdWxlKCksIFwib3RoZXJfbW9kdWxlXCIsIFtcbiAgICAgICAgeyBsb2NhbE5hbWU6IFwiYXdzXCIsIGFsaWFzOiBcImdsb2JhbF9yZWdpb25cIiB9LFxuICAgICAgXSksXG4gICAgKS50b0VxdWFsKGNvbmZpZ1dpdGhNb2R1bGUoKSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwicGFja2FnZVN1YmRpclwiLCAoKSA9PiB7XG4gIGl0LmVhY2goW1xuICAgIFtcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9pYW0vYXdzXCIsIHVuZGVmaW5lZF0sXG4gICAgW1xuICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgXCJtb2R1bGVzL2lhbS1hY2NvdW50XCIsXG4gICAgXSxcbiAgICBbXCJnaXQ6Omh0dHBzOi8vZ2l0aHViLmNvbS9vcmcvcmVwby5naXQvL3N1Yj9yZWY9djEuMi4zXCIsIFwic3ViXCJdLFxuICAgIFtcImdpdDo6c3NoOi8vZ2l0QGdpdGh1Yi5jb20vb3JnL3JlcG8uZ2l0XCIsIHVuZGVmaW5lZF0sXG4gICAgW1wiLi9sb2NhbC9tb2R1bGVcIiwgdW5kZWZpbmVkXSxcbiAgXSkoXCJzcGxpdHMgJXNcIiwgKHNvdXJjZSwgZXhwZWN0ZWQpID0+IHtcbiAgICBleHBlY3QocGFja2FnZVN1YmRpcihzb3VyY2UgYXMgc3RyaW5nKSkudG9FcXVhbChleHBlY3RlZCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiZmV0Y2hlZE1vZHVsZURpclwiLCAoKSA9PiB7XG4gIGxldCB3b3JrZGlyOiBzdHJpbmc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJmZXRjaGVkLW1vZHVsZS1kaXItXCIpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBmcy5ybVN5bmMod29ya2RpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICB9KTtcblxuICBmdW5jdGlvbiB3cml0ZU1hbmlmZXN0KG1vZHVsZXM6IHsgS2V5OiBzdHJpbmc7IERpcjogc3RyaW5nIH1bXSkge1xuICAgIGNvbnN0IGRpciA9IHBhdGguam9pbih3b3JrZGlyLCBcIi50ZXJyYWZvcm1cIiwgXCJtb2R1bGVzXCIpO1xuICAgIGZzLm1rZGlyU3luYyhkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4oZGlyLCBcIm1vZHVsZXMuanNvblwiKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgTW9kdWxlczogbW9kdWxlcyB9KSxcbiAgICApO1xuICB9XG5cbiAgaXQoXCJwcmVmZXJzIHRoZSBkaXJlY3RvcnkgcmVjb3JkZWQgaW4gdGhlIG1vZHVsZSBtYW5pZmVzdFwiLCAoKSA9PiB7XG4gICAgd3JpdGVNYW5pZmVzdChbXG4gICAgICB7IEtleTogXCJcIiwgRGlyOiBcIi5cIiB9LFxuICAgICAgeyBLZXk6IFwibXlfbW9kdWxlXCIsIERpcjogXCIudGVycmFmb3JtL21vZHVsZXMvbXlfbW9kdWxlL21vZHVsZXMvc3ViXCIgfSxcbiAgICBdKTtcblxuICAgIGV4cGVjdChcbiAgICAgIGZldGNoZWRNb2R1bGVEaXIod29ya2RpciwgXCJteV9tb2R1bGVcIiwgXCJvcmcvbmFtZS9hd3MvL21vZHVsZXMvc3ViXCIpLFxuICAgICkudG9FcXVhbChcbiAgICAgIHBhdGguam9pbihcbiAgICAgICAgd29ya2RpcixcbiAgICAgICAgXCIudGVycmFmb3JtXCIsXG4gICAgICAgIFwibW9kdWxlc1wiLFxuICAgICAgICBcIm15X21vZHVsZVwiLFxuICAgICAgICBcIm1vZHVsZXNcIixcbiAgICAgICAgXCJzdWJcIixcbiAgICAgICksXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJmYWxscyBiYWNrIHRvIHRoZSBpbnN0YWxsIHBhdGggd2hlbiB0aGUgbWFuaWZlc3Qgd2FzIG5vdCB3cml0dGVuXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBmZXRjaGVkTW9kdWxlRGlyKHdvcmtkaXIsIFwibXlfbW9kdWxlXCIsIFwib3JnL25hbWUvYXdzLy9tb2R1bGVzL3N1YlwiKSxcbiAgICApLnRvRXF1YWwoXG4gICAgICBwYXRoLmpvaW4oXG4gICAgICAgIHdvcmtkaXIsXG4gICAgICAgIFwiLnRlcnJhZm9ybVwiLFxuICAgICAgICBcIm1vZHVsZXNcIixcbiAgICAgICAgXCJteV9tb2R1bGVcIixcbiAgICAgICAgXCJtb2R1bGVzXCIsXG4gICAgICAgIFwic3ViXCIsXG4gICAgICApLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0KFwiZmFsbHMgYmFjayB0byB0aGUgaW5zdGFsbCBwYXRoIHdoZW4gdGhlIG1hbmlmZXN0IGxhY2tzIHRoZSBtb2R1bGVcIiwgKCkgPT4ge1xuICAgIHdyaXRlTWFuaWZlc3QoW3sgS2V5OiBcIlwiLCBEaXI6IFwiLlwiIH1dKTtcblxuICAgIGV4cGVjdChmZXRjaGVkTW9kdWxlRGlyKHdvcmtkaXIsIFwibXlfbW9kdWxlXCIsIFwib3JnL25hbWUvYXdzXCIpKS50b0VxdWFsKFxuICAgICAgcGF0aC5qb2luKHdvcmtkaXIsIFwiLnRlcnJhZm9ybVwiLCBcIm1vZHVsZXNcIiwgXCJteV9tb2R1bGVcIiksXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJyZWFkcyBsb2NhbCBtb2R1bGVzIHdoZXJlIHRoZXkgYXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBmZXRjaGVkTW9kdWxlRGlyKHdvcmtkaXIsIFwibXlfbW9kdWxlXCIsIFwiLi4vbW9kXCIsIFwiL2Ficy9wYXRoL3RvL21vZFwiKSxcbiAgICApLnRvRXF1YWwoXCIvYWJzL3BhdGgvdG8vbW9kXCIpO1xuICB9KTtcbn0pO1xuIl19
@@ -17,13 +17,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
17
17
  }) : function(o, v) {
18
18
  o["default"] = v;
19
19
  });
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
27
37
  Object.defineProperty(exports, "__esModule", { value: true });
28
38
  jest.mock("../provider-schema", () => ({
29
39
  ...jest.requireActual("../provider-schema"),
@@ -77,4 +87,4 @@ describe("readSchema - emission gap warning on cache hits (regression)", () => {
77
87
  expect(warnSpy.mock.calls[1][0]).toContain("provider schema fetched with terraform 1.7.5");
78
88
  });
79
89
  });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1lbWlzc2lvbi1nYXAtd2FybmluZy51bml0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3JlYWQtZW1pc3Npb24tZ2FwLXdhcm5pbmcudW5pdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7SUFDM0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtJQUM3QixxQkFBcUIsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUosNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsNENBSXdCO0FBQ3hCLGtDQUFxQztBQUNyQyx3REFBK0U7QUFFL0UsTUFBTSxzQkFBc0IsR0FBRyxvQ0FBMEMsQ0FBQztBQUMxRSxNQUFNLHlCQUF5QixHQUFHLHVDQUE2QyxDQUFDO0FBRWhGLE1BQU0sY0FBYyxHQUFtQjtJQUNyQyxjQUFjLEVBQUUsS0FBSztJQUNyQixRQUFRLEVBQUUsV0FBVztJQUNyQixXQUFXLEVBQUUsT0FBTztDQUNyQixDQUFDO0FBRUYsUUFBUSxDQUFDLDhEQUE4RCxFQUFFLEdBQUcsRUFBRTtJQUM1RSxJQUFJLFFBQWdCLENBQUM7SUFDckIsSUFBSSxPQUF5QixDQUFDO0lBRTlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RSx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0Qyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUMxQyxJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFDSCxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRkFBbUYsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRyxNQUFNLFVBQVUsR0FBRyxJQUFJLHFDQUEyQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDM0UsTUFBTSxjQUFjLEdBQUcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFFakQsTUFBTSxJQUFBLGlCQUFVLEVBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFBLGlCQUFVLEVBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFekQseUVBQXlFO1FBQ3pFLG9EQUFvRDtRQUNwRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RCxvRUFBb0U7UUFDcEUscUVBQXFFO1FBQ3JFLDZCQUE2QjtRQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN4Qyw4Q0FBOEMsQ0FDL0MsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDeEMsOENBQThDLENBQy9DLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuamVzdC5tb2NrKFwiLi4vcHJvdmlkZXItc2NoZW1hXCIsICgpID0+ICh7XG4gIC4uLmplc3QucmVxdWlyZUFjdHVhbChcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiKSxcbiAgcmVhZFByb3ZpZGVyU2NoZW1hOiBqZXN0LmZuKCksXG4gIGdldEZldGNoaW5nQ2xpVmVyc2lvbjogamVzdC5mbigpLFxufSkpO1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgbG9nZ2VyLFxuICBQcm92aWRlclNjaGVtYSxcbiAgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50LFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IHJlYWRTY2hlbWEgfSBmcm9tIFwiLi4vcmVhZFwiO1xuaW1wb3J0IHsgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uLCByZWFkUHJvdmlkZXJTY2hlbWEgfSBmcm9tIFwiLi4vcHJvdmlkZXItc2NoZW1hXCI7XG5cbmNvbnN0IHJlYWRQcm92aWRlclNjaGVtYU1vY2sgPSByZWFkUHJvdmlkZXJTY2hlbWEgYXMgdW5rbm93biBhcyBqZXN0Lk1vY2s7XG5jb25zdCBnZXRGZXRjaGluZ0NsaVZlcnNpb25Nb2NrID0gZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uIGFzIHVua25vd24gYXMgamVzdC5Nb2NrO1xuXG5jb25zdCBzdGFtcGVkRml4dHVyZTogUHJvdmlkZXJTY2hlbWEgPSB7XG4gIGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiLFxuICBjbGlfbmFtZTogXCJ0ZXJyYWZvcm1cIixcbiAgY2xpX3ZlcnNpb246IFwiMS43LjVcIixcbn07XG5cbmRlc2NyaWJlKFwicmVhZFNjaGVtYSAtIGVtaXNzaW9uIGdhcCB3YXJuaW5nIG9uIGNhY2hlIGhpdHMgKHJlZ3Jlc3Npb24pXCIsICgpID0+IHtcbiAgbGV0IGNhY2hlRGlyOiBzdHJpbmc7XG4gIGxldCB3YXJuU3B5OiBqZXN0LlNweUluc3RhbmNlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNhY2hlRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcInByb3ZpZGVyLXNjaGVtYS1jYWNoZS1cIikpO1xuICAgIHdhcm5TcHkgPSBqZXN0LnNweU9uKGxvZ2dlciwgXCJ3YXJuXCIpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB1bmRlZmluZWQpO1xuICAgIGdldEZldGNoaW5nQ2xpVmVyc2lvbk1vY2subW9ja1Jlc2V0KCk7XG4gICAgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZSh7XG4gICAgICBuYW1lOiBcInRlcnJhZm9ybVwiLFxuICAgICAgdmVyc2lvbjogXCIxLjcuNVwiLFxuICAgIH0pO1xuICAgIHJlYWRQcm92aWRlclNjaGVtYU1vY2subW9ja1Jlc2V0KCk7XG4gICAgcmVhZFByb3ZpZGVyU2NoZW1hTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZShzdGFtcGVkRml4dHVyZSk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgd2FyblNweS5tb2NrUmVzdG9yZSgpO1xuICAgIGZzLnJlbW92ZVN5bmMoY2FjaGVEaXIpO1xuICB9KTtcblxuICBpdChcImZpcmVzIHRoZSB3YXJuaW5nIG9uIGJvdGggYSBmcmVzaCBmZXRjaCBhbmQgYSBsYXRlciBjYWNoZSBoaXQgZm9yIHRoZSBzYW1lIHRhcmdldFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29uc3RyYWludCA9IG5ldyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQoXCJoYXNoaWNvcnAvbnVsbEAzLjEuMFwiKTtcbiAgICBjb25zdCB0YXJnZXRWZXJzaW9ucyA9IHsgdGVycmFmb3JtOiBcIj49MS4xMi4wXCIgfTtcblxuICAgIGF3YWl0IHJlYWRTY2hlbWEoW2NvbnN0cmFpbnRdLCBjYWNoZURpciwgdGFyZ2V0VmVyc2lvbnMpO1xuICAgIGF3YWl0IHJlYWRTY2hlbWEoW2NvbnN0cmFpbnRdLCBjYWNoZURpciwgdGFyZ2V0VmVyc2lvbnMpO1xuXG4gICAgLy8gc2Vjb25kIHJlYWRTY2hlbWEgY2FsbCBpcyBzZXJ2ZWQgZnJvbSB0aGUgb24tZGlzayBjYWNoZSB3cml0dGVuIGJ5IHRoZVxuICAgIC8vIGZpcnN0IC0gdGhlIHVuZGVybHlpbmcgZmV0Y2ggb25seSBldmVyIHJ1bnMgb25jZS5cbiAgICBleHBlY3QocmVhZFByb3ZpZGVyU2NoZW1hTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXG4gICAgLy8geWV0IHRoZSBlbWlzc2lvbi1nYXAgd2FybmluZyBmaXJlcyBmb3IgYm90aCBjYWxscywgYmVjYXVzZSBpdCBub3dcbiAgICAvLyBydW5zIGFnYWluc3QgdGhlIHJlc29sdmVkIChjYWNoZWQtb3ItZnJlc2gpIHNjaGVtYSBpbiByZWFkLnRzLCBub3RcbiAgICAvLyBpbnNpZGUgcmVhZFByb3ZpZGVyU2NoZW1hLlxuICAgIGV4cGVjdCh3YXJuU3B5KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMik7XG4gICAgZXhwZWN0KHdhcm5TcHkubW9jay5jYWxsc1swXVswXSkudG9Db250YWluKFxuICAgICAgXCJwcm92aWRlciBzY2hlbWEgZmV0Y2hlZCB3aXRoIHRlcnJhZm9ybSAxLjcuNVwiLFxuICAgICk7XG4gICAgZXhwZWN0KHdhcm5TcHkubW9jay5jYWxsc1sxXVswXSkudG9Db250YWluKFxuICAgICAgXCJwcm92aWRlciBzY2hlbWEgZmV0Y2hlZCB3aXRoIHRlcnJhZm9ybSAxLjcuNVwiLFxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1lbWlzc2lvbi1nYXAtd2FybmluZy51bml0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3JlYWQtZW1pc3Npb24tZ2FwLXdhcm5pbmcudW5pdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0lBQzNDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7SUFDN0IscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUNqQyxDQUFDLENBQUMsQ0FBQztBQUVKLDZDQUErQjtBQUMvQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDRDQUl3QjtBQUN4QixrQ0FBcUM7QUFDckMsd0RBQStFO0FBRS9FLE1BQU0sc0JBQXNCLEdBQUcsb0NBQTBDLENBQUM7QUFDMUUsTUFBTSx5QkFBeUIsR0FBRyx1Q0FBNkMsQ0FBQztBQUVoRixNQUFNLGNBQWMsR0FBbUI7SUFDckMsY0FBYyxFQUFFLEtBQUs7SUFDckIsUUFBUSxFQUFFLFdBQVc7SUFDckIsV0FBVyxFQUFFLE9BQU87Q0FDckIsQ0FBQztBQUVGLFFBQVEsQ0FBQyw4REFBOEQsRUFBRSxHQUFHLEVBQUU7SUFDNUUsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksT0FBeUIsQ0FBQztJQUU5QixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekUseUJBQXlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEMseUJBQXlCLENBQUMsaUJBQWlCLENBQUM7WUFDMUMsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO1FBQ0gsc0JBQXNCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUZBQW1GLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakcsTUFBTSxVQUFVLEdBQUcsSUFBSSxxQ0FBMkIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sY0FBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBRWpELE1BQU0sSUFBQSxpQkFBVSxFQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBQSxpQkFBVSxFQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXpELHlFQUF5RTtRQUN6RSxvREFBb0Q7UUFDcEQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEQsb0VBQW9FO1FBQ3BFLHFFQUFxRTtRQUNyRSw2QkFBNkI7UUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDeEMsOENBQThDLENBQy9DLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3hDLDhDQUE4QyxDQUMvQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmplc3QubW9jayhcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiLCAoKSA9PiAoe1xuICAuLi5qZXN0LnJlcXVpcmVBY3R1YWwoXCIuLi9wcm92aWRlci1zY2hlbWFcIiksXG4gIHJlYWRQcm92aWRlclNjaGVtYTogamVzdC5mbigpLFxuICBnZXRGZXRjaGluZ0NsaVZlcnNpb246IGplc3QuZm4oKSxcbn0pKTtcblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGxvZ2dlcixcbiAgUHJvdmlkZXJTY2hlbWEsXG4gIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyByZWFkU2NoZW1hIH0gZnJvbSBcIi4uL3JlYWRcIjtcbmltcG9ydCB7IGdldEZldGNoaW5nQ2xpVmVyc2lvbiwgcmVhZFByb3ZpZGVyU2NoZW1hIH0gZnJvbSBcIi4uL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5jb25zdCByZWFkUHJvdmlkZXJTY2hlbWFNb2NrID0gcmVhZFByb3ZpZGVyU2NoZW1hIGFzIHVua25vd24gYXMgamVzdC5Nb2NrO1xuY29uc3QgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uTW9jayA9IGdldEZldGNoaW5nQ2xpVmVyc2lvbiBhcyB1bmtub3duIGFzIGplc3QuTW9jaztcblxuY29uc3Qgc3RhbXBlZEZpeHR1cmU6IFByb3ZpZGVyU2NoZW1hID0ge1xuICBmb3JtYXRfdmVyc2lvbjogXCIwLjFcIixcbiAgY2xpX25hbWU6IFwidGVycmFmb3JtXCIsXG4gIGNsaV92ZXJzaW9uOiBcIjEuNy41XCIsXG59O1xuXG5kZXNjcmliZShcInJlYWRTY2hlbWEgLSBlbWlzc2lvbiBnYXAgd2FybmluZyBvbiBjYWNoZSBoaXRzIChyZWdyZXNzaW9uKVwiLCAoKSA9PiB7XG4gIGxldCBjYWNoZURpcjogc3RyaW5nO1xuICBsZXQgd2FyblNweTogamVzdC5TcHlJbnN0YW5jZTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjYWNoZURpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJwcm92aWRlci1zY2hlbWEtY2FjaGUtXCIpKTtcbiAgICB3YXJuU3B5ID0gamVzdC5zcHlPbihsb2dnZXIsIFwid2FyblwiKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gdW5kZWZpbmVkKTtcbiAgICBnZXRGZXRjaGluZ0NsaVZlcnNpb25Nb2NrLm1vY2tSZXNldCgpO1xuICAgIGdldEZldGNoaW5nQ2xpVmVyc2lvbk1vY2subW9ja1Jlc29sdmVkVmFsdWUoe1xuICAgICAgbmFtZTogXCJ0ZXJyYWZvcm1cIixcbiAgICAgIHZlcnNpb246IFwiMS43LjVcIixcbiAgICB9KTtcbiAgICByZWFkUHJvdmlkZXJTY2hlbWFNb2NrLm1vY2tSZXNldCgpO1xuICAgIHJlYWRQcm92aWRlclNjaGVtYU1vY2subW9ja1Jlc29sdmVkVmFsdWUoc3RhbXBlZEZpeHR1cmUpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIHdhcm5TcHkubW9ja1Jlc3RvcmUoKTtcbiAgICBmcy5yZW1vdmVTeW5jKGNhY2hlRGlyKTtcbiAgfSk7XG5cbiAgaXQoXCJmaXJlcyB0aGUgd2FybmluZyBvbiBib3RoIGEgZnJlc2ggZmV0Y2ggYW5kIGEgbGF0ZXIgY2FjaGUgaGl0IGZvciB0aGUgc2FtZSB0YXJnZXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnN0cmFpbnQgPSBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KFwiaGFzaGljb3JwL251bGxAMy4xLjBcIik7XG4gICAgY29uc3QgdGFyZ2V0VmVyc2lvbnMgPSB7IHRlcnJhZm9ybTogXCI+PTEuMTIuMFwiIH07XG5cbiAgICBhd2FpdCByZWFkU2NoZW1hKFtjb25zdHJhaW50XSwgY2FjaGVEaXIsIHRhcmdldFZlcnNpb25zKTtcbiAgICBhd2FpdCByZWFkU2NoZW1hKFtjb25zdHJhaW50XSwgY2FjaGVEaXIsIHRhcmdldFZlcnNpb25zKTtcblxuICAgIC8vIHNlY29uZCByZWFkU2NoZW1hIGNhbGwgaXMgc2VydmVkIGZyb20gdGhlIG9uLWRpc2sgY2FjaGUgd3JpdHRlbiBieSB0aGVcbiAgICAvLyBmaXJzdCAtIHRoZSB1bmRlcmx5aW5nIGZldGNoIG9ubHkgZXZlciBydW5zIG9uY2UuXG4gICAgZXhwZWN0KHJlYWRQcm92aWRlclNjaGVtYU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgIC8vIHlldCB0aGUgZW1pc3Npb24tZ2FwIHdhcm5pbmcgZmlyZXMgZm9yIGJvdGggY2FsbHMsIGJlY2F1c2UgaXQgbm93XG4gICAgLy8gcnVucyBhZ2FpbnN0IHRoZSByZXNvbHZlZCAoY2FjaGVkLW9yLWZyZXNoKSBzY2hlbWEgaW4gcmVhZC50cywgbm90XG4gICAgLy8gaW5zaWRlIHJlYWRQcm92aWRlclNjaGVtYS5cbiAgICBleHBlY3Qod2FyblNweSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDIpO1xuICAgIGV4cGVjdCh3YXJuU3B5Lm1vY2suY2FsbHNbMF1bMF0pLnRvQ29udGFpbihcbiAgICAgIFwicHJvdmlkZXIgc2NoZW1hIGZldGNoZWQgd2l0aCB0ZXJyYWZvcm0gMS43LjVcIixcbiAgICApO1xuICAgIGV4cGVjdCh3YXJuU3B5Lm1vY2suY2FsbHNbMV1bMF0pLnRvQ29udGFpbihcbiAgICAgIFwicHJvdmlkZXIgc2NoZW1hIGZldGNoZWQgd2l0aCB0ZXJyYWZvcm0gMS43LjVcIixcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
package/build/cache.js CHANGED
@@ -19,15 +19,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
19
19
  }) : function(o, v) {
20
20
  o["default"] = v;
21
21
  });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
29
39
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.cachedAccess = void 0;
40
+ exports.cachedAccess = cachedAccess;
31
41
  const commons_1 = require("@cdktn/commons");
32
42
  const fs = __importStar(require("fs-extra"));
33
43
  const path = __importStar(require("path"));
@@ -68,5 +78,4 @@ function cachedAccess(producer, cacheDir, keySuffix) {
68
78
  return result;
69
79
  };
70
80
  }
71
- exports.cachedAccess = cachedAccess;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCw0Q0FBdUU7QUFDdkUsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUU3QixxRUFBcUU7QUFDckUscUZBQXFGO0FBQ3JGLEVBQUU7QUFDRiwyRUFBMkU7QUFDM0UsNEVBQTRFO0FBQzVFLDBFQUEwRTtBQUMxRSxzQ0FBc0M7QUFDdEMsU0FBUyxRQUFRLENBQUMsS0FBNEIsRUFBRSxTQUFrQjtJQUNoRSxNQUFNLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxrQkFBa0IsQ0FDakUsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQ3BCLEVBQUUsQ0FBQztJQUNKLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDdkUsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsUUFBa0MsRUFDbEMsUUFBd0IsRUFDeEIsU0FBa0I7SUFFbEIsTUFBTSxZQUFZLEdBQUcsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRXpFLElBQUksWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFrQixDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNwRSxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQixvQ0FBb0MsUUFBUSxzQkFBc0IsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdEUsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDckIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQU0sQ0FBQztRQUNoRSxDQUFDO1FBQ0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUV6RCxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN2QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDO0FBbkNELG9DQW1DQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgQ29uc3RydWN0c01ha2VyVGFyZ2V0LCBsb2dnZXIsIEVycm9ycyB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbi8vIFdlIGtlZXAgdGhpcyB2ZXJ5IHNpbXBsZSBzaW5jZSB0aGUgY2FjaGluZyBmZWF0dXJlIGlzIGV4cGVyaW1lbnRhbFxuLy8gd2UgbWlnaHQgbmVlZCB0byBkbyBob3VzZWtlZXBpbmcgLyBpbmNsdWRlIHRlcnJhZm9ybSAvIGNka3RmIHZlcnNpb24gaW4gdGhlIGZ1dHVyZVxuLy9cbi8vIGtleVN1ZmZpeCBkaXN0aW5ndWlzaGVzIGNhY2hlIGVudHJpZXMgZmV0Y2hlZCBieSBkaWZmZXJlbnQgQ0xJcy92ZXJzaW9uc1xuLy8gKGUuZy4gXCJ0ZXJyYWZvcm0tMS43XCIpIHNvIGEgc2NoZW1hIGZldGNoZWQgYnkgYSBDTEkgdG9vIG9sZCB0byBlbWl0IG5ld2VyXG4vLyBzZWN0aW9ucyAoZnVuY3Rpb25zLCBlcGhlbWVyYWwgcmVzb3VyY2VzLCAuLi4pIGlzbid0IHNlcnZlZCB1cCBhcyBpZiBpdFxuLy8gd2VyZSBhIGNvbXBsZXRlIGZldGNoLiBTZWUgcmVhZC50cy5cbmZ1bmN0aW9uIGNhY2hlS2V5KGlucHV0OiBDb25zdHJ1Y3RzTWFrZXJUYXJnZXQsIGtleVN1ZmZpeD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGJhc2UgPSBgJHtlbmNvZGVVUklDb21wb25lbnQoaW5wdXQuZnFuKX1AJHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgaW5wdXQudmVyc2lvbiB8fCBcIlwiLFxuICApfWA7XG4gIHJldHVybiBrZXlTdWZmaXggPyBgJHtiYXNlfUAke2VuY29kZVVSSUNvbXBvbmVudChrZXlTdWZmaXgpfWAgOiBiYXNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVkQWNjZXNzPEkgZXh0ZW5kcyBDb25zdHJ1Y3RzTWFrZXJUYXJnZXQsIE8+KFxuICBwcm9kdWNlcjogKGlucHV0OiBJKSA9PiBQcm9taXNlPE8+LFxuICBjYWNoZURpcj86IHN0cmluZyB8IG51bGwsXG4gIGtleVN1ZmZpeD86IHN0cmluZyxcbik6IChpbnB1dDogSSkgPT4gUHJvbWlzZTxPPiB7XG4gIGNvbnN0IGNhY2hlRW5hYmxlZCA9IHR5cGVvZiBjYWNoZURpciA9PT0gXCJzdHJpbmdcIiAmJiBjYWNoZURpci5sZW5ndGggPiAwO1xuXG4gIGlmIChjYWNoZUVuYWJsZWQgJiYgIWZzLmxzdGF0U3luYyhjYWNoZURpciBhcyBzdHJpbmcpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgUHJvdmlkZXIgU2NoZW1hIENhY2hlIGRpcmVjdG9yeSAnJHtjYWNoZURpcn0nIGlzIG5vdCBhIGRpcmVjdG9yeWAsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghY2FjaGVFbmFibGVkKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBQcm92aWRlciBTY2hlbWEgQ2FjaGUgZGlzYWJsZWRgKTtcbiAgICByZXR1cm4gKGlucHV0KSA9PiB7XG4gICAgICByZXR1cm4gcHJvZHVjZXIoaW5wdXQpO1xuICAgIH07XG4gIH1cblxuICBsb2dnZXIuZGVidWcoYFByb3ZpZGVyIFNjaGVtYSBDYWNoZSBlbmFibGVkLCBjYWNoaW5nIGF0ICR7Y2FjaGVEaXJ9YCk7XG4gIHJldHVybiBhc3luYyAoaW5wdXQpID0+IHtcbiAgICBjb25zdCBrZXkgPSBjYWNoZUtleShpbnB1dCwga2V5U3VmZml4KTtcbiAgICBjb25zdCBjYWNoZVBhdGggPSBwYXRoLmpvaW4oY2FjaGVEaXIsIGAke2tleX0uanNvbmApO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGNhY2hlUGF0aCkpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgQ2FjaGUgaGl0IGZvciAke2tleX1gKTtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGNhY2hlUGF0aCwgXCJ1dGYtOFwiKSkgYXMgTztcbiAgICB9XG4gICAgbG9nZ2VyLmRlYnVnKGBDYWNoZSBtaXNzIGZvciAke2tleX0sIGdlbmVyYXRpbmcgc2NoZW1hYCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9kdWNlcihpbnB1dCk7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGNhY2hlUGF0aCwgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7XG4gICAgbG9nZ2VyLmRlYnVnKGBXcml0ZSBjYWNoZSBmb3IgJHtrZXl9YCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkgsb0NBbUNDO0FBckRELDRDQUF1RTtBQUN2RSw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBRTdCLHFFQUFxRTtBQUNyRSxxRkFBcUY7QUFDckYsRUFBRTtBQUNGLDJFQUEyRTtBQUMzRSw0RUFBNEU7QUFDNUUsMEVBQTBFO0FBQzFFLHNDQUFzQztBQUN0QyxTQUFTLFFBQVEsQ0FBQyxLQUE0QixFQUFFLFNBQWtCO0lBQ2hFLE1BQU0sSUFBSSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUNqRSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FDcEIsRUFBRSxDQUFDO0lBQ0osT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN2RSxDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixRQUFrQyxFQUNsQyxRQUF3QixFQUN4QixTQUFrQjtJQUVsQixNQUFNLFlBQVksR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekUsSUFBSSxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQWtCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3BFLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLG9DQUFvQyxRQUFRLHNCQUFzQixDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN0RSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNyQixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM3QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBTSxDQUFDO1FBQ2hFLENBQUM7UUFDRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXpELE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RELGdCQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdHNNYWtlclRhcmdldCwgbG9nZ2VyLCBFcnJvcnMgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG4vLyBXZSBrZWVwIHRoaXMgdmVyeSBzaW1wbGUgc2luY2UgdGhlIGNhY2hpbmcgZmVhdHVyZSBpcyBleHBlcmltZW50YWxcbi8vIHdlIG1pZ2h0IG5lZWQgdG8gZG8gaG91c2VrZWVwaW5nIC8gaW5jbHVkZSB0ZXJyYWZvcm0gLyBjZGt0ZiB2ZXJzaW9uIGluIHRoZSBmdXR1cmVcbi8vXG4vLyBrZXlTdWZmaXggZGlzdGluZ3Vpc2hlcyBjYWNoZSBlbnRyaWVzIGZldGNoZWQgYnkgZGlmZmVyZW50IENMSXMvdmVyc2lvbnNcbi8vIChlLmcuIFwidGVycmFmb3JtLTEuN1wiKSBzbyBhIHNjaGVtYSBmZXRjaGVkIGJ5IGEgQ0xJIHRvbyBvbGQgdG8gZW1pdCBuZXdlclxuLy8gc2VjdGlvbnMgKGZ1bmN0aW9ucywgZXBoZW1lcmFsIHJlc291cmNlcywgLi4uKSBpc24ndCBzZXJ2ZWQgdXAgYXMgaWYgaXRcbi8vIHdlcmUgYSBjb21wbGV0ZSBmZXRjaC4gU2VlIHJlYWQudHMuXG5mdW5jdGlvbiBjYWNoZUtleShpbnB1dDogQ29uc3RydWN0c01ha2VyVGFyZ2V0LCBrZXlTdWZmaXg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBiYXNlID0gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0LmZxbil9QCR7ZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgIGlucHV0LnZlcnNpb24gfHwgXCJcIixcbiAgKX1gO1xuICByZXR1cm4ga2V5U3VmZml4ID8gYCR7YmFzZX1AJHtlbmNvZGVVUklDb21wb25lbnQoa2V5U3VmZml4KX1gIDogYmFzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhY2hlZEFjY2VzczxJIGV4dGVuZHMgQ29uc3RydWN0c01ha2VyVGFyZ2V0LCBPPihcbiAgcHJvZHVjZXI6IChpbnB1dDogSSkgPT4gUHJvbWlzZTxPPixcbiAgY2FjaGVEaXI/OiBzdHJpbmcgfCBudWxsLFxuICBrZXlTdWZmaXg/OiBzdHJpbmcsXG4pOiAoaW5wdXQ6IEkpID0+IFByb21pc2U8Tz4ge1xuICBjb25zdCBjYWNoZUVuYWJsZWQgPSB0eXBlb2YgY2FjaGVEaXIgPT09IFwic3RyaW5nXCIgJiYgY2FjaGVEaXIubGVuZ3RoID4gMDtcblxuICBpZiAoY2FjaGVFbmFibGVkICYmICFmcy5sc3RhdFN5bmMoY2FjaGVEaXIgYXMgc3RyaW5nKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYFByb3ZpZGVyIFNjaGVtYSBDYWNoZSBkaXJlY3RvcnkgJyR7Y2FjaGVEaXJ9JyBpcyBub3QgYSBkaXJlY3RvcnlgLFxuICAgICk7XG4gIH1cblxuICBpZiAoIWNhY2hlRW5hYmxlZCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgUHJvdmlkZXIgU2NoZW1hIENhY2hlIGRpc2FibGVkYCk7XG4gICAgcmV0dXJuIChpbnB1dCkgPT4ge1xuICAgICAgcmV0dXJuIHByb2R1Y2VyKGlucHV0KTtcbiAgICB9O1xuICB9XG5cbiAgbG9nZ2VyLmRlYnVnKGBQcm92aWRlciBTY2hlbWEgQ2FjaGUgZW5hYmxlZCwgY2FjaGluZyBhdCAke2NhY2hlRGlyfWApO1xuICByZXR1cm4gYXN5bmMgKGlucHV0KSA9PiB7XG4gICAgY29uc3Qga2V5ID0gY2FjaGVLZXkoaW5wdXQsIGtleVN1ZmZpeCk7XG4gICAgY29uc3QgY2FjaGVQYXRoID0gcGF0aC5qb2luKGNhY2hlRGlyLCBgJHtrZXl9Lmpzb25gKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhjYWNoZVBhdGgpKSB7XG4gICAgICBsb2dnZXIuZGVidWcoYENhY2hlIGhpdCBmb3IgJHtrZXl9YCk7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZShjYWNoZVBhdGgsIFwidXRmLThcIikpIGFzIE87XG4gICAgfVxuICAgIGxvZ2dlci5kZWJ1ZyhgQ2FjaGUgbWlzcyBmb3IgJHtrZXl9LCBnZW5lcmF0aW5nIHNjaGVtYWApO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvZHVjZXIoaW5wdXQpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShjYWNoZVBhdGgsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpO1xuICAgIGxvZ2dlci5kZWJ1ZyhgV3JpdGUgY2FjaGUgZm9yICR7a2V5fWApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG4iXX0=
@@ -15,15 +15,28 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.suggestedEmittingCliVersions = exports.checkSchemaEmissionGapFamilies = exports.checkSchemaEmissionGaps = exports.SCHEMA_EMISSION_FAMILY_LABELS = exports.SCHEMA_EMISSION_BOUNDARIES = void 0;
36
+ exports.SCHEMA_EMISSION_FAMILY_LABELS = exports.SCHEMA_EMISSION_BOUNDARIES = void 0;
37
+ exports.checkSchemaEmissionGaps = checkSchemaEmissionGaps;
38
+ exports.checkSchemaEmissionGapFamilies = checkSchemaEmissionGapFamilies;
39
+ exports.suggestedEmittingCliVersions = suggestedEmittingCliVersions;
27
40
  // Copyright (c) HashiCorp, Inc
28
41
  // SPDX-License-Identifier: MPL-2.0
29
42
  const semver = __importStar(require("semver"));
@@ -70,7 +83,6 @@ exports.SCHEMA_EMISSION_FAMILY_LABELS = {
70
83
  function checkSchemaEmissionGaps(cli, targets) {
71
84
  return checkSchemaEmissionGapFamilies(cli, targets).map((family) => exports.SCHEMA_EMISSION_FAMILY_LABELS[family]);
72
85
  }
73
- exports.checkSchemaEmissionGaps = checkSchemaEmissionGaps;
74
86
  /**
75
87
  * Same as checkSchemaEmissionGaps, but returns the raw family keys so
76
88
  * callers can also compute a remedy (see suggestedEmittingCliVersions).
@@ -109,7 +121,6 @@ function checkSchemaEmissionGapFamilies(cli, targets) {
109
121
  }
110
122
  return gaps;
111
123
  }
112
- exports.checkSchemaEmissionGapFamilies = checkSchemaEmissionGapFamilies;
113
124
  /**
114
125
  * The lowest CLI version per product whose `providers schema -json` emits
115
126
  * every one of the given families — the remedy to suggest alongside the
@@ -128,5 +139,4 @@ function suggestedEmittingCliVersions(families) {
128
139
  .filter((part) => part !== undefined)
129
140
  .join(" / ");
130
141
  }
131
- exports.suggestedEmittingCliVersions = suggestedEmittingCliVersions;
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pc3Npb24tY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW1pc3Npb24tY2hlY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLCtDQUFpQztBQXFCakMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFHM0Q7Ozs7Ozs7Ozs7OztHQVlHO0FBQ1UsUUFBQSwwQkFBMEIsR0FHbkM7SUFDRixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7SUFDcEQsMEJBQTBCLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7SUFDdkUsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELHlCQUF5QixFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO0NBQ3ZFLENBQUM7QUFFVyxRQUFBLDZCQUE2QixHQUd0QztJQUNGLFNBQVMsRUFBRSxvQkFBb0I7SUFDL0IsMEJBQTBCLEVBQUUscUJBQXFCO0lBQ2pELFVBQVUsRUFBRSx1QkFBdUI7SUFDbkMseUJBQXlCLEVBQUUsbUJBQW1CO0NBQy9DLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLEdBQXdCLEVBQ3hCLE9BQWdDO0lBRWhDLE9BQU8sOEJBQThCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FDckQsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLHFDQUE2QixDQUFDLE1BQU0sQ0FBQyxDQUNsRCxDQUFDO0FBQ0osQ0FBQztBQVBELDBEQU9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQiw4QkFBOEIsQ0FDNUMsR0FBd0IsRUFDeEIsT0FBZ0M7SUFFaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQXFCLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQTJCLEVBQUUsQ0FBQztJQUV4QyxLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQzlCLGtDQUEwQixDQUNELEVBQUUsQ0FBQztRQUM1QixNQUFNLFVBQVUsR0FBRyxrQ0FBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVc7WUFBRSxTQUFTO1FBRTNCLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztZQUFFLFNBQVM7UUFFbkQsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzlDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUMvQixJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUMxRCxNQUFNLGNBQWMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQztnQkFDSCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFBQyxXQUFNLENBQUM7Z0JBQ1AsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU07WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFuQ0Qsd0VBbUNDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQzFDLFFBQWdDO0lBRWhDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLFFBQVE7YUFDcEIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxrQ0FBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNwQixHQUFHLEVBQUUsQ0FBQztRQUNULE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sTUFBTSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztTQUNDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztTQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQVpELG9FQVlDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgVGVycmFmb3JtQ2xpVmVyc2lvbixcbiAgVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG4vKipcbiAqIFRoZSBuZXdlci1wcm90b2NvbCBzY2hlbWEgc2VjdGlvbnMgdGhhdCBhIGZldGNoaW5nIENMSSBvbmx5IHN0YXJ0cyB0b1xuICogKmVtaXQqIGluIGB0ZXJyYWZvcm0gcHJvdmlkZXJzIHNjaGVtYSAtanNvbmAgYXMgb2YgYSBjZXJ0YWluIHZlcnNpb24uXG4gKlxuICogTk9URTogdGhlc2UgYXJlIGVtaXNzaW9uIGJvdW5kYXJpZXMsIG5vdCBsYW5ndWFnZS1zdXBwb3J0IGJvdW5kYXJpZXMgLVxuICogZS5nLiBwcm92aWRlciBmdW5jdGlvbnMgYXJlIHVzYWJsZSBpbiBIQ0wgc2luY2UgVGVycmFmb3JtIDEuNy4wLCBidXQgb25seVxuICogc2hvdyB1cCBpbiB0aGUgc2NoZW1hIGR1bXAgYXMgb2YgMS44LjAuXG4gKi9cbmV4cG9ydCB0eXBlIFNjaGVtYUVtaXNzaW9uRmFtaWx5ID1cbiAgfCBcImZ1bmN0aW9uc1wiXG4gIHwgXCJlcGhlbWVyYWxfcmVzb3VyY2Vfc2NoZW1hc1wiXG4gIHwgXCJ3cml0ZV9vbmx5XCJcbiAgfCBcInJlc291cmNlX2lkZW50aXR5X3NjaGVtYXNcIjtcblxuY29uc3QgVEFSR0VUX1BST0RVQ1RTID0gW1widGVycmFmb3JtXCIsIFwib3BlbnRvZnVcIl0gYXMgY29uc3Q7XG50eXBlIFRhcmdldFByb2R1Y3QgPSAodHlwZW9mIFRBUkdFVF9QUk9EVUNUUylbbnVtYmVyXTtcblxuLyoqXG4gKiBIYW5kLW1haW50YWluZWQgZnJvbSBgdG9vbHMvcHJvdmlkZXItZmVhdHVyZS1hdmFpbGFiaWxpdHkvZmVhdHVyZXMtbWF0cml4Lmpzb25gXG4gKiDigJQgc3BlY2lmaWNhbGx5IGVhY2ggZmVhdHVyZSdzIGBkb2N1bWVudGVkX2VtaXR0ZWRfZnJvbWAgL1xuICogYG9ic2VydmVkX2ludHJvZHVjZWRgIGZpZWxkcyBwZXIgcHJvZHVjdCAoc2VlIHRoYXQgZGlyZWN0b3J5J3MgUkVBRE1FIGZvclxuICogaG93IHRoZSBkYXRhc2V0IGl0c2VsZiBpcyBwcm9kdWNlZC9yZWdlbmVyYXRlZCwgYW5kIGl0cyBcIkluLXJlcG9cbiAqIGNvbnN1bWVyc1wiIHNlY3Rpb24gZm9yIGhvdyB0aGlzIG1hcCBhbmQgYHByb3ZpZGVyRmVhdHVyZUNvbnN0cmFpbnRzYCBpblxuICogYHBhY2thZ2VzL2Nka3RuL3NyYy9wcm92aWRlci1mZWF0dXJlLWNvbnN0cmFpbnRzLnRzYCByZWxhdGUgdG8gdGhlXG4gKiBtYXRyaXggYW5kIHRvIGVhY2ggb3RoZXIpLlxuICpcbiAqIFRoZXJlIGlzIG5vIGF1dG9tYXRlZCBjaGVjayB0aGF0IHRoaXMgbWFwIHN0YXlzIGluIHN5bmMgd2l0aCB0aGUgbWF0cml4O1xuICogdXBkYXRlcyBtdXN0IGJlIGFwcGxpZWQgYnkgaGFuZCB3aGVuIHRoZSBtYXRyaXggY2hhbmdlcy4gQW4gYXV0b21hdGVkXG4gKiBkcmlmdCBjaGVjayBpcyB0cmFja2VkIGluICMzMDkuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ0hFTUFfRU1JU1NJT05fQk9VTkRBUklFUzogUmVjb3JkPFxuICBTY2hlbWFFbWlzc2lvbkZhbWlseSxcbiAgUmVjb3JkPFRhcmdldFByb2R1Y3QsIHN0cmluZz5cbj4gPSB7XG4gIGZ1bmN0aW9uczogeyB0ZXJyYWZvcm06IFwiMS44LjBcIiwgb3BlbnRvZnU6IFwiMS44LjBcIiB9LFxuICBlcGhlbWVyYWxfcmVzb3VyY2Vfc2NoZW1hczogeyB0ZXJyYWZvcm06IFwiMS4xMC4wXCIsIG9wZW50b2Z1OiBcIjEuMTEuMFwiIH0sXG4gIHdyaXRlX29ubHk6IHsgdGVycmFmb3JtOiBcIjEuMTEuMFwiLCBvcGVudG9mdTogXCIxLjExLjBcIiB9LFxuICByZXNvdXJjZV9pZGVudGl0eV9zY2hlbWFzOiB7IHRlcnJhZm9ybTogXCIxLjEyLjBcIiwgb3BlbnRvZnU6IFwiMS4xMi4wXCIgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBTQ0hFTUFfRU1JU1NJT05fRkFNSUxZX0xBQkVMUzogUmVjb3JkPFxuICBTY2hlbWFFbWlzc2lvbkZhbWlseSxcbiAgc3RyaW5nXG4+ID0ge1xuICBmdW5jdGlvbnM6IFwicHJvdmlkZXIgZnVuY3Rpb25zXCIsXG4gIGVwaGVtZXJhbF9yZXNvdXJjZV9zY2hlbWFzOiBcImVwaGVtZXJhbCByZXNvdXJjZXNcIixcbiAgd3JpdGVfb25seTogXCJ3cml0ZS1vbmx5IGF0dHJpYnV0ZXNcIixcbiAgcmVzb3VyY2VfaWRlbnRpdHlfc2NoZW1hczogXCJyZXNvdXJjZSBpZGVudGl0eVwiLFxufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIHNjaGVtYS1lbWlzc2lvbiBnYXBzIHRoZSBnaXZlbiBmZXRjaGluZyBDTEkgaGFzLCBpblxuICogbGlnaHQgb2YgdGhlIHByb2plY3QncyBkZWNsYXJlZCBgdGFyZ2V0VmVyc2lvbnNgLlxuICpcbiAqIEEgZmFtaWx5IGlzIHJlcG9ydGVkIHdoZW4gYm90aCBhcmUgdHJ1ZTpcbiAqIC0gdGhlIGZldGNoaW5nIENMSSdzIG93biB2ZXJzaW9uIHByZWRhdGVzIHRoYXQgZmFtaWx5J3MgZW1pc3Npb25cbiAqICAgYm91bmRhcnkgZm9yIGl0cyBwcm9kdWN0IChzbyB0aGlzIHBhcnRpY3VsYXIgZmV0Y2ggY291bGQgbm90IGhhdmVcbiAqICAgaW5jbHVkZWQgdGhlIHNlY3Rpb24sIGV2ZW4gaWYgdGhlIHByb3ZpZGVyIGltcGxlbWVudHMgaXQpXG4gKiAtIGF0IGxlYXN0IG9uZSBvZiB0aGUgcHJvamVjdCdzIHRhcmdldGVkIHByb2R1Y3RzIGRlY2xhcmVzIGEgcmFuZ2UgdGhhdFxuICogICBpbnRlcnNlY3RzIHRoZSB2ZXJzaW9ucyB3aGVyZSB0aGF0IGZhbWlseSBpcyBlbWl0dGVkIChpLmUuIHRoZSBwcm9qZWN0XG4gKiAgIGFjdHVhbGx5IGludGVuZHMgdG8gcnVuIG9uIHZlcnNpb25zIHdoZXJlIHRoZSBmZWF0dXJlIHdvdWxkIHNob3cgdXApXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzKFxuICBjbGk6IFRlcnJhZm9ybUNsaVZlcnNpb24sXG4gIHRhcmdldHM6IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuKTogc3RyaW5nW10ge1xuICByZXR1cm4gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcEZhbWlsaWVzKGNsaSwgdGFyZ2V0cykubWFwKFxuICAgIChmYW1pbHkpID0+IFNDSEVNQV9FTUlTU0lPTl9GQU1JTFlfTEFCRUxTW2ZhbWlseV0sXG4gICk7XG59XG5cbi8qKlxuICogU2FtZSBhcyBjaGVja1NjaGVtYUVtaXNzaW9uR2FwcywgYnV0IHJldHVybnMgdGhlIHJhdyBmYW1pbHkga2V5cyBzb1xuICogY2FsbGVycyBjYW4gYWxzbyBjb21wdXRlIGEgcmVtZWR5IChzZWUgc3VnZ2VzdGVkRW1pdHRpbmdDbGlWZXJzaW9ucykuXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrU2NoZW1hRW1pc3Npb25HYXBGYW1pbGllcyhcbiAgY2xpOiBUZXJyYWZvcm1DbGlWZXJzaW9uLFxuICB0YXJnZXRzOiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbik6IFNjaGVtYUVtaXNzaW9uRmFtaWx5W10ge1xuICBpZiAoY2xpLm5hbWUgPT09IFwidW5rbm93blwiIHx8ICFjbGkudmVyc2lvbikgcmV0dXJuIFtdO1xuICBjb25zdCBjbGlQcm9kdWN0ID0gY2xpLm5hbWUgYXMgVGFyZ2V0UHJvZHVjdDtcblxuICBjb25zdCBnYXBzOiBTY2hlbWFFbWlzc2lvbkZhbWlseVtdID0gW107XG5cbiAgZm9yIChjb25zdCBmYW1pbHkgb2YgT2JqZWN0LmtleXMoXG4gICAgU0NIRU1BX0VNSVNTSU9OX0JPVU5EQVJJRVMsXG4gICkgYXMgU2NoZW1hRW1pc3Npb25GYW1pbHlbXSkge1xuICAgIGNvbnN0IGJvdW5kYXJpZXMgPSBTQ0hFTUFfRU1JU1NJT05fQk9VTkRBUklFU1tmYW1pbHldO1xuICAgIGNvbnN0IGNsaUJvdW5kYXJ5ID0gYm91bmRhcmllc1tjbGlQcm9kdWN0XTtcbiAgICBpZiAoIWNsaUJvdW5kYXJ5KSBjb250aW51ZTtcblxuICAgIC8vIFRoZSBmZXRjaGluZyBDTEkgaXMgbmV3IGVub3VnaCB0byBlbWl0IHRoaXMgZmFtaWx5IC0gbm8gZ2FwLlxuICAgIGlmICghc2VtdmVyLmx0KGNsaS52ZXJzaW9uLCBjbGlCb3VuZGFyeSkpIGNvbnRpbnVlO1xuXG4gICAgY29uc3Qgd2FudGVkID0gVEFSR0VUX1BST0RVQ1RTLnNvbWUoKHByb2R1Y3QpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldFJhbmdlID0gdGFyZ2V0c1twcm9kdWN0XTtcbiAgICAgIGlmICghdGFyZ2V0UmFuZ2UpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChzZW12ZXIudmFsaWRSYW5nZSh0YXJnZXRSYW5nZSkgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IHN1cHBvcnRlZFJhbmdlID0gYD49JHtib3VuZGFyaWVzW3Byb2R1Y3RdfWA7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gc2VtdmVyLmludGVyc2VjdHModGFyZ2V0UmFuZ2UsIHN1cHBvcnRlZFJhbmdlKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAod2FudGVkKSBnYXBzLnB1c2goZmFtaWx5KTtcbiAgfVxuXG4gIHJldHVybiBnYXBzO1xufVxuXG4vKipcbiAqIFRoZSBsb3dlc3QgQ0xJIHZlcnNpb24gcGVyIHByb2R1Y3Qgd2hvc2UgYHByb3ZpZGVycyBzY2hlbWEgLWpzb25gIGVtaXRzXG4gKiBldmVyeSBvbmUgb2YgdGhlIGdpdmVuIGZhbWlsaWVzIOKAlCB0aGUgcmVtZWR5IHRvIHN1Z2dlc3QgYWxvbmdzaWRlIHRoZVxuICogZmV0Y2gtdGltZSB3YXJuaW5nLlxuICpcbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWdnZXN0ZWRFbWl0dGluZ0NsaVZlcnNpb25zKFxuICBmYW1pbGllczogU2NoZW1hRW1pc3Npb25GYW1pbHlbXSxcbik6IHN0cmluZyB7XG4gIHJldHVybiBUQVJHRVRfUFJPRFVDVFMubWFwKChwcm9kdWN0KSA9PiB7XG4gICAgY29uc3QgbmVlZGVkID0gZmFtaWxpZXNcbiAgICAgIC5tYXAoKGZhbWlseSkgPT4gU0NIRU1BX0VNSVNTSU9OX0JPVU5EQVJJRVNbZmFtaWx5XVtwcm9kdWN0XSlcbiAgICAgIC5zb3J0KHNlbXZlci5jb21wYXJlKVxuICAgICAgLnBvcCgpO1xuICAgIHJldHVybiBuZWVkZWQgPyBgJHtwcm9kdWN0fSA+PSR7bmVlZGVkfWAgOiB1bmRlZmluZWQ7XG4gIH0pXG4gICAgLmZpbHRlcigocGFydCkgPT4gcGFydCAhPT0gdW5kZWZpbmVkKVxuICAgIC5qb2luKFwiIC8gXCIpO1xufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pc3Npb24tY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW1pc3Npb24tY2hlY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUVBLDBEQU9DO0FBUUQsd0VBbUNDO0FBU0Qsb0VBWUM7QUFoSkQsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQywrQ0FBaUM7QUFxQmpDLE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBRzNEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNVLFFBQUEsMEJBQTBCLEdBR25DO0lBQ0YsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO0lBQ3BELDBCQUEwQixFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO0lBQ3ZFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtJQUN2RCx5QkFBeUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtDQUN2RSxDQUFDO0FBRVcsUUFBQSw2QkFBNkIsR0FHdEM7SUFDRixTQUFTLEVBQUUsb0JBQW9CO0lBQy9CLDBCQUEwQixFQUFFLHFCQUFxQjtJQUNqRCxVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLHlCQUF5QixFQUFFLG1CQUFtQjtDQUMvQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLHVCQUF1QixDQUNyQyxHQUF3QixFQUN4QixPQUFnQztJQUVoQyxPQUFPLDhCQUE4QixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQ3JELENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxxQ0FBNkIsQ0FBQyxNQUFNLENBQUMsQ0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDhCQUE4QixDQUM1QyxHQUF3QixFQUN4QixPQUFnQztJQUVoQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU87UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0RCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBcUIsQ0FBQztJQUU3QyxNQUFNLElBQUksR0FBMkIsRUFBRSxDQUFDO0lBRXhDLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FDOUIsa0NBQTBCLENBQ0QsRUFBRSxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLGtDQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVztZQUFFLFNBQVM7UUFFM0IsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO1lBQUUsU0FBUztRQUVuRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQy9CLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzFELE1BQU0sY0FBYyxHQUFHLEtBQUssVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUFDLFdBQU0sQ0FBQztnQkFDUCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksTUFBTTtZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLDRCQUE0QixDQUMxQyxRQUFnQztJQUVoQyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxRQUFRO2FBQ3BCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsa0NBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDcEIsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLE1BQU0sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN2RCxDQUFDLENBQUM7U0FDQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7U0FDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcblxuaW1wb3J0IHR5cGUge1xuICBUZXJyYWZvcm1DbGlWZXJzaW9uLFxuICBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbi8qKlxuICogVGhlIG5ld2VyLXByb3RvY29sIHNjaGVtYSBzZWN0aW9ucyB0aGF0IGEgZmV0Y2hpbmcgQ0xJIG9ubHkgc3RhcnRzIHRvXG4gKiAqZW1pdCogaW4gYHRlcnJhZm9ybSBwcm92aWRlcnMgc2NoZW1hIC1qc29uYCBhcyBvZiBhIGNlcnRhaW4gdmVyc2lvbi5cbiAqXG4gKiBOT1RFOiB0aGVzZSBhcmUgZW1pc3Npb24gYm91bmRhcmllcywgbm90IGxhbmd1YWdlLXN1cHBvcnQgYm91bmRhcmllcyAtXG4gKiBlLmcuIHByb3ZpZGVyIGZ1bmN0aW9ucyBhcmUgdXNhYmxlIGluIEhDTCBzaW5jZSBUZXJyYWZvcm0gMS43LjAsIGJ1dCBvbmx5XG4gKiBzaG93IHVwIGluIHRoZSBzY2hlbWEgZHVtcCBhcyBvZiAxLjguMC5cbiAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hRW1pc3Npb25GYW1pbHkgPVxuICB8IFwiZnVuY3Rpb25zXCJcbiAgfCBcImVwaGVtZXJhbF9yZXNvdXJjZV9zY2hlbWFzXCJcbiAgfCBcIndyaXRlX29ubHlcIlxuICB8IFwicmVzb3VyY2VfaWRlbnRpdHlfc2NoZW1hc1wiO1xuXG5jb25zdCBUQVJHRVRfUFJPRFVDVFMgPSBbXCJ0ZXJyYWZvcm1cIiwgXCJvcGVudG9mdVwiXSBhcyBjb25zdDtcbnR5cGUgVGFyZ2V0UHJvZHVjdCA9ICh0eXBlb2YgVEFSR0VUX1BST0RVQ1RTKVtudW1iZXJdO1xuXG4vKipcbiAqIEhhbmQtbWFpbnRhaW5lZCBmcm9tIGB0b29scy9wcm92aWRlci1mZWF0dXJlLWF2YWlsYWJpbGl0eS9mZWF0dXJlcy1tYXRyaXguanNvbmBcbiAqIOKAlCBzcGVjaWZpY2FsbHkgZWFjaCBmZWF0dXJlJ3MgYGRvY3VtZW50ZWRfZW1pdHRlZF9mcm9tYCAvXG4gKiBgb2JzZXJ2ZWRfaW50cm9kdWNlZGAgZmllbGRzIHBlciBwcm9kdWN0IChzZWUgdGhhdCBkaXJlY3RvcnkncyBSRUFETUUgZm9yXG4gKiBob3cgdGhlIGRhdGFzZXQgaXRzZWxmIGlzIHByb2R1Y2VkL3JlZ2VuZXJhdGVkLCBhbmQgaXRzIFwiSW4tcmVwb1xuICogY29uc3VtZXJzXCIgc2VjdGlvbiBmb3IgaG93IHRoaXMgbWFwIGFuZCBgcHJvdmlkZXJGZWF0dXJlQ29uc3RyYWludHNgIGluXG4gKiBgcGFja2FnZXMvY2RrdG4vc3JjL3Byb3ZpZGVyLWZlYXR1cmUtY29uc3RyYWludHMudHNgIHJlbGF0ZSB0byB0aGVcbiAqIG1hdHJpeCBhbmQgdG8gZWFjaCBvdGhlcikuXG4gKlxuICogVGhlcmUgaXMgbm8gYXV0b21hdGVkIGNoZWNrIHRoYXQgdGhpcyBtYXAgc3RheXMgaW4gc3luYyB3aXRoIHRoZSBtYXRyaXg7XG4gKiB1cGRhdGVzIG11c3QgYmUgYXBwbGllZCBieSBoYW5kIHdoZW4gdGhlIG1hdHJpeCBjaGFuZ2VzLiBBbiBhdXRvbWF0ZWRcbiAqIGRyaWZ0IGNoZWNrIGlzIHRyYWNrZWQgaW4gIzMwOS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDSEVNQV9FTUlTU0lPTl9CT1VOREFSSUVTOiBSZWNvcmQ8XG4gIFNjaGVtYUVtaXNzaW9uRmFtaWx5LFxuICBSZWNvcmQ8VGFyZ2V0UHJvZHVjdCwgc3RyaW5nPlxuPiA9IHtcbiAgZnVuY3Rpb25zOiB7IHRlcnJhZm9ybTogXCIxLjguMFwiLCBvcGVudG9mdTogXCIxLjguMFwiIH0sXG4gIGVwaGVtZXJhbF9yZXNvdXJjZV9zY2hlbWFzOiB7IHRlcnJhZm9ybTogXCIxLjEwLjBcIiwgb3BlbnRvZnU6IFwiMS4xMS4wXCIgfSxcbiAgd3JpdGVfb25seTogeyB0ZXJyYWZvcm06IFwiMS4xMS4wXCIsIG9wZW50b2Z1OiBcIjEuMTEuMFwiIH0sXG4gIHJlc291cmNlX2lkZW50aXR5X3NjaGVtYXM6IHsgdGVycmFmb3JtOiBcIjEuMTIuMFwiLCBvcGVudG9mdTogXCIxLjEyLjBcIiB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFNDSEVNQV9FTUlTU0lPTl9GQU1JTFlfTEFCRUxTOiBSZWNvcmQ8XG4gIFNjaGVtYUVtaXNzaW9uRmFtaWx5LFxuICBzdHJpbmdcbj4gPSB7XG4gIGZ1bmN0aW9uczogXCJwcm92aWRlciBmdW5jdGlvbnNcIixcbiAgZXBoZW1lcmFsX3Jlc291cmNlX3NjaGVtYXM6IFwiZXBoZW1lcmFsIHJlc291cmNlc1wiLFxuICB3cml0ZV9vbmx5OiBcIndyaXRlLW9ubHkgYXR0cmlidXRlc1wiLFxuICByZXNvdXJjZV9pZGVudGl0eV9zY2hlbWFzOiBcInJlc291cmNlIGlkZW50aXR5XCIsXG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hpY2ggc2NoZW1hLWVtaXNzaW9uIGdhcHMgdGhlIGdpdmVuIGZldGNoaW5nIENMSSBoYXMsIGluXG4gKiBsaWdodCBvZiB0aGUgcHJvamVjdCdzIGRlY2xhcmVkIGB0YXJnZXRWZXJzaW9uc2AuXG4gKlxuICogQSBmYW1pbHkgaXMgcmVwb3J0ZWQgd2hlbiBib3RoIGFyZSB0cnVlOlxuICogLSB0aGUgZmV0Y2hpbmcgQ0xJJ3Mgb3duIHZlcnNpb24gcHJlZGF0ZXMgdGhhdCBmYW1pbHkncyBlbWlzc2lvblxuICogICBib3VuZGFyeSBmb3IgaXRzIHByb2R1Y3QgKHNvIHRoaXMgcGFydGljdWxhciBmZXRjaCBjb3VsZCBub3QgaGF2ZVxuICogICBpbmNsdWRlZCB0aGUgc2VjdGlvbiwgZXZlbiBpZiB0aGUgcHJvdmlkZXIgaW1wbGVtZW50cyBpdClcbiAqIC0gYXQgbGVhc3Qgb25lIG9mIHRoZSBwcm9qZWN0J3MgdGFyZ2V0ZWQgcHJvZHVjdHMgZGVjbGFyZXMgYSByYW5nZSB0aGF0XG4gKiAgIGludGVyc2VjdHMgdGhlIHZlcnNpb25zIHdoZXJlIHRoYXQgZmFtaWx5IGlzIGVtaXR0ZWQgKGkuZS4gdGhlIHByb2plY3RcbiAqICAgYWN0dWFsbHkgaW50ZW5kcyB0byBydW4gb24gdmVyc2lvbnMgd2hlcmUgdGhlIGZlYXR1cmUgd291bGQgc2hvdyB1cClcbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcHMoXG4gIGNsaTogVGVycmFmb3JtQ2xpVmVyc2lvbixcbiAgdGFyZ2V0czogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG4pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBjaGVja1NjaGVtYUVtaXNzaW9uR2FwRmFtaWxpZXMoY2xpLCB0YXJnZXRzKS5tYXAoXG4gICAgKGZhbWlseSkgPT4gU0NIRU1BX0VNSVNTSU9OX0ZBTUlMWV9MQUJFTFNbZmFtaWx5XSxcbiAgKTtcbn1cblxuLyoqXG4gKiBTYW1lIGFzIGNoZWNrU2NoZW1hRW1pc3Npb25HYXBzLCBidXQgcmV0dXJucyB0aGUgcmF3IGZhbWlseSBrZXlzIHNvXG4gKiBjYWxsZXJzIGNhbiBhbHNvIGNvbXB1dGUgYSByZW1lZHkgKHNlZSBzdWdnZXN0ZWRFbWl0dGluZ0NsaVZlcnNpb25zKS5cbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcEZhbWlsaWVzKFxuICBjbGk6IFRlcnJhZm9ybUNsaVZlcnNpb24sXG4gIHRhcmdldHM6IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuKTogU2NoZW1hRW1pc3Npb25GYW1pbHlbXSB7XG4gIGlmIChjbGkubmFtZSA9PT0gXCJ1bmtub3duXCIgfHwgIWNsaS52ZXJzaW9uKSByZXR1cm4gW107XG4gIGNvbnN0IGNsaVByb2R1Y3QgPSBjbGkubmFtZSBhcyBUYXJnZXRQcm9kdWN0O1xuXG4gIGNvbnN0IGdhcHM6IFNjaGVtYUVtaXNzaW9uRmFtaWx5W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGZhbWlseSBvZiBPYmplY3Qua2V5cyhcbiAgICBTQ0hFTUFfRU1JU1NJT05fQk9VTkRBUklFUyxcbiAgKSBhcyBTY2hlbWFFbWlzc2lvbkZhbWlseVtdKSB7XG4gICAgY29uc3QgYm91bmRhcmllcyA9IFNDSEVNQV9FTUlTU0lPTl9CT1VOREFSSUVTW2ZhbWlseV07XG4gICAgY29uc3QgY2xpQm91bmRhcnkgPSBib3VuZGFyaWVzW2NsaVByb2R1Y3RdO1xuICAgIGlmICghY2xpQm91bmRhcnkpIGNvbnRpbnVlO1xuXG4gICAgLy8gVGhlIGZldGNoaW5nIENMSSBpcyBuZXcgZW5vdWdoIHRvIGVtaXQgdGhpcyBmYW1pbHkgLSBubyBnYXAuXG4gICAgaWYgKCFzZW12ZXIubHQoY2xpLnZlcnNpb24sIGNsaUJvdW5kYXJ5KSkgY29udGludWU7XG5cbiAgICBjb25zdCB3YW50ZWQgPSBUQVJHRVRfUFJPRFVDVFMuc29tZSgocHJvZHVjdCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0UmFuZ2UgPSB0YXJnZXRzW3Byb2R1Y3RdO1xuICAgICAgaWYgKCF0YXJnZXRSYW5nZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKHNlbXZlci52YWxpZFJhbmdlKHRhcmdldFJhbmdlKSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgY29uc3Qgc3VwcG9ydGVkUmFuZ2UgPSBgPj0ke2JvdW5kYXJpZXNbcHJvZHVjdF19YDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBzZW12ZXIuaW50ZXJzZWN0cyh0YXJnZXRSYW5nZSwgc3VwcG9ydGVkUmFuZ2UpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh3YW50ZWQpIGdhcHMucHVzaChmYW1pbHkpO1xuICB9XG5cbiAgcmV0dXJuIGdhcHM7XG59XG5cbi8qKlxuICogVGhlIGxvd2VzdCBDTEkgdmVyc2lvbiBwZXIgcHJvZHVjdCB3aG9zZSBgcHJvdmlkZXJzIHNjaGVtYSAtanNvbmAgZW1pdHNcbiAqIGV2ZXJ5IG9uZSBvZiB0aGUgZ2l2ZW4gZmFtaWxpZXMg4oCUIHRoZSByZW1lZHkgdG8gc3VnZ2VzdCBhbG9uZ3NpZGUgdGhlXG4gKiBmZXRjaC10aW1lIHdhcm5pbmcuXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1Z2dlc3RlZEVtaXR0aW5nQ2xpVmVyc2lvbnMoXG4gIGZhbWlsaWVzOiBTY2hlbWFFbWlzc2lvbkZhbWlseVtdLFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIFRBUkdFVF9QUk9EVUNUUy5tYXAoKHByb2R1Y3QpID0+IHtcbiAgICBjb25zdCBuZWVkZWQgPSBmYW1pbGllc1xuICAgICAgLm1hcCgoZmFtaWx5KSA9PiBTQ0hFTUFfRU1JU1NJT05fQk9VTkRBUklFU1tmYW1pbHldW3Byb2R1Y3RdKVxuICAgICAgLnNvcnQoc2VtdmVyLmNvbXBhcmUpXG4gICAgICAucG9wKCk7XG4gICAgcmV0dXJuIG5lZWRlZCA/IGAke3Byb2R1Y3R9ID49JHtuZWVkZWR9YCA6IHVuZGVmaW5lZDtcbiAgfSlcbiAgICAuZmlsdGVyKChwYXJ0KSA9PiBwYXJ0ICE9PSB1bmRlZmluZWQpXG4gICAgLmpvaW4oXCIgLyBcIik7XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"provider-schema.d.ts","sourceRoot":"","sources":["../src/provider-schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,2BAA2B,EAC3B,6BAA6B,EAG7B,YAAY,EACZ,cAAc,EAUf,MAAM,gBAAgB,CAAC;AA2FxB;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,4BAA4B,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAE/D,eAAO,MAAM,SAAS,MAAO,IAAI;cAMnB,gBAAgB;eACf,iBAAiB;UACtB,YAAY;CAErB,CAAC;AAuIF,MAAM,WAAW,eAAe;IAG9B,QAAQ,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,CAAC;IAC3E,SAAS,EAAE;QACT,kBAAkB,CAAC,EAAE;YACnB,CAAC,IAAI,EAAE,MAAM,GAAG;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;SACvD,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE;gBAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;aAAE,CAAC;SAC7C,CAAC;KACH,CAAC;CACH;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,6BAA6B,2BAoDtC;AA2DD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAuC7E;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwND,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,yCAoEzE"}
1
+ {"version":3,"file":"provider-schema.d.ts","sourceRoot":"","sources":["../src/provider-schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,2BAA2B,EAC3B,6BAA6B,EAG7B,YAAY,EACZ,cAAc,EAUf,MAAM,gBAAgB,CAAC;AA2FxB;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,4BAA4B,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAE/D,eAAO,MAAM,SAAS,GAAI,GAAG,IAAI,KAKS;IACtC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,YAAY,CAAC;CAEtB,CAAC;AAuIF,MAAM,WAAW,eAAe;IAG9B,QAAQ,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,CAAC;IAC3E,SAAS,EAAE;QACT,kBAAkB,CAAC,EAAE;YACnB,CAAC,IAAI,EAAE,MAAM,GAAG;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;SACvD,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE;gBAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;aAAE,CAAC;SAC7C,CAAC;KACH,CAAC;CACH;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,6BAA6B,2BAoDtC;AA2DD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAuC7E;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwND,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,yCAoEzE"}
@@ -15,15 +15,35 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.readModuleSchema = exports.fetchedModuleDir = exports.packageSubdir = exports.applyModuleProviderAliases = exports.collectModuleProviderAliases = exports.sanitizeProviderSchema = exports.warnIfSchemaEmissionGaps = exports.readProviderSchema = exports.parseFQPN = exports.terraformInitWithRetry = exports.getFetchingCliVersion = void 0;
36
+ exports.parseFQPN = void 0;
37
+ exports.getFetchingCliVersion = getFetchingCliVersion;
38
+ exports.terraformInitWithRetry = terraformInitWithRetry;
39
+ exports.readProviderSchema = readProviderSchema;
40
+ exports.warnIfSchemaEmissionGaps = warnIfSchemaEmissionGaps;
41
+ exports.sanitizeProviderSchema = sanitizeProviderSchema;
42
+ exports.collectModuleProviderAliases = collectModuleProviderAliases;
43
+ exports.applyModuleProviderAliases = applyModuleProviderAliases;
44
+ exports.packageSubdir = packageSubdir;
45
+ exports.fetchedModuleDir = fetchedModuleDir;
46
+ exports.readModuleSchema = readModuleSchema;
27
47
  // Copyright (c) HashiCorp, Inc
28
48
  // SPDX-License-Identifier: MPL-2.0
29
49
  const fs = __importStar(require("fs-extra"));
@@ -51,7 +71,6 @@ function getFetchingCliVersion() {
51
71
  }
52
72
  return fetchingCliVersionPromise;
53
73
  }
54
- exports.getFetchingCliVersion = getFetchingCliVersion;
55
74
  // Provider binaries are downloaded from GitHub release CDNs during
56
75
  // `terraform init`, which intermittently returns 5xx. Retry on those
57
76
  // signatures only — real config/schema errors should still fail fast.
@@ -104,7 +123,6 @@ async function terraformInitWithRetry(options, maxAttempts = 5, baseDelayMs = 50
104
123
  }
105
124
  throw new Error("unreachable");
106
125
  }
107
- exports.terraformInitWithRetry = terraformInitWithRetry;
108
126
  const parseFQPN = (f) => {
109
127
  const [hostname, namespace, name] = f.split("/");
110
128
  if (!name) {
@@ -246,7 +264,6 @@ async function readProviderSchema(target) {
246
264
  }
247
265
  return sanitizeProviderSchema(providerSchema);
248
266
  }
249
- exports.readProviderSchema = readProviderSchema;
250
267
  /**
251
268
  * Warns when the CLI that produced a given provider schema predates one or
252
269
  * more schema-emission boundaries the project's declared `targetVersions`
@@ -291,7 +308,6 @@ async function warnIfSchemaEmissionGaps(schema, targetVersions) {
291
308
  commons_1.logger.warn(`provider schema fetched with ${cli.name} ${cli.version} — ${joinWithAnd(gapFamilies.map((family) => emission_check_1.SCHEMA_EMISSION_FAMILY_LABELS[family]))} will not be generated; run cdktn get with ${(0, emission_check_1.suggestedEmittingCliVersions)(gapFamilies)}`);
292
309
  }
293
310
  }
294
- exports.warnIfSchemaEmissionGaps = warnIfSchemaEmissionGaps;
295
311
  // The providers have some potential bugs that we want to pro-actively
296
312
  // fix here so that the rest of the code can assume a consistent schema.
297
313
  function sanitizeProviderSchema(schema) {
@@ -327,7 +343,6 @@ function sanitizeProviderSchema(schema) {
327
343
  });
328
344
  return schema;
329
345
  }
330
- exports.sanitizeProviderSchema = sanitizeProviderSchema;
331
346
  const CONFIGURATION_ALIAS = /^([\w-]+)\.([\w-]+)$/;
332
347
  // hcl2json hands HCL expressions back as interpolations, so a
333
348
  // `configuration_aliases = [aws.global_region]` entry arrives as the string
@@ -391,7 +406,6 @@ function collectModuleProviderAliases(parsedModule) {
391
406
  }
392
407
  return aliases;
393
408
  }
394
- exports.collectModuleProviderAliases = collectModuleProviderAliases;
395
409
  /**
396
410
  * Declares the provider configurations that `aliases` names on the synthetic
397
411
  * root config and passes them into the module call, which is what Terraform
@@ -430,7 +444,6 @@ function applyModuleProviderAliases(config, moduleKey, aliases) {
430
444
  }
431
445
  return config;
432
446
  }
433
- exports.applyModuleProviderAliases = applyModuleProviderAliases;
434
447
  /**
435
448
  * The `//subdir` portion of a module source, if it has one, mirroring how
436
449
  * Terraform unpacks a package into `.terraform/modules/<key>/<subdir>`.
@@ -445,7 +458,6 @@ function packageSubdir(source) {
445
458
  const subdir = rest.join("//").replace(/^\/+|\/+$/g, "");
446
459
  return subdir || undefined;
447
460
  }
448
- exports.packageSubdir = packageSubdir;
449
461
  /**
450
462
  * Where the module Terraform just fetched ended up on disk.
451
463
  *
@@ -471,7 +483,6 @@ function fetchedModuleDir(workingDirectory, moduleKey, source, localSourceAbsolu
471
483
  }
472
484
  return path.join(workingDirectory, ".terraform", "modules", moduleKey, packageSubdir(source) || "");
473
485
  }
474
- exports.fetchedModuleDir = fetchedModuleDir;
475
486
  /**
476
487
  * Runs `terraform get` and hands the failure back instead of throwing it.
477
488
  *
@@ -541,5 +552,4 @@ async function readModuleSchema(target) {
541
552
  });
542
553
  return moduleSchema;
543
554
  }
544
- exports.readModuleSchema = readModuleSchema;
545
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3ZpZGVyLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUU3Qiw4Q0FBK0M7QUFDL0MsNENBbUJ3QjtBQUN4QixxREFJMEI7QUFFMUIsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLFdBQVcsQ0FBQztBQUU3RSxJQUFJLHlCQUFtRSxDQUFDO0FBRXhFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLHFCQUFxQjtJQUNuQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMvQix5QkFBeUIsR0FBRyxJQUFBLGNBQUksRUFBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2pFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO1NBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsa0NBQXdCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyx5QkFBeUIsQ0FBQztBQUNuQyxDQUFDO0FBUEQsc0RBT0M7QUFFRCxtRUFBbUU7QUFDbkUscUVBQXFFO0FBQ3JFLHNFQUFzRTtBQUN0RSxNQUFNLDZCQUE2QixHQUFHO0lBQ3BDLGFBQWE7SUFDYixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsWUFBWTtJQUNaLFlBQVk7SUFDWixpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxPQUF3QixFQUN4QixXQUFXLEdBQUcsQ0FBQyxFQUNmLFdBQVcsR0FBRyxJQUFJLEVBQ2xCLGlCQUFpQixHQUFHLENBQUM7O0lBRXJCLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBQSxjQUFJLEVBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBVyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLG1DQUFJLEVBQUUsQ0FBQztZQUMzQyxNQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNmLENBQUM7WUFDRixJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxHQUFHLGlCQUFpQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQ1QsNkRBQTZELE9BQU8sZUFBZSxPQUFPLElBQUksV0FBVyxHQUFHLENBQUMsR0FBRyxDQUNqSCxDQUFDO1lBQ0YsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBekJELHdEQXlCQztBQVdNLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBSWpDLENBQUM7QUFDSixDQUFDLENBQUM7QUFWVyxRQUFBLFNBQVMsYUFVcEI7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFJLElBQWEsRUFBSyxFQUFFLENBQzVDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBRXZDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFjLEVBQUUsRUFBRTtJQUM1QyxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7SUFFM0IsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUU5QixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxZQUFvQixDQUFDO1FBRXpCO1FBQ0UsaURBQWlEO1FBQ2pELFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSztZQUN4QyxpREFBaUQ7WUFDakQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQzFDLENBQUM7WUFDRCxRQUFRLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLEtBQUssU0FBUztvQkFDWixZQUFZLEdBQUcsTUFBTSxDQUFDO29CQUN0QixNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxZQUFZLEdBQUcsUUFBUSxDQUFDO29CQUN4QixNQUFNO2dCQUNSO29CQUNFLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLElBQ0UsT0FBTyxlQUFlLEtBQUssUUFBUTtnQkFDbkMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ2hDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUM3QixDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQy9CLENBQUM7Z0JBQ0QsWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBVTtZQUNsQixJQUFJO1lBQ0osSUFBSSxFQUFFLFlBQVk7WUFDbEIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDcEMsaURBQWlEO1lBQ2pELFFBQVEsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUs7U0FDdEQsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRTVDLE1BQU0sSUFBSSxHQUFRO2dCQUNoQixJQUFJO2dCQUNKLFdBQVcsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDO2FBQ25DLENBQUM7WUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQy9CLGdCQUF3QixFQUN4QixPQUFpQixFQUNhLEVBQUU7SUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDeEIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixTQUFTLEVBQ1QsY0FBYyxDQUNmLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO0lBRXZDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYix1REFBdUQsUUFBUSxFQUFFLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDNUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ3BCLENBQUM7SUFFakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0RBQXdELENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBaUI7WUFDM0IsTUFBTSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDM0MsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDeEMsSUFBSSxFQUFFLEdBQUc7U0FDVixDQUFDO1FBRUYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsU0FBUyxXQUFXLENBQUMsS0FBZTtJQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUMzRSxDQUFDO0FBb0JNLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsTUFBcUM7SUFFckMsTUFBTSxNQUFNLEdBQW9CO1FBQzlCLFFBQVEsRUFBRSxFQUFFO1FBQ1osU0FBUyxFQUFFO1lBQ1Qsa0JBQWtCLEVBQUUsRUFBRTtTQUN2QjtLQUNGLENBQUM7SUFFRixNQUFNLENBQUMsUUFBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUc7UUFDbEQsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtLQUN0QixDQUFDO0lBRUYsSUFBSSxjQUFjLEdBQW1CLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRS9ELE1BQU0sSUFBQSxxQkFBVyxFQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2xELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNuRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVyRCxNQUFNLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3pCLE1BQU0sSUFBQSxjQUFJLEVBQUMsbUJBQW1CLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2hFLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQyxDQUNlLENBQUM7UUFFcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDOUIsTUFBTSxJQUFBLGNBQUksRUFBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNwRCxHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUMsQ0FDYyxDQUFDO1FBRW5CLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsbUJBQW1CLENBQUM7SUFDdkUsQ0FBQyxDQUFDLENBQUM7SUFFSCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLHVFQUF1RTtJQUN2RSxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxNQUFNLHFCQUFxQixFQUFFLENBQUM7UUFDMUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ25DLGNBQWMsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLGdCQUFNLENBQUMsS0FBSyxDQUNWLHNFQUFzRSxLQUFLLEVBQUUsQ0FDOUUsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFyREQsZ0RBcURDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSSxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLE1BQXNCLEVBQ3RCLGNBQXdDO0lBRXhDLElBQUksQ0FBQyxjQUFjO1FBQUUsT0FBTztJQUU1QixJQUFJLEdBQXdCLENBQUM7SUFDN0IsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEUsT0FBTztRQUNULENBQUM7UUFDRCxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9ELENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxDQUFDO1lBQ0gsR0FBRyxHQUFHLE1BQU0scUJBQXFCLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGdCQUFNLENBQUMsS0FBSyxDQUNWLCtFQUErRSxLQUFLLEVBQUUsQ0FDdkYsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUEsK0NBQThCLEVBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFDLGdCQUFNLENBQUMsSUFBSSxDQUNULGdDQUFnQyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLE1BQU0sV0FBVyxDQUN0RSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyw4Q0FBNkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNuRSw4Q0FBOEMsSUFBQSw2Q0FBNEIsRUFDekUsV0FBVyxDQUNaLEVBQUUsQ0FDSixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFqQ0QsNERBaUNDO0FBRUQsc0VBQXNFO0FBQ3RFLHdFQUF3RTtBQUN4RSxTQUFnQixzQkFBc0IsQ0FBQyxNQUFzQjtJQUMzRCxrRkFBa0Y7SUFDbEYsZ0NBQWdDO0lBQ2hDLFNBQVMsb0JBQW9CLENBQUMsU0FBb0I7UUFDaEQsSUFBSSxJQUFBLCtCQUFxQixFQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2RSxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQ1IsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDaEIsQ0FBQyxDQUFFLFNBQVMsQ0FBQyxJQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyw4REFBOEQ7UUFFOUcsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFxQixDQUFDO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsU0FBUyxhQUFhLENBQUMsS0FBWTtRQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzNELGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDaEUsTUFBTSxRQUFRLEdBQUc7WUFDZixRQUFRLENBQUMsUUFBUTtZQUNqQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUNqRCxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztZQUNwRCxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixJQUFJLEVBQUUsQ0FBQztTQUM1RCxDQUFDO1FBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFCLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUF2Q0Qsd0RBdUNDO0FBZUQsTUFBTSxtQkFBbUIsR0FBRyxzQkFBc0IsQ0FBQztBQUVuRCw4REFBOEQ7QUFDOUQsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx5REFBeUQ7QUFDekQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBRTdFLE1BQU0sT0FBTyxHQUFHLENBQUksSUFBZ0MsRUFBTyxFQUFFO0lBQzNELElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25ELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBVSxFQUFTLEVBQUU7SUFDN0MsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVELENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLDRCQUE0QixDQUMxQyxZQUFpQjtJQUVqQixNQUFNLE9BQU8sR0FBMEIsRUFBRSxDQUFDO0lBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFL0IsS0FBSyxNQUFNLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxLQUFLLE1BQU0saUJBQWlCLElBQUksZ0JBQWdCLENBQzlDLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxrQkFBa0IsQ0FDbkMsRUFBRSxDQUFDO1lBQ0YsS0FBSyxNQUFNLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxXQUFrQixDQUFDLENBQUM7Z0JBRW5ELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7b0JBQzdELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDcEMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ25DLENBQUM7b0JBQ0YsSUFBSSxDQUFDLEtBQUs7d0JBQUUsU0FBUztvQkFFckIsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDbkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ3BDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7d0JBQUUsU0FBUztvQkFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFFZCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQy9ELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBL0JELG9FQStCQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLDBCQUEwQixDQUN4QyxNQUF1QixFQUN2QixTQUFpQixFQUNqQixPQUE4Qjs7SUFFOUIsTUFBTSxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsTUFBTSwwQ0FBRyxTQUFTLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRXZELEtBQUssTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbkQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUc7Z0JBQ3BDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0I7Z0JBQ3RDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7YUFDeEIsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFFcEMsVUFBVSxDQUFDLFNBQVMsR0FBRztZQUNyQixHQUFHLFVBQVUsQ0FBQyxTQUFTO1lBQ3ZCLENBQUMsR0FBRyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLFNBQVMsSUFBSSxLQUFLLEVBQUU7U0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBOUJELGdFQThCQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLE1BQWM7SUFDMUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FDL0MsZ0NBQWdDLEVBQ2hDLEVBQUUsQ0FDSCxDQUFDO0lBRUYsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxPQUFPLE1BQU0sSUFBSSxTQUFTLENBQUM7QUFDN0IsQ0FBQztBQVhELHNDQVdDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLGdCQUFnQixDQUM5QixnQkFBd0IsRUFDeEIsU0FBaUIsRUFDakIsTUFBYyxFQUNkLHVCQUFnQztJQUVoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUM1QixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxjQUFjLENBQ2YsQ0FBQztJQUVGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzVCLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUN4QixDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBRXhFLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzVCLE9BQU8sdUJBQXVCLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FDZCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztBQUNKLENBQUM7QUFuQ0QsNENBbUNDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsS0FBSyxVQUFVLGVBQWUsQ0FBQyxNQUFjO0lBQzNDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBQSxjQUFJLEVBQ1IsbUJBQW1CLEVBQ25CLENBQUMsS0FBSyxDQUFDLEVBQ1AsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxFQUN2QyxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssQ0FDTixDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxNQUFtQztJQUN4RSxJQUFJLFlBQVksR0FBaUMsRUFBRSxDQUFDO0lBRXBELE1BQU0sSUFBQSxxQkFBVyxFQUFDLGFBQWEsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMxQyxNQUFNLE1BQU0sR0FBb0I7WUFDOUIsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUVuQyxNQUFNLFdBQVcsR0FBSSxNQUFNLENBQUMsVUFBd0M7YUFDakUsdUJBQXVCLENBQUM7UUFDM0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixxREFBcUQ7WUFDckQsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDbkQsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFckQsc0VBQXNFO1FBQ3RFLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsMEVBQTBFO1FBQzFFLDBFQUEwRTtRQUMxRSxvRUFBb0U7UUFDcEUscUVBQXFFO1FBQ3JFLHNFQUFzRTtRQUN0RSx1REFBdUQ7UUFDdkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQ2hDLE1BQU0sRUFDTixNQUFNLENBQUMsU0FBUyxFQUNoQixNQUFNLEVBQ04sV0FBVyxDQUNaLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUN0QyxDQUFDLENBQUMsNEJBQTRCLENBQUMsTUFBTSxJQUFBLHVCQUFZLEVBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QiwwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLElBQUEsY0FBSSxFQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO2FBQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN0Qix5RUFBeUU7WUFDekUsMkRBQTJEO1lBQzNELGdCQUFNLENBQUMsS0FBSyxDQUFFLFVBQWtCLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sVUFBVSxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixZQUFZLEdBQUcsTUFBTSxtQkFBbUIsQ0FDdEMsTUFBTSxFQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUMzQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQXBFRCw0Q0FvRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNvbnZlcnRGaWxlcyB9IGZyb20gXCJAY2RrdG4vaGNsMmpzb25cIjtcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQXR0cmlidXRlVHlwZSxcbiAgQmxvY2ssXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4gIElucHV0LFxuICBNb2R1bGVJbmRleCxcbiAgTW9kdWxlU2NoZW1hLFxuICBQcm92aWRlclNjaGVtYSxcbiAgVGVycmFmb3JtQ2xpVmVyc2lvbixcbiAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCxcbiAgVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG4gIFZlcnNpb25TY2hlbWEsXG4gIGV4ZWMsXG4gIGlzTmVzdGVkVHlwZUF0dHJpYnV0ZSxcbiAgbG9nZ2VyLFxuICBwYXJzZVRlcnJhZm9ybUNsaVZlcnNpb24sXG4gIHdpdGhUZW1wRGlyLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7XG4gIFNDSEVNQV9FTUlTU0lPTl9GQU1JTFlfTEFCRUxTLFxuICBjaGVja1NjaGVtYUVtaXNzaW9uR2FwRmFtaWxpZXMsXG4gIHN1Z2dlc3RlZEVtaXR0aW5nQ2xpVmVyc2lvbnMsXG59IGZyb20gXCIuL2VtaXNzaW9uLWNoZWNrXCI7XG5cbmNvbnN0IHRlcnJhZm9ybUJpbmFyeU5hbWUgPSBwcm9jZXNzLmVudi5URVJSQUZPUk1fQklOQVJZX05BTUUgfHwgXCJ0ZXJyYWZvcm1cIjtcblxubGV0IGZldGNoaW5nQ2xpVmVyc2lvblByb21pc2U6IFByb21pc2U8VGVycmFmb3JtQ2xpVmVyc2lvbj4gfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgdmVyc2lvbiBvZiB0aGUgZmV0Y2hpbmcgQ0xJIChgdGVycmFmb3JtYC9gdG9mdWAgYmluYXJ5XG4gKiByZXNvbHZlZCB2aWEgYFRFUlJBRk9STV9CSU5BUllfTkFNRWApIG9uY2UgcGVyIHByb2Nlc3MsIG1lbW9pemVkLlxuICpcbiAqIFVzZWQgYm90aCB0byBzdGFtcCBmZXRjaGVkIHByb3ZpZGVyIHNjaGVtYXMgKGBjbGlfbmFtZWAvYGNsaV92ZXJzaW9uYClcbiAqIGFuZCBhcyB0aGUgY2FjaGUga2V5IHN1ZmZpeCBpbiByZWFkLnRzLCBzaW5jZSBzY2hlbWEgZW1pc3Npb24gaXMgZml4ZWRcbiAqIHBlciBDTEkgbWlub3IgdmVyc2lvbi5cbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZyBsaWtlIHRlcnJhZm9ybUluaXRXaXRoUmV0cnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZldGNoaW5nQ2xpVmVyc2lvbigpOiBQcm9taXNlPFRlcnJhZm9ybUNsaVZlcnNpb24+IHtcbiAgaWYgKCFmZXRjaGluZ0NsaVZlcnNpb25Qcm9taXNlKSB7XG4gICAgZmV0Y2hpbmdDbGlWZXJzaW9uUHJvbWlzZSA9IGV4ZWModGVycmFmb3JtQmluYXJ5TmFtZSwgW1widmVyc2lvblwiXSwge1xuICAgICAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICAgIH0pLnRoZW4ocGFyc2VUZXJyYWZvcm1DbGlWZXJzaW9uKTtcbiAgfVxuICByZXR1cm4gZmV0Y2hpbmdDbGlWZXJzaW9uUHJvbWlzZTtcbn1cblxuLy8gUHJvdmlkZXIgYmluYXJpZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIgcmVsZWFzZSBDRE5zIGR1cmluZ1xuLy8gYHRlcnJhZm9ybSBpbml0YCwgd2hpY2ggaW50ZXJtaXR0ZW50bHkgcmV0dXJucyA1eHguIFJldHJ5IG9uIHRob3NlXG4vLyBzaWduYXR1cmVzIG9ubHkg4oCUIHJlYWwgY29uZmlnL3NjaGVtYSBlcnJvcnMgc2hvdWxkIHN0aWxsIGZhaWwgZmFzdC5cbmNvbnN0IFRSQU5TSUVOVF9JTklUX0VSUk9SX1BBVFRFUk5TID0gW1xuICAvXFxiNTBbMjM0XVxcYi8sXG4gIC9CYWQgR2F0ZXdheS9pLFxuICAvU2VydmljZSBVbmF2YWlsYWJsZS9pLFxuICAvR2F0ZXdheSBUaW1lb3V0L2ksXG4gIC9FQ09OTlJFU0VUL2ksXG4gIC9FVElNRURPVVQvaSxcbiAgL0VBSV9BR0FJTi9pLFxuICAvdW5leHBlY3RlZCBFT0YvaSxcbl07XG5cbi8qKlxuICogUnVucyBgdGVycmFmb3JtIGluaXRgIGFuZCByZXRyaWVzIG9uIHRyYW5zaWVudCBIVFRQL25ldHdvcmsgZmFpbHVyZXMuXG4gKlxuICogUHJvdmlkZXIgYmluYXJpZXMgYXJlIHB1bGxlZCBmcm9tIEdpdEh1YidzIHJlbGVhc2UgQ0ROLCB3aGljaFxuICogaW50ZXJtaXR0ZW50bHkgcmV0dXJucyA1eHguIFRoZSByZXRyeSBvbmx5IGZpcmVzIHdoZW4gc3RkZXJyIG1hdGNoZXMgYVxuICoga25vd24gdHJhbnNpZW50IHBhdHRlcm4g4oCUIHJlYWwgZXJyb3JzIChiYWQgdmVyc2lvbiwgc2NoZW1hIHBhcnNlLCBldGMuKVxuICogc3RpbGwgZmFpbCBvbiB0aGUgZmlyc3QgYXR0ZW1wdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIHNwYXduIG9wdGlvbnMgZm9yd2FyZGVkIHRvIGBleGVjYCAoYGN3ZGAgaXMgcmVxdWlyZWQgc29cbiAqICAgYHRlcnJhZm9ybSBpbml0YCBydW5zIGluc2lkZSB0aGUgdGVtcCBkaXIgaG9sZGluZyBgbWFpbi50Zi5qc29uYClcbiAqIEBwYXJhbSBtYXhBdHRlbXB0cyAtIHRvdGFsIGF0dGVtcHRzIGluY2x1ZGluZyB0aGUgaW5pdGlhbCBjYWxsOyB0aGUgbnVtYmVyXG4gKiAgIG9mIHJldHJpZXMgaXMgYG1heEF0dGVtcHRzIC0gMWAuIERlZmF1bHRzIHRvIDUgKDEgaW5pdGlhbCArIDQgcmV0cmllcylcbiAqIEBwYXJhbSBiYXNlRGVsYXlNcyAtIGRlbGF5IGJlZm9yZSB0aGUgZmlyc3QgcmV0cnkuIFRlc3RzIHBhc3MgYDBgIHRvIHNraXBcbiAqICAgd2FpdHMuIERlZmF1bHRzIHRvIDUwMDBtc1xuICogQHBhcmFtIGJhY2tvZmZNdWx0aXBsaWVyIC0gZmFjdG9yIGFwcGxpZWQgdG8gdGhlIGRlbGF5IG9uIGVhY2ggc3Vic2VxdWVudFxuICogICByZXRyeSAoc28gcmV0cmllcyB3YWl0IGBiYXNlRGVsYXlNcyAqIG11bHRpcGxpZXJeKGF0dGVtcHQtMSlgKS4gRGVmYXVsdHNcbiAqICAgdG8gMiAoMXMg4oaSIDJzIOKGkiA0cyDigKYpXG4gKiBAcmV0dXJucyBzdGRvdXQgZnJvbSB0aGUgc3VjY2Vzc2Z1bCBgdGVycmFmb3JtIGluaXRgIGludm9jYXRpb25cbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KFxuICBvcHRpb25zOiB7IGN3ZDogc3RyaW5nIH0sXG4gIG1heEF0dGVtcHRzID0gNSxcbiAgYmFzZURlbGF5TXMgPSA1MDAwLFxuICBiYWNrb2ZmTXVsdGlwbGllciA9IDIsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSBtYXhBdHRlbXB0czsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcImluaXRcIl0sIG9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnN0IHN0ZGVycjogc3RyaW5nID0gZXJyb3I/LnN0ZGVyciA/PyBcIlwiO1xuICAgICAgY29uc3QgdHJhbnNpZW50ID0gVFJBTlNJRU5UX0lOSVRfRVJST1JfUEFUVEVSTlMuc29tZSgocCkgPT5cbiAgICAgICAgcC50ZXN0KHN0ZGVyciksXG4gICAgICApO1xuICAgICAgaWYgKCF0cmFuc2llbnQgfHwgYXR0ZW1wdCA9PT0gbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjb25zdCBkZWxheU1zID0gYmFzZURlbGF5TXMgKiBiYWNrb2ZmTXVsdGlwbGllciAqKiAoYXR0ZW1wdCAtIDEpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGB0ZXJyYWZvcm0gaW5pdCBmYWlsZWQgd2l0aCBhIHRyYW5zaWVudCBlcnJvciwgcmV0cnlpbmcgaW4gJHtkZWxheU1zfW1zIChhdHRlbXB0ICR7YXR0ZW1wdH0vJHttYXhBdHRlbXB0cyAtIDF9KWAsXG4gICAgICApO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXlNcykpO1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJ1bnJlYWNoYWJsZVwiKTtcbn1cblxuLyoqXG4gKiBGdWxseSBRdWFsaWZpZWQgcHJvdmlkZXIgbmFtZSBpbiB0aGUgZm9ybWF0OlxuICogbGlrZSBlLmcuIHJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvYXdzXG4gKi9cbmV4cG9ydCB0eXBlIEZRUE4gPSBzdHJpbmcgJiB7IF9fdHlwZTogXCJGdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZVwiIH07XG5leHBvcnQgdHlwZSBQcm92aWRlckhvc3RuYW1lID0gc3RyaW5nICYgeyBfX3R5cGU6IFwiUHJvdmlkZXJIb3N0bmFtZVwiIH07XG5leHBvcnQgdHlwZSBQcm92aWRlck5hbWVzcGFjZSA9IHN0cmluZyAmIHsgX190eXBlOiBcIlByb3ZpZGVyTmFtZXNwYWNlXCIgfTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyTmFtZSA9IHN0cmluZyAmIHsgX190eXBlOiBcIlByb3ZpZGVyTmFtZVwiIH07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUZRUE4gPSAoZjogRlFQTikgPT4ge1xuICBjb25zdCBbaG9zdG5hbWUsIG5hbWVzcGFjZSwgbmFtZV0gPSBmLnNwbGl0KFwiL1wiKTtcbiAgaWYgKCFuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjYW4ndCBoYW5kbGUgJHtmfWApO1xuICB9XG4gIHJldHVybiB7IGhvc3RuYW1lLCBuYW1lc3BhY2UsIG5hbWUgfSBhcyB7XG4gICAgaG9zdG5hbWU6IFByb3ZpZGVySG9zdG5hbWU7XG4gICAgbmFtZXNwYWNlOiBQcm92aWRlck5hbWVzcGFjZTtcbiAgICBuYW1lOiBQcm92aWRlck5hbWU7XG4gIH07XG59O1xuXG5jb25zdCB1bndyYXBJZkFycmF5ID0gPFQ+KGl0ZW06IFQgfCBUW10pOiBUID0+XG4gIEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtWzBdIDogaXRlbTtcblxuY29uc3QgdHJhbnNmb3JtVmFyaWFibGVzID0gKHZhcmlhYmxlczogYW55KSA9PiB7XG4gIGNvbnN0IHJlc3VsdDogSW5wdXRbXSA9IFtdO1xuXG4gIGlmICghdmFyaWFibGVzKSByZXR1cm4gcmVzdWx0O1xuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB1bndyYXBJZkFycmF5KHZhcmlhYmxlc1tuYW1lXSk7XG4gICAgbGV0IHZhcmlhYmxlVHlwZTogc3RyaW5nO1xuXG4gICAgaWYgKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgdmFyaWFibGUuaGFzT3duUHJvcGVydHkoXCJ0eXBlXCIpID09IGZhbHNlICYmXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICB2YXJpYWJsZS5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIikgPT0gdHJ1ZVxuICAgICkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFyaWFibGVbXCJkZWZhdWx0XCJdKSB7XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gXCJib29sXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICB2YXJpYWJsZVR5cGUgPSBcIm51bWJlclwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IFwiYW55XCI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJhd1ZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlW1widHlwZVwiXTtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHJhd1ZhcmlhYmxlVHlwZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICByYXdWYXJpYWJsZVR5cGUuc3RhcnRzV2l0aChcIiR7XCIpICYmXG4gICAgICAgIHJhd1ZhcmlhYmxlVHlwZS5lbmRzV2l0aChcIn1cIikgJiZcbiAgICAgICAgIXJhd1ZhcmlhYmxlVHlwZS5pbmNsdWRlcyhcIlxcblwiKVxuICAgICAgKSB7XG4gICAgICAgIHZhcmlhYmxlVHlwZSA9IHJhd1ZhcmlhYmxlVHlwZS5zbGljZSgyLCAtMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXJpYWJsZVR5cGUgPSBcImFueVwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW06IElucHV0ID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHR5cGU6IHZhcmlhYmxlVHlwZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB2YXJpYWJsZVtcImRlc2NyaXB0aW9uXCJdLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgcmVxdWlyZWQ6IHZhcmlhYmxlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKSA9PSBmYWxzZSxcbiAgICB9O1xuXG4gICAgaWYgKCFpdGVtLnJlcXVpcmVkKSB7XG4gICAgICBpdGVtW1wiZGVmYXVsdFwiXSA9IHZhcmlhYmxlW1wiZGVmYXVsdFwiXTtcbiAgICB9XG5cbiAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5jb25zdCB0cmFuc2Zvcm1PdXRwdXRzID0gKG91dHB1dHM6IGFueSkgPT4ge1xuICBjb25zdCByZXN1bHQgPSBbXTtcblxuICBpZiAob3V0cHV0cykge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhvdXRwdXRzKSkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gdW53cmFwSWZBcnJheShvdXRwdXRzW25hbWVdKTtcblxuICAgICAgY29uc3QgaXRlbTogYW55ID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3V0cHV0W1wiZGVzY3JpcHRpb25cIl0sXG4gICAgICB9O1xuXG4gICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgaGFydmVzdE1vZHVsZVNjaGVtYSA9IGFzeW5jIChcbiAgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nLFxuICBtb2R1bGVzOiBzdHJpbmdbXSxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4gPT4ge1xuICBjb25zdCBmaWxlTmFtZSA9IHBhdGguam9pbihcbiAgICB3b3JraW5nRGlyZWN0b3J5LFxuICAgIFwiLnRlcnJhZm9ybVwiLFxuICAgIFwibW9kdWxlc1wiLFxuICAgIFwibW9kdWxlcy5qc29uXCIsXG4gICk7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGlmICghZnMuZXhpc3RzU3luYyhmaWxlTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTW9kdWxlcyB3ZXJlIG5vdCBnZW5lcmF0ZWQgcHJvcGVybHkgLSBjb3VsZG4ndCBmaW5kICR7ZmlsZU5hbWV9YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlSW5kZXggPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhmaWxlTmFtZSwgXCJ1dGYtOFwiKSxcbiAgKSBhcyBNb2R1bGVJbmRleDtcblxuICBmb3IgKGNvbnN0IG1vZCBvZiBtb2R1bGVzKSB7XG4gICAgY29uc3QgbSA9IG1vZHVsZUluZGV4Lk1vZHVsZXMuZmluZCgob3RoZXIpID0+IG1vZCA9PT0gb3RoZXIuS2V5KTtcblxuICAgIGlmICghbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBmaW5kICR7bX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCBjb252ZXJ0RmlsZXMocGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnksIG0uRGlyKSk7XG5cbiAgICBpZiAoIXBhcnNlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTW9kdWxlcyB3ZXJlIG5vdCBnZW5lcmF0ZWQgcHJvcGVybHkgLSBjb3VsZG4ndCBwYXJzZSAke20uRGlyfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYTogTW9kdWxlU2NoZW1hID0ge1xuICAgICAgaW5wdXRzOiB0cmFuc2Zvcm1WYXJpYWJsZXMocGFyc2VkLnZhcmlhYmxlKSxcbiAgICAgIG91dHB1dHM6IHRyYW5zZm9ybU91dHB1dHMocGFyc2VkLm91dHB1dCksXG4gICAgICBuYW1lOiBtb2QsXG4gICAgfTtcblxuICAgIHJlc3VsdFttb2RdID0gc2NoZW1hO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmZ1bmN0aW9uIGpvaW5XaXRoQW5kKGl0ZW1zOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGlmIChpdGVtcy5sZW5ndGggPD0gMSkgcmV0dXJuIGl0ZW1zLmpvaW4oXCJcIik7XG4gIHJldHVybiBgJHtpdGVtcy5zbGljZSgwLCAtMSkuam9pbihcIiwgXCIpfSBhbmQgJHtpdGVtc1tpdGVtcy5sZW5ndGggLSAxXX1gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUNvbmZpZyB7XG4gIC8vIGEgbGlzdCBob2xkcyBzZXZlcmFsIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBzYW1lIHByb3ZpZGVyLCB3aGljaCBpcyBob3dcbiAgLy8gYWxpYXNlZCBwcm92aWRlciBibG9ja3MgYXJlIGV4cHJlc3NlZCBpbiBKU09OIHN5bnRheFxuICBwcm92aWRlcj86IHsgW25hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIGFueT4gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+W10gfTtcbiAgdGVycmFmb3JtOiB7XG4gICAgcmVxdWlyZWRfcHJvdmlkZXJzPzoge1xuICAgICAgW25hbWU6IHN0cmluZ106IHsgc291cmNlPzogc3RyaW5nOyB2ZXJzaW9uPzogc3RyaW5nIH07XG4gICAgfTtcbiAgfTtcbiAgbW9kdWxlPzoge1xuICAgIFtuYW1lOiBzdHJpbmddOiB7XG4gICAgICBzb3VyY2U6IHN0cmluZztcbiAgICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgICBwcm92aWRlcnM/OiB7IFtsb2NhbE5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUHJvdmlkZXJTY2hlbWEoXG4gIHRhcmdldDogQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4pIHtcbiAgY29uc3QgY29uZmlnOiBUZXJyYWZvcm1Db25maWcgPSB7XG4gICAgcHJvdmlkZXI6IHt9LFxuICAgIHRlcnJhZm9ybToge1xuICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbmZpZy5wcm92aWRlciFbdGFyZ2V0Lm5hbWVdID0ge307XG4gIGNvbmZpZy50ZXJyYWZvcm0ucmVxdWlyZWRfcHJvdmlkZXJzIVt0YXJnZXQubmFtZV0gPSB7XG4gICAgdmVyc2lvbjogdGFyZ2V0LnZlcnNpb24sXG4gICAgc291cmNlOiB0YXJnZXQuc291cmNlLFxuICB9O1xuXG4gIGxldCBwcm92aWRlclNjaGVtYTogUHJvdmlkZXJTY2hlbWEgPSB7IGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiIH07XG5cbiAgYXdhaXQgd2l0aFRlbXBEaXIoXCJmZXRjaFByb3ZpZGVyU2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKG91dGRpciwgXCJtYWluLnRmLmpzb25cIik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcblxuICAgIGF3YWl0IHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IG91dGRpciB9KTtcbiAgICBwcm92aWRlclNjaGVtYSA9IEpTT04ucGFyc2UoXG4gICAgICBhd2FpdCBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcInByb3ZpZGVyc1wiLCBcInNjaGVtYVwiLCBcIi1qc29uXCJdLCB7XG4gICAgICAgIGN3ZDogb3V0ZGlyLFxuICAgICAgfSksXG4gICAgKSBhcyBQcm92aWRlclNjaGVtYTtcblxuICAgIGNvbnN0IHZlcnNpb25TY2hlbWEgPSBKU09OLnBhcnNlKFxuICAgICAgYXdhaXQgZXhlYyh0ZXJyYWZvcm1CaW5hcnlOYW1lLCBbXCJ2ZXJzaW9uXCIsIFwiLWpzb25cIl0sIHtcbiAgICAgICAgY3dkOiBvdXRkaXIsXG4gICAgICB9KSxcbiAgICApIGFzIFZlcnNpb25TY2hlbWE7XG5cbiAgICBwcm92aWRlclNjaGVtYS5wcm92aWRlcl92ZXJzaW9ucyA9IHZlcnNpb25TY2hlbWEucHJvdmlkZXJfc2VsZWN0aW9ucztcbiAgfSk7XG5cbiAgLy8gU3RhbXAgdGhlIGZldGNoaW5nIENMSSdzIGlkZW50aXR5IHNvIGRvd25zdHJlYW0gY29uc3VtZXJzIGNhbiByZWFzb25cbiAgLy8gYWJvdXQgd2hpY2ggbmV3ZXItcHJvdG9jb2wgc2VjdGlvbnMgdGhpcyBmZXRjaCBjb3VsZCBwb3NzaWJseSBoYXZlXG4gIC8vIGVtaXR0ZWQuIE5ldmVyIGZhaWwgdGhlIGZldGNoIG92ZXIgdGhpcyAtIGl0J3MgYmVzdC1lZmZvcnQgbWV0YWRhdGEuXG4gIHRyeSB7XG4gICAgY29uc3QgY2xpID0gYXdhaXQgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uKCk7XG4gICAgcHJvdmlkZXJTY2hlbWEuY2xpX25hbWUgPSBjbGkubmFtZTtcbiAgICBwcm92aWRlclNjaGVtYS5jbGlfdmVyc2lvbiA9IGNsaS52ZXJzaW9uO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBDb3VsZCBub3QgZGV0ZXJtaW5lIGZldGNoaW5nIENMSSB2ZXJzaW9uIHRvIHN0YW1wIHByb3ZpZGVyIHNjaGVtYTogJHtlcnJvcn1gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gc2FuaXRpemVQcm92aWRlclNjaGVtYShwcm92aWRlclNjaGVtYSk7XG59XG5cbi8qKlxuICogV2FybnMgd2hlbiB0aGUgQ0xJIHRoYXQgcHJvZHVjZWQgYSBnaXZlbiBwcm92aWRlciBzY2hlbWEgcHJlZGF0ZXMgb25lIG9yXG4gKiBtb3JlIHNjaGVtYS1lbWlzc2lvbiBib3VuZGFyaWVzIHRoZSBwcm9qZWN0J3MgZGVjbGFyZWQgYHRhcmdldFZlcnNpb25zYFxuICogY2FyZSBhYm91dCAoc2VlIGVtaXNzaW9uLWNoZWNrLnRzKSAtIGkuZS4gc29tZSBuZXdlci1wcm90b2NvbCBzZWN0aW9uc1xuICogKGZ1bmN0aW9ucywgZXBoZW1lcmFsIHJlc291cmNlcywgLi4uKSBtYXkgYmUgbWlzc2luZyBmcm9tIHRoZSBnZW5lcmF0ZWRcbiAqIGJpbmRpbmdzIGV2ZW4gdGhvdWdoIHRoZSBzY2hlbWEgZmV0Y2ggaXRzZWxmIHN1Y2NlZWRlZC5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgZGVjb3VwbGVkIGZyb20gdGhlIGZldGNoIHBhdGggKHJlYWRQcm92aWRlclNjaGVtYSkgc28gaXRcbiAqIGFsc28gcnVucyBmb3Igc2NoZW1hcyBzZXJ2ZWQgZnJvbSB0aGUgb24tZGlzayBjYWNoZTogY2FjaGVkIEpTT04gY2Fycmllc1xuICogdGhlIHNhbWUgYGNsaV9uYW1lYC9gY2xpX3ZlcnNpb25gIHN0YW1wcyBhIGZyZXNoIGZldGNoIHdvdWxkIGhhdmVcbiAqIHdyaXR0ZW4gKHRoZSBjYWNoZSBrZXkgYWxyZWFkeSBzZWdtZW50cyBieSBDTEkgcHJvZHVjdCttaW5vciksIHNvIHRoZSBnYXBcbiAqIGNoZWNrIGlzIGp1c3QgYXMgbWVhbmluZ2Z1bCBvbiBhIGNhY2hlIGhpdCBhcyBvbiBhIG1pc3MuXG4gKlxuICogTm8tb3Agd2l0aG91dCBgdGFyZ2V0VmVyc2lvbnNgIC0gdGhlcmUgaXMgbm90aGluZyB0byBjb21wYXJlIHRoZSBDTElcbiAqIGFnYWluc3QuIEZhbGxzIGJhY2sgdG8gdGhlIGN1cnJlbnQgcHJvY2VzcydzIGZldGNoaW5nIENMSSB2ZXJzaW9uIHdoZW5cbiAqIHRoZSBzY2hlbWEgaXRzZWxmIGlzbid0IHN0YW1wZWQgKGUuZy4gb2xkZXIgY2FjaGUgZW50cmllcyB3cml0dGVuIGJlZm9yZVxuICogc3RhbXBpbmcgZXhpc3RlZCkuXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhcm5JZlNjaGVtYUVtaXNzaW9uR2FwcyhcbiAgc2NoZW1hOiBQcm92aWRlclNjaGVtYSxcbiAgdGFyZ2V0VmVyc2lvbnM/OiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXRhcmdldFZlcnNpb25zKSByZXR1cm47XG5cbiAgbGV0IGNsaTogVGVycmFmb3JtQ2xpVmVyc2lvbjtcbiAgaWYgKHNjaGVtYS5jbGlfbmFtZSAmJiBzY2hlbWEuY2xpX3ZlcnNpb24pIHtcbiAgICBpZiAoc2NoZW1hLmNsaV9uYW1lICE9PSBcInRlcnJhZm9ybVwiICYmIHNjaGVtYS5jbGlfbmFtZSAhPT0gXCJvcGVudG9mdVwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNsaSA9IHsgbmFtZTogc2NoZW1hLmNsaV9uYW1lLCB2ZXJzaW9uOiBzY2hlbWEuY2xpX3ZlcnNpb24gfTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgY2xpID0gYXdhaXQgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYENvdWxkIG5vdCBkZXRlcm1pbmUgZmV0Y2hpbmcgQ0xJIHZlcnNpb24gdG8gY2hlY2sgZm9yIHNjaGVtYSBlbWlzc2lvbiBnYXBzOiAke2Vycm9yfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdhcEZhbWlsaWVzID0gY2hlY2tTY2hlbWFFbWlzc2lvbkdhcEZhbWlsaWVzKGNsaSwgdGFyZ2V0VmVyc2lvbnMpO1xuICBpZiAoZ2FwRmFtaWxpZXMubGVuZ3RoID4gMCAmJiBjbGkudmVyc2lvbikge1xuICAgIGxvZ2dlci53YXJuKFxuICAgICAgYHByb3ZpZGVyIHNjaGVtYSBmZXRjaGVkIHdpdGggJHtjbGkubmFtZX0gJHtjbGkudmVyc2lvbn0g4oCUICR7am9pbldpdGhBbmQoXG4gICAgICAgIGdhcEZhbWlsaWVzLm1hcCgoZmFtaWx5KSA9PiBTQ0hFTUFfRU1JU1NJT05fRkFNSUxZX0xBQkVMU1tmYW1pbHldKSxcbiAgICAgICl9IHdpbGwgbm90IGJlIGdlbmVyYXRlZDsgcnVuIGNka3RuIGdldCB3aXRoICR7c3VnZ2VzdGVkRW1pdHRpbmdDbGlWZXJzaW9ucyhcbiAgICAgICAgZ2FwRmFtaWxpZXMsXG4gICAgICApfWAsXG4gICAgKTtcbiAgfVxufVxuXG4vLyBUaGUgcHJvdmlkZXJzIGhhdmUgc29tZSBwb3RlbnRpYWwgYnVncyB0aGF0IHdlIHdhbnQgdG8gcHJvLWFjdGl2ZWx5XG4vLyBmaXggaGVyZSBzbyB0aGF0IHRoZSByZXN0IG9mIHRoZSBjb2RlIGNhbiBhc3N1bWUgYSBjb25zaXN0ZW50IHNjaGVtYS5cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hKHNjaGVtYTogUHJvdmlkZXJTY2hlbWEpOiBQcm92aWRlclNjaGVtYSB7XG4gIC8vIE1haW5seSBzb21lIGF0dHJpYnV0ZXMgYXJlIFwiZG91YmxlZFwiLCBlLmcuIFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdXG4gIC8vIGluc3RlYWQgb2YgW1wibGlzdFwiLCBcInN0cmluZ1wiXVxuICBmdW5jdGlvbiBhdHRyaWJ1dGVEb3VibGluZ0ZpeChhdHRyaWJ1dGU6IEF0dHJpYnV0ZSk6IEF0dHJpYnV0ZSB7XG4gICAgaWYgKGlzTmVzdGVkVHlwZUF0dHJpYnV0ZShhdHRyaWJ1dGUpIHx8ICFBcnJheS5pc0FycmF5KGF0dHJpYnV0ZS50eXBlKSkge1xuICAgICAgcmV0dXJuIGF0dHJpYnV0ZTtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlID1cbiAgICAgIGF0dHJpYnV0ZS50eXBlLmxlbmd0aCA9PT0gMlxuICAgICAgICA/IGF0dHJpYnV0ZS50eXBlXG4gICAgICAgIDogKGF0dHJpYnV0ZS50eXBlIGFzIHN0cmluZ1tdKS5zbGljZSgwLCAyKTsgLy8gVGhlIHR5cGVzIHRlbGwgdXMgdGhpcyBjYW4ndCBoYXBwZW4sIHJlYWxpdHkgYmVncyB0byBkaWZmZXJcblxuICAgIGF0dHJpYnV0ZS50eXBlID0gdHlwZSBhcyBBdHRyaWJ1dGVUeXBlO1xuICAgIHJldHVybiBhdHRyaWJ1dGU7XG4gIH1cblxuICAvLyBNdXRhdGVzIGJsb2NrIHdpdGggdGhlIGZpeFxuICBmdW5jdGlvbiBzYW5pdGl6ZUJsb2NrKGJsb2NrOiBCbG9jaykge1xuICAgIE9iamVjdC52YWx1ZXMoYmxvY2suYXR0cmlidXRlcyB8fCB7fSkuZm9yRWFjaChhdHRyaWJ1dGVEb3VibGluZ0ZpeCk7XG4gICAgT2JqZWN0LnZhbHVlcyhibG9jay5ibG9ja190eXBlcyB8fCB7fSkuZm9yRWFjaCgoYmxvY2tUeXBlKSA9PiB7XG4gICAgICBzYW5pdGl6ZUJsb2NrKGJsb2NrVHlwZS5ibG9jayk7XG4gICAgfSk7XG4gIH1cblxuICBPYmplY3QudmFsdWVzKHNjaGVtYS5wcm92aWRlcl9zY2hlbWFzIHx8IHt9KS5mb3JFYWNoKChwcm92aWRlcikgPT4ge1xuICAgIGNvbnN0IGVudGl0aWVzID0gW1xuICAgICAgcHJvdmlkZXIucHJvdmlkZXIsXG4gICAgICAuLi5PYmplY3QudmFsdWVzKHByb3ZpZGVyLnJlc291cmNlX3NjaGVtYXMgfHwge30pLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhwcm92aWRlci5kYXRhX3NvdXJjZV9zY2hlbWFzIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC52YWx1ZXMocHJvdmlkZXIuZXBoZW1lcmFsX3Jlc291cmNlX3NjaGVtYXMgfHwge30pLFxuICAgIF07XG5cbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHkpID0+IHtcbiAgICAgIHNhbml0aXplQmxvY2soZW50aXR5LmJsb2NrKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHNjaGVtYTtcbn1cblxuLyoqXG4gKiBBIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gdGhhdCBhIG1vZHVsZSBleHBlY3RzIHRvIGJlIGhhbmRlZCBieSBpdHMgY2FsbGVyLFxuICogZGVjbGFyZWQgYXMgYGNvbmZpZ3VyYXRpb25fYWxpYXNlc2AgaW4gdGhlIG1vZHVsZSdzIGByZXF1aXJlZF9wcm92aWRlcnNgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZVByb3ZpZGVyQWxpYXMge1xuICAvKiogbG9jYWwgbmFtZSB0aGUgbW9kdWxlIGtub3dzIHRoZSBwcm92aWRlciBieSwgZS5nLiBgYXdzYCAqL1xuICBsb2NhbE5hbWU6IHN0cmluZztcbiAgLyoqIGFsaWFzIHBhcnQgb2YgdGhlIHJlZmVyZW5jZSwgZS5nLiBgZ2xvYmFsX3JlZ2lvbmAgKi9cbiAgYWxpYXM6IHN0cmluZztcbiAgLyoqIHByb3ZpZGVyIHNvdXJjZSB0aGUgbW9kdWxlIGRlY2xhcmVkIGZvciBgbG9jYWxOYW1lYCwgaWYgaXQgZGVjbGFyZWQgb25lICovXG4gIHNvdXJjZT86IHN0cmluZztcbn1cblxuY29uc3QgQ09ORklHVVJBVElPTl9BTElBUyA9IC9eKFtcXHctXSspXFwuKFtcXHctXSspJC87XG5cbi8vIGhjbDJqc29uIGhhbmRzIEhDTCBleHByZXNzaW9ucyBiYWNrIGFzIGludGVycG9sYXRpb25zLCBzbyBhXG4vLyBgY29uZmlndXJhdGlvbl9hbGlhc2VzID0gW2F3cy5nbG9iYWxfcmVnaW9uXWAgZW50cnkgYXJyaXZlcyBhcyB0aGUgc3RyaW5nXG4vLyBcIiR7YXdzLmdsb2JhbF9yZWdpb259XCIuIEEgLnRmLmpzb24gbW9kdWxlIHdyaXRlcyB0aGUgc2FtZSByZWZlcmVuY2UgYXMgYVxuLy8gcGxhaW4gc3RyaW5nLCB3aGljaCBoY2wyanNvbiBwYXNzZXMgdGhyb3VnaCB1bnRvdWNoZWQuXG5jb25zdCB1bndyYXBJbnRlcnBvbGF0aW9uID0gKHZhbHVlOiBzdHJpbmcpID0+XG4gIHZhbHVlLnN0YXJ0c1dpdGgoXCIke1wiKSAmJiB2YWx1ZS5lbmRzV2l0aChcIn1cIikgPyB2YWx1ZS5zbGljZSgyLCAtMSkgOiB2YWx1ZTtcblxuY29uc3QgdG9BcnJheSA9IDxUPihpdGVtOiBUIHwgVFtdIHwgdW5kZWZpbmVkIHwgbnVsbCk6IFRbXSA9PiB7XG4gIGlmIChpdGVtID09PSB1bmRlZmluZWQgfHwgaXRlbSA9PT0gbnVsbCkgcmV0dXJuIFtdO1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShpdGVtKSA/IGl0ZW0gOiBbaXRlbV07XG59O1xuXG4vKipcbiAqIEV2ZXJ5IG9jY3VycmVuY2Ugb2YgYSBibG9jayB0aGF0IGhjbDJqc29uIHByb2R1Y2VkIHVuZGVyIG9uZSBrZXkuXG4gKlxuICogSENMIGJsb2NrcyBjb21lIGJhY2sgYXMgYW4gYXJyYXkgd2l0aCBhbiBlbnRyeSBwZXIgb2NjdXJyZW5jZSwgYSAudGYuanNvblxuICogYmxvY2sgYXMgYSBwbGFpbiBvYmplY3QuIEEgbW9kdWxlIG1peGluZyBib3RoIHN5bnRheGVzIGdldHMgYSB0aGlyZCBzaGFwZTpcbiAqIGhjbDJqc29uIG1lcmdlcyB0aGUgSlNPTiBmaWxlIGludG8gdGhlIHBhcnNlZCBIQ0wsIGFuZCBpdHMgZGVlcE1lcmdlXG4gKiByZWN1cnNlcyBpbnRvIHRoZSBIQ0wgYXJyYXkgaW5zdGVhZCBvZiBhcHBlbmRpbmcgdG8gaXQsIGxlYXZpbmcgdGhlIEpTT05cbiAqIGNvbnRyaWJ1dGlvbiBoYW5naW5nIG9mZiB0aGUgYXJyYXkgYXMgbmFtZWQgcHJvcGVydGllcy4gVGhvc2UgcHJvcGVydGllc1xuICogYXJlIGFuIG9jY3VycmVuY2Ugb2YgdGhlaXIgb3duIC0gYW5kIG9uZSB0aGF0IG5laXRoZXIgaXRlcmF0aW5nIHRoZSBhcnJheVxuICogbm9yIEpTT04uc3RyaW5naWZ5IHdvdWxkIGV2ZXIgc2hvdy5cbiAqL1xuY29uc3QgYmxvY2tPY2N1cnJlbmNlcyA9IChibG9jazogYW55KTogYW55W10gPT4ge1xuICBpZiAoYmxvY2sgPT09IHVuZGVmaW5lZCB8fCBibG9jayA9PT0gbnVsbCkgcmV0dXJuIFtdO1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYmxvY2spKSByZXR1cm4gW2Jsb2NrXTtcblxuICBjb25zdCBtZXJnZWQgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoYmxvY2spLmZpbHRlcigoW2tleV0pID0+ICEvXlxcZCskLy50ZXN0KGtleSkpLFxuICApO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXJnZWQpLmxlbmd0aCA+IDAgPyBbLi4uYmxvY2ssIG1lcmdlZF0gOiBbLi4uYmxvY2tdO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0cyB0aGUgcHJvdmlkZXIgY29uZmlndXJhdGlvbnMgYSBtb2R1bGUgcmVxdWlyZXMgaXRzIGNhbGxlciB0byBwYXNzXG4gKiBpbiwgZnJvbSB0aGUgaGNsMmpzb24gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZHVsZSdzIGRpcmVjdG9yeS5cbiAqXG4gKiBBIG1vZHVsZSBtYXkgZGVjbGFyZSBgcmVxdWlyZWRfcHJvdmlkZXJzYCBpbiBtb3JlIHRoYW4gb25lIGB0ZXJyYWZvcm1gXG4gKiBibG9jaywgYW5kIG1heSBzcHJlYWQgdGhlbSBhY3Jvc3MgLnRmIGFuZCAudGYuanNvbiBmaWxlczsgZXZlcnkgb2NjdXJyZW5jZVxuICogaGNsMmpzb24gcmVwb3J0cyBpcyBjb25zaWRlcmVkIChzZWUge0BsaW5rIGJsb2NrT2NjdXJyZW5jZXN9KS5cbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhcbiAgcGFyc2VkTW9kdWxlOiBhbnksXG4pOiBNb2R1bGVQcm92aWRlckFsaWFzW10ge1xuICBjb25zdCBhbGlhc2VzOiBNb2R1bGVQcm92aWRlckFsaWFzW10gPSBbXTtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3QgdGVycmFmb3JtQmxvY2sgb2YgYmxvY2tPY2N1cnJlbmNlcyhwYXJzZWRNb2R1bGU/LnRlcnJhZm9ybSkpIHtcbiAgICBmb3IgKGNvbnN0IHJlcXVpcmVkUHJvdmlkZXJzIG9mIGJsb2NrT2NjdXJyZW5jZXMoXG4gICAgICB0ZXJyYWZvcm1CbG9jaz8ucmVxdWlyZWRfcHJvdmlkZXJzLFxuICAgICkpIHtcbiAgICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgT2JqZWN0LnZhbHVlcyhyZXF1aXJlZFByb3ZpZGVycyB8fCB7fSkpIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB1bndyYXBJZkFycmF5KGRlY2xhcmF0aW9uIGFzIGFueSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB0b0FycmF5KHByb3ZpZGVyPy5jb25maWd1cmF0aW9uX2FsaWFzZXMpKSB7XG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSBDT05GSUdVUkFUSU9OX0FMSUFTLmV4ZWMoXG4gICAgICAgICAgICB1bndyYXBJbnRlcnBvbGF0aW9uKFN0cmluZyhlbnRyeSkpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKCFtYXRjaCkgY29udGludWU7XG5cbiAgICAgICAgICBjb25zdCBbLCBsb2NhbE5hbWUsIGFsaWFzXSA9IG1hdGNoO1xuICAgICAgICAgIGNvbnN0IGtleSA9IGAke2xvY2FsTmFtZX0uJHthbGlhc31gO1xuICAgICAgICAgIGlmIChzZWVuLmhhcyhrZXkpKSBjb250aW51ZTtcbiAgICAgICAgICBzZWVuLmFkZChrZXkpO1xuXG4gICAgICAgICAgYWxpYXNlcy5wdXNoKHsgbG9jYWxOYW1lLCBhbGlhcywgc291cmNlOiBwcm92aWRlcj8uc291cmNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFsaWFzZXM7XG59XG5cbi8qKlxuICogRGVjbGFyZXMgdGhlIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIHRoYXQgYGFsaWFzZXNgIG5hbWVzIG9uIHRoZSBzeW50aGV0aWNcbiAqIHJvb3QgY29uZmlnIGFuZCBwYXNzZXMgdGhlbSBpbnRvIHRoZSBtb2R1bGUgY2FsbCwgd2hpY2ggaXMgd2hhdCBUZXJyYWZvcm1cbiAqIGRlbWFuZHMgb2YgYW55b25lIGNhbGxpbmcgYSBtb2R1bGUgd2l0aCBgY29uZmlndXJhdGlvbl9hbGlhc2VzYC5cbiAqXG4gKiBUaGUgYWxpYXMgYmxvY2tzIHN0YXkgZW1wdHk6IGB0ZXJyYWZvcm0gZ2V0YCBvbmx5IGJ1aWxkcyB0aGUgY29uZmlndXJhdGlvblxuICogdHJlZSwgaXQgbmV2ZXIgY29uZmlndXJlcyBvciBpbnN0YWxscyBhIHByb3ZpZGVyLiBTb3VyY2VzIGFyZSBtaXJyb3JlZCBmcm9tXG4gKiB0aGUgbW9kdWxlJ3Mgb3duIGByZXF1aXJlZF9wcm92aWRlcnNgIHNvIGEgbW9kdWxlIHJlZmVycmluZyB0bywgc2F5LFxuICogaGFzaGljb3JwL2F3cyB1bmRlciBhIG5vbi1kZWZhdWx0IGxvY2FsIG5hbWUgc3RpbGwgcmVzb2x2ZXMgdG8gdGhlIHNhbWVcbiAqIHByb3ZpZGVyIGluIHRoZSByb290LlxuICpcbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlcyhcbiAgY29uZmlnOiBUZXJyYWZvcm1Db25maWcsXG4gIG1vZHVsZUtleTogc3RyaW5nLFxuICBhbGlhc2VzOiBNb2R1bGVQcm92aWRlckFsaWFzW10sXG4pOiBUZXJyYWZvcm1Db25maWcge1xuICBjb25zdCBtb2R1bGVDYWxsID0gY29uZmlnLm1vZHVsZT8uW21vZHVsZUtleV07XG4gIGlmICghbW9kdWxlQ2FsbCB8fCBhbGlhc2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGNvbmZpZztcblxuICBmb3IgKGNvbnN0IHsgbG9jYWxOYW1lLCBhbGlhcywgc291cmNlIH0gb2YgYWxpYXNlcykge1xuICAgIGlmIChzb3VyY2UpIHtcbiAgICAgIGNvbmZpZy50ZXJyYWZvcm0ucmVxdWlyZWRfcHJvdmlkZXJzID0ge1xuICAgICAgICAuLi5jb25maWcudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycyxcbiAgICAgICAgW2xvY2FsTmFtZV06IHsgc291cmNlIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbmZpZy5wcm92aWRlciA9IGNvbmZpZy5wcm92aWRlciB8fCB7fTtcbiAgICBjb25zdCBibG9ja3MgPSB0b0FycmF5KGNvbmZpZy5wcm92aWRlcltsb2NhbE5hbWVdKTtcbiAgICBpZiAoIWJsb2Nrcy5zb21lKChibG9jaykgPT4gYmxvY2suYWxpYXMgPT09IGFsaWFzKSkge1xuICAgICAgYmxvY2tzLnB1c2goeyBhbGlhcyB9KTtcbiAgICB9XG4gICAgY29uZmlnLnByb3ZpZGVyW2xvY2FsTmFtZV0gPSBibG9ja3M7XG5cbiAgICBtb2R1bGVDYWxsLnByb3ZpZGVycyA9IHtcbiAgICAgIC4uLm1vZHVsZUNhbGwucHJvdmlkZXJzLFxuICAgICAgW2Ake2xvY2FsTmFtZX0uJHthbGlhc31gXTogYCR7bG9jYWxOYW1lfS4ke2FsaWFzfWAsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbi8qKlxuICogVGhlIGAvL3N1YmRpcmAgcG9ydGlvbiBvZiBhIG1vZHVsZSBzb3VyY2UsIGlmIGl0IGhhcyBvbmUsIG1pcnJvcmluZyBob3dcbiAqIFRlcnJhZm9ybSB1bnBhY2tzIGEgcGFja2FnZSBpbnRvIGAudGVycmFmb3JtL21vZHVsZXMvPGtleT4vPHN1YmRpcj5gLlxuICpcbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYWNrYWdlU3ViZGlyKHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgW3dpdGhvdXRRdWVyeV0gPSBzb3VyY2Uuc3BsaXQoXCI/XCIpO1xuICBjb25zdCB3aXRob3V0R2V0dGVyUHJlZml4ID0gd2l0aG91dFF1ZXJ5LnJlcGxhY2UoL15bQS1aYS16MC05XSs6Oi8sIFwiXCIpO1xuICBjb25zdCB3aXRob3V0U2NoZW1lID0gd2l0aG91dEdldHRlclByZWZpeC5yZXBsYWNlKFxuICAgIC9eW0EtWmEtel1bQS1aYS16MC05Ky4tXSo6XFwvXFwvKy8sXG4gICAgXCJcIixcbiAgKTtcblxuICBjb25zdCBbLCAuLi5yZXN0XSA9IHdpdGhvdXRTY2hlbWUuc3BsaXQoXCIvL1wiKTtcbiAgY29uc3Qgc3ViZGlyID0gcmVzdC5qb2luKFwiLy9cIikucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgXCJcIik7XG4gIHJldHVybiBzdWJkaXIgfHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFdoZXJlIHRoZSBtb2R1bGUgVGVycmFmb3JtIGp1c3QgZmV0Y2hlZCBlbmRlZCB1cCBvbiBkaXNrLlxuICpcbiAqIFRoZSBtYW5pZmVzdCBpcyB0aGUgYXV0aG9yaXR5LCBidXQgYSBgdGVycmFmb3JtIGdldGAgdGhhdCBpbnN0YWxsZWQgdGhlXG4gKiBtb2R1bGUgYW5kIHRoZW4gZmFpbGVkIHRvIHZhbGlkYXRlIHRoZSBjb25maWd1cmF0aW9uIGFyb3VuZCBpdCBsZWF2ZXMgbm9cbiAqIG1hbmlmZXN0IGJlaGluZCAtIHNvIGZhbGwgYmFjayB0byB0aGUgbG9jYXRpb25zIFRlcnJhZm9ybSBpbnN0YWxscyBpbnRvOlxuICogbG9jYWwgbW9kdWxlcyBhcmUgcmVhZCB3aGVyZSB0aGV5IGFyZSwgcmVtb3RlIHBhY2thZ2VzIGFyZSB1bnBhY2tlZCBpbnRvXG4gKiBgLnRlcnJhZm9ybS9tb2R1bGVzLzxrZXk+YC5cbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hlZE1vZHVsZURpcihcbiAgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nLFxuICBtb2R1bGVLZXk6IHN0cmluZyxcbiAgc291cmNlOiBzdHJpbmcsXG4gIGxvY2FsU291cmNlQWJzb2x1dGVQYXRoPzogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKFxuICAgIHdvcmtpbmdEaXJlY3RvcnksXG4gICAgXCIudGVycmFmb3JtXCIsXG4gICAgXCJtb2R1bGVzXCIsXG4gICAgXCJtb2R1bGVzLmpzb25cIixcbiAgKTtcblxuICBpZiAoZnMuZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgY29uc3QgbW9kdWxlSW5kZXggPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKG1hbmlmZXN0UGF0aCwgXCJ1dGYtOFwiKSxcbiAgICApIGFzIE1vZHVsZUluZGV4O1xuICAgIGNvbnN0IHJlY29yZCA9IG1vZHVsZUluZGV4Lk1vZHVsZXMuZmluZCgobW9kKSA9PiBtb2QuS2V5ID09PSBtb2R1bGVLZXkpO1xuXG4gICAgaWYgKHJlY29yZCkge1xuICAgICAgcmV0dXJuIHBhdGgucmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCByZWNvcmQuRGlyKTtcbiAgICB9XG4gIH1cblxuICBpZiAobG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGgpIHtcbiAgICByZXR1cm4gbG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGg7XG4gIH1cblxuICByZXR1cm4gcGF0aC5qb2luKFxuICAgIHdvcmtpbmdEaXJlY3RvcnksXG4gICAgXCIudGVycmFmb3JtXCIsXG4gICAgXCJtb2R1bGVzXCIsXG4gICAgbW9kdWxlS2V5LFxuICAgIHBhY2thZ2VTdWJkaXIoc291cmNlKSB8fCBcIlwiLFxuICApO1xufVxuXG4vKipcbiAqIFJ1bnMgYHRlcnJhZm9ybSBnZXRgIGFuZCBoYW5kcyB0aGUgZmFpbHVyZSBiYWNrIGluc3RlYWQgb2YgdGhyb3dpbmcgaXQuXG4gKlxuICogSXRzIGRpYWdub3N0aWNzIGFyZSBub3QgZmluYWwgKHNlZSB7QGxpbmsgcmVhZE1vZHVsZVNjaGVtYX0pLCBzbyB0aGV5IGdvIHRvXG4gKiB0aGUgZGVidWcgbG9nIHJhdGhlciB0aGFuIHRoZSB0ZXJtaW5hbDsgdGhlIHJldHVybmVkIGVycm9yIHN0aWxsIGNhcnJpZXNcbiAqIHRoZW0gb24gaXRzIGBzdGRlcnJgIGZvciBjYWxsZXJzIHRoYXQgZW5kIHVwIHJldGhyb3dpbmcgaXQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRyeVRlcnJhZm9ybUdldChvdXRkaXI6IHN0cmluZyk6IFByb21pc2U8RXJyb3IgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjKFxuICAgICAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICAgIFtcImdldFwiXSxcbiAgICAgIHsgY3dkOiBvdXRkaXIsIGxvZ1N0ZGVyckFzRGVidWc6IHRydWUgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGZhbHNlLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQ6IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCkge1xuICBsZXQgbW9kdWxlU2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCBNb2R1bGVTY2hlbWE+ID0ge307XG5cbiAgYXdhaXQgd2l0aFRlbXBEaXIoXCJmZXRjaFNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnOiBUZXJyYWZvcm1Db25maWcgPSB7XG4gICAgICB0ZXJyYWZvcm06IHt9LFxuICAgIH07XG5cbiAgICBpZiAoIWNvbmZpZy5tb2R1bGUpIGNvbmZpZy5tb2R1bGUgPSB7fTtcbiAgICBsZXQgc291cmNlOiBzdHJpbmcgPSB0YXJnZXQuc291cmNlO1xuXG4gICAgY29uc3QgbG9jYWxTb3VyY2UgPSAodGFyZ2V0LmNvbnN0cmFpbnQgYXMgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludClcbiAgICAgIC5sb2NhbFNvdXJjZUFic29sdXRlUGF0aDtcbiAgICBpZiAobG9jYWxTb3VyY2UpIHtcbiAgICAgIC8vIGNyZWF0ZSByZWxhdGl2ZSBwYXRoIHRvIG1vZHVsZSBpbiB0aGUgdXNlciBwcm9qZWN0XG4gICAgICBzb3VyY2UgPSBwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGxvY2FsU291cmNlKTtcbiAgICB9XG5cbiAgICBjb25maWcubW9kdWxlW3RhcmdldC5tb2R1bGVLZXldID0geyBzb3VyY2U6IHNvdXJjZSB9O1xuICAgIGlmICh0YXJnZXQudmVyc2lvbikge1xuICAgICAgY29uZmlnLm1vZHVsZVt0YXJnZXQubW9kdWxlS2V5XVtcInZlcnNpb25cIl0gPSB0YXJnZXQudmVyc2lvbjtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKG91dGRpciwgXCJtYWluLnRmLmpzb25cIik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcblxuICAgIC8vIGB0ZXJyYWZvcm0gZ2V0YCBpcyBib3RoIG91ciBkb3dubG9hZGVyIGFuZCBhIGZ1bGwgdmFsaWRhdGlvbiBvZiB0aGVcbiAgICAvLyBzeW50aGV0aWMgcm9vdCBjb25maWcgd3JhcHBlZCBhcm91bmQgdGhlIG1vZHVsZS4gQSBtb2R1bGUgZGVjbGFyaW5nXG4gICAgLy8gYGNvbmZpZ3VyYXRpb25fYWxpYXNlc2AgY2Fubm90IHZhbGlkYXRlIHVudGlsIHRoZSByb290IHBhc3NlcyB0aG9zZVxuICAgIC8vIGNvbmZpZ3VyYXRpb25zIGluLCBhbmQgdGhlaXIgbmFtZXMgYXJlIG9ubHkga25vd2FibGUgb25jZSB0aGUgbW9kdWxlIGlzXG4gICAgLy8gb24gZGlzayAtIHNvIHRoaXMgZmlyc3QgcnVuIGlzIGEgZmV0Y2ggd2UgZGVmZXIganVkZ2VtZW50IG9uLiBUZXJyYWZvcm1cbiAgICAvLyBpbnN0YWxscyB0aGUgbW9kdWxlIGVpdGhlciB3YXk7IHNpbmNlIDEuMTUgaXQganVzdCBzdG9wcyBzaG9ydCBvZlxuICAgIC8vIHdyaXRpbmcgdGhlIG1vZHVsZSBtYW5pZmVzdCB3aGVuIHZhbGlkYXRpb24gZmFpbHMgKHRlcnJhZm9ybSMzODIxN1xuICAgIC8vIGRyb3BwZWQgdGhlIGVycm9yLXRvLXdhcm5pbmcgZG93bmdyYWRlIHRoYXQgYHRlcnJhZm9ybSBnZXRgIHVzZWQgdG9cbiAgICAvLyBhcHBseSksIHdoaWNoIGlzIHdoYXQgdGhlIHNlY29uZCBydW4gYmVsb3cgcmVzdG9yZXMuXG4gICAgY29uc3QgZmV0Y2hFcnJvciA9IGF3YWl0IHRyeVRlcnJhZm9ybUdldChvdXRkaXIpO1xuXG4gICAgY29uc3QgbW9kdWxlRGlyID0gZmV0Y2hlZE1vZHVsZURpcihcbiAgICAgIG91dGRpcixcbiAgICAgIHRhcmdldC5tb2R1bGVLZXksXG4gICAgICBzb3VyY2UsXG4gICAgICBsb2NhbFNvdXJjZSxcbiAgICApO1xuICAgIGNvbnN0IGFsaWFzZXMgPSBmcy5leGlzdHNTeW5jKG1vZHVsZURpcilcbiAgICAgID8gY29sbGVjdE1vZHVsZVByb3ZpZGVyQWxpYXNlcyhhd2FpdCBjb252ZXJ0RmlsZXMobW9kdWxlRGlyKSlcbiAgICAgIDogW107XG5cbiAgICBpZiAoYWxpYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhcHBseU1vZHVsZVByb3ZpZGVyQWxpYXNlcyhjb25maWcsIHRhcmdldC5tb2R1bGVLZXksIGFsaWFzZXMpO1xuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcbiAgICAgIGF3YWl0IGV4ZWModGVycmFmb3JtQmluYXJ5TmFtZSwgW1wiZ2V0XCJdLCB7IGN3ZDogb3V0ZGlyIH0pO1xuICAgIH0gZWxzZSBpZiAoZmV0Y2hFcnJvcikge1xuICAgICAgLy8gbm90aGluZyBoZXJlIHdhcyBzYWx2YWdlYWJsZSBhZnRlciBhbGwsIHNvIHJlcG9ydCB0aGUgZGlhZ25vc3RpY3MgdGhhdFxuICAgICAgLy8gd2VyZSBoZWxkIGJhY2sgd2hpbGUgdGhlIGZldGNoIHN0aWxsIGhhZCBhIHNlY29uZCBjaGFuY2VcbiAgICAgIGxvZ2dlci5lcnJvcigoZmV0Y2hFcnJvciBhcyBhbnkpLnN0ZGVyciB8fCBTdHJpbmcoZmV0Y2hFcnJvcikpO1xuICAgICAgdGhyb3cgZmV0Y2hFcnJvcjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLm1vZHVsZSkge1xuICAgICAgbW9kdWxlU2NoZW1hID0gYXdhaXQgaGFydmVzdE1vZHVsZVNjaGVtYShcbiAgICAgICAgb3V0ZGlyLFxuICAgICAgICBPYmplY3Qua2V5cyhjb25maWcubW9kdWxlKSxcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbW9kdWxlU2NoZW1hO1xufVxuIl19
555
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3ZpZGVyLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4Q0Esc0RBT0M7QUFvQ0Qsd0RBeUJDO0FBOEtELGdEQXFEQztBQXNCRCw0REFpQ0M7QUFJRCx3REF1Q0M7QUE2REQsb0VBK0JDO0FBZUQsZ0VBOEJDO0FBUUQsc0NBV0M7QUFhRCw0Q0FtQ0M7QUF5QkQsNENBb0VDO0FBaHVCRCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDZDQUErQjtBQUMvQiwyQ0FBNkI7QUFFN0IsOENBQStDO0FBQy9DLDRDQW1Cd0I7QUFDeEIscURBSTBCO0FBRTFCLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7QUFFN0UsSUFBSSx5QkFBbUUsQ0FBQztBQUV4RTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixxQkFBcUI7SUFDbkMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDL0IseUJBQXlCLEdBQUcsSUFBQSxjQUFJLEVBQUMsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNqRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTtTQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLGtDQUF3QixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8seUJBQXlCLENBQUM7QUFDbkMsQ0FBQztBQUVELG1FQUFtRTtBQUNuRSxxRUFBcUU7QUFDckUsc0VBQXNFO0FBQ3RFLE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsYUFBYTtJQUNiLGNBQWM7SUFDZCxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixZQUFZO0lBQ1osWUFBWTtJQUNaLGlCQUFpQjtDQUNsQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7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c0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0RmlsZXMgfSBmcm9tIFwiQGNka3RuL2hjbDJqc29uXCI7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIEF0dHJpYnV0ZVR5cGUsXG4gIEJsb2NrLFxuICBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQsXG4gIENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0LFxuICBJbnB1dCxcbiAgTW9kdWxlSW5kZXgsXG4gIE1vZHVsZVNjaGVtYSxcbiAgUHJvdmlkZXJTY2hlbWEsXG4gIFRlcnJhZm9ybUNsaVZlcnNpb24sXG4gIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuICBWZXJzaW9uU2NoZW1hLFxuICBleGVjLFxuICBpc05lc3RlZFR5cGVBdHRyaWJ1dGUsXG4gIGxvZ2dlcixcbiAgcGFyc2VUZXJyYWZvcm1DbGlWZXJzaW9uLFxuICB3aXRoVGVtcERpcixcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBTQ0hFTUFfRU1JU1NJT05fRkFNSUxZX0xBQkVMUyxcbiAgY2hlY2tTY2hlbWFFbWlzc2lvbkdhcEZhbWlsaWVzLFxuICBzdWdnZXN0ZWRFbWl0dGluZ0NsaVZlcnNpb25zLFxufSBmcm9tIFwiLi9lbWlzc2lvbi1jaGVja1wiO1xuXG5jb25zdCB0ZXJyYWZvcm1CaW5hcnlOYW1lID0gcHJvY2Vzcy5lbnYuVEVSUkFGT1JNX0JJTkFSWV9OQU1FIHx8IFwidGVycmFmb3JtXCI7XG5cbmxldCBmZXRjaGluZ0NsaVZlcnNpb25Qcm9taXNlOiBQcm9taXNlPFRlcnJhZm9ybUNsaVZlcnNpb24+IHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHZlcnNpb24gb2YgdGhlIGZldGNoaW5nIENMSSAoYHRlcnJhZm9ybWAvYHRvZnVgIGJpbmFyeVxuICogcmVzb2x2ZWQgdmlhIGBURVJSQUZPUk1fQklOQVJZX05BTUVgKSBvbmNlIHBlciBwcm9jZXNzLCBtZW1vaXplZC5cbiAqXG4gKiBVc2VkIGJvdGggdG8gc3RhbXAgZmV0Y2hlZCBwcm92aWRlciBzY2hlbWFzIChgY2xpX25hbWVgL2BjbGlfdmVyc2lvbmApXG4gKiBhbmQgYXMgdGhlIGNhY2hlIGtleSBzdWZmaXggaW4gcmVhZC50cywgc2luY2Ugc2NoZW1hIGVtaXNzaW9uIGlzIGZpeGVkXG4gKiBwZXIgQ0xJIG1pbm9yIHZlcnNpb24uXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmcgbGlrZSB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGZXRjaGluZ0NsaVZlcnNpb24oKTogUHJvbWlzZTxUZXJyYWZvcm1DbGlWZXJzaW9uPiB7XG4gIGlmICghZmV0Y2hpbmdDbGlWZXJzaW9uUHJvbWlzZSkge1xuICAgIGZldGNoaW5nQ2xpVmVyc2lvblByb21pc2UgPSBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcInZlcnNpb25cIl0sIHtcbiAgICAgIGN3ZDogcHJvY2Vzcy5jd2QoKSxcbiAgICB9KS50aGVuKHBhcnNlVGVycmFmb3JtQ2xpVmVyc2lvbik7XG4gIH1cbiAgcmV0dXJuIGZldGNoaW5nQ2xpVmVyc2lvblByb21pc2U7XG59XG5cbi8vIFByb3ZpZGVyIGJpbmFyaWVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViIHJlbGVhc2UgQ0ROcyBkdXJpbmdcbi8vIGB0ZXJyYWZvcm0gaW5pdGAsIHdoaWNoIGludGVybWl0dGVudGx5IHJldHVybnMgNXh4LiBSZXRyeSBvbiB0aG9zZVxuLy8gc2lnbmF0dXJlcyBvbmx5IOKAlCByZWFsIGNvbmZpZy9zY2hlbWEgZXJyb3JzIHNob3VsZCBzdGlsbCBmYWlsIGZhc3QuXG5jb25zdCBUUkFOU0lFTlRfSU5JVF9FUlJPUl9QQVRURVJOUyA9IFtcbiAgL1xcYjUwWzIzNF1cXGIvLFxuICAvQmFkIEdhdGV3YXkvaSxcbiAgL1NlcnZpY2UgVW5hdmFpbGFibGUvaSxcbiAgL0dhdGV3YXkgVGltZW91dC9pLFxuICAvRUNPTk5SRVNFVC9pLFxuICAvRVRJTUVET1VUL2ksXG4gIC9FQUlfQUdBSU4vaSxcbiAgL3VuZXhwZWN0ZWQgRU9GL2ksXG5dO1xuXG4vKipcbiAqIFJ1bnMgYHRlcnJhZm9ybSBpbml0YCBhbmQgcmV0cmllcyBvbiB0cmFuc2llbnQgSFRUUC9uZXR3b3JrIGZhaWx1cmVzLlxuICpcbiAqIFByb3ZpZGVyIGJpbmFyaWVzIGFyZSBwdWxsZWQgZnJvbSBHaXRIdWIncyByZWxlYXNlIENETiwgd2hpY2hcbiAqIGludGVybWl0dGVudGx5IHJldHVybnMgNXh4LiBUaGUgcmV0cnkgb25seSBmaXJlcyB3aGVuIHN0ZGVyciBtYXRjaGVzIGFcbiAqIGtub3duIHRyYW5zaWVudCBwYXR0ZXJuIOKAlCByZWFsIGVycm9ycyAoYmFkIHZlcnNpb24sIHNjaGVtYSBwYXJzZSwgZXRjLilcbiAqIHN0aWxsIGZhaWwgb24gdGhlIGZpcnN0IGF0dGVtcHQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBzcGF3biBvcHRpb25zIGZvcndhcmRlZCB0byBgZXhlY2AgKGBjd2RgIGlzIHJlcXVpcmVkIHNvXG4gKiAgIGB0ZXJyYWZvcm0gaW5pdGAgcnVucyBpbnNpZGUgdGhlIHRlbXAgZGlyIGhvbGRpbmcgYG1haW4udGYuanNvbmApXG4gKiBAcGFyYW0gbWF4QXR0ZW1wdHMgLSB0b3RhbCBhdHRlbXB0cyBpbmNsdWRpbmcgdGhlIGluaXRpYWwgY2FsbDsgdGhlIG51bWJlclxuICogICBvZiByZXRyaWVzIGlzIGBtYXhBdHRlbXB0cyAtIDFgLiBEZWZhdWx0cyB0byA1ICgxIGluaXRpYWwgKyA0IHJldHJpZXMpXG4gKiBAcGFyYW0gYmFzZURlbGF5TXMgLSBkZWxheSBiZWZvcmUgdGhlIGZpcnN0IHJldHJ5LiBUZXN0cyBwYXNzIGAwYCB0byBza2lwXG4gKiAgIHdhaXRzLiBEZWZhdWx0cyB0byA1MDAwbXNcbiAqIEBwYXJhbSBiYWNrb2ZmTXVsdGlwbGllciAtIGZhY3RvciBhcHBsaWVkIHRvIHRoZSBkZWxheSBvbiBlYWNoIHN1YnNlcXVlbnRcbiAqICAgcmV0cnkgKHNvIHJldHJpZXMgd2FpdCBgYmFzZURlbGF5TXMgKiBtdWx0aXBsaWVyXihhdHRlbXB0LTEpYCkuIERlZmF1bHRzXG4gKiAgIHRvIDIgKDFzIOKGkiAycyDihpIgNHMg4oCmKVxuICogQHJldHVybnMgc3Rkb3V0IGZyb20gdGhlIHN1Y2Nlc3NmdWwgYHRlcnJhZm9ybSBpbml0YCBpbnZvY2F0aW9uXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVycmFmb3JtSW5pdFdpdGhSZXRyeShcbiAgb3B0aW9uczogeyBjd2Q6IHN0cmluZyB9LFxuICBtYXhBdHRlbXB0cyA9IDUsXG4gIGJhc2VEZWxheU1zID0gNTAwMCxcbiAgYmFja29mZk11bHRpcGxpZXIgPSAyLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgPD0gbWF4QXR0ZW1wdHM7IGF0dGVtcHQrKykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZXhlYyh0ZXJyYWZvcm1CaW5hcnlOYW1lLCBbXCJpbml0XCJdLCBvcHRpb25zKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zdCBzdGRlcnI6IHN0cmluZyA9IGVycm9yPy5zdGRlcnIgPz8gXCJcIjtcbiAgICAgIGNvbnN0IHRyYW5zaWVudCA9IFRSQU5TSUVOVF9JTklUX0VSUk9SX1BBVFRFUk5TLnNvbWUoKHApID0+XG4gICAgICAgIHAudGVzdChzdGRlcnIpLFxuICAgICAgKTtcbiAgICAgIGlmICghdHJhbnNpZW50IHx8IGF0dGVtcHQgPT09IG1heEF0dGVtcHRzKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgY29uc3QgZGVsYXlNcyA9IGJhc2VEZWxheU1zICogYmFja29mZk11bHRpcGxpZXIgKiogKGF0dGVtcHQgLSAxKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgdGVycmFmb3JtIGluaXQgZmFpbGVkIHdpdGggYSB0cmFuc2llbnQgZXJyb3IsIHJldHJ5aW5nIGluICR7ZGVsYXlNc31tcyAoYXR0ZW1wdCAke2F0dGVtcHR9LyR7bWF4QXR0ZW1wdHMgLSAxfSlgLFxuICAgICAgKTtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGRlbGF5TXMpKTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwidW5yZWFjaGFibGVcIik7XG59XG5cbi8qKlxuICogRnVsbHkgUXVhbGlmaWVkIHByb3ZpZGVyIG5hbWUgaW4gdGhlIGZvcm1hdDpcbiAqIGxpa2UgZS5nLiByZWdpc3RyeS50ZXJyYWZvcm0uaW8vaGFzaGljb3JwL2F3c1xuICovXG5leHBvcnQgdHlwZSBGUVBOID0gc3RyaW5nICYgeyBfX3R5cGU6IFwiRnVsbHlRdWFsaWZpZWRQcm92aWRlck5hbWVcIiB9O1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJIb3N0bmFtZSA9IHN0cmluZyAmIHsgX190eXBlOiBcIlByb3ZpZGVySG9zdG5hbWVcIiB9O1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJOYW1lc3BhY2UgPSBzdHJpbmcgJiB7IF9fdHlwZTogXCJQcm92aWRlck5hbWVzcGFjZVwiIH07XG5leHBvcnQgdHlwZSBQcm92aWRlck5hbWUgPSBzdHJpbmcgJiB7IF9fdHlwZTogXCJQcm92aWRlck5hbWVcIiB9O1xuXG5leHBvcnQgY29uc3QgcGFyc2VGUVBOID0gKGY6IEZRUE4pID0+IHtcbiAgY29uc3QgW2hvc3RuYW1lLCBuYW1lc3BhY2UsIG5hbWVdID0gZi5zcGxpdChcIi9cIik7XG4gIGlmICghbmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY2FuJ3QgaGFuZGxlICR7Zn1gKTtcbiAgfVxuICByZXR1cm4geyBob3N0bmFtZSwgbmFtZXNwYWNlLCBuYW1lIH0gYXMge1xuICAgIGhvc3RuYW1lOiBQcm92aWRlckhvc3RuYW1lO1xuICAgIG5hbWVzcGFjZTogUHJvdmlkZXJOYW1lc3BhY2U7XG4gICAgbmFtZTogUHJvdmlkZXJOYW1lO1xuICB9O1xufTtcblxuY29uc3QgdW53cmFwSWZBcnJheSA9IDxUPihpdGVtOiBUIHwgVFtdKTogVCA9PlxuICBBcnJheS5pc0FycmF5KGl0ZW0pID8gaXRlbVswXSA6IGl0ZW07XG5cbmNvbnN0IHRyYW5zZm9ybVZhcmlhYmxlcyA9ICh2YXJpYWJsZXM6IGFueSkgPT4ge1xuICBjb25zdCByZXN1bHQ6IElucHV0W10gPSBbXTtcblxuICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuIHJlc3VsdDtcblxuICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXModmFyaWFibGVzKSkge1xuICAgIGNvbnN0IHZhcmlhYmxlID0gdW53cmFwSWZBcnJheSh2YXJpYWJsZXNbbmFtZV0pO1xuICAgIGxldCB2YXJpYWJsZVR5cGU6IHN0cmluZztcblxuICAgIGlmIChcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgIHZhcmlhYmxlLmhhc093blByb3BlcnR5KFwidHlwZVwiKSA9PSBmYWxzZSAmJlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgdmFyaWFibGUuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpID09IHRydWVcbiAgICApIHtcbiAgICAgIHN3aXRjaCAodHlwZW9mIHZhcmlhYmxlW1wiZGVmYXVsdFwiXSkge1xuICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IFwiYm9vbFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gXCJudW1iZXJcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB2YXJpYWJsZVR5cGUgPSBcImFueVwiO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByYXdWYXJpYWJsZVR5cGUgPSB2YXJpYWJsZVtcInR5cGVcIl07XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiByYXdWYXJpYWJsZVR5cGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgcmF3VmFyaWFibGVUeXBlLnN0YXJ0c1dpdGgoXCIke1wiKSAmJlxuICAgICAgICByYXdWYXJpYWJsZVR5cGUuZW5kc1dpdGgoXCJ9XCIpICYmXG4gICAgICAgICFyYXdWYXJpYWJsZVR5cGUuaW5jbHVkZXMoXCJcXG5cIilcbiAgICAgICkge1xuICAgICAgICB2YXJpYWJsZVR5cGUgPSByYXdWYXJpYWJsZVR5cGUuc2xpY2UoMiwgLTEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyaWFibGVUeXBlID0gXCJhbnlcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpdGVtOiBJbnB1dCA9IHtcbiAgICAgIG5hbWUsXG4gICAgICB0eXBlOiB2YXJpYWJsZVR5cGUsXG4gICAgICBkZXNjcmlwdGlvbjogdmFyaWFibGVbXCJkZXNjcmlwdGlvblwiXSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgIHJlcXVpcmVkOiB2YXJpYWJsZS5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIikgPT0gZmFsc2UsXG4gICAgfTtcblxuICAgIGlmICghaXRlbS5yZXF1aXJlZCkge1xuICAgICAgaXRlbVtcImRlZmF1bHRcIl0gPSB2YXJpYWJsZVtcImRlZmF1bHRcIl07XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgdHJhbnNmb3JtT3V0cHV0cyA9IChvdXRwdXRzOiBhbnkpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgaWYgKG91dHB1dHMpIHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMob3V0cHV0cykpIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHVud3JhcElmQXJyYXkob3V0cHV0c1tuYW1lXSk7XG5cbiAgICAgIGNvbnN0IGl0ZW06IGFueSA9IHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IG91dHB1dFtcImRlc2NyaXB0aW9uXCJdLFxuICAgICAgfTtcblxuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IGhhcnZlc3RNb2R1bGVTY2hlbWEgPSBhc3luYyAoXG4gIHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyxcbiAgbW9kdWxlczogc3RyaW5nW10sXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+ID0+IHtcbiAgY29uc3QgZmlsZU5hbWUgPSBwYXRoLmpvaW4oXG4gICAgd29ya2luZ0RpcmVjdG9yeSxcbiAgICBcIi50ZXJyYWZvcm1cIixcbiAgICBcIm1vZHVsZXNcIixcbiAgICBcIm1vZHVsZXMuanNvblwiLFxuICApO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZU5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE1vZHVsZXMgd2VyZSBub3QgZ2VuZXJhdGVkIHByb3Blcmx5IC0gY291bGRuJ3QgZmluZCAke2ZpbGVOYW1lfWAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1vZHVsZUluZGV4ID0gSlNPTi5wYXJzZShcbiAgICBmcy5yZWFkRmlsZVN5bmMoZmlsZU5hbWUsIFwidXRmLThcIiksXG4gICkgYXMgTW9kdWxlSW5kZXg7XG5cbiAgZm9yIChjb25zdCBtb2Qgb2YgbW9kdWxlcykge1xuICAgIGNvbnN0IG0gPSBtb2R1bGVJbmRleC5Nb2R1bGVzLmZpbmQoKG90aGVyKSA9PiBtb2QgPT09IG90aGVyLktleSk7XG5cbiAgICBpZiAoIW0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3QgZmluZCAke219YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkID0gYXdhaXQgY29udmVydEZpbGVzKHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LCBtLkRpcikpO1xuXG4gICAgaWYgKCFwYXJzZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1vZHVsZXMgd2VyZSBub3QgZ2VuZXJhdGVkIHByb3Blcmx5IC0gY291bGRuJ3QgcGFyc2UgJHttLkRpcn1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWE6IE1vZHVsZVNjaGVtYSA9IHtcbiAgICAgIGlucHV0czogdHJhbnNmb3JtVmFyaWFibGVzKHBhcnNlZC52YXJpYWJsZSksXG4gICAgICBvdXRwdXRzOiB0cmFuc2Zvcm1PdXRwdXRzKHBhcnNlZC5vdXRwdXQpLFxuICAgICAgbmFtZTogbW9kLFxuICAgIH07XG5cbiAgICByZXN1bHRbbW9kXSA9IHNjaGVtYTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5mdW5jdGlvbiBqb2luV2l0aEFuZChpdGVtczogc3RyaW5nW10pOiBzdHJpbmcge1xuICBpZiAoaXRlbXMubGVuZ3RoIDw9IDEpIHJldHVybiBpdGVtcy5qb2luKFwiXCIpO1xuICByZXR1cm4gYCR7aXRlbXMuc2xpY2UoMCwgLTEpLmpvaW4oXCIsIFwiKX0gYW5kICR7aXRlbXNbaXRlbXMubGVuZ3RoIC0gMV19YDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1Db25maWcge1xuICAvLyBhIGxpc3QgaG9sZHMgc2V2ZXJhbCBjb25maWd1cmF0aW9ucyBvZiB0aGUgc2FtZSBwcm92aWRlciwgd2hpY2ggaXMgaG93XG4gIC8vIGFsaWFzZWQgcHJvdmlkZXIgYmxvY2tzIGFyZSBleHByZXNzZWQgaW4gSlNPTiBzeW50YXhcbiAgcHJvdmlkZXI/OiB7IFtuYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgUmVjb3JkPHN0cmluZywgYW55PltdIH07XG4gIHRlcnJhZm9ybToge1xuICAgIHJlcXVpcmVkX3Byb3ZpZGVycz86IHtcbiAgICAgIFtuYW1lOiBzdHJpbmddOiB7IHNvdXJjZT86IHN0cmluZzsgdmVyc2lvbj86IHN0cmluZyB9O1xuICAgIH07XG4gIH07XG4gIG1vZHVsZT86IHtcbiAgICBbbmFtZTogc3RyaW5nXToge1xuICAgICAgc291cmNlOiBzdHJpbmc7XG4gICAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgICAgcHJvdmlkZXJzPzogeyBbbG9jYWxOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFByb3ZpZGVyU2NoZW1hKFxuICB0YXJnZXQ6IENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0LFxuKSB7XG4gIGNvbnN0IGNvbmZpZzogVGVycmFmb3JtQ29uZmlnID0ge1xuICAgIHByb3ZpZGVyOiB7fSxcbiAgICB0ZXJyYWZvcm06IHtcbiAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczoge30sXG4gICAgfSxcbiAgfTtcblxuICBjb25maWcucHJvdmlkZXIhW3RhcmdldC5uYW1lXSA9IHt9O1xuICBjb25maWcudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycyFbdGFyZ2V0Lm5hbWVdID0ge1xuICAgIHZlcnNpb246IHRhcmdldC52ZXJzaW9uLFxuICAgIHNvdXJjZTogdGFyZ2V0LnNvdXJjZSxcbiAgfTtcblxuICBsZXQgcHJvdmlkZXJTY2hlbWE6IFByb3ZpZGVyU2NoZW1hID0geyBmb3JtYXRfdmVyc2lvbjogXCIwLjFcIiB9O1xuXG4gIGF3YWl0IHdpdGhUZW1wRGlyKFwiZmV0Y2hQcm92aWRlclNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0ZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihvdXRkaXIsIFwibWFpbi50Zi5qc29uXCIpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG5cbiAgICBhd2FpdCB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBvdXRkaXIgfSk7XG4gICAgcHJvdmlkZXJTY2hlbWEgPSBKU09OLnBhcnNlKFxuICAgICAgYXdhaXQgZXhlYyh0ZXJyYWZvcm1CaW5hcnlOYW1lLCBbXCJwcm92aWRlcnNcIiwgXCJzY2hlbWFcIiwgXCItanNvblwiXSwge1xuICAgICAgICBjd2Q6IG91dGRpcixcbiAgICAgIH0pLFxuICAgICkgYXMgUHJvdmlkZXJTY2hlbWE7XG5cbiAgICBjb25zdCB2ZXJzaW9uU2NoZW1hID0gSlNPTi5wYXJzZShcbiAgICAgIGF3YWl0IGV4ZWModGVycmFmb3JtQmluYXJ5TmFtZSwgW1widmVyc2lvblwiLCBcIi1qc29uXCJdLCB7XG4gICAgICAgIGN3ZDogb3V0ZGlyLFxuICAgICAgfSksXG4gICAgKSBhcyBWZXJzaW9uU2NoZW1hO1xuXG4gICAgcHJvdmlkZXJTY2hlbWEucHJvdmlkZXJfdmVyc2lvbnMgPSB2ZXJzaW9uU2NoZW1hLnByb3ZpZGVyX3NlbGVjdGlvbnM7XG4gIH0pO1xuXG4gIC8vIFN0YW1wIHRoZSBmZXRjaGluZyBDTEkncyBpZGVudGl0eSBzbyBkb3duc3RyZWFtIGNvbnN1bWVycyBjYW4gcmVhc29uXG4gIC8vIGFib3V0IHdoaWNoIG5ld2VyLXByb3RvY29sIHNlY3Rpb25zIHRoaXMgZmV0Y2ggY291bGQgcG9zc2libHkgaGF2ZVxuICAvLyBlbWl0dGVkLiBOZXZlciBmYWlsIHRoZSBmZXRjaCBvdmVyIHRoaXMgLSBpdCdzIGJlc3QtZWZmb3J0IG1ldGFkYXRhLlxuICB0cnkge1xuICAgIGNvbnN0IGNsaSA9IGF3YWl0IGdldEZldGNoaW5nQ2xpVmVyc2lvbigpO1xuICAgIHByb3ZpZGVyU2NoZW1hLmNsaV9uYW1lID0gY2xpLm5hbWU7XG4gICAgcHJvdmlkZXJTY2hlbWEuY2xpX3ZlcnNpb24gPSBjbGkudmVyc2lvbjtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgQ291bGQgbm90IGRldGVybWluZSBmZXRjaGluZyBDTEkgdmVyc2lvbiB0byBzdGFtcCBwcm92aWRlciBzY2hlbWE6ICR7ZXJyb3J9YCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHNhbml0aXplUHJvdmlkZXJTY2hlbWEocHJvdmlkZXJTY2hlbWEpO1xufVxuXG4vKipcbiAqIFdhcm5zIHdoZW4gdGhlIENMSSB0aGF0IHByb2R1Y2VkIGEgZ2l2ZW4gcHJvdmlkZXIgc2NoZW1hIHByZWRhdGVzIG9uZSBvclxuICogbW9yZSBzY2hlbWEtZW1pc3Npb24gYm91bmRhcmllcyB0aGUgcHJvamVjdCdzIGRlY2xhcmVkIGB0YXJnZXRWZXJzaW9uc2BcbiAqIGNhcmUgYWJvdXQgKHNlZSBlbWlzc2lvbi1jaGVjay50cykgLSBpLmUuIHNvbWUgbmV3ZXItcHJvdG9jb2wgc2VjdGlvbnNcbiAqIChmdW5jdGlvbnMsIGVwaGVtZXJhbCByZXNvdXJjZXMsIC4uLikgbWF5IGJlIG1pc3NpbmcgZnJvbSB0aGUgZ2VuZXJhdGVkXG4gKiBiaW5kaW5ncyBldmVuIHRob3VnaCB0aGUgc2NoZW1hIGZldGNoIGl0c2VsZiBzdWNjZWVkZWQuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGRlY291cGxlZCBmcm9tIHRoZSBmZXRjaCBwYXRoIChyZWFkUHJvdmlkZXJTY2hlbWEpIHNvIGl0XG4gKiBhbHNvIHJ1bnMgZm9yIHNjaGVtYXMgc2VydmVkIGZyb20gdGhlIG9uLWRpc2sgY2FjaGU6IGNhY2hlZCBKU09OIGNhcnJpZXNcbiAqIHRoZSBzYW1lIGBjbGlfbmFtZWAvYGNsaV92ZXJzaW9uYCBzdGFtcHMgYSBmcmVzaCBmZXRjaCB3b3VsZCBoYXZlXG4gKiB3cml0dGVuICh0aGUgY2FjaGUga2V5IGFscmVhZHkgc2VnbWVudHMgYnkgQ0xJIHByb2R1Y3QrbWlub3IpLCBzbyB0aGUgZ2FwXG4gKiBjaGVjayBpcyBqdXN0IGFzIG1lYW5pbmdmdWwgb24gYSBjYWNoZSBoaXQgYXMgb24gYSBtaXNzLlxuICpcbiAqIE5vLW9wIHdpdGhvdXQgYHRhcmdldFZlcnNpb25zYCAtIHRoZXJlIGlzIG5vdGhpbmcgdG8gY29tcGFyZSB0aGUgQ0xJXG4gKiBhZ2FpbnN0LiBGYWxscyBiYWNrIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MncyBmZXRjaGluZyBDTEkgdmVyc2lvbiB3aGVuXG4gKiB0aGUgc2NoZW1hIGl0c2VsZiBpc24ndCBzdGFtcGVkIChlLmcuIG9sZGVyIGNhY2hlIGVudHJpZXMgd3JpdHRlbiBiZWZvcmVcbiAqIHN0YW1waW5nIGV4aXN0ZWQpLlxuICpcbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YXJuSWZTY2hlbWFFbWlzc2lvbkdhcHMoXG4gIHNjaGVtYTogUHJvdmlkZXJTY2hlbWEsXG4gIHRhcmdldFZlcnNpb25zPzogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCF0YXJnZXRWZXJzaW9ucykgcmV0dXJuO1xuXG4gIGxldCBjbGk6IFRlcnJhZm9ybUNsaVZlcnNpb247XG4gIGlmIChzY2hlbWEuY2xpX25hbWUgJiYgc2NoZW1hLmNsaV92ZXJzaW9uKSB7XG4gICAgaWYgKHNjaGVtYS5jbGlfbmFtZSAhPT0gXCJ0ZXJyYWZvcm1cIiAmJiBzY2hlbWEuY2xpX25hbWUgIT09IFwib3BlbnRvZnVcIikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjbGkgPSB7IG5hbWU6IHNjaGVtYS5jbGlfbmFtZSwgdmVyc2lvbjogc2NoZW1hLmNsaV92ZXJzaW9uIH07XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNsaSA9IGF3YWl0IGdldEZldGNoaW5nQ2xpVmVyc2lvbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgIGBDb3VsZCBub3QgZGV0ZXJtaW5lIGZldGNoaW5nIENMSSB2ZXJzaW9uIHRvIGNoZWNrIGZvciBzY2hlbWEgZW1pc3Npb24gZ2FwczogJHtlcnJvcn1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBjb25zdCBnYXBGYW1pbGllcyA9IGNoZWNrU2NoZW1hRW1pc3Npb25HYXBGYW1pbGllcyhjbGksIHRhcmdldFZlcnNpb25zKTtcbiAgaWYgKGdhcEZhbWlsaWVzLmxlbmd0aCA+IDAgJiYgY2xpLnZlcnNpb24pIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgIGBwcm92aWRlciBzY2hlbWEgZmV0Y2hlZCB3aXRoICR7Y2xpLm5hbWV9ICR7Y2xpLnZlcnNpb259IOKAlCAke2pvaW5XaXRoQW5kKFxuICAgICAgICBnYXBGYW1pbGllcy5tYXAoKGZhbWlseSkgPT4gU0NIRU1BX0VNSVNTSU9OX0ZBTUlMWV9MQUJFTFNbZmFtaWx5XSksXG4gICAgICApfSB3aWxsIG5vdCBiZSBnZW5lcmF0ZWQ7IHJ1biBjZGt0biBnZXQgd2l0aCAke3N1Z2dlc3RlZEVtaXR0aW5nQ2xpVmVyc2lvbnMoXG4gICAgICAgIGdhcEZhbWlsaWVzLFxuICAgICAgKX1gLFxuICAgICk7XG4gIH1cbn1cblxuLy8gVGhlIHByb3ZpZGVycyBoYXZlIHNvbWUgcG90ZW50aWFsIGJ1Z3MgdGhhdCB3ZSB3YW50IHRvIHByby1hY3RpdmVseVxuLy8gZml4IGhlcmUgc28gdGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSBjYW4gYXNzdW1lIGEgY29uc2lzdGVudCBzY2hlbWEuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVQcm92aWRlclNjaGVtYShzY2hlbWE6IFByb3ZpZGVyU2NoZW1hKTogUHJvdmlkZXJTY2hlbWEge1xuICAvLyBNYWlubHkgc29tZSBhdHRyaWJ1dGVzIGFyZSBcImRvdWJsZWRcIiwgZS5nLiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXVxuICAvLyBpbnN0ZWFkIG9mIFtcImxpc3RcIiwgXCJzdHJpbmdcIl1cbiAgZnVuY3Rpb24gYXR0cmlidXRlRG91YmxpbmdGaXgoYXR0cmlidXRlOiBBdHRyaWJ1dGUpOiBBdHRyaWJ1dGUge1xuICAgIGlmIChpc05lc3RlZFR5cGVBdHRyaWJ1dGUoYXR0cmlidXRlKSB8fCAhQXJyYXkuaXNBcnJheShhdHRyaWJ1dGUudHlwZSkpIHtcbiAgICAgIHJldHVybiBhdHRyaWJ1dGU7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9XG4gICAgICBhdHRyaWJ1dGUudHlwZS5sZW5ndGggPT09IDJcbiAgICAgICAgPyBhdHRyaWJ1dGUudHlwZVxuICAgICAgICA6IChhdHRyaWJ1dGUudHlwZSBhcyBzdHJpbmdbXSkuc2xpY2UoMCwgMik7IC8vIFRoZSB0eXBlcyB0ZWxsIHVzIHRoaXMgY2FuJ3QgaGFwcGVuLCByZWFsaXR5IGJlZ3MgdG8gZGlmZmVyXG5cbiAgICBhdHRyaWJ1dGUudHlwZSA9IHR5cGUgYXMgQXR0cmlidXRlVHlwZTtcbiAgICByZXR1cm4gYXR0cmlidXRlO1xuICB9XG5cbiAgLy8gTXV0YXRlcyBibG9jayB3aXRoIHRoZSBmaXhcbiAgZnVuY3Rpb24gc2FuaXRpemVCbG9jayhibG9jazogQmxvY2spIHtcbiAgICBPYmplY3QudmFsdWVzKGJsb2NrLmF0dHJpYnV0ZXMgfHwge30pLmZvckVhY2goYXR0cmlidXRlRG91YmxpbmdGaXgpO1xuICAgIE9iamVjdC52YWx1ZXMoYmxvY2suYmxvY2tfdHlwZXMgfHwge30pLmZvckVhY2goKGJsb2NrVHlwZSkgPT4ge1xuICAgICAgc2FuaXRpemVCbG9jayhibG9ja1R5cGUuYmxvY2spO1xuICAgIH0pO1xuICB9XG5cbiAgT2JqZWN0LnZhbHVlcyhzY2hlbWEucHJvdmlkZXJfc2NoZW1hcyB8fCB7fSkuZm9yRWFjaCgocHJvdmlkZXIpID0+IHtcbiAgICBjb25zdCBlbnRpdGllcyA9IFtcbiAgICAgIHByb3ZpZGVyLnByb3ZpZGVyLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhwcm92aWRlci5yZXNvdXJjZV9zY2hlbWFzIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC52YWx1ZXMocHJvdmlkZXIuZGF0YV9zb3VyY2Vfc2NoZW1hcyB8fCB7fSksXG4gICAgICAuLi5PYmplY3QudmFsdWVzKHByb3ZpZGVyLmVwaGVtZXJhbF9yZXNvdXJjZV9zY2hlbWFzIHx8IHt9KSxcbiAgICBdO1xuXG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5KSA9PiB7XG4gICAgICBzYW5pdGl6ZUJsb2NrKGVudGl0eS5ibG9jayk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBzY2hlbWE7XG59XG5cbi8qKlxuICogQSBwcm92aWRlciBjb25maWd1cmF0aW9uIHRoYXQgYSBtb2R1bGUgZXhwZWN0cyB0byBiZSBoYW5kZWQgYnkgaXRzIGNhbGxlcixcbiAqIGRlY2xhcmVkIGFzIGBjb25maWd1cmF0aW9uX2FsaWFzZXNgIGluIHRoZSBtb2R1bGUncyBgcmVxdWlyZWRfcHJvdmlkZXJzYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVQcm92aWRlckFsaWFzIHtcbiAgLyoqIGxvY2FsIG5hbWUgdGhlIG1vZHVsZSBrbm93cyB0aGUgcHJvdmlkZXIgYnksIGUuZy4gYGF3c2AgKi9cbiAgbG9jYWxOYW1lOiBzdHJpbmc7XG4gIC8qKiBhbGlhcyBwYXJ0IG9mIHRoZSByZWZlcmVuY2UsIGUuZy4gYGdsb2JhbF9yZWdpb25gICovXG4gIGFsaWFzOiBzdHJpbmc7XG4gIC8qKiBwcm92aWRlciBzb3VyY2UgdGhlIG1vZHVsZSBkZWNsYXJlZCBmb3IgYGxvY2FsTmFtZWAsIGlmIGl0IGRlY2xhcmVkIG9uZSAqL1xuICBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbmNvbnN0IENPTkZJR1VSQVRJT05fQUxJQVMgPSAvXihbXFx3LV0rKVxcLihbXFx3LV0rKSQvO1xuXG4vLyBoY2wyanNvbiBoYW5kcyBIQ0wgZXhwcmVzc2lvbnMgYmFjayBhcyBpbnRlcnBvbGF0aW9ucywgc28gYVxuLy8gYGNvbmZpZ3VyYXRpb25fYWxpYXNlcyA9IFthd3MuZ2xvYmFsX3JlZ2lvbl1gIGVudHJ5IGFycml2ZXMgYXMgdGhlIHN0cmluZ1xuLy8gXCIke2F3cy5nbG9iYWxfcmVnaW9ufVwiLiBBIC50Zi5qc29uIG1vZHVsZSB3cml0ZXMgdGhlIHNhbWUgcmVmZXJlbmNlIGFzIGFcbi8vIHBsYWluIHN0cmluZywgd2hpY2ggaGNsMmpzb24gcGFzc2VzIHRocm91Z2ggdW50b3VjaGVkLlxuY29uc3QgdW53cmFwSW50ZXJwb2xhdGlvbiA9ICh2YWx1ZTogc3RyaW5nKSA9PlxuICB2YWx1ZS5zdGFydHNXaXRoKFwiJHtcIikgJiYgdmFsdWUuZW5kc1dpdGgoXCJ9XCIpID8gdmFsdWUuc2xpY2UoMiwgLTEpIDogdmFsdWU7XG5cbmNvbnN0IHRvQXJyYXkgPSA8VD4oaXRlbTogVCB8IFRbXSB8IHVuZGVmaW5lZCB8IG51bGwpOiBUW10gPT4ge1xuICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkIHx8IGl0ZW0gPT09IG51bGwpIHJldHVybiBbXTtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtIDogW2l0ZW1dO1xufTtcblxuLyoqXG4gKiBFdmVyeSBvY2N1cnJlbmNlIG9mIGEgYmxvY2sgdGhhdCBoY2wyanNvbiBwcm9kdWNlZCB1bmRlciBvbmUga2V5LlxuICpcbiAqIEhDTCBibG9ja3MgY29tZSBiYWNrIGFzIGFuIGFycmF5IHdpdGggYW4gZW50cnkgcGVyIG9jY3VycmVuY2UsIGEgLnRmLmpzb25cbiAqIGJsb2NrIGFzIGEgcGxhaW4gb2JqZWN0LiBBIG1vZHVsZSBtaXhpbmcgYm90aCBzeW50YXhlcyBnZXRzIGEgdGhpcmQgc2hhcGU6XG4gKiBoY2wyanNvbiBtZXJnZXMgdGhlIEpTT04gZmlsZSBpbnRvIHRoZSBwYXJzZWQgSENMLCBhbmQgaXRzIGRlZXBNZXJnZVxuICogcmVjdXJzZXMgaW50byB0aGUgSENMIGFycmF5IGluc3RlYWQgb2YgYXBwZW5kaW5nIHRvIGl0LCBsZWF2aW5nIHRoZSBKU09OXG4gKiBjb250cmlidXRpb24gaGFuZ2luZyBvZmYgdGhlIGFycmF5IGFzIG5hbWVkIHByb3BlcnRpZXMuIFRob3NlIHByb3BlcnRpZXNcbiAqIGFyZSBhbiBvY2N1cnJlbmNlIG9mIHRoZWlyIG93biAtIGFuZCBvbmUgdGhhdCBuZWl0aGVyIGl0ZXJhdGluZyB0aGUgYXJyYXlcbiAqIG5vciBKU09OLnN0cmluZ2lmeSB3b3VsZCBldmVyIHNob3cuXG4gKi9cbmNvbnN0IGJsb2NrT2NjdXJyZW5jZXMgPSAoYmxvY2s6IGFueSk6IGFueVtdID0+IHtcbiAgaWYgKGJsb2NrID09PSB1bmRlZmluZWQgfHwgYmxvY2sgPT09IG51bGwpIHJldHVybiBbXTtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGJsb2NrKSkgcmV0dXJuIFtibG9ja107XG5cbiAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKGJsb2NrKS5maWx0ZXIoKFtrZXldKSA9PiAhL15cXGQrJC8udGVzdChrZXkpKSxcbiAgKTtcblxuICByZXR1cm4gT2JqZWN0LmtleXMobWVyZ2VkKS5sZW5ndGggPiAwID8gWy4uLmJsb2NrLCBtZXJnZWRdIDogWy4uLmJsb2NrXTtcbn07XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGEgbW9kdWxlIHJlcXVpcmVzIGl0cyBjYWxsZXIgdG8gcGFzc1xuICogaW4sIGZyb20gdGhlIGhjbDJqc29uIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2R1bGUncyBkaXJlY3RvcnkuXG4gKlxuICogQSBtb2R1bGUgbWF5IGRlY2xhcmUgYHJlcXVpcmVkX3Byb3ZpZGVyc2AgaW4gbW9yZSB0aGFuIG9uZSBgdGVycmFmb3JtYFxuICogYmxvY2ssIGFuZCBtYXkgc3ByZWFkIHRoZW0gYWNyb3NzIC50ZiBhbmQgLnRmLmpzb24gZmlsZXM7IGV2ZXJ5IG9jY3VycmVuY2VcbiAqIGhjbDJqc29uIHJlcG9ydHMgaXMgY29uc2lkZXJlZCAoc2VlIHtAbGluayBibG9ja09jY3VycmVuY2VzfSkuXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMoXG4gIHBhcnNlZE1vZHVsZTogYW55LFxuKTogTW9kdWxlUHJvdmlkZXJBbGlhc1tdIHtcbiAgY29uc3QgYWxpYXNlczogTW9kdWxlUHJvdmlkZXJBbGlhc1tdID0gW107XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IHRlcnJhZm9ybUJsb2NrIG9mIGJsb2NrT2NjdXJyZW5jZXMocGFyc2VkTW9kdWxlPy50ZXJyYWZvcm0pKSB7XG4gICAgZm9yIChjb25zdCByZXF1aXJlZFByb3ZpZGVycyBvZiBibG9ja09jY3VycmVuY2VzKFxuICAgICAgdGVycmFmb3JtQmxvY2s/LnJlcXVpcmVkX3Byb3ZpZGVycyxcbiAgICApKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIE9iamVjdC52YWx1ZXMocmVxdWlyZWRQcm92aWRlcnMgfHwge30pKSB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdW53cmFwSWZBcnJheShkZWNsYXJhdGlvbiBhcyBhbnkpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdG9BcnJheShwcm92aWRlcj8uY29uZmlndXJhdGlvbl9hbGlhc2VzKSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gQ09ORklHVVJBVElPTl9BTElBUy5leGVjKFxuICAgICAgICAgICAgdW53cmFwSW50ZXJwb2xhdGlvbihTdHJpbmcoZW50cnkpKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICghbWF0Y2gpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgY29uc3QgWywgbG9jYWxOYW1lLCBhbGlhc10gPSBtYXRjaDtcbiAgICAgICAgICBjb25zdCBrZXkgPSBgJHtsb2NhbE5hbWV9LiR7YWxpYXN9YDtcbiAgICAgICAgICBpZiAoc2Vlbi5oYXMoa2V5KSkgY29udGludWU7XG4gICAgICAgICAgc2Vlbi5hZGQoa2V5KTtcblxuICAgICAgICAgIGFsaWFzZXMucHVzaCh7IGxvY2FsTmFtZSwgYWxpYXMsIHNvdXJjZTogcHJvdmlkZXI/LnNvdXJjZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhbGlhc2VzO1xufVxuXG4vKipcbiAqIERlY2xhcmVzIHRoZSBwcm92aWRlciBjb25maWd1cmF0aW9ucyB0aGF0IGBhbGlhc2VzYCBuYW1lcyBvbiB0aGUgc3ludGhldGljXG4gKiByb290IGNvbmZpZyBhbmQgcGFzc2VzIHRoZW0gaW50byB0aGUgbW9kdWxlIGNhbGwsIHdoaWNoIGlzIHdoYXQgVGVycmFmb3JtXG4gKiBkZW1hbmRzIG9mIGFueW9uZSBjYWxsaW5nIGEgbW9kdWxlIHdpdGggYGNvbmZpZ3VyYXRpb25fYWxpYXNlc2AuXG4gKlxuICogVGhlIGFsaWFzIGJsb2NrcyBzdGF5IGVtcHR5OiBgdGVycmFmb3JtIGdldGAgb25seSBidWlsZHMgdGhlIGNvbmZpZ3VyYXRpb25cbiAqIHRyZWUsIGl0IG5ldmVyIGNvbmZpZ3VyZXMgb3IgaW5zdGFsbHMgYSBwcm92aWRlci4gU291cmNlcyBhcmUgbWlycm9yZWQgZnJvbVxuICogdGhlIG1vZHVsZSdzIG93biBgcmVxdWlyZWRfcHJvdmlkZXJzYCBzbyBhIG1vZHVsZSByZWZlcnJpbmcgdG8sIHNheSxcbiAqIGhhc2hpY29ycC9hd3MgdW5kZXIgYSBub24tZGVmYXVsdCBsb2NhbCBuYW1lIHN0aWxsIHJlc29sdmVzIHRvIHRoZSBzYW1lXG4gKiBwcm92aWRlciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXMoXG4gIGNvbmZpZzogVGVycmFmb3JtQ29uZmlnLFxuICBtb2R1bGVLZXk6IHN0cmluZyxcbiAgYWxpYXNlczogTW9kdWxlUHJvdmlkZXJBbGlhc1tdLFxuKTogVGVycmFmb3JtQ29uZmlnIHtcbiAgY29uc3QgbW9kdWxlQ2FsbCA9IGNvbmZpZy5tb2R1bGU/Llttb2R1bGVLZXldO1xuICBpZiAoIW1vZHVsZUNhbGwgfHwgYWxpYXNlcy5sZW5ndGggPT09IDApIHJldHVybiBjb25maWc7XG5cbiAgZm9yIChjb25zdCB7IGxvY2FsTmFtZSwgYWxpYXMsIHNvdXJjZSB9IG9mIGFsaWFzZXMpIHtcbiAgICBpZiAoc291cmNlKSB7XG4gICAgICBjb25maWcudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycyA9IHtcbiAgICAgICAgLi4uY29uZmlnLnRlcnJhZm9ybS5yZXF1aXJlZF9wcm92aWRlcnMsXG4gICAgICAgIFtsb2NhbE5hbWVdOiB7IHNvdXJjZSB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25maWcucHJvdmlkZXIgPSBjb25maWcucHJvdmlkZXIgfHwge307XG4gICAgY29uc3QgYmxvY2tzID0gdG9BcnJheShjb25maWcucHJvdmlkZXJbbG9jYWxOYW1lXSk7XG4gICAgaWYgKCFibG9ja3Muc29tZSgoYmxvY2spID0+IGJsb2NrLmFsaWFzID09PSBhbGlhcykpIHtcbiAgICAgIGJsb2Nrcy5wdXNoKHsgYWxpYXMgfSk7XG4gICAgfVxuICAgIGNvbmZpZy5wcm92aWRlcltsb2NhbE5hbWVdID0gYmxvY2tzO1xuXG4gICAgbW9kdWxlQ2FsbC5wcm92aWRlcnMgPSB7XG4gICAgICAuLi5tb2R1bGVDYWxsLnByb3ZpZGVycyxcbiAgICAgIFtgJHtsb2NhbE5hbWV9LiR7YWxpYXN9YF06IGAke2xvY2FsTmFtZX0uJHthbGlhc31gLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufVxuXG4vKipcbiAqIFRoZSBgLy9zdWJkaXJgIHBvcnRpb24gb2YgYSBtb2R1bGUgc291cmNlLCBpZiBpdCBoYXMgb25lLCBtaXJyb3JpbmcgaG93XG4gKiBUZXJyYWZvcm0gdW5wYWNrcyBhIHBhY2thZ2UgaW50byBgLnRlcnJhZm9ybS9tb2R1bGVzLzxrZXk+LzxzdWJkaXI+YC5cbiAqXG4gKiBAaW50ZXJuYWwgZXhwb3NlZCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZVN1YmRpcihzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IFt3aXRob3V0UXVlcnldID0gc291cmNlLnNwbGl0KFwiP1wiKTtcbiAgY29uc3Qgd2l0aG91dEdldHRlclByZWZpeCA9IHdpdGhvdXRRdWVyeS5yZXBsYWNlKC9eW0EtWmEtejAtOV0rOjovLCBcIlwiKTtcbiAgY29uc3Qgd2l0aG91dFNjaGVtZSA9IHdpdGhvdXRHZXR0ZXJQcmVmaXgucmVwbGFjZShcbiAgICAvXltBLVphLXpdW0EtWmEtejAtOSsuLV0qOlxcL1xcLysvLFxuICAgIFwiXCIsXG4gICk7XG5cbiAgY29uc3QgWywgLi4ucmVzdF0gPSB3aXRob3V0U2NoZW1lLnNwbGl0KFwiLy9cIik7XG4gIGNvbnN0IHN1YmRpciA9IHJlc3Quam9pbihcIi8vXCIpLnJlcGxhY2UoL15cXC8rfFxcLyskL2csIFwiXCIpO1xuICByZXR1cm4gc3ViZGlyIHx8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBXaGVyZSB0aGUgbW9kdWxlIFRlcnJhZm9ybSBqdXN0IGZldGNoZWQgZW5kZWQgdXAgb24gZGlzay5cbiAqXG4gKiBUaGUgbWFuaWZlc3QgaXMgdGhlIGF1dGhvcml0eSwgYnV0IGEgYHRlcnJhZm9ybSBnZXRgIHRoYXQgaW5zdGFsbGVkIHRoZVxuICogbW9kdWxlIGFuZCB0aGVuIGZhaWxlZCB0byB2YWxpZGF0ZSB0aGUgY29uZmlndXJhdGlvbiBhcm91bmQgaXQgbGVhdmVzIG5vXG4gKiBtYW5pZmVzdCBiZWhpbmQgLSBzbyBmYWxsIGJhY2sgdG8gdGhlIGxvY2F0aW9ucyBUZXJyYWZvcm0gaW5zdGFsbHMgaW50bzpcbiAqIGxvY2FsIG1vZHVsZXMgYXJlIHJlYWQgd2hlcmUgdGhleSBhcmUsIHJlbW90ZSBwYWNrYWdlcyBhcmUgdW5wYWNrZWQgaW50b1xuICogYC50ZXJyYWZvcm0vbW9kdWxlcy88a2V5PmAuXG4gKlxuICogQGludGVybmFsIGV4cG9zZWQgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZldGNoZWRNb2R1bGVEaXIoXG4gIHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyxcbiAgbW9kdWxlS2V5OiBzdHJpbmcsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBsb2NhbFNvdXJjZUFic29sdXRlUGF0aD86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihcbiAgICB3b3JraW5nRGlyZWN0b3J5LFxuICAgIFwiLnRlcnJhZm9ybVwiLFxuICAgIFwibW9kdWxlc1wiLFxuICAgIFwibW9kdWxlcy5qc29uXCIsXG4gICk7XG5cbiAgaWYgKGZzLmV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSkge1xuICAgIGNvbnN0IG1vZHVsZUluZGV4ID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgsIFwidXRmLThcIiksXG4gICAgKSBhcyBNb2R1bGVJbmRleDtcbiAgICBjb25zdCByZWNvcmQgPSBtb2R1bGVJbmRleC5Nb2R1bGVzLmZpbmQoKG1vZCkgPT4gbW9kLktleSA9PT0gbW9kdWxlS2V5KTtcblxuICAgIGlmIChyZWNvcmQpIHtcbiAgICAgIHJldHVybiBwYXRoLnJlc29sdmUod29ya2luZ0RpcmVjdG9yeSwgcmVjb3JkLkRpcik7XG4gICAgfVxuICB9XG5cbiAgaWYgKGxvY2FsU291cmNlQWJzb2x1dGVQYXRoKSB7XG4gICAgcmV0dXJuIGxvY2FsU291cmNlQWJzb2x1dGVQYXRoO1xuICB9XG5cbiAgcmV0dXJuIHBhdGguam9pbihcbiAgICB3b3JraW5nRGlyZWN0b3J5LFxuICAgIFwiLnRlcnJhZm9ybVwiLFxuICAgIFwibW9kdWxlc1wiLFxuICAgIG1vZHVsZUtleSxcbiAgICBwYWNrYWdlU3ViZGlyKHNvdXJjZSkgfHwgXCJcIixcbiAgKTtcbn1cblxuLyoqXG4gKiBSdW5zIGB0ZXJyYWZvcm0gZ2V0YCBhbmQgaGFuZHMgdGhlIGZhaWx1cmUgYmFjayBpbnN0ZWFkIG9mIHRocm93aW5nIGl0LlxuICpcbiAqIEl0cyBkaWFnbm9zdGljcyBhcmUgbm90IGZpbmFsIChzZWUge0BsaW5rIHJlYWRNb2R1bGVTY2hlbWF9KSwgc28gdGhleSBnbyB0b1xuICogdGhlIGRlYnVnIGxvZyByYXRoZXIgdGhhbiB0aGUgdGVybWluYWw7IHRoZSByZXR1cm5lZCBlcnJvciBzdGlsbCBjYXJyaWVzXG4gKiB0aGVtIG9uIGl0cyBgc3RkZXJyYCBmb3IgY2FsbGVycyB0aGF0IGVuZCB1cCByZXRocm93aW5nIGl0LlxuICovXG5hc3luYyBmdW5jdGlvbiB0cnlUZXJyYWZvcm1HZXQob3V0ZGlyOiBzdHJpbmcpOiBQcm9taXNlPEVycm9yIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlYyhcbiAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICBbXCJnZXRcIl0sXG4gICAgICB7IGN3ZDogb3V0ZGlyLCBsb2dTdGRlcnJBc0RlYnVnOiB0cnVlIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBmYWxzZSxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRNb2R1bGVTY2hlbWEodGFyZ2V0OiBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQpIHtcbiAgbGV0IG1vZHVsZVNjaGVtYTogUmVjb3JkPHN0cmluZywgTW9kdWxlU2NoZW1hPiA9IHt9O1xuXG4gIGF3YWl0IHdpdGhUZW1wRGlyKFwiZmV0Y2hTY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZzogVGVycmFmb3JtQ29uZmlnID0ge1xuICAgICAgdGVycmFmb3JtOiB7fSxcbiAgICB9O1xuXG4gICAgaWYgKCFjb25maWcubW9kdWxlKSBjb25maWcubW9kdWxlID0ge307XG4gICAgbGV0IHNvdXJjZTogc3RyaW5nID0gdGFyZ2V0LnNvdXJjZTtcblxuICAgIGNvbnN0IGxvY2FsU291cmNlID0gKHRhcmdldC5jb25zdHJhaW50IGFzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQpXG4gICAgICAubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGg7XG4gICAgaWYgKGxvY2FsU291cmNlKSB7XG4gICAgICAvLyBjcmVhdGUgcmVsYXRpdmUgcGF0aCB0byBtb2R1bGUgaW4gdGhlIHVzZXIgcHJvamVjdFxuICAgICAgc291cmNlID0gcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBsb2NhbFNvdXJjZSk7XG4gICAgfVxuXG4gICAgY29uZmlnLm1vZHVsZVt0YXJnZXQubW9kdWxlS2V5XSA9IHsgc291cmNlOiBzb3VyY2UgfTtcbiAgICBpZiAodGFyZ2V0LnZlcnNpb24pIHtcbiAgICAgIGNvbmZpZy5tb2R1bGVbdGFyZ2V0Lm1vZHVsZUtleV1bXCJ2ZXJzaW9uXCJdID0gdGFyZ2V0LnZlcnNpb247XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihvdXRkaXIsIFwibWFpbi50Zi5qc29uXCIpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG5cbiAgICAvLyBgdGVycmFmb3JtIGdldGAgaXMgYm90aCBvdXIgZG93bmxvYWRlciBhbmQgYSBmdWxsIHZhbGlkYXRpb24gb2YgdGhlXG4gICAgLy8gc3ludGhldGljIHJvb3QgY29uZmlnIHdyYXBwZWQgYXJvdW5kIHRoZSBtb2R1bGUuIEEgbW9kdWxlIGRlY2xhcmluZ1xuICAgIC8vIGBjb25maWd1cmF0aW9uX2FsaWFzZXNgIGNhbm5vdCB2YWxpZGF0ZSB1bnRpbCB0aGUgcm9vdCBwYXNzZXMgdGhvc2VcbiAgICAvLyBjb25maWd1cmF0aW9ucyBpbiwgYW5kIHRoZWlyIG5hbWVzIGFyZSBvbmx5IGtub3dhYmxlIG9uY2UgdGhlIG1vZHVsZSBpc1xuICAgIC8vIG9uIGRpc2sgLSBzbyB0aGlzIGZpcnN0IHJ1biBpcyBhIGZldGNoIHdlIGRlZmVyIGp1ZGdlbWVudCBvbi4gVGVycmFmb3JtXG4gICAgLy8gaW5zdGFsbHMgdGhlIG1vZHVsZSBlaXRoZXIgd2F5OyBzaW5jZSAxLjE1IGl0IGp1c3Qgc3RvcHMgc2hvcnQgb2ZcbiAgICAvLyB3cml0aW5nIHRoZSBtb2R1bGUgbWFuaWZlc3Qgd2hlbiB2YWxpZGF0aW9uIGZhaWxzICh0ZXJyYWZvcm0jMzgyMTdcbiAgICAvLyBkcm9wcGVkIHRoZSBlcnJvci10by13YXJuaW5nIGRvd25ncmFkZSB0aGF0IGB0ZXJyYWZvcm0gZ2V0YCB1c2VkIHRvXG4gICAgLy8gYXBwbHkpLCB3aGljaCBpcyB3aGF0IHRoZSBzZWNvbmQgcnVuIGJlbG93IHJlc3RvcmVzLlxuICAgIGNvbnN0IGZldGNoRXJyb3IgPSBhd2FpdCB0cnlUZXJyYWZvcm1HZXQob3V0ZGlyKTtcblxuICAgIGNvbnN0IG1vZHVsZURpciA9IGZldGNoZWRNb2R1bGVEaXIoXG4gICAgICBvdXRkaXIsXG4gICAgICB0YXJnZXQubW9kdWxlS2V5LFxuICAgICAgc291cmNlLFxuICAgICAgbG9jYWxTb3VyY2UsXG4gICAgKTtcbiAgICBjb25zdCBhbGlhc2VzID0gZnMuZXhpc3RzU3luYyhtb2R1bGVEaXIpXG4gICAgICA/IGNvbGxlY3RNb2R1bGVQcm92aWRlckFsaWFzZXMoYXdhaXQgY29udmVydEZpbGVzKG1vZHVsZURpcikpXG4gICAgICA6IFtdO1xuXG4gICAgaWYgKGFsaWFzZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXBwbHlNb2R1bGVQcm92aWRlckFsaWFzZXMoY29uZmlnLCB0YXJnZXQubW9kdWxlS2V5LCBhbGlhc2VzKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG4gICAgICBhd2FpdCBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcImdldFwiXSwgeyBjd2Q6IG91dGRpciB9KTtcbiAgICB9IGVsc2UgaWYgKGZldGNoRXJyb3IpIHtcbiAgICAgIC8vIG5vdGhpbmcgaGVyZSB3YXMgc2FsdmFnZWFibGUgYWZ0ZXIgYWxsLCBzbyByZXBvcnQgdGhlIGRpYWdub3N0aWNzIHRoYXRcbiAgICAgIC8vIHdlcmUgaGVsZCBiYWNrIHdoaWxlIHRoZSBmZXRjaCBzdGlsbCBoYWQgYSBzZWNvbmQgY2hhbmNlXG4gICAgICBsb2dnZXIuZXJyb3IoKGZldGNoRXJyb3IgYXMgYW55KS5zdGRlcnIgfHwgU3RyaW5nKGZldGNoRXJyb3IpKTtcbiAgICAgIHRocm93IGZldGNoRXJyb3I7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5tb2R1bGUpIHtcbiAgICAgIG1vZHVsZVNjaGVtYSA9IGF3YWl0IGhhcnZlc3RNb2R1bGVTY2hlbWEoXG4gICAgICAgIG91dGRpcixcbiAgICAgICAgT2JqZWN0LmtleXMoY29uZmlnLm1vZHVsZSksXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG1vZHVsZVNjaGVtYTtcbn1cbiJdfQ==
package/build/read.js CHANGED
@@ -7,7 +7,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.readSchema = exports.isLocalModule = exports.TerraformProviderConstraint = exports.TerraformModuleConstraint = exports.isRegistryModule = void 0;
10
+ exports.isLocalModule = exports.TerraformProviderConstraint = exports.TerraformModuleConstraint = exports.isRegistryModule = void 0;
11
+ exports.readSchema = readSchema;
11
12
  var commons_1 = require("@cdktn/commons");
12
13
  Object.defineProperty(exports, "isRegistryModule", { enumerable: true, get: function () { return commons_1.isRegistryModule; } });
13
14
  Object.defineProperty(exports, "TerraformModuleConstraint", { enumerable: true, get: function () { return commons_1.TerraformModuleConstraint; } });
@@ -60,7 +61,6 @@ async function readSchema(constraints, cacheDir, targetVersions) {
60
61
  });
61
62
  return deepmerge_1.default.all(schemas);
62
63
  }
63
- exports.readSchema = readSchema;
64
64
  function throwIfTargetsConflict(targets) {
65
65
  const modules = targets.filter((t) => t.isModule);
66
66
  modules.forEach((moduleA) => {
@@ -71,4 +71,4 @@ function throwIfTargetsConflict(targets) {
71
71
  });
72
72
  });
73
73
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7OztBQUVILDBDQUt3QjtBQUp0QiwyR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQixvSEFBQSx5QkFBeUIsT0FBQTtBQUN6QixzSEFBQSwyQkFBMkIsT0FBQTtBQUMzQix3R0FBQSxhQUFhLE9BQUE7QUFFZiw0Q0FRd0I7QUFDeEIsMERBQWtDO0FBQ2xDLHVEQUsyQjtBQUMzQixtQ0FBdUM7QUFPdkMsMkVBQTJFO0FBQzNFLHNFQUFzRTtBQUN0RSxLQUFLLFVBQVUscUJBQXFCLENBQ2xDLFFBQWlCO0lBRWpCLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFaEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLHVDQUFxQixHQUFFLENBQUM7UUFDMUMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxnQkFBTSxDQUFDLEtBQUssQ0FDVix1R0FBdUcsQ0FDeEcsQ0FBQztZQUNGLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLGdCQUFNLENBQUMsS0FBSyxDQUNWLHNFQUFzRSxLQUFLLEVBQUUsQ0FDOUUsQ0FBQztRQUNGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsV0FBNEMsRUFDNUMsUUFBaUIsRUFDakIsY0FBd0M7SUFFeEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxNQUFNLHdCQUF3QixHQUFHLElBQUEsb0JBQVksRUFDM0Msb0NBQWtCLEVBQ2xCLFFBQVEsRUFDUixTQUFTLENBQ1YsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUM3Qyx1Q0FBNkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztJQUVGLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2hCLENBQUMsQ0FBQyxRQUFRO1FBQ1IsQ0FBQyxDQUFDLElBQUEsa0NBQWdCLEVBQUMsQ0FBUSxDQUFDLENBQUMsSUFBSSxDQUM3QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBVyxDQUN2QztRQUNILENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xELCtEQUErRDtZQUMvRCw0REFBNEQ7WUFDNUQsOERBQThEO1lBQzlELHNCQUFzQjtZQUN0QixNQUFNLElBQUEsMENBQXdCLEVBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFZLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ1AsQ0FDRixDQUFDO0lBRUYsK0NBQStDO0lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDZCxjQUFjLEVBQUU7WUFDZCxjQUFjLEVBQUUsS0FBSztTQUN0QjtRQUNELFlBQVksRUFBRSxFQUFFO0tBQ2pCLENBQUMsQ0FBQztJQUVILE9BQU8sbUJBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQTNDRCxnQ0EyQ0M7QUFFRCxTQUFTLHNCQUFzQixDQUM3QixPQUF3RTtJQUV4RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDZSxDQUFDO0lBRW5DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN6RCxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQix5Q0FBeUMsT0FBTyxDQUFDLElBQUksNE1BQTRNLENBQ2xRLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmV4cG9ydCB7XG4gIGlzUmVnaXN0cnlNb2R1bGUsXG4gIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCxcbiAgaXNMb2NhbE1vZHVsZSxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCxcbiAgTEFOR1VBR0VTLFxuICBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0LFxuICBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbiAgRXJyb3JzLFxuICBsb2dnZXIsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IGRlZXBtZXJnZSBmcm9tIFwiZGVlcG1lcmdlXCI7XG5pbXBvcnQge1xuICBnZXRGZXRjaGluZ0NsaVZlcnNpb24sXG4gIHJlYWRNb2R1bGVTY2hlbWEsXG4gIHJlYWRQcm92aWRlclNjaGVtYSxcbiAgd2FybklmU2NoZW1hRW1pc3Npb25HYXBzLFxufSBmcm9tIFwiLi9wcm92aWRlci1zY2hlbWFcIjtcbmltcG9ydCB7IGNhY2hlZEFjY2VzcyB9IGZyb20gXCIuL2NhY2hlXCI7XG5cbmV4cG9ydCB0eXBlIFNjaGVtYSA9IHtcbiAgcHJvdmlkZXJTY2hlbWE/OiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHJlYWRQcm92aWRlclNjaGVtYT4+O1xuICBtb2R1bGVTY2hlbWE/OiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHJlYWRNb2R1bGVTY2hlbWE+Pjtcbn07XG5cbi8vIFNjaGVtYSBlbWlzc2lvbiBpcyBmaXhlZCBwZXIgQ0xJIHByb2R1Y3QrbWlub3IgdmVyc2lvbiwgc28gdGhhdCdzIGVub3VnaFxuLy8gZ3JhbnVsYXJpdHkgZm9yIHRoZSBjYWNoZSBrZXkgLSBubyBuZWVkIGZvciB0aGUgZnVsbCBwYXRjaCB2ZXJzaW9uLlxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNhY2hlS2V5U3VmZml4KFxuICBjYWNoZURpcj86IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmICghY2FjaGVEaXIpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjbGkgPSBhd2FpdCBnZXRGZXRjaGluZ0NsaVZlcnNpb24oKTtcbiAgICBpZiAoY2xpLm5hbWUgPT09IFwidW5rbm93blwiIHx8ICFjbGkudmVyc2lvbikge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBcIkNvdWxkIG5vdCBkZXRlcm1pbmUgZmV0Y2hpbmcgQ0xJIG5hbWUvdmVyc2lvbiBmb3IgdGhlIHNjaGVtYSBjYWNoZSBrZXksIGZhbGxpbmcgYmFjayB0byAndW5rbm93bi1jbGknXCIsXG4gICAgICApO1xuICAgICAgcmV0dXJuIFwidW5rbm93bi1jbGlcIjtcbiAgICB9XG5cbiAgICBjb25zdCBbbWFqb3IsIG1pbm9yXSA9IGNsaS52ZXJzaW9uLnNwbGl0KFwiLlwiKTtcbiAgICByZXR1cm4gYCR7Y2xpLm5hbWV9LSR7bWFqb3J9LiR7bWlub3J9YDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgQ291bGQgbm90IGRldGVybWluZSBmZXRjaGluZyBDTEkgdmVyc2lvbiBmb3IgdGhlIHNjaGVtYSBjYWNoZSBrZXk6ICR7ZXJyb3J9YCxcbiAgICApO1xuICAgIHJldHVybiBcInVua25vd24tY2xpXCI7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTY2hlbWEoXG4gIGNvbnN0cmFpbnRzOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludFtdLFxuICBjYWNoZURpcj86IHN0cmluZyxcbiAgdGFyZ2V0VmVyc2lvbnM/OiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbik6IFByb21pc2U8U2NoZW1hPiB7XG4gIGNvbnN0IGtleVN1ZmZpeCA9IGF3YWl0IHJlc29sdmVDYWNoZUtleVN1ZmZpeChjYWNoZURpcik7XG4gIGNvbnN0IGNhY2hlZFJlYWRQcm92aWRlclNjaGVtYSA9IGNhY2hlZEFjY2VzcyhcbiAgICByZWFkUHJvdmlkZXJTY2hlbWEsXG4gICAgY2FjaGVEaXIsXG4gICAga2V5U3VmZml4LFxuICApO1xuICBjb25zdCB0YXJnZXRzID0gY29uc3RyYWludHMubWFwKChjb25zdHJhaW50KSA9PlxuICAgIENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0LmZyb20oY29uc3RyYWludCwgTEFOR1VBR0VTWzBdKSxcbiAgKTtcblxuICB0aHJvd0lmVGFyZ2V0c0NvbmZsaWN0KHRhcmdldHMpO1xuXG4gIGNvbnN0IHNjaGVtYXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICB0YXJnZXRzLm1hcCgodCkgPT5cbiAgICAgIHQuaXNNb2R1bGVcbiAgICAgICAgPyByZWFkTW9kdWxlU2NoZW1hKHQgYXMgYW55KS50aGVuKFxuICAgICAgICAgICAgKHMpID0+ICh7IG1vZHVsZVNjaGVtYTogcyB9KSBhcyBTY2hlbWEsXG4gICAgICAgICAgKVxuICAgICAgICA6IGNhY2hlZFJlYWRQcm92aWRlclNjaGVtYSh0IGFzIGFueSkudGhlbihhc3luYyAocykgPT4ge1xuICAgICAgICAgICAgLy8gUnVucyBvbiBib3RoIGNhY2hlIGhpdHMgYW5kIG1pc3NlczogY2FjaGVkIHNjaGVtYXMgY2FycnkgdGhlXG4gICAgICAgICAgICAvLyBzYW1lIGNsaV9uYW1lL2NsaV92ZXJzaW9uIHN0YW1wcyBhIGZyZXNoIGZldGNoIHdvdWxkIGhhdmVcbiAgICAgICAgICAgIC8vIHdyaXR0ZW4sIHNvIHRoZSBlbWlzc2lvbi1nYXAgd2FybmluZyBpcyBqdXN0IGFzIHJlbGV2YW50IG9uXG4gICAgICAgICAgICAvLyBhIGhpdCBhcyBvbiBhIG1pc3MuXG4gICAgICAgICAgICBhd2FpdCB3YXJuSWZTY2hlbWFFbWlzc2lvbkdhcHMocywgdGFyZ2V0VmVyc2lvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcHJvdmlkZXJTY2hlbWE6IHMgfSBhcyBTY2hlbWE7XG4gICAgICAgICAgfSksXG4gICAgKSxcbiAgKTtcblxuICAvLyBlbnN1cmUgd2UgaGF2ZSBhIHNjaGVtYSBmb3IgZWFjaCB0YXJnZXQgdHlwZVxuICBzY2hlbWFzLnVuc2hpZnQoe1xuICAgIHByb3ZpZGVyU2NoZW1hOiB7XG4gICAgICBmb3JtYXRfdmVyc2lvbjogXCIwLjFcIixcbiAgICB9LFxuICAgIG1vZHVsZVNjaGVtYToge30sXG4gIH0pO1xuXG4gIHJldHVybiBkZWVwbWVyZ2UuYWxsKHNjaGVtYXMpO1xufVxuXG5mdW5jdGlvbiB0aHJvd0lmVGFyZ2V0c0NvbmZsaWN0KFxuICB0YXJnZXRzOiAoQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQgfCBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQpW10sXG4pIHtcbiAgY29uc3QgbW9kdWxlcyA9IHRhcmdldHMuZmlsdGVyKFxuICAgICh0KSA9PiB0LmlzTW9kdWxlLFxuICApIGFzIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldFtdO1xuXG4gIG1vZHVsZXMuZm9yRWFjaCgobW9kdWxlQSkgPT4ge1xuICAgIG1vZHVsZXMuZm9yRWFjaCgobW9kdWxlQikgPT4ge1xuICAgICAgaWYgKG1vZHVsZUEgIT09IG1vZHVsZUIgJiYgbW9kdWxlQS5uYW1lID09PSBtb2R1bGVCLm5hbWUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgICAgIGBGb3VuZCB0d28gbW9kdWxlcyB3aXRoIHRoZSBzYW1lIG5hbWUgXCIke21vZHVsZUEubmFtZX1cIiB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgcmVuYW1lIG9uZSBvZiB0aGUgbW9kdWxlcyBpbiB5b3VyIGNka3RmLmpzb24gY29uZmlnLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gc2V0IHRoZSBuYW1lIHJlZmVyIHRvIGh0dHBzOi8vY2RrdG4uaW8vZG9jcy9jb25jZXB0cy9tb2R1bGVzI2FkZC1tb2R1bGUtdG8tY2RrdGYtanNvbmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7OztBQXlESCxnQ0EyQ0M7QUFsR0QsMENBS3dCO0FBSnRCLDJHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLG9IQUFBLHlCQUF5QixPQUFBO0FBQ3pCLHNIQUFBLDJCQUEyQixPQUFBO0FBQzNCLHdHQUFBLGFBQWEsT0FBQTtBQUVmLDRDQVF3QjtBQUN4QiwwREFBa0M7QUFDbEMsdURBSzJCO0FBQzNCLG1DQUF1QztBQU92QywyRUFBMkU7QUFDM0Usc0VBQXNFO0FBQ3RFLEtBQUssVUFBVSxxQkFBcUIsQ0FDbEMsUUFBaUI7SUFFakIsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoQyxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsdUNBQXFCLEdBQUUsQ0FBQztRQUMxQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNDLGdCQUFNLENBQUMsS0FBSyxDQUNWLHVHQUF1RyxDQUN4RyxDQUFDO1lBQ0YsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsZ0JBQU0sQ0FBQyxLQUFLLENBQ1Ysc0VBQXNFLEtBQUssRUFBRSxDQUM5RSxDQUFDO1FBQ0YsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUM5QixXQUE0QyxFQUM1QyxRQUFpQixFQUNqQixjQUF3QztJQUV4QyxNQUFNLFNBQVMsR0FBRyxNQUFNLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sd0JBQXdCLEdBQUcsSUFBQSxvQkFBWSxFQUMzQyxvQ0FBa0IsRUFDbEIsUUFBUSxFQUNSLFNBQVMsQ0FDVixDQUFDO0lBQ0YsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQzdDLHVDQUE2QixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsbUJBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM3RCxDQUFDO0lBRUYsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDaEIsQ0FBQyxDQUFDLFFBQVE7UUFDUixDQUFDLENBQUMsSUFBQSxrQ0FBZ0IsRUFBQyxDQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFXLENBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsK0RBQStEO1lBQy9ELDREQUE0RDtZQUM1RCw4REFBOEQ7WUFDOUQsc0JBQXNCO1lBQ3RCLE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQVksQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDUCxDQUNGLENBQUM7SUFFRiwrQ0FBK0M7SUFDL0MsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNkLGNBQWMsRUFBRTtZQUNkLGNBQWMsRUFBRSxLQUFLO1NBQ3RCO1FBQ0QsWUFBWSxFQUFFLEVBQUU7S0FDakIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxtQkFBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FDN0IsT0FBd0U7SUFFeEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQ2UsQ0FBQztJQUVuQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFCLElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIseUNBQXlDLE9BQU8sQ0FBQyxJQUFJLDRNQUE0TSxDQUNsUSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5leHBvcnQge1xuICBpc1JlZ2lzdHJ5TW9kdWxlLFxuICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50LFxuICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQsXG4gIGlzTG9jYWxNb2R1bGUsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQsXG4gIExBTkdVQUdFUyxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG4gIEVycm9ycyxcbiAgbG9nZ2VyLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCBkZWVwbWVyZ2UgZnJvbSBcImRlZXBtZXJnZVwiO1xuaW1wb3J0IHtcbiAgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uLFxuICByZWFkTW9kdWxlU2NoZW1hLFxuICByZWFkUHJvdmlkZXJTY2hlbWEsXG4gIHdhcm5JZlNjaGVtYUVtaXNzaW9uR2Fwcyxcbn0gZnJvbSBcIi4vcHJvdmlkZXItc2NoZW1hXCI7XG5pbXBvcnQgeyBjYWNoZWRBY2Nlc3MgfSBmcm9tIFwiLi9jYWNoZVwiO1xuXG5leHBvcnQgdHlwZSBTY2hlbWEgPSB7XG4gIHByb3ZpZGVyU2NoZW1hPzogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiByZWFkUHJvdmlkZXJTY2hlbWE+PjtcbiAgbW9kdWxlU2NoZW1hPzogQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiByZWFkTW9kdWxlU2NoZW1hPj47XG59O1xuXG4vLyBTY2hlbWEgZW1pc3Npb24gaXMgZml4ZWQgcGVyIENMSSBwcm9kdWN0K21pbm9yIHZlcnNpb24sIHNvIHRoYXQncyBlbm91Z2hcbi8vIGdyYW51bGFyaXR5IGZvciB0aGUgY2FjaGUga2V5IC0gbm8gbmVlZCBmb3IgdGhlIGZ1bGwgcGF0Y2ggdmVyc2lvbi5cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVDYWNoZUtleVN1ZmZpeChcbiAgY2FjaGVEaXI/OiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBpZiAoIWNhY2hlRGlyKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2xpID0gYXdhaXQgZ2V0RmV0Y2hpbmdDbGlWZXJzaW9uKCk7XG4gICAgaWYgKGNsaS5uYW1lID09PSBcInVua25vd25cIiB8fCAhY2xpLnZlcnNpb24pIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgXCJDb3VsZCBub3QgZGV0ZXJtaW5lIGZldGNoaW5nIENMSSBuYW1lL3ZlcnNpb24gZm9yIHRoZSBzY2hlbWEgY2FjaGUga2V5LCBmYWxsaW5nIGJhY2sgdG8gJ3Vua25vd24tY2xpJ1wiLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBcInVua25vd24tY2xpXCI7XG4gICAgfVxuXG4gICAgY29uc3QgW21ham9yLCBtaW5vcl0gPSBjbGkudmVyc2lvbi5zcGxpdChcIi5cIik7XG4gICAgcmV0dXJuIGAke2NsaS5uYW1lfS0ke21ham9yfS4ke21pbm9yfWA7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYENvdWxkIG5vdCBkZXRlcm1pbmUgZmV0Y2hpbmcgQ0xJIHZlcnNpb24gZm9yIHRoZSBzY2hlbWEgY2FjaGUga2V5OiAke2Vycm9yfWAsXG4gICAgKTtcbiAgICByZXR1cm4gXCJ1bmtub3duLWNsaVwiO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkU2NoZW1hKFxuICBjb25zdHJhaW50czogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnRbXSxcbiAgY2FjaGVEaXI/OiBzdHJpbmcsXG4gIHRhcmdldFZlcnNpb25zPzogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG4pOiBQcm9taXNlPFNjaGVtYT4ge1xuICBjb25zdCBrZXlTdWZmaXggPSBhd2FpdCByZXNvbHZlQ2FjaGVLZXlTdWZmaXgoY2FjaGVEaXIpO1xuICBjb25zdCBjYWNoZWRSZWFkUHJvdmlkZXJTY2hlbWEgPSBjYWNoZWRBY2Nlc3MoXG4gICAgcmVhZFByb3ZpZGVyU2NoZW1hLFxuICAgIGNhY2hlRGlyLFxuICAgIGtleVN1ZmZpeCxcbiAgKTtcbiAgY29uc3QgdGFyZ2V0cyA9IGNvbnN0cmFpbnRzLm1hcCgoY29uc3RyYWludCkgPT5cbiAgICBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldC5mcm9tKGNvbnN0cmFpbnQsIExBTkdVQUdFU1swXSksXG4gICk7XG5cbiAgdGhyb3dJZlRhcmdldHNDb25mbGljdCh0YXJnZXRzKTtcblxuICBjb25zdCBzY2hlbWFzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgdGFyZ2V0cy5tYXAoKHQpID0+XG4gICAgICB0LmlzTW9kdWxlXG4gICAgICAgID8gcmVhZE1vZHVsZVNjaGVtYSh0IGFzIGFueSkudGhlbihcbiAgICAgICAgICAgIChzKSA9PiAoeyBtb2R1bGVTY2hlbWE6IHMgfSkgYXMgU2NoZW1hLFxuICAgICAgICAgIClcbiAgICAgICAgOiBjYWNoZWRSZWFkUHJvdmlkZXJTY2hlbWEodCBhcyBhbnkpLnRoZW4oYXN5bmMgKHMpID0+IHtcbiAgICAgICAgICAgIC8vIFJ1bnMgb24gYm90aCBjYWNoZSBoaXRzIGFuZCBtaXNzZXM6IGNhY2hlZCBzY2hlbWFzIGNhcnJ5IHRoZVxuICAgICAgICAgICAgLy8gc2FtZSBjbGlfbmFtZS9jbGlfdmVyc2lvbiBzdGFtcHMgYSBmcmVzaCBmZXRjaCB3b3VsZCBoYXZlXG4gICAgICAgICAgICAvLyB3cml0dGVuLCBzbyB0aGUgZW1pc3Npb24tZ2FwIHdhcm5pbmcgaXMganVzdCBhcyByZWxldmFudCBvblxuICAgICAgICAgICAgLy8gYSBoaXQgYXMgb24gYSBtaXNzLlxuICAgICAgICAgICAgYXdhaXQgd2FybklmU2NoZW1hRW1pc3Npb25HYXBzKHMsIHRhcmdldFZlcnNpb25zKTtcbiAgICAgICAgICAgIHJldHVybiB7IHByb3ZpZGVyU2NoZW1hOiBzIH0gYXMgU2NoZW1hO1xuICAgICAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgLy8gZW5zdXJlIHdlIGhhdmUgYSBzY2hlbWEgZm9yIGVhY2ggdGFyZ2V0IHR5cGVcbiAgc2NoZW1hcy51bnNoaWZ0KHtcbiAgICBwcm92aWRlclNjaGVtYToge1xuICAgICAgZm9ybWF0X3ZlcnNpb246IFwiMC4xXCIsXG4gICAgfSxcbiAgICBtb2R1bGVTY2hlbWE6IHt9LFxuICB9KTtcblxuICByZXR1cm4gZGVlcG1lcmdlLmFsbChzY2hlbWFzKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dJZlRhcmdldHNDb25mbGljdChcbiAgdGFyZ2V0czogKENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0IHwgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KVtdLFxuKSB7XG4gIGNvbnN0IG1vZHVsZXMgPSB0YXJnZXRzLmZpbHRlcihcbiAgICAodCkgPT4gdC5pc01vZHVsZSxcbiAgKSBhcyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXRbXTtcblxuICBtb2R1bGVzLmZvckVhY2goKG1vZHVsZUEpID0+IHtcbiAgICBtb2R1bGVzLmZvckVhY2goKG1vZHVsZUIpID0+IHtcbiAgICAgIGlmIChtb2R1bGVBICE9PSBtb2R1bGVCICYmIG1vZHVsZUEubmFtZSA9PT0gbW9kdWxlQi5uYW1lKSB7XG4gICAgICAgIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICAgICAgICBgRm91bmQgdHdvIG1vZHVsZXMgd2l0aCB0aGUgc2FtZSBuYW1lIFwiJHttb2R1bGVBLm5hbWV9XCIgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4gUGxlYXNlIHJlbmFtZSBvbmUgb2YgdGhlIG1vZHVsZXMgaW4geW91ciBjZGt0Zi5qc29uIGNvbmZpZy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIHNldCB0aGUgbmFtZSByZWZlciB0byBodHRwczovL2Nka3RuLmlvL2RvY3MvY29uY2VwdHMvbW9kdWxlcyNhZGQtbW9kdWxlLXRvLWNka3RmLWpzb25gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==
package/build/util.d.ts CHANGED
@@ -2,9 +2,6 @@
2
2
  * Copyright (c) HashiCorp, Inc.
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
- /// <reference types="ambient" />
6
- /// <reference types=".pnpm/@types+node@22.20.1/node_modules/@types/node/child_process" />
7
- /// <reference types=".pnpm/@types+node@18.19.130/node_modules/@types/node/child_process" />
8
5
  import { SpawnOptions } from "child_process";
9
6
  export declare function withTempDir(dirname: string, closure: () => Promise<void>): Promise<void>;
10
7
  export declare const exec: (command: string, args: string[], options: SpawnOptions, stdout?: (chunk: Buffer) => any, stderr?: (chunk: string | Uint8Array) => any) => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;AAEH,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAKpD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAa7B;AAED,eAAO,MAAM,IAAI,YACN,MAAM,QACT,MAAM,EAAE,WACL,YAAY,WACZ,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,WACtB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,KAAK,GAAG,KAC3C,QAAQ,MAAM,CAkChB,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAKpD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAa7B;AAED,eAAO,MAAM,IAAI,GACf,SAAS,MAAM,EACf,MAAM,MAAM,EAAE,EACd,SAAS,YAAY,EACrB,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,EAC/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,KAAK,GAAG,KAC3C,OAAO,CAAC,MAAM,CAkChB,CAAC"}
package/build/util.js CHANGED
@@ -19,15 +19,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
19
19
  }) : function(o, v) {
20
20
  o["default"] = v;
21
21
  });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
29
39
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.exec = exports.withTempDir = void 0;
40
+ exports.exec = void 0;
41
+ exports.withTempDir = withTempDir;
31
42
  const child_process_1 = require("child_process");
32
43
  const fs = __importStar(require("fs-extra"));
33
44
  const os = __importStar(require("os"));
@@ -46,7 +57,6 @@ async function withTempDir(dirname, closure) {
46
57
  await fs.remove(parent);
47
58
  }
48
59
  }
49
- exports.withTempDir = withTempDir;
50
60
  const exec = async (command, args, options, stdout, stderr) => {
51
61
  return new Promise((ok, ko) => {
52
62
  var _a, _b, _c, _d;
@@ -86,4 +96,4 @@ const exec = async (command, args, options, stdout, stderr) => {
86
96
  });
87
97
  };
88
98
  exports.exec = exec;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsaURBQW9EO0FBQ3BELDZDQUErQjtBQUMvQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRXRCLEtBQUssVUFBVSxXQUFXLENBQy9CLE9BQWUsRUFDZixPQUE0QjtJQUU1QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDOUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLElBQUksQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDO1lBQVMsQ0FBQztRQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDO0FBZkQsa0NBZUM7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixJQUFjLEVBQ2QsT0FBcUIsRUFDckIsTUFBK0IsRUFDL0IsTUFBNEMsRUFDM0IsRUFBRTtJQUNuQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFOztRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFBLHFCQUFLLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUF1QixDQUFDO1FBQzdDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLE1BQUEsS0FBSyxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUN6QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQUEsS0FBSyxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLE1BQUEsS0FBSyxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQTBCLEVBQUUsRUFBRTtnQkFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFBLEtBQUssQ0FBQyxNQUFNLDBDQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUEwQixFQUFFLEVBQUU7Z0JBQ3RELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxLQUFhLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQXhDVyxRQUFBLElBQUksUUF3Q2YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IHNwYXduLCBTcGF3bk9wdGlvbnMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhUZW1wRGlyKFxuICBkaXJuYW1lOiBzdHJpbmcsXG4gIGNsb3N1cmU6ICgpID0+IFByb21pc2U8dm9pZD4sXG4pIHtcbiAgY29uc3QgcHJldmRpciA9IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IHBhcmVudCA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcImNka3RmLlwiKSk7XG4gIGNvbnN0IHdvcmtkaXIgPSBwYXRoLmpvaW4ocGFyZW50LCBkaXJuYW1lKTtcbiAgYXdhaXQgZnMubWtkaXJwKHdvcmtkaXIpO1xuICB0cnkge1xuICAgIHByb2Nlc3MuY2hkaXIod29ya2Rpcik7XG4gICAgYXdhaXQgY2xvc3VyZSgpO1xuICB9IGZpbmFsbHkge1xuICAgIHByb2Nlc3MuY2hkaXIocHJldmRpcik7XG4gICAgYXdhaXQgZnMucmVtb3ZlKHBhcmVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGV4ZWMgPSBhc3luYyAoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IFNwYXduT3B0aW9ucyxcbiAgc3Rkb3V0PzogKGNodW5rOiBCdWZmZXIpID0+IGFueSxcbiAgc3RkZXJyPzogKGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiBhbnksXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBrbykgPT4ge1xuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24oY29tbWFuZCwgYXJncywgb3B0aW9ucyk7XG4gICAgY29uc3Qgb3V0ID0gbmV3IEFycmF5PEJ1ZmZlcj4oKTtcbiAgICBjb25zdCBlcnIgPSBuZXcgQXJyYXk8c3RyaW5nIHwgVWludDhBcnJheT4oKTtcbiAgICBpZiAoc3Rkb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkLnN0ZG91dD8ub24oXCJkYXRhXCIsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICAgIHN0ZG91dChjaHVuayk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQuc3Rkb3V0Py5vbihcImRhdGFcIiwgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgb3V0LnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChzdGRlcnIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2hpbGQuc3RkZXJyPy5vbihcImRhdGFcIiwgKGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiB7XG4gICAgICAgIHN0ZGVycihjaHVuayk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGQuc3RkZXJyPy5vbihcImRhdGFcIiwgKGNodW5rOiBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiB7XG4gICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNodW5rKTtcbiAgICAgICAgZXJyLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNoaWxkLm9uY2UoXCJlcnJvclwiLCAoZXJyOiBhbnkpID0+IGtvKGVycikpO1xuICAgIGNoaWxkLm9uY2UoXCJjbG9zZVwiLCAoY29kZTogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgbm9uLXplcm8gZXhpdCBjb2RlICR7Y29kZX1gKTtcbiAgICAgICAgKGVycm9yIGFzIGFueSkuc3RkZXJyID0gZXJyLm1hcCgoY2h1bmspID0+IGNodW5rLnRvU3RyaW5nKCkpLmpvaW4oXCJcIik7XG4gICAgICAgIHJldHVybiBrbyhlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2soQnVmZmVyLmNvbmNhdChvdXQpLnRvU3RyaW5nKFwidXRmLThcIikpO1xuICAgIH0pO1xuICB9KTtcbn07XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9ILGtDQWVDO0FBcEJELGlEQUFvRDtBQUNwRCw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUV0QixLQUFLLFVBQVUsV0FBVyxDQUMvQixPQUFlLEVBQ2YsT0FBNEI7SUFFNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlCLE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQztZQUFTLENBQUM7UUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQztBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLElBQWMsRUFDZCxPQUFxQixFQUNyQixNQUErQixFQUMvQixNQUE0QyxFQUMzQixFQUFFO0lBQ25CLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7O1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUEscUJBQUssRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDN0MsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsTUFBQSxLQUFLLENBQUMsTUFBTSwwQ0FBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBQSxLQUFLLENBQUMsTUFBTSwwQ0FBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQ3pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsTUFBQSxLQUFLLENBQUMsTUFBTSwwQ0FBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBMEIsRUFBRSxFQUFFO2dCQUN0RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQUEsS0FBSyxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQTBCLEVBQUUsRUFBRTtnQkFDdEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3JELEtBQWEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBeENXLFFBQUEsSUFBSSxRQXdDZiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgc3Bhd24sIFNwYXduT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2l0aFRlbXBEaXIoXG4gIGRpcm5hbWU6IHN0cmluZyxcbiAgY2xvc3VyZTogKCkgPT4gUHJvbWlzZTx2b2lkPixcbikge1xuICBjb25zdCBwcmV2ZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgcGFyZW50ID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYuXCIpKTtcbiAgY29uc3Qgd29ya2RpciA9IHBhdGguam9pbihwYXJlbnQsIGRpcm5hbWUpO1xuICBhd2FpdCBmcy5ta2RpcnAod29ya2Rpcik7XG4gIHRyeSB7XG4gICAgcHJvY2Vzcy5jaGRpcih3b3JrZGlyKTtcbiAgICBhd2FpdCBjbG9zdXJlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgcHJvY2Vzcy5jaGRpcihwcmV2ZGlyKTtcbiAgICBhd2FpdCBmcy5yZW1vdmUocGFyZW50KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZXhlYyA9IGFzeW5jIChcbiAgY29tbWFuZDogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogU3Bhd25PcHRpb25zLFxuICBzdGRvdXQ/OiAoY2h1bms6IEJ1ZmZlcikgPT4gYW55LFxuICBzdGRlcnI/OiAoY2h1bms6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IGFueSxcbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGtvKSA9PiB7XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bihjb21tYW5kLCBhcmdzLCBvcHRpb25zKTtcbiAgICBjb25zdCBvdXQgPSBuZXcgQXJyYXk8QnVmZmVyPigpO1xuICAgIGNvbnN0IGVyciA9IG5ldyBBcnJheTxzdHJpbmcgfCBVaW50OEFycmF5PigpO1xuICAgIGlmIChzdGRvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2hpbGQuc3Rkb3V0Py5vbihcImRhdGFcIiwgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgc3Rkb3V0KGNodW5rKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGlsZC5zdGRvdXQ/Lm9uKFwiZGF0YVwiLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBvdXQucHVzaChjaHVuayk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHN0ZGVyciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjaGlsZC5zdGRlcnI/Lm9uKFwiZGF0YVwiLCAoY2h1bms6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IHtcbiAgICAgICAgc3RkZXJyKGNodW5rKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGlsZC5zdGRlcnI/Lm9uKFwiZGF0YVwiLCAoY2h1bms6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IHtcbiAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoY2h1bmspO1xuICAgICAgICBlcnIucHVzaChjaHVuayk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY2hpbGQub25jZShcImVycm9yXCIsIChlcnI6IGFueSkgPT4ga28oZXJyKSk7XG4gICAgY2hpbGQub25jZShcImNsb3NlXCIsIChjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChjb2RlICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBub24temVybyBleGl0IGNvZGUgJHtjb2RlfWApO1xuICAgICAgICAoZXJyb3IgYXMgYW55KS5zdGRlcnIgPSBlcnIubWFwKChjaHVuaykgPT4gY2h1bmsudG9TdHJpbmcoKSkuam9pbihcIlwiKTtcbiAgICAgICAgcmV0dXJuIGtvKGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvayhCdWZmZXIuY29uY2F0KG91dCkudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG4gICAgfSk7XG4gIH0pO1xufTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdktn/provider-schema",
3
- "version": "0.25.0-pre.11",
3
+ "version": "0.25.0-pre.12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -32,15 +32,16 @@
32
32
  "deepmerge": "4.3.1",
33
33
  "fs-extra": "11.3.6",
34
34
  "semver": "7.8.5",
35
- "@cdktn/commons": "0.25.0-pre.11",
36
- "@cdktn/hcl2json": "0.25.0-pre.11"
35
+ "@cdktn/commons": "0.25.0-pre.12",
36
+ "@cdktn/hcl2json": "0.25.0-pre.12"
37
37
  },
38
38
  "devDependencies": {
39
+ "@types/node": "22.20.1",
39
40
  "@types/fs-extra": "11.0.4",
40
41
  "@types/semver": "7.7.1",
41
42
  "safe-stable-stringify": "2.5.0",
42
43
  "tsc-files": "1.1.4",
43
- "typescript": "^5.0.4"
44
+ "typescript": "~6.0.0"
44
45
  },
45
46
  "lint-staged": {
46
47
  "src/**/*.{ts,tsx}": "tsc-files ambient.d.ts --noEmit"