@aws-cdk/toolkit-lib 1.30.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/build-info.json +2 -2
  2. package/lib/actions/bootstrap/index.d.ts +5 -0
  3. package/lib/actions/bootstrap/index.js +35 -2
  4. package/lib/actions/deploy/index.d.ts +6 -0
  5. package/lib/actions/deploy/index.js +1 -1
  6. package/lib/actions/destroy/index.d.ts +6 -0
  7. package/lib/actions/destroy/index.js +1 -1
  8. package/lib/actions/diff/private/helpers.js +36 -3
  9. package/lib/api/aws-auth/account-cache.js +36 -3
  10. package/lib/api/aws-auth/sdk-provider.js +36 -3
  11. package/lib/api/aws-auth/sdk.d.ts +2 -1
  12. package/lib/api/aws-auth/sdk.js +2 -1
  13. package/lib/api/aws-auth/user-agent.js +35 -2
  14. package/lib/api/aws-auth/util.js +35 -2
  15. package/lib/api/bootstrap/bootstrap-environment.js +35 -2
  16. package/lib/api/bootstrap/bootstrap-props.d.ts +6 -0
  17. package/lib/api/bootstrap/bootstrap-props.js +1 -1
  18. package/lib/api/bootstrap/deploy-bootstrap.js +39 -4
  19. package/lib/api/cloud-assembly/context-store.js +36 -3
  20. package/lib/api/cloud-assembly/environment.js +37 -4
  21. package/lib/api/cloud-assembly/private/context-aware-source.js +35 -2
  22. package/lib/api/cloud-assembly/private/exec.js +35 -2
  23. package/lib/api/cloud-assembly/private/prepare-source.js +39 -6
  24. package/lib/api/cloud-assembly/source-builder.js +37 -4
  25. package/lib/api/cloud-assembly/stack-assembly.js +8 -4
  26. package/lib/api/cloudformation/logical-id-map.js +35 -2
  27. package/lib/api/cloudformation/nested-stack-helpers.js +36 -3
  28. package/lib/api/cloudformation/template-body-parameter.js +42 -6
  29. package/lib/api/deployments/asset-manifest-builder.js +35 -2
  30. package/lib/api/deployments/assets.js +42 -6
  31. package/lib/api/deployments/cfn-api.d.ts +4 -2
  32. package/lib/api/deployments/cfn-api.js +47 -6
  33. package/lib/api/deployments/deploy-stack.d.ts +13 -0
  34. package/lib/api/deployments/deploy-stack.js +29 -9
  35. package/lib/api/deployments/deployment-result.d.ts +7 -1
  36. package/lib/api/deployments/deployment-result.js +1 -1
  37. package/lib/api/deployments/deployments.d.ts +5 -0
  38. package/lib/api/deployments/deployments.js +42 -4
  39. package/lib/api/diagnosing/format-utils.d.ts +29 -0
  40. package/lib/api/diagnosing/format-utils.js +141 -1
  41. package/lib/api/diagnosing/investigate-custom-resource.d.ts +17 -0
  42. package/lib/api/diagnosing/investigate-custom-resource.js +247 -0
  43. package/lib/api/diagnosing/investigate-ecs-service.d.ts +20 -0
  44. package/lib/api/diagnosing/investigate-ecs-service.js +242 -0
  45. package/lib/api/diagnosing/resource-identifiers.d.ts +39 -0
  46. package/lib/api/diagnosing/resource-identifiers.js +90 -0
  47. package/lib/api/diagnosing/resource-investigation.d.ts +2 -30
  48. package/lib/api/diagnosing/resource-investigation.js +9 -289
  49. package/lib/api/diff/diff-formatter.js +11 -8
  50. package/lib/api/drift/drift-formatter.js +20 -17
  51. package/lib/api/garbage-collection/garbage-collector.js +7 -4
  52. package/lib/api/garbage-collection/progress-printer.js +7 -4
  53. package/lib/api/hotswap/hotswap-deployments.js +47 -10
  54. package/lib/api/hotswap/hotswap-template-cache.js +36 -3
  55. package/lib/api/io/private/io-default-messages.js +35 -2
  56. package/lib/api/io/private/message-maker.d.ts +4 -0
  57. package/lib/api/io/private/message-maker.js +3 -1
  58. package/lib/api/io/private/messages.d.ts +5 -0
  59. package/lib/api/io/private/messages.js +55 -2
  60. package/lib/api/io/private/span.js +35 -2
  61. package/lib/api/logs-monitor/logs-monitor.js +40 -4
  62. package/lib/api/network-detector/network-detector.js +37 -4
  63. package/lib/api/notices/cached-data-source.js +35 -2
  64. package/lib/api/notices/filter.js +35 -2
  65. package/lib/api/notices/notices.js +35 -2
  66. package/lib/api/notices/web-data-source.js +35 -2
  67. package/lib/api/refactoring/digest.js +35 -2
  68. package/lib/api/refactoring/stack-definitions.js +40 -4
  69. package/lib/api/resource-import/importer.js +60 -17
  70. package/lib/api/resource-import/migrator.js +42 -6
  71. package/lib/api/rwlock.js +35 -2
  72. package/lib/api/settings.js +38 -5
  73. package/lib/api/source-tracing/private/stack-source-tracing.js +38 -5
  74. package/lib/api/stack-events/resource-errors.d.ts +12 -0
  75. package/lib/api/stack-events/resource-errors.js +2 -1
  76. package/lib/api/stack-events/stack-activity-monitor.d.ts +5 -0
  77. package/lib/api/stack-events/stack-activity-monitor.js +42 -2
  78. package/lib/api/stack-events/stack-event-poller.d.ts +8 -1
  79. package/lib/api/stack-events/stack-event-poller.js +19 -1
  80. package/lib/api/stack-events/stack-progress-monitor.js +35 -2
  81. package/lib/api/toolkit-info.js +7 -4
  82. package/lib/api/tree.js +36 -3
  83. package/lib/api/validate/validate-formatting.js +53 -17
  84. package/lib/api/work-graph/build-destroy-work-graph.js +35 -2
  85. package/lib/api/work-graph/work-graph-builder.js +35 -2
  86. package/lib/context-providers/index.js +35 -2
  87. package/lib/private/activity-printer/current.d.ts +19 -0
  88. package/lib/private/activity-printer/current.js +109 -17
  89. package/lib/private/activity-printer/history.js +50 -14
  90. package/lib/private/tools.js +38 -1
  91. package/lib/toolkit/non-interactive-io-host.js +11 -8
  92. package/lib/toolkit/private/collect-annotation-report.js +35 -2
  93. package/lib/toolkit/private/validation-report.js +36 -3
  94. package/lib/toolkit/toolkit-error.d.ts +20 -0
  95. package/lib/toolkit/toolkit-error.js +30 -2
  96. package/lib/toolkit/toolkit.d.ts +8 -0
  97. package/lib/toolkit/toolkit.js +107 -41
  98. package/lib/toolkit/types.d.ts +22 -0
  99. package/lib/toolkit/types.js +1 -1
  100. package/lib/util/cfn-express.d.ts +24 -0
  101. package/lib/util/cfn-express.js +55 -0
  102. package/lib/util/content-hash.js +35 -2
  103. package/lib/util/directories.js +38 -5
  104. package/lib/util/guess-language.js +36 -3
  105. package/lib/util/index.d.ts +1 -0
  106. package/lib/util/index.js +2 -1
  107. package/lib/util/package-info.js +35 -2
  108. package/lib/util/serialize.js +36 -3
  109. package/lib/util/version-range.js +35 -2
  110. package/lib/util/yaml-cfn.js +36 -3
  111. package/package.json +2 -2
@@ -1,7 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.buildDestroyWorkGraph = buildDestroyWorkGraph;
4
- const cxapi = require("@aws-cdk/cloud-assembly-api");
37
+ const cxapi = __importStar(require("@aws-cdk/cloud-assembly-api"));
5
38
  const work_graph_1 = require("./work-graph");
6
39
  const work_graph_types_1 = require("./work-graph-types");
7
40
  /**
@@ -32,4 +65,4 @@ function buildDestroyWorkGraph(stacks, ioHelper) {
32
65
  }
33
66
  return graph;
34
67
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0Esc0RBd0JDO0FBbkNELHFEQUFxRDtBQUNyRCw2Q0FBeUM7QUFDekMseURBQXFEO0FBR3JEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBMkMsRUFBRSxRQUFrQjtJQUNuRyxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXJELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osWUFBWSxFQUFFLElBQUksR0FBRyxFQUFVO1lBQy9CLEtBQUs7WUFDTCxlQUFlLEVBQUUsa0NBQWUsQ0FBQyxPQUFPO1lBQ3hDLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgV29ya0dyYXBoIH0gZnJvbSAnLi93b3JrLWdyYXBoJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbi8qKlxuICogQnVpbGQgYSBXb3JrR3JhcGggZm9yIGRlc3Ryb3kgd2l0aCByZXZlcnNlZCBkZXBlbmRlbmNpZXMuXG4gKlxuICogSW4gZGVwbG95IG9yZGVyLCBpZiBBIGRlcGVuZHMgb24gQiwgQiBpcyBkZXBsb3llZCBmaXJzdC4gRm9yIGRlc3Ryb3ksXG4gKiB0aGUgYXJyb3dzIGFyZSByZXZlcnNlZDogQSBtdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgQi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzdHJveVdvcmtHcmFwaChzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBXb3JrR3JhcGgge1xuICBjb25zdCBncmFwaCA9IG5ldyBXb3JrR3JhcGgoe30sIGlvSGVscGVyKTtcbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBuZXcgU2V0KHN0YWNrcy5tYXAoKHMpID0+IHMuaWQpKTtcblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGdyYXBoLmFkZE5vZGVzKHtcbiAgICAgIHR5cGU6ICdzdGFjaycsXG4gICAgICBpZDogc3RhY2suaWQsXG4gICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgICAgc3RhY2ssXG4gICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgcHJpb3JpdHk6IDAsXG4gICAgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIHN0YWNrLmRlcGVuZGVuY2llcykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChkZXApICYmIHNlbGVjdGVkSWRzLmhhcyhkZXAuaWQpKSB7XG4gICAgICAgIGdyYXBoLmFkZERlcGVuZGVuY3koZGVwLmlkLCBzdGFjay5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdyYXBoO1xufVxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYnVpbGQtZGVzdHJveS13b3JrLWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0Esc0RBd0JDO0FBbkNELG1FQUFxRDtBQUNyRCw2Q0FBeUM7QUFDekMseURBQXFEO0FBR3JEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBMkMsRUFBRSxRQUFrQjtJQUNuRyxNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXJELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osWUFBWSxFQUFFLElBQUksR0FBRyxFQUFVO1lBQy9CLEtBQUs7WUFDTCxlQUFlLEVBQUUsa0NBQWUsQ0FBQyxPQUFPO1lBQ3hDLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgV29ya0dyYXBoIH0gZnJvbSAnLi93b3JrLWdyYXBoJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbi8qKlxuICogQnVpbGQgYSBXb3JrR3JhcGggZm9yIGRlc3Ryb3kgd2l0aCByZXZlcnNlZCBkZXBlbmRlbmNpZXMuXG4gKlxuICogSW4gZGVwbG95IG9yZGVyLCBpZiBBIGRlcGVuZHMgb24gQiwgQiBpcyBkZXBsb3llZCBmaXJzdC4gRm9yIGRlc3Ryb3ksXG4gKiB0aGUgYXJyb3dzIGFyZSByZXZlcnNlZDogQSBtdXN0IGJlIGRlc3Ryb3llZCBiZWZvcmUgQi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVzdHJveVdvcmtHcmFwaChzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdLCBpb0hlbHBlcjogSW9IZWxwZXIpOiBXb3JrR3JhcGgge1xuICBjb25zdCBncmFwaCA9IG5ldyBXb3JrR3JhcGgoe30sIGlvSGVscGVyKTtcbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBuZXcgU2V0KHN0YWNrcy5tYXAoKHMpID0+IHMuaWQpKTtcblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGdyYXBoLmFkZE5vZGVzKHtcbiAgICAgIHR5cGU6ICdzdGFjaycsXG4gICAgICBpZDogc3RhY2suaWQsXG4gICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgICAgc3RhY2ssXG4gICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgcHJpb3JpdHk6IDAsXG4gICAgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIHN0YWNrLmRlcGVuZGVuY2llcykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChkZXApICYmIHNlbGVjdGVkSWRzLmhhcyhkZXAuaWQpKSB7XG4gICAgICAgIGdyYXBoLmFkZERlcGVuZGVuY3koZGVwLmlkLCBzdGFjay5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdyYXBoO1xufVxuIl19
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.WorkGraphBuilder = void 0;
4
37
  const cdk_assets_lib_1 = require("@aws-cdk/cdk-assets-lib");
5
- const cxapi = require("@aws-cdk/cloud-assembly-api");
38
+ const cxapi = __importStar(require("@aws-cdk/cloud-assembly-api"));
6
39
  const work_graph_1 = require("./work-graph");
7
40
  const work_graph_types_1 = require("./work-graph-types");
8
41
  const toolkit_error_1 = require("../../toolkit/toolkit-error");
@@ -204,4 +237,4 @@ function stacksFromAssets(artifacts) {
204
237
  function onlyStacks(artifacts) {
205
238
  return artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x));
206
239
  }
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid29yay1ncmFwaC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUE2RTtBQUM3RSxxREFBcUQ7QUFDckQsNkNBQXlDO0FBRXpDLHlEQUFxRDtBQUNyRCwrREFBMkQ7QUFDM0QscUNBQTRDO0FBRzVDLE1BQWEsZ0JBQWdCO0lBd0JSO0lBQ0E7SUF4Qm5COzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsR0FBcUM7UUFDM0QsYUFBYSxFQUFFLEVBQUU7UUFDakIsZUFBZSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7UUFDVixRQUFRLEVBQUUsR0FBRztLQUNkLENBQUM7SUFDZSxLQUFLLENBQVk7SUFDakIsUUFBUSxDQUFXO0lBRXBDLFlBQ0UsUUFBa0IsRUFDRCxjQUF1QixFQUN2QixXQUFXLEVBQUU7UUFEYixtQkFBYyxHQUFkLGNBQWMsQ0FBUztRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBRTlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQTJDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ2xCLElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3BDLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQy9FLEtBQUssRUFBRSxRQUFRO1lBQ2YsZUFBZSxFQUFFLGtDQUFlLENBQUMsT0FBTztZQUN4QyxR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O0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsU0FBZ0M7SUFDbEQsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2V0TWFuaWZlc3QsIHR5cGUgSU1hbmlmZXN0RW50cnkgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgV29ya0dyYXBoIH0gZnJvbSAnLi93b3JrLWdyYXBoJztcbmltcG9ydCB0eXBlIHsgQXNzZXRCdWlsZE5vZGUsIE1hcmtlck5vZGUsIFdvcmtOb2RlIH0gZnJvbSAnLi93b3JrLWdyYXBoLXR5cGVzJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgY29udGVudEhhc2hBbnkgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGNsYXNzIFdvcmtHcmFwaEJ1aWxkZXIge1xuICAvKipcbiAgICogRGVmYXVsdCBwcmlvcml0aWVzIGZvciBub2Rlc1xuICAgKlxuICAgKiBNZXNzYWdlcyBoYXZlIHRoZSBoaWdoZXN0IHByaW9yaXR5IHRvIGVuc3VyZSB0aGV5IGFyZSBlbWl0dGVkIGFzIHNvb24gYXNcbiAgICogcG9zc2libGUgKGJlY2F1c2UgdGhleSB3aWxsIGJlIHVzZWQgZm9yIG1lYXN1cmluZyB0aW1pbmdzKS5cbiAgICpcbiAgICogQXNzZXRzIGJ1aWxkcyBoYXZlIGhpZ2hlciBwcmlvcml0eSB0aGFuIHRoZSBvdGhlciB0d28gb3BlcmF0aW9ucywgdG8gbWFrZSBnb29kIG9uIG91ciBwcm9taXNlIHRoYXRcbiAgICogJy0tcHJlYnVpbGQtYXNzZXRzJyB3aWxsIGFjdHVhbGx5IGRvIGFzc2V0cyBiZWZvcmUgc3RhY2tzIChpZiBpdCBjYW4pLiBVbmZvcnR1bmF0ZWx5IGl0IGlzIHRoZVxuICAgKiBkZWZhdWx0IDooXG4gICAqXG4gICAqIEJ1dCBiZXR3ZWVuIHN0YWNrIGRlcGVuZGVuY2llcyBhbmQgcHVibGlzaCBkZXBlbmRlbmNpZXMsIHN0YWNrIGRlcGVuZGVuY2llcyBnbyBmaXJzdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBQUklPUklUSUVTOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAnYXNzZXQtYnVpbGQnOiAxMCxcbiAgICAnYXNzZXQtcHVibGlzaCc6IDAsXG4gICAgJ3N0YWNrJzogNSxcbiAgICAnbWFya2VyJzogMTAwLFxuICB9O1xuICBwcml2YXRlIHJlYWRvbmx5IGdyYXBoOiBXb3JrR3JhcGg7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZWJ1aWxkQXNzZXRzOiBib29sZWFuLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWRQcmVmaXggPSAnJyxcbiAgKSB7XG4gICAgdGhpcy5ncmFwaCA9IG5ldyBXb3JrR3JhcGgoe30sIGlvSGVscGVyKTtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gIH1cblxuICBwcml2YXRlIGFkZFN0YWNrKGFydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpIHtcbiAgICB0aGlzLmdyYXBoLmFkZE5vZGVzKHtcbiAgICAgIHR5cGU6ICdzdGFjaycsXG4gICAgICBpZDogYCR7dGhpcy5pZFByZWZpeH0ke2FydGlmYWN0LmlkfWAsXG4gICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQodGhpcy5zdGFja0FydGlmYWN0SWRzKG9ubHlTdGFja3MoYXJ0aWZhY3QuZGVwZW5kZW5jaWVzKSkpLFxuICAgICAgc3RhY2s6IGFydGlmYWN0LFxuICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVMuc3RhY2ssXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT29mLCBzZWUgdGhpcyBwYXJhbWV0ZXIgbGlzdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBzdHlsaXN0aWMvbWF4LWxlblxuICBwcml2YXRlIGFkZEFzc2V0KHBhcmVudFN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsIGFzc2V0TWFuaWZlc3RBcnRpZmFjdDogY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LCBhc3NldDogSU1hbmlmZXN0RW50cnkpIHtcbiAgICAvLyBKdXN0IHRoZSBhcnRpZmFjdCBpZGVudGlmaWVyXG4gICAgY29uc3QgYXNzZXRJZCA9IGFzc2V0LmlkLmFzc2V0SWQ7XG5cbiAgICAvLyBCdWlsZCBub2RlLCBjb250YWlucyBoYXNoIG9mIHNvdXJjZSAoYnVpbGQgb25seSBvbmNlKVxuICAgIGNvbnN0IHNvdXJjZUhhc2ggPSBjb250ZW50SGFzaEFueShbYXNzZXRJZCwgYXNzZXQuZ2VuZXJpY1NvdXJjZV0pLnN1YnN0cmluZygwLCAxMCk7XG4gICAgY29uc3QgYnVpbGRJZCA9IGBidWlsZC0ke2Fzc2V0SWR9LSR7c291cmNlSGFzaH1gO1xuICAgIC8vIFB1Ymxpc2ggbm9kZSwgY29udGFpbnMgaGFzaCBvZiBib3RoIHNvdXJjZSBhbmQgZGVzdFxuICAgIGNvbnN0IHB1Ymxpc2hJZCA9IGBwdWJsaXNoLSR7YXNzZXRJZH0tJHtzb3VyY2VIYXNofSR7Y29udGVudEhhc2hBbnkoW2Fzc2V0SWQsIGFzc2V0LmdlbmVyaWNEZXN0aW5hdGlvbl0pLnN1YnN0cmluZygwLCAxMCl9YDtcblxuICAgIC8vIE1lc3NhZ2UgdG8gZW1pdCB3aGVuIHdlIHN0YXJ0IG9uIGFuIGFzc2V0XG4gICAgY29uc3Qgc3RhcnRJZCA9IGBzdGFydC0ke2Fzc2V0SWR9YDtcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShzdGFydElkKSkge1xuICAgICAgdGhpcy5ncmFwaC5hZGROb2Rlcyh7XG4gICAgICAgIHR5cGU6ICdtYXJrZXInLFxuICAgICAgICBpZDogc3RhcnRJZCxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBuZXcgU2V0KCksXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVMubWFya2VyLFxuICAgICAgICBtYXJrZXI6IHsgdHlwZTogJ3N0YXJ0LWFzc2V0JywgYXNzZXQgfSxcbiAgICAgIH0gc2F0aXNmaWVzIE1hcmtlck5vZGUpO1xuICAgIH1cblxuICAgIC8vIE1lc3NhZ2UgdG8gZW1pdCB3aGVuIHdlIGVuZCBhbiBhc3NldFxuICAgIGNvbnN0IGVuZElkID0gYGVuZC0ke2Fzc2V0SWR9YDtcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShlbmRJZCkpIHtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMoe1xuICAgICAgICB0eXBlOiAnbWFya2VyJyxcbiAgICAgICAgaWQ6IGVuZElkLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoKSxcbiAgICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgICAgcHJpb3JpdHk6IFdvcmtHcmFwaEJ1aWxkZXIuUFJJT1JJVElFUy5tYXJrZXIsXG4gICAgICAgIG1hcmtlcjogeyB0eXBlOiAnZW5kLWFzc2V0JywgYXNzZXQgfSxcbiAgICAgIH0gc2F0aXNmaWVzIE1hcmtlck5vZGUpO1xuICAgIH1cblxuICAgIC8vIEJ1aWxkIG5vZGUgb25seSBnZXRzIGFkZGVkIG9uY2UgYmVjYXVzZSB0aGV5IGFyZSBhbGwgdGhlIHNhbWVcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShidWlsZElkKSkge1xuICAgICAgY29uc3Qgbm9kZTogQXNzZXRCdWlsZE5vZGUgPSB7XG4gICAgICAgIHR5cGU6ICdhc3NldC1idWlsZCcsXG4gICAgICAgIGlkOiBidWlsZElkLFxuICAgICAgICBub3RlOiBhc3NldC5kaXNwbGF5TmFtZShmYWxzZSksXG4gICAgICAgIGRlcGVuZGVuY2llczogbmV3IFNldChbXG4gICAgICAgICAgLy8gQnVpbGQgZGVwZW5kcyBvbiB0aGUgc3RhcnQgbWVzc2FnZSBoYXZpbmcgYmVlbiBlbWl0dGVkLlxuICAgICAgICAgIHN0YXJ0SWQsXG4gICAgICAgICAgLi4udGhpcy5zdGFja0FydGlmYWN0SWRzKGFzc2V0TWFuaWZlc3RBcnRpZmFjdC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgIC8vIElmIHdlIGRpc2FibGUgcHJlYnVpbGQsIHRoZW4gYXNzZXRzIGluaGVyaXQgKHN0YWNrKSBkZXBlbmRlbmNpZXMgZnJvbSB0aGVpciBwYXJlbnQgc3RhY2tcbiAgICAgICAgICAuLi4hdGhpcy5wcmVidWlsZEFzc2V0cyA/IHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpIDogW10sXG4gICAgICAgIF0pLFxuICAgICAgICBwYXJlbnRTdGFjazogcGFyZW50U3RhY2ssXG4gICAgICAgIGFzc2V0TWFuaWZlc3RBcnRpZmFjdCxcbiAgICAgICAgYXNzZXRNYW5pZmVzdCxcbiAgICAgICAgYXNzZXQsXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVNbJ2Fzc2V0LWJ1aWxkJ10sXG4gICAgICB9O1xuICAgICAgdGhpcy5ncmFwaC5hZGROb2Rlcyhub2RlKTtcbiAgICB9XG5cbiAgICBjb25zdCBwdWJsaXNoTm9kZSA9IHRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShwdWJsaXNoSWQpO1xuICAgIGlmICghcHVibGlzaE5vZGUpIHtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMoe1xuICAgICAgICB0eXBlOiAnYXNzZXQtcHVibGlzaCcsXG4gICAgICAgIGlkOiBwdWJsaXNoSWQsXG4gICAgICAgIG5vdGU6IGFzc2V0LmRpc3BsYXlOYW1lKHRydWUpLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoW1xuICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgIF0pLFxuICAgICAgICBwYXJlbnRTdGFjayxcbiAgICAgICAgYXNzZXRNYW5pZmVzdEFydGlmYWN0LFxuICAgICAgICBhc3NldE1hbmlmZXN0LFxuICAgICAgICBhc3NldCxcbiAgICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgICAgcHJpb3JpdHk6IFdvcmtHcmFwaEJ1aWxkZXIuUFJJT1JJVElFU1snYXNzZXQtcHVibGlzaCddLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEV2ZXJ5IHB1Ymxpc2ggbm9kZSB0aGF0IHdlIGFkZCBtdXN0IGNvbXBsZXRlIGJlZm9yZSB3ZSBmaXJlIHRoZSBcImRvbmUgd2l0aCBwdWJsaXNoaW5nIHRoaXMgYXNzZXRcIiBtZXNzYWdlLlxuICAgICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KGVuZElkLCBwdWJsaXNoSWQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5oZXJpdGVkRGVwIG9mIHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpKSB7XG4gICAgICAvLyBUaGUgYXNzZXQgcHVibGlzaCBzdGVwIGFsc28gZGVwZW5kcyBvbiB0aGUgc3RhY2tzIHRoYXQgdGhlIHBhcmVudCBkZXBlbmRzIG9uLlxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgY29zbWV0aWM6IGlmIHdlIGRvbid0IGRvIHRoaXMsIHRoZSBwcm9ncmVzcyBwcmludGluZyBvZiBhc3NldCBwdWJsaXNoaW5nXG4gICAgICAvLyBpcyBnb2luZyB0byBpbnRlcmZlcmUgd2l0aCB0aGUgcHJvZ3Jlc3MgYmFyIG9mIHRoZSBzdGFjayBkZXBsb3ltZW50LiBXZSBjb3VsZCByZW1vdmUgdGhpc1xuICAgICAgLy8gZm9yIG92ZXJhbGwgZmFzdGVyIGRlcGxveW1lbnRzIGlmIHdlIGV2ZXIgaGF2ZSBhIGJldHRlciBtZXRob2Qgb2YgcHJvZ3Jlc3MgZGlzcGxheWluZy5cbiAgICAgIC8vIE5vdGU6IHRoaXMgbWF5IGludHJvZHVjZSBhIGN5Y2xlIGlmIG9uZSBvZiB0aGUgcGFyZW50J3MgZGVwZW5kZW5jaWVzIGlzIGFub3RoZXIgc3RhY2sgdGhhdFxuICAgICAgLy8gZGVwZW5kcyBvbiB0aGlzIGFzc2V0LiBUbyB3b3JrYXJvdW5kIHRoaXMgd2UgcmVtb3ZlIHRoZXNlIGN5Y2xlcyBvbmNlIGFsbCBub2RlcyBoYXZlXG4gICAgICAvLyBiZWVuIGFkZGVkIHRvIHRoZSBncmFwaC5cbiAgICAgIHRoaXMuZ3JhcGguYWRkRGVwZW5kZW5jeShwdWJsaXNoSWQsIGluaGVyaXRlZERlcCk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyB3aWxsIHdvcmsgd2hldGhlciB0aGUgc3RhY2sgbm9kZSBoYXMgYmVlbiBhZGRlZCB5ZXQgb3Igbm90XG4gICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KGAke3RoaXMuaWRQcmVmaXh9JHtwYXJlbnRTdGFjay5pZH1gLCBwdWJsaXNoSWQpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKTogV29ya0dyYXBoIHtcbiAgICBjb25zdCBwYXJlbnRTdGFja3MgPSBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0cyk7XG5cbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIGFydGlmYWN0cykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgdGhpcy5hZGRTdGFjayhhcnRpZmFjdCk7XG4gICAgICB9IGVsc2UgaWYgKGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgY29uc3QgbWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21GaWxlKGFydGlmYWN0LmZpbGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgbWFuaWZlc3QuZW50cmllcykge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFN0YWNrID0gcGFyZW50U3RhY2tzLmdldChhcnRpZmFjdCk7XG4gICAgICAgICAgaWYgKHBhcmVudFN0YWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ09ycGhhbmVkQXNzZXRNYW5pZmVzdCcsICdGb3VuZCBhbiBhc3NldCBtYW5pZmVzdCB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzdGFjaycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFkZEFzc2V0KHBhcmVudFN0YWNrLCBhcnRpZmFjdCwgbWFuaWZlc3QsIGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjeGFwaS5OZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QuaXNOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IGN4YXBpLkNsb3VkQXNzZW1ibHkoYXJ0aWZhY3QuZnVsbFBhdGgsIHsgdG9wb1NvcnQ6IGZhbHNlIH0pO1xuICAgICAgICBjb25zdCBuZXN0ZWRHcmFwaCA9IG5ldyBXb3JrR3JhcGhCdWlsZGVyKFxuICAgICAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgICAgICAgdGhpcy5wcmVidWlsZEFzc2V0cyxcbiAgICAgICAgICBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9LmAsXG4gICAgICAgICkuYnVpbGQoYXNzZW1ibHkuYXJ0aWZhY3RzKTtcbiAgICAgICAgdGhpcy5ncmFwaC5hYnNvcmIobmVzdGVkR3JhcGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWdub3JlIHdoYXRldmVyIGVsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoLnJlbW92ZVVuYXZhaWxhYmxlRGVwZW5kZW5jaWVzKCk7XG5cbiAgICAvLyBSZW1vdmUgYW55IHBvdGVudGlhbGx5IGludHJvZHVjZWQgY3ljbGVzIGJldHdlZW4gYXNzZXQgcHVibGlzaGluZyBhbmQgdGhlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGVtLlxuICAgIHRoaXMucmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5ncmFwaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkcyhkZXBzOiBjeGFwaS5DbG91ZEFydGlmYWN0W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGRlcHMuZmxhdE1hcCgoZCkgPT4gY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGQpID8gW3RoaXMuc3RhY2tBcnRpZmFjdElkKGQpXSA6IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkKGFydGlmYWN0OiBjeGFwaS5DbG91ZEFydGlmYWN0KTogc3RyaW5nIHtcbiAgICBpZiAoIWN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRBcnRpZmFjdFR5cGUnLCBgQ2FuIG9ubHkgY2FsbCB0aGlzIG9uIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCwgZ290OiAke2FydGlmYWN0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBtYXkgaGF2ZSBhY2NpZGVudGFsbHkgaW50cm9kdWNlZCBjeWNsZXMgaW4gYW4gYXR0ZW1wdCB0byBtYWtlIHRoZSBtZXNzYWdlcyBwcmludGVkIHRvIHRoZVxuICAgKiBjb25zb2xlIG5vdCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyIHRvbyBtdWNoLiBSZW1vdmUgdGhlbSBhZ2Fpbi5cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCkge1xuICAgIGNvbnN0IHB1Ymxpc2hTdGVwcyA9IHRoaXMuZ3JhcGgubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcbiAgICBmb3IgKGNvbnN0IHB1Ymxpc2hTdGVwIG9mIHB1Ymxpc2hTdGVwcykge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgcHVibGlzaFN0ZXAuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXBoLnJlYWNoYWJsZShkZXAsIHB1Ymxpc2hTdGVwLmlkKSkge1xuICAgICAgICAgIHB1Ymxpc2hTdGVwLmRlcGVuZGVuY2llcy5kZWxldGUoZGVwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBNYXA8Y3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KCk7XG4gIGZvciAoY29uc3Qgc3RhY2sgb2YgYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSkpIHtcbiAgICBjb25zdCBhc3NldEFydGlmYWN0cyA9IHN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoKHgpID0+IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh4KSk7XG4gICAgZm9yIChjb25zdCBhcnQgb2YgYXNzZXRBcnRpZmFjdHMpIHtcbiAgICAgIHJldC5zZXQoYXJ0LCBzdGFjayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25seVN0YWNrcyhhcnRpZmFjdHM6IGN4YXBpLkNsb3VkQXJ0aWZhY3RbXSkge1xuICByZXR1cm4gYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSk7XG59XG5cbiJdfQ==
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid29yay1ncmFwaC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUE2RTtBQUM3RSxtRUFBcUQ7QUFDckQsNkNBQXlDO0FBRXpDLHlEQUFxRDtBQUNyRCwrREFBMkQ7QUFDM0QscUNBQTRDO0FBRzVDLE1BQWEsZ0JBQWdCO0lBd0JSO0lBQ0E7SUF4Qm5COzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsR0FBcUM7UUFDM0QsYUFBYSxFQUFFLEVBQUU7UUFDakIsZUFBZSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7UUFDVixRQUFRLEVBQUUsR0FBRztLQUNkLENBQUM7SUFDZSxLQUFLLENBQVk7SUFDakIsUUFBUSxDQUFXO0lBRXBDLFlBQ0UsUUFBa0IsRUFDRCxjQUF1QixFQUN2QixXQUFXLEVBQUU7UUFEYixtQkFBYyxHQUFkLGNBQWMsQ0FBUztRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBRTlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQTJDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ2xCLElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3BDLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQy9FLEtBQUssRUFBRSxRQUFRO1lBQ2Ys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QUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsU0FBZ0M7SUFDbEQsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2V0TWFuaWZlc3QsIHR5cGUgSU1hbmlmZXN0RW50cnkgfSBmcm9tICdAYXdzLWNkay9jZGstYXNzZXRzLWxpYic7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHsgV29ya0dyYXBoIH0gZnJvbSAnLi93b3JrLWdyYXBoJztcbmltcG9ydCB0eXBlIHsgQXNzZXRCdWlsZE5vZGUsIE1hcmtlck5vZGUsIFdvcmtOb2RlIH0gZnJvbSAnLi93b3JrLWdyYXBoLXR5cGVzJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgY29udGVudEhhc2hBbnkgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuZXhwb3J0IGNsYXNzIFdvcmtHcmFwaEJ1aWxkZXIge1xuICAvKipcbiAgICogRGVmYXVsdCBwcmlvcml0aWVzIGZvciBub2Rlc1xuICAgKlxuICAgKiBNZXNzYWdlcyBoYXZlIHRoZSBoaWdoZXN0IHByaW9yaXR5IHRvIGVuc3VyZSB0aGV5IGFyZSBlbWl0dGVkIGFzIHNvb24gYXNcbiAgICogcG9zc2libGUgKGJlY2F1c2UgdGhleSB3aWxsIGJlIHVzZWQgZm9yIG1lYXN1cmluZyB0aW1pbmdzKS5cbiAgICpcbiAgICogQXNzZXRzIGJ1aWxkcyBoYXZlIGhpZ2hlciBwcmlvcml0eSB0aGFuIHRoZSBvdGhlciB0d28gb3BlcmF0aW9ucywgdG8gbWFrZSBnb29kIG9uIG91ciBwcm9taXNlIHRoYXRcbiAgICogJy0tcHJlYnVpbGQtYXNzZXRzJyB3aWxsIGFjdHVhbGx5IGRvIGFzc2V0cyBiZWZvcmUgc3RhY2tzIChpZiBpdCBjYW4pLiBVbmZvcnR1bmF0ZWx5IGl0IGlzIHRoZVxuICAgKiBkZWZhdWx0IDooXG4gICAqXG4gICAqIEJ1dCBiZXR3ZWVuIHN0YWNrIGRlcGVuZGVuY2llcyBhbmQgcHVibGlzaCBkZXBlbmRlbmNpZXMsIHN0YWNrIGRlcGVuZGVuY2llcyBnbyBmaXJzdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBQUklPUklUSUVTOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAnYXNzZXQtYnVpbGQnOiAxMCxcbiAgICAnYXNzZXQtcHVibGlzaCc6IDAsXG4gICAgJ3N0YWNrJzogNSxcbiAgICAnbWFya2VyJzogMTAwLFxuICB9O1xuICBwcml2YXRlIHJlYWRvbmx5IGdyYXBoOiBXb3JrR3JhcGg7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZWJ1aWxkQXNzZXRzOiBib29sZWFuLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWRQcmVmaXggPSAnJyxcbiAgKSB7XG4gICAgdGhpcy5ncmFwaCA9IG5ldyBXb3JrR3JhcGgoe30sIGlvSGVscGVyKTtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gIH1cblxuICBwcml2YXRlIGFkZFN0YWNrKGFydGlmYWN0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpIHtcbiAgICB0aGlzLmdyYXBoLmFkZE5vZGVzKHtcbiAgICAgIHR5cGU6ICdzdGFjaycsXG4gICAgICBpZDogYCR7dGhpcy5pZFByZWZpeH0ke2FydGlmYWN0LmlkfWAsXG4gICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQodGhpcy5zdGFja0FydGlmYWN0SWRzKG9ubHlTdGFja3MoYXJ0aWZhY3QuZGVwZW5kZW5jaWVzKSkpLFxuICAgICAgc3RhY2s6IGFydGlmYWN0LFxuICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVMuc3RhY2ssXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT29mLCBzZWUgdGhpcyBwYXJhbWV0ZXIgbGlzdFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBzdHlsaXN0aWMvbWF4LWxlblxuICBwcml2YXRlIGFkZEFzc2V0KHBhcmVudFN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsIGFzc2V0TWFuaWZlc3RBcnRpZmFjdDogY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LCBhc3NldDogSU1hbmlmZXN0RW50cnkpIHtcbiAgICAvLyBKdXN0IHRoZSBhcnRpZmFjdCBpZGVudGlmaWVyXG4gICAgY29uc3QgYXNzZXRJZCA9IGFzc2V0LmlkLmFzc2V0SWQ7XG5cbiAgICAvLyBCdWlsZCBub2RlLCBjb250YWlucyBoYXNoIG9mIHNvdXJjZSAoYnVpbGQgb25seSBvbmNlKVxuICAgIGNvbnN0IHNvdXJjZUhhc2ggPSBjb250ZW50SGFzaEFueShbYXNzZXRJZCwgYXNzZXQuZ2VuZXJpY1NvdXJjZV0pLnN1YnN0cmluZygwLCAxMCk7XG4gICAgY29uc3QgYnVpbGRJZCA9IGBidWlsZC0ke2Fzc2V0SWR9LSR7c291cmNlSGFzaH1gO1xuICAgIC8vIFB1Ymxpc2ggbm9kZSwgY29udGFpbnMgaGFzaCBvZiBib3RoIHNvdXJjZSBhbmQgZGVzdFxuICAgIGNvbnN0IHB1Ymxpc2hJZCA9IGBwdWJsaXNoLSR7YXNzZXRJZH0tJHtzb3VyY2VIYXNofSR7Y29udGVudEhhc2hBbnkoW2Fzc2V0SWQsIGFzc2V0LmdlbmVyaWNEZXN0aW5hdGlvbl0pLnN1YnN0cmluZygwLCAxMCl9YDtcblxuICAgIC8vIE1lc3NhZ2UgdG8gZW1pdCB3aGVuIHdlIHN0YXJ0IG9uIGFuIGFzc2V0XG4gICAgY29uc3Qgc3RhcnRJZCA9IGBzdGFydC0ke2Fzc2V0SWR9YDtcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShzdGFydElkKSkge1xuICAgICAgdGhpcy5ncmFwaC5hZGROb2Rlcyh7XG4gICAgICAgIHR5cGU6ICdtYXJrZXInLFxuICAgICAgICBpZDogc3RhcnRJZCxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBuZXcgU2V0KCksXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVMubWFya2VyLFxuICAgICAgICBtYXJrZXI6IHsgdHlwZTogJ3N0YXJ0LWFzc2V0JywgYXNzZXQgfSxcbiAgICAgIH0gc2F0aXNmaWVzIE1hcmtlck5vZGUpO1xuICAgIH1cblxuICAgIC8vIE1lc3NhZ2UgdG8gZW1pdCB3aGVuIHdlIGVuZCBhbiBhc3NldFxuICAgIGNvbnN0IGVuZElkID0gYGVuZC0ke2Fzc2V0SWR9YDtcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShlbmRJZCkpIHtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMoe1xuICAgICAgICB0eXBlOiAnbWFya2VyJyxcbiAgICAgICAgaWQ6IGVuZElkLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoKSxcbiAgICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgICAgcHJpb3JpdHk6IFdvcmtHcmFwaEJ1aWxkZXIuUFJJT1JJVElFUy5tYXJrZXIsXG4gICAgICAgIG1hcmtlcjogeyB0eXBlOiAnZW5kLWFzc2V0JywgYXNzZXQgfSxcbiAgICAgIH0gc2F0aXNmaWVzIE1hcmtlck5vZGUpO1xuICAgIH1cblxuICAgIC8vIEJ1aWxkIG5vZGUgb25seSBnZXRzIGFkZGVkIG9uY2UgYmVjYXVzZSB0aGV5IGFyZSBhbGwgdGhlIHNhbWVcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShidWlsZElkKSkge1xuICAgICAgY29uc3Qgbm9kZTogQXNzZXRCdWlsZE5vZGUgPSB7XG4gICAgICAgIHR5cGU6ICdhc3NldC1idWlsZCcsXG4gICAgICAgIGlkOiBidWlsZElkLFxuICAgICAgICBub3RlOiBhc3NldC5kaXNwbGF5TmFtZShmYWxzZSksXG4gICAgICAgIGRlcGVuZGVuY2llczogbmV3IFNldChbXG4gICAgICAgICAgLy8gQnVpbGQgZGVwZW5kcyBvbiB0aGUgc3RhcnQgbWVzc2FnZSBoYXZpbmcgYmVlbiBlbWl0dGVkLlxuICAgICAgICAgIHN0YXJ0SWQsXG4gICAgICAgICAgLi4udGhpcy5zdGFja0FydGlmYWN0SWRzKGFzc2V0TWFuaWZlc3RBcnRpZmFjdC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgIC8vIElmIHdlIGRpc2FibGUgcHJlYnVpbGQsIHRoZW4gYXNzZXRzIGluaGVyaXQgKHN0YWNrKSBkZXBlbmRlbmNpZXMgZnJvbSB0aGVpciBwYXJlbnQgc3RhY2tcbiAgICAgICAgICAuLi4hdGhpcy5wcmVidWlsZEFzc2V0cyA/IHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpIDogW10sXG4gICAgICAgIF0pLFxuICAgICAgICBwYXJlbnRTdGFjazogcGFyZW50U3RhY2ssXG4gICAgICAgIGFzc2V0TWFuaWZlc3RBcnRpZmFjdCxcbiAgICAgICAgYXNzZXRNYW5pZmVzdCxcbiAgICAgICAgYXNzZXQsXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVNbJ2Fzc2V0LWJ1aWxkJ10sXG4gICAgICB9O1xuICAgICAgdGhpcy5ncmFwaC5hZGROb2Rlcyhub2RlKTtcbiAgICB9XG5cbiAgICBjb25zdCBwdWJsaXNoTm9kZSA9IHRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShwdWJsaXNoSWQpO1xuICAgIGlmICghcHVibGlzaE5vZGUpIHtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMoe1xuICAgICAgICB0eXBlOiAnYXNzZXQtcHVibGlzaCcsXG4gICAgICAgIGlkOiBwdWJsaXNoSWQsXG4gICAgICAgIG5vdGU6IGFzc2V0LmRpc3BsYXlOYW1lKHRydWUpLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoW1xuICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgIF0pLFxuICAgICAgICBwYXJlbnRTdGFjayxcbiAgICAgICAgYXNzZXRNYW5pZmVzdEFydGlmYWN0LFxuICAgICAgICBhc3NldE1hbmlmZXN0LFxuICAgICAgICBhc3NldCxcbiAgICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgICAgcHJpb3JpdHk6IFdvcmtHcmFwaEJ1aWxkZXIuUFJJT1JJVElFU1snYXNzZXQtcHVibGlzaCddLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEV2ZXJ5IHB1Ymxpc2ggbm9kZSB0aGF0IHdlIGFkZCBtdXN0IGNvbXBsZXRlIGJlZm9yZSB3ZSBmaXJlIHRoZSBcImRvbmUgd2l0aCBwdWJsaXNoaW5nIHRoaXMgYXNzZXRcIiBtZXNzYWdlLlxuICAgICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KGVuZElkLCBwdWJsaXNoSWQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5oZXJpdGVkRGVwIG9mIHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpKSB7XG4gICAgICAvLyBUaGUgYXNzZXQgcHVibGlzaCBzdGVwIGFsc28gZGVwZW5kcyBvbiB0aGUgc3RhY2tzIHRoYXQgdGhlIHBhcmVudCBkZXBlbmRzIG9uLlxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgY29zbWV0aWM6IGlmIHdlIGRvbid0IGRvIHRoaXMsIHRoZSBwcm9ncmVzcyBwcmludGluZyBvZiBhc3NldCBwdWJsaXNoaW5nXG4gICAgICAvLyBpcyBnb2luZyB0byBpbnRlcmZlcmUgd2l0aCB0aGUgcHJvZ3Jlc3MgYmFyIG9mIHRoZSBzdGFjayBkZXBsb3ltZW50LiBXZSBjb3VsZCByZW1vdmUgdGhpc1xuICAgICAgLy8gZm9yIG92ZXJhbGwgZmFzdGVyIGRlcGxveW1lbnRzIGlmIHdlIGV2ZXIgaGF2ZSBhIGJldHRlciBtZXRob2Qgb2YgcHJvZ3Jlc3MgZGlzcGxheWluZy5cbiAgICAgIC8vIE5vdGU6IHRoaXMgbWF5IGludHJvZHVjZSBhIGN5Y2xlIGlmIG9uZSBvZiB0aGUgcGFyZW50J3MgZGVwZW5kZW5jaWVzIGlzIGFub3RoZXIgc3RhY2sgdGhhdFxuICAgICAgLy8gZGVwZW5kcyBvbiB0aGlzIGFzc2V0LiBUbyB3b3JrYXJvdW5kIHRoaXMgd2UgcmVtb3ZlIHRoZXNlIGN5Y2xlcyBvbmNlIGFsbCBub2RlcyBoYXZlXG4gICAgICAvLyBiZWVuIGFkZGVkIHRvIHRoZSBncmFwaC5cbiAgICAgIHRoaXMuZ3JhcGguYWRkRGVwZW5kZW5jeShwdWJsaXNoSWQsIGluaGVyaXRlZERlcCk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyB3aWxsIHdvcmsgd2hldGhlciB0aGUgc3RhY2sgbm9kZSBoYXMgYmVlbiBhZGRlZCB5ZXQgb3Igbm90XG4gICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KGAke3RoaXMuaWRQcmVmaXh9JHtwYXJlbnRTdGFjay5pZH1gLCBwdWJsaXNoSWQpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKTogV29ya0dyYXBoIHtcbiAgICBjb25zdCBwYXJlbnRTdGFja3MgPSBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0cyk7XG5cbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIGFydGlmYWN0cykge1xuICAgICAgaWYgKGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgdGhpcy5hZGRTdGFjayhhcnRpZmFjdCk7XG4gICAgICB9IGVsc2UgaWYgKGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgICAgY29uc3QgbWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21GaWxlKGFydGlmYWN0LmZpbGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgbWFuaWZlc3QuZW50cmllcykge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFN0YWNrID0gcGFyZW50U3RhY2tzLmdldChhcnRpZmFjdCk7XG4gICAgICAgICAgaWYgKHBhcmVudFN0YWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ09ycGhhbmVkQXNzZXRNYW5pZmVzdCcsICdGb3VuZCBhbiBhc3NldCBtYW5pZmVzdCB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzdGFjaycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFkZEFzc2V0KHBhcmVudFN0YWNrLCBhcnRpZmFjdCwgbWFuaWZlc3QsIGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjeGFwaS5OZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QuaXNOZXN0ZWRDbG91ZEFzc2VtYmx5QXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICAgIGNvbnN0IGFzc2VtYmx5ID0gbmV3IGN4YXBpLkNsb3VkQXNzZW1ibHkoYXJ0aWZhY3QuZnVsbFBhdGgsIHsgdG9wb1NvcnQ6IGZhbHNlIH0pO1xuICAgICAgICBjb25zdCBuZXN0ZWRHcmFwaCA9IG5ldyBXb3JrR3JhcGhCdWlsZGVyKFxuICAgICAgICAgIHRoaXMuaW9IZWxwZXIsXG4gICAgICAgICAgdGhpcy5wcmVidWlsZEFzc2V0cyxcbiAgICAgICAgICBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9LmAsXG4gICAgICAgICkuYnVpbGQoYXNzZW1ibHkuYXJ0aWZhY3RzKTtcbiAgICAgICAgdGhpcy5ncmFwaC5hYnNvcmIobmVzdGVkR3JhcGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWdub3JlIHdoYXRldmVyIGVsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoLnJlbW92ZVVuYXZhaWxhYmxlRGVwZW5kZW5jaWVzKCk7XG5cbiAgICAvLyBSZW1vdmUgYW55IHBvdGVudGlhbGx5IGludHJvZHVjZWQgY3ljbGVzIGJldHdlZW4gYXNzZXQgcHVibGlzaGluZyBhbmQgdGhlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGVtLlxuICAgIHRoaXMucmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5ncmFwaDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkcyhkZXBzOiBjeGFwaS5DbG91ZEFydGlmYWN0W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGRlcHMuZmxhdE1hcCgoZCkgPT4gY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGQpID8gW3RoaXMuc3RhY2tBcnRpZmFjdElkKGQpXSA6IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhY2tBcnRpZmFjdElkKGFydGlmYWN0OiBjeGFwaS5DbG91ZEFydGlmYWN0KTogc3RyaW5nIHtcbiAgICBpZiAoIWN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChhcnRpZmFjdCkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ludmFsaWRBcnRpZmFjdFR5cGUnLCBgQ2FuIG9ubHkgY2FsbCB0aGlzIG9uIENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCwgZ290OiAke2FydGlmYWN0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBtYXkgaGF2ZSBhY2NpZGVudGFsbHkgaW50cm9kdWNlZCBjeWNsZXMgaW4gYW4gYXR0ZW1wdCB0byBtYWtlIHRoZSBtZXNzYWdlcyBwcmludGVkIHRvIHRoZVxuICAgKiBjb25zb2xlIG5vdCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyIHRvbyBtdWNoLiBSZW1vdmUgdGhlbSBhZ2Fpbi5cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlU3RhY2tQdWJsaXNoQ3ljbGVzKCkge1xuICAgIGNvbnN0IHB1Ymxpc2hTdGVwcyA9IHRoaXMuZ3JhcGgubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcbiAgICBmb3IgKGNvbnN0IHB1Ymxpc2hTdGVwIG9mIHB1Ymxpc2hTdGVwcykge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgcHVibGlzaFN0ZXAuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXBoLnJlYWNoYWJsZShkZXAsIHB1Ymxpc2hTdGVwLmlkKSkge1xuICAgICAgICAgIHB1Ymxpc2hTdGVwLmRlcGVuZGVuY2llcy5kZWxldGUoZGVwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdGFja3NGcm9tQXNzZXRzKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKSB7XG4gIGNvbnN0IHJldCA9IG5ldyBNYXA8Y3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KCk7XG4gIGZvciAoY29uc3Qgc3RhY2sgb2YgYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSkpIHtcbiAgICBjb25zdCBhc3NldEFydGlmYWN0cyA9IHN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoKHgpID0+IGN4YXBpLkFzc2V0TWFuaWZlc3RBcnRpZmFjdC5pc0Fzc2V0TWFuaWZlc3RBcnRpZmFjdCh4KSk7XG4gICAgZm9yIChjb25zdCBhcnQgb2YgYXNzZXRBcnRpZmFjdHMpIHtcbiAgICAgIHJldC5zZXQoYXJ0LCBzdGFjayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25seVN0YWNrcyhhcnRpZmFjdHM6IGN4YXBpLkNsb3VkQXJ0aWZhY3RbXSkge1xuICByZXR1cm4gYXJ0aWZhY3RzLmZpbHRlcih4ID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCh4KSk7XG59XG5cbiJdfQ==
@@ -1,11 +1,44 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.provideContextValues = provideContextValues;
4
37
  exports.registerContextProvider = registerContextProvider;
5
38
  exports.registerPluginContextProvider = registerPluginContextProvider;
6
39
  exports.registerContextProviderFactory = registerContextProviderFactory;
7
40
  const cloud_assembly_api_1 = require("@aws-cdk/cloud-assembly-api");
8
- const cxschema = require("@aws-cdk/cloud-assembly-schema");
41
+ const cxschema = __importStar(require("@aws-cdk/cloud-assembly-schema"));
9
42
  const ami_1 = require("./ami");
10
43
  const availability_zones_1 = require("./availability-zones");
11
44
  const cc_api_provider_1 = require("./cc-api-provider");
@@ -127,4 +160,4 @@ const availableContextProviders = {
127
160
  [cxschema.ContextProvider.KEY_PROVIDER]: (s, io) => new keys_1.KeyContextProviderPlugin(s, io),
128
161
  [cxschema.ContextProvider.CC_API_PROVIDER]: (s) => new cc_api_provider_1.CcApiContextProviderPlugin(s),
129
162
  };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFFQSxvREEwREM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF6SkQsb0VBQW1GO0FBQ25GLDJEQUEyRDtBQUMzRCwrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFFekQsNENBQXVEO0FBQ3ZELG9EQUE0RDtBQUM1RCwrQ0FBdUM7QUFHdkMsNERBQWdFO0FBQ2hFLGtDQUE2QztBQUs3QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQW1CeEMsTUFBTSx1QkFBdUI7SUFDVixRQUFRLENBQVc7SUFDbkIsWUFBWSxDQUFTO0lBRXRDLFlBQW1CLFFBQWtCLEVBQUUsWUFBb0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsYUFBd0MsRUFDeEMsR0FBZ0IsRUFDaEIsVUFBc0IsRUFDdEIsUUFBa0I7SUFFbEIsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQztJQUU1QyxLQUFLLE1BQU0sY0FBYyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQzNDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUM7UUFFL0IsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU07WUFDOUUsQ0FBQyxDQUFDLEdBQUcsc0JBQXNCLElBQUssY0FBYyxDQUFDLEtBQXFDLENBQUMsVUFBVSxFQUFFO1lBQ2pHLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBRTVCLElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsc0JBQXNCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLDhDQUE4QztnQkFDOUMsTUFBTSxJQUFJLG9DQUFvQixDQUFDLG9CQUFvQixFQUFFLDhDQUE4QyxjQUFjLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNqSSxDQUFDO1lBQ0QsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsOENBQThDO2dCQUM5QyxNQUFNLElBQUksb0NBQW9CLENBQUMsc0JBQXNCLEVBQUUsdUNBQXVDLGNBQWMsQ0FBQyxRQUFRLHVGQUF1RixDQUFDLENBQUM7WUFDaE4sQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksdUJBQXVCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFbkYsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU07Z0JBQzdFLENBQUMsQ0FBQyxxQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2xGLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFZCxNQUFNLG1CQUFtQixHQUFnQixXQUFXO2dCQUNsRCxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBRTdDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxvQ0FBc0IsRUFBQztnQkFDeEMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYTthQUNsRCxFQUFFLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRTdCLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLHFFQUFxRTtZQUNyRSxzQ0FBc0M7WUFDdEMsS0FBSyxHQUFHLEVBQUUsQ0FBQyx1Q0FBa0IsQ0FBQyxFQUFFLElBQUEseUJBQWtCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQywrQkFBcUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3pGLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLGdCQUFnQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFZLEVBQUUsUUFBK0I7SUFDbkYseUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsSUFBWSxFQUFFLFFBQStCO0lBQ3pGLHVCQUF1QixDQUFDLEdBQUcsc0JBQXNCLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxJQUFZLEVBQUUsUUFBZ0M7SUFDM0YseUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLHlCQUF5QixHQUFnQjtJQUM3QyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksNENBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNwRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUkseUNBQXdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNqRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksOENBQStCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN0RyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLHNDQUErQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDOUYsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSw4QkFBd0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3ZGLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQywyQ0FBMkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSw0RUFBc0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3BJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG9EQUFrQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxrREFBaUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksMERBQXlDLENBQUMsQ0FBQyxDQUFDO0lBQ25ILENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksK0JBQXdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN2RixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksNENBQTBCLENBQUMsQ0FBQyxDQUFDO0NBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50VXRpbHMsIFBST1ZJREVSX0VSUk9SX0tFWSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hbWknO1xuaW1wb3J0IHsgQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2F2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vY2MtYXBpLXByb3ZpZGVyJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9lbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9ob3N0ZWQtem9uZXMnO1xuaW1wb3J0IHsgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9rZXlzJztcbmltcG9ydCB7IExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2xvYWQtYmFsYW5jZXJzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NzbS1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3ZwY3MnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IFRSQU5TSUVOVF9DT05URVhUX0tFWSB9IGZyb20gJy4uL2FwaS9jb250ZXh0JztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9hcGkvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0LCBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWwnO1xuXG50eXBlIENvbnRleHRQcm92aWRlckZhY3RvcnkgPSAoKHNkazogU2RrUHJvdmlkZXIsIGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpID0+IENvbnRleHRQcm92aWRlclBsdWdpbik7XG50eXBlIFByb3ZpZGVyTWFwID0geyBbbmFtZTogc3RyaW5nXTogQ29udGV4dFByb3ZpZGVyRmFjdG9yeSB9O1xuXG5jb25zdCBQTFVHSU5fUFJPVklERVJfUFJFRklYID0gJ3BsdWdpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIHtcbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGlzIHByZXNlbnRlZCB0byB1c2VycyBpbiBub3JtYWwgbW9kZSBvZiBvcGVyYXRpb24uXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIHNwYXJpbmdseS4gVGhlIENvbnRleHQgUHJvdmlkZXIgZnJhbWV3b3JrIGFscmVhZHkgcHJvdmlkZXMgdXNlZnVsIG91dHB1dCBieSBkZWZhdWx0LlxuICAgKiBUaGlzIGNhbiBiZSB1c2VzIGluIGV4Y2VwdGlvbmFsbHkgc2l0dWF0aW9ucywgZS5nLiBpZiBhIGxvb2t1cCBjYWxsIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBsb25nIHRpbWUuXG4gICAqL1xuICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGhlbHBzIHVzZXJzIGRlYnVnZ2luZyB0aGUgY29udGV4dCBwcm92aWRlci5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgaW4gbW9zdCBjYXNlcyB0byBub3RlIG9uIGN1cnJlbnQgYWN0aW9uLlxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuY2xhc3MgQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgaW1wbGVtZW50cyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBwcm92aWRlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAzMDAubXNnKG1lc3NhZ2UsIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMS5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBtaXNzaW5nIGNvbnRleHQgdmFsdWVzIGFuZCBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHByb3ZpZGVycyBmcm9tIHRoZSBtYXAgdG8gcmV0cmlldmUgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gIG1pc3NpbmdWYWx1ZXM6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0W10sXG4gIHNkazogU2RrUHJvdmlkZXIsXG4gIHBsdWdpbkhvc3Q6IFBsdWdpbkhvc3QsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgdXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IG1pc3NpbmdDb250ZXh0IG9mIG1pc3NpbmdWYWx1ZXMpIHtcbiAgICBjb25zdCBrZXkgPSBtaXNzaW5nQ29udGV4dC5rZXk7XG5cbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBtaXNzaW5nQ29udGV4dC5wcm92aWRlciA9PT0gY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlBMVUdJTlxuICAgICAgPyBgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTokeyhtaXNzaW5nQ29udGV4dC5wcm9wcyBhcyBjeHNjaGVtYS5QbHVnaW5Db250ZXh0UXVlcnkpLnBsdWdpbk5hbWV9YFxuICAgICAgOiBtaXNzaW5nQ29udGV4dC5wcm92aWRlcjtcblxuICAgIGxldCBmYWN0b3J5O1xuICAgIGlmIChwcm92aWRlck5hbWUuc3RhcnRzV2l0aChgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTpgKSkge1xuICAgICAgY29uc3QgcGx1Z2luID0gcGx1Z2luSG9zdC5jb250ZXh0UHJvdmlkZXJQbHVnaW5zW3Byb3ZpZGVyTmFtZS5zdWJzdHJpbmcoUExVR0lOX1BST1ZJREVSX1BSRUZJWC5sZW5ndGggKyAxKV07XG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignVW5yZWNvZ25pemVkUGx1Z2luJywgYFVucmVjb2duaXplZCBwbHVnaW4gY29udGV4dCBwcm92aWRlciBuYW1lOiAke21pc3NpbmdDb250ZXh0LnByb3ZpZGVyfS5gKTtcbiAgICAgIH1cbiAgICAgIGZhY3RvcnkgPSAoKSA9PiBwbHVnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZhY3RvcnkgPSBhdmFpbGFibGVDb250ZXh0UHJvdmlkZXJzW3Byb3ZpZGVyTmFtZV07XG4gICAgICBpZiAoIWZhY3RvcnkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBzdHlsaXN0aWMvbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1VucmVjb2duaXplZFByb3ZpZGVyJywgYFVucmVjb2duaXplZCBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LiBZb3UgbWlnaHQgbmVlZCB0byB1cGRhdGUgdGhlIHRvb2xraXQgdG8gbWF0Y2ggdGhlIHZlcnNpb24gb2YgdGhlIGNvbnN0cnVjdCBsaWJyYXJ5LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyID0gZmFjdG9yeShzZGssIG5ldyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyhpb0hlbHBlciwgcHJvdmlkZXJOYW1lKSk7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gbWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCAmJiBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb25cbiAgICAgICAgPyBFbnZpcm9ubWVudFV0aWxzLm1ha2UobWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCwgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgICA/IGF3YWl0IHNkay5yZXNvbHZlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQpXG4gICAgICAgIDogeyBhY2NvdW50OiAnPycsIHJlZ2lvbjogJz8nLCBuYW1lOiAnPycgfTtcblxuICAgICAgY29uc3QgYXJucyA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgICBsb29rdXBSb2xlQXJuOiBtaXNzaW5nQ29udGV4dC5wcm9wcy5sb29rdXBSb2xlQXJuLFxuICAgICAgfSwgcmVzb2x2ZWRFbnZpcm9ubWVudCwgc2RrKTtcblxuICAgICAgdmFsdWUgPSBhd2FpdCBwcm92aWRlci5nZXRWYWx1ZSh7IC4uLm1pc3NpbmdDb250ZXh0LnByb3BzLCBsb29rdXBSb2xlQXJuOiBhcm5zLmxvb2t1cFJvbGVBcm4gfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBTZXQgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHByb3ZpZGVyIHZhbHVlIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWRcbiAgICAgIC8vIGFzIGEgbG9va3VwIGZhaWx1cmUgaW4gdGhlIHRvb2xraXQuXG4gICAgICB2YWx1ZSA9IHsgW1BST1ZJREVSX0VSUk9SX0tFWV06IGZvcm1hdEVycm9yTWVzc2FnZShlKSwgW1RSQU5TSUVOVF9DT05URVhUX0tFWV06IHRydWUgfTtcbiAgICB9XG4gICAgdXBkYXRlc1trZXldID0gdmFsdWU7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYFNldHRpbmcgXCIke2tleX1cIiBjb250ZXh0IHRvICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZXM7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGNhbm5vdCByZXVzZSB0aGUgU0RLcyBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogQ29udGV4dFByb3ZpZGVyUGx1Z2luKSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSAoKSA9PiBwcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBwbHVnaW4gcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHtuYW1lfWAsIHByb3ZpZGVyKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXIgZmFjdG9yeVxuICpcbiAqIEEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5IHRha2VzIGFuIFNka1Byb3ZpZGVyIGFuZCByZXR1cm5zIHRoZSBjb250ZXh0IHByb3ZpZGVyIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyRmFjdG9yeShuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5KSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSBwcm92aWRlcjtcbn1cblxuY29uc3QgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyczogUHJvdmlkZXJNYXAgPSB7XG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU1NNX1BBUkFNRVRFUl9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuSE9TVEVEX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5WUENfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBWcGNOZXR3b3JrQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BTUlfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU0VDVVJJVFlfR1JPVVBfUFJPVklERVJdOiAocykgPT4gbmV3IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkxPQURfQkFMQU5DRVJfTElTVEVORVJfUFJPVklERVJdOiAocykgPT4gbmV3IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLktFWV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEtleUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSXTogKHMpID0+IG5ldyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbn07XG4iXX0=
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFFQSxvREEwREM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF6SkQsb0VBQW1GO0FBQ25GLHlFQUEyRDtBQUMzRCwrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFFekQsNENBQXVEO0FBQ3ZELG9EQUE0RDtBQUM1RCwrQ0FBdUM7QUFHdkMsNERBQWdFO0FBQ2hFLGtDQUE2QztBQUs3QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQW1CeEMsTUFBTSx1QkFBdUI7SUFDVixRQUFRLENBQVc7SUFDbkIsWUFBWSxDQUFTO0lBRXRDLFlBQW1CLFFBQWtCLEVBQUUsWUFBb0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxD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Q0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksNENBQTBCLENBQUMsQ0FBQyxDQUFDO0NBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudmlyb25tZW50IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IEVudmlyb25tZW50VXRpbHMsIFBST1ZJREVSX0VSUk9SX0tFWSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LWFwaSc7XG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hbWknO1xuaW1wb3J0IHsgQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2F2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vY2MtYXBpLXByb3ZpZGVyJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9lbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9ob3N0ZWQtem9uZXMnO1xuaW1wb3J0IHsgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9rZXlzJztcbmltcG9ydCB7IExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2xvYWQtYmFsYW5jZXJzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NzbS1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3ZwY3MnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IFRSQU5TSUVOVF9DT05URVhUX0tFWSB9IGZyb20gJy4uL2FwaS9jb250ZXh0JztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9hcGkvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0LCBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWwnO1xuXG50eXBlIENvbnRleHRQcm92aWRlckZhY3RvcnkgPSAoKHNkazogU2RrUHJvdmlkZXIsIGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpID0+IENvbnRleHRQcm92aWRlclBsdWdpbik7XG50eXBlIFByb3ZpZGVyTWFwID0geyBbbmFtZTogc3RyaW5nXTogQ29udGV4dFByb3ZpZGVyRmFjdG9yeSB9O1xuXG5jb25zdCBQTFVHSU5fUFJPVklERVJfUFJFRklYID0gJ3BsdWdpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIHtcbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGlzIHByZXNlbnRlZCB0byB1c2VycyBpbiBub3JtYWwgbW9kZSBvZiBvcGVyYXRpb24uXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIHNwYXJpbmdseS4gVGhlIENvbnRleHQgUHJvdmlkZXIgZnJhbWV3b3JrIGFscmVhZHkgcHJvdmlkZXMgdXNlZnVsIG91dHB1dCBieSBkZWZhdWx0LlxuICAgKiBUaGlzIGNhbiBiZSB1c2VzIGluIGV4Y2VwdGlvbmFsbHkgc2l0dWF0aW9ucywgZS5nLiBpZiBhIGxvb2t1cCBjYWxsIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBsb25nIHRpbWUuXG4gICAqL1xuICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGhlbHBzIHVzZXJzIGRlYnVnZ2luZyB0aGUgY29udGV4dCBwcm92aWRlci5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgaW4gbW9zdCBjYXNlcyB0byBub3RlIG9uIGN1cnJlbnQgYWN0aW9uLlxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuY2xhc3MgQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgaW1wbGVtZW50cyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBwcm92aWRlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAzMDAubXNnKG1lc3NhZ2UsIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMS5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBtaXNzaW5nIGNvbnRleHQgdmFsdWVzIGFuZCBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHByb3ZpZGVycyBmcm9tIHRoZSBtYXAgdG8gcmV0cmlldmUgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gIG1pc3NpbmdWYWx1ZXM6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0W10sXG4gIHNkazogU2RrUHJvdmlkZXIsXG4gIHBsdWdpbkhvc3Q6IFBsdWdpbkhvc3QsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgdXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IG1pc3NpbmdDb250ZXh0IG9mIG1pc3NpbmdWYWx1ZXMpIHtcbiAgICBjb25zdCBrZXkgPSBtaXNzaW5nQ29udGV4dC5rZXk7XG5cbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBtaXNzaW5nQ29udGV4dC5wcm92aWRlciA9PT0gY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlBMVUdJTlxuICAgICAgPyBgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTokeyhtaXNzaW5nQ29udGV4dC5wcm9wcyBhcyBjeHNjaGVtYS5QbHVnaW5Db250ZXh0UXVlcnkpLnBsdWdpbk5hbWV9YFxuICAgICAgOiBtaXNzaW5nQ29udGV4dC5wcm92aWRlcjtcblxuICAgIGxldCBmYWN0b3J5O1xuICAgIGlmIChwcm92aWRlck5hbWUuc3RhcnRzV2l0aChgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTpgKSkge1xuICAgICAgY29uc3QgcGx1Z2luID0gcGx1Z2luSG9zdC5jb250ZXh0UHJvdmlkZXJQbHVnaW5zW3Byb3ZpZGVyTmFtZS5zdWJzdHJpbmcoUExVR0lOX1BST1ZJREVSX1BSRUZJWC5sZW5ndGggKyAxKV07XG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignVW5yZWNvZ25pemVkUGx1Z2luJywgYFVucmVjb2duaXplZCBwbHVnaW4gY29udGV4dCBwcm92aWRlciBuYW1lOiAke21pc3NpbmdDb250ZXh0LnByb3ZpZGVyfS5gKTtcbiAgICAgIH1cbiAgICAgIGZhY3RvcnkgPSAoKSA9PiBwbHVnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZhY3RvcnkgPSBhdmFpbGFibGVDb250ZXh0UHJvdmlkZXJzW3Byb3ZpZGVyTmFtZV07XG4gICAgICBpZiAoIWZhY3RvcnkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBzdHlsaXN0aWMvbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoJ1VucmVjb2duaXplZFByb3ZpZGVyJywgYFVucmVjb2duaXplZCBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LiBZb3UgbWlnaHQgbmVlZCB0byB1cGRhdGUgdGhlIHRvb2xraXQgdG8gbWF0Y2ggdGhlIHZlcnNpb24gb2YgdGhlIGNvbnN0cnVjdCBsaWJyYXJ5LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyID0gZmFjdG9yeShzZGssIG5ldyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyhpb0hlbHBlciwgcHJvdmlkZXJOYW1lKSk7XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gbWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCAmJiBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb25cbiAgICAgICAgPyBFbnZpcm9ubWVudFV0aWxzLm1ha2UobWlzc2luZ0NvbnRleHQucHJvcHMuYWNjb3VudCwgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRFbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICAgICAgICA/IGF3YWl0IHNkay5yZXNvbHZlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQpXG4gICAgICAgIDogeyBhY2NvdW50OiAnPycsIHJlZ2lvbjogJz8nLCBuYW1lOiAnPycgfTtcblxuICAgICAgY29uc3QgYXJucyA9IGF3YWl0IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMoe1xuICAgICAgICBsb29rdXBSb2xlQXJuOiBtaXNzaW5nQ29udGV4dC5wcm9wcy5sb29rdXBSb2xlQXJuLFxuICAgICAgfSwgcmVzb2x2ZWRFbnZpcm9ubWVudCwgc2RrKTtcblxuICAgICAgdmFsdWUgPSBhd2FpdCBwcm92aWRlci5nZXRWYWx1ZSh7IC4uLm1pc3NpbmdDb250ZXh0LnByb3BzLCBsb29rdXBSb2xlQXJuOiBhcm5zLmxvb2t1cFJvbGVBcm4gfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBTZXQgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHByb3ZpZGVyIHZhbHVlIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWRcbiAgICAgIC8vIGFzIGEgbG9va3VwIGZhaWx1cmUgaW4gdGhlIHRvb2xraXQuXG4gICAgICB2YWx1ZSA9IHsgW1BST1ZJREVSX0VSUk9SX0tFWV06IGZvcm1hdEVycm9yTWVzc2FnZShlKSwgW1RSQU5TSUVOVF9DT05URVhUX0tFWV06IHRydWUgfTtcbiAgICB9XG4gICAgdXBkYXRlc1trZXldID0gdmFsdWU7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYFNldHRpbmcgXCIke2tleX1cIiBjb250ZXh0IHRvICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZXM7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGNhbm5vdCByZXVzZSB0aGUgU0RLcyBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogQ29udGV4dFByb3ZpZGVyUGx1Z2luKSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSAoKSA9PiBwcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBwbHVnaW4gcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHtuYW1lfWAsIHByb3ZpZGVyKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXIgZmFjdG9yeVxuICpcbiAqIEEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5IHRha2VzIGFuIFNka1Byb3ZpZGVyIGFuZCByZXR1cm5zIHRoZSBjb250ZXh0IHByb3ZpZGVyIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyRmFjdG9yeShuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5KSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSBwcm92aWRlcjtcbn1cblxuY29uc3QgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyczogUHJvdmlkZXJNYXAgPSB7XG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU1NNX1BBUkFNRVRFUl9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuSE9TVEVEX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5WUENfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBWcGNOZXR3b3JrQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BTUlfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU0VDVVJJVFlfR1JPVVBfUFJPVklERVJdOiAocykgPT4gbmV3IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkxPQURfQkFMQU5DRVJfTElTVEVORVJfUFJPVklERVJdOiAocykgPT4gbmV3IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLktFWV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEtleUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSXTogKHMpID0+IG5ldyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbn07XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import type { ActivityPrinterProps } from './base';
2
2
  import { ActivityPrinterBase } from './base';
3
+ import type { StackActivity } from '../../payloads';
3
4
  /**
4
5
  * Activity Printer which shows the resources currently being updated
5
6
  *
@@ -18,8 +19,26 @@ export declare class CurrentActivityPrinter extends ActivityPrinterBase {
18
19
  * Continuously write to the same output block.
19
20
  */
20
21
  private block;
22
+ /**
23
+ * Resources that completed but are still stabilizing (Express Mode), keyed by
24
+ * logical ID. These are shown transiently and removed once `disappearsAt` has
25
+ * passed
26
+ */
27
+ private readonly stabilizing;
21
28
  constructor(props: ActivityPrinterProps);
29
+ protected addActivity(activity: StackActivity): void;
30
+ /**
31
+ * Whether this event should surface its Express Mode stabilization reason in
32
+ * the live view. Only CREATE/UPDATE completions are shown.
33
+ */
34
+ private showsStabilization;
22
35
  protected print(): void;
36
+ /**
37
+ * Reason to append to the resource line: the failure reason (on its own line)
38
+ * for error events, or the stabilization reason (inline) for resources that
39
+ * completed but are still stabilizing (Express Mode).
40
+ */
41
+ private reason;
23
42
  stop(): void;
24
43
  private progressBar;
25
44
  private failureReasonOnNextLine;