@aws-cdk/toolkit-lib 0.3.6 → 0.3.7

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 (53) hide show
  1. package/build-info.json +2 -2
  2. package/db.json.gz +0 -0
  3. package/lib/actions/destroy/index.d.ts +4 -2
  4. package/lib/actions/destroy/index.js +1 -1
  5. package/lib/actions/diff/index.d.ts +3 -1
  6. package/lib/actions/diff/index.js +1 -1
  7. package/lib/actions/rollback/index.d.ts +3 -1
  8. package/lib/actions/rollback/index.js +1 -1
  9. package/lib/api/aws-auth/awscli-compatible.d.ts +1 -1
  10. package/lib/api/aws-auth/awscli-compatible.js +7 -9
  11. package/lib/api/diff/diff-formatter.d.ts +0 -6
  12. package/lib/api/diff/diff-formatter.js +2 -9
  13. package/lib/api/index.d.ts +0 -1
  14. package/lib/api/index.js +1 -2
  15. package/lib/api/io/private/index.d.ts +0 -1
  16. package/lib/api/io/private/index.js +1 -2
  17. package/lib/api/io/private/io-default-messages.d.ts +7 -7
  18. package/lib/api/io/private/io-default-messages.js +19 -19
  19. package/lib/api/io/private/io-helper.d.ts +5 -0
  20. package/lib/api/io/private/io-helper.js +7 -1
  21. package/lib/api/io/private/message-maker.d.ts +5 -1
  22. package/lib/api/io/private/message-maker.js +21 -1
  23. package/lib/api/io/private/messages.d.ts +2 -1
  24. package/lib/api/io/private/messages.js +6 -1
  25. package/lib/api/notices/cached-data-source.d.ts +3 -3
  26. package/lib/api/notices/cached-data-source.js +8 -8
  27. package/lib/api/notices/filter.d.ts +4 -4
  28. package/lib/api/notices/filter.js +27 -24
  29. package/lib/api/notices/notices.d.ts +1 -2
  30. package/lib/api/notices/notices.js +4 -6
  31. package/lib/api/plugin/plugin.d.ts +1 -1
  32. package/lib/api/plugin/plugin.js +3 -3
  33. package/lib/api/tree.d.ts +1 -1
  34. package/lib/api/tree.js +3 -3
  35. package/lib/index_bg.wasm +0 -0
  36. package/lib/payloads/index.d.ts +1 -1
  37. package/lib/payloads/index.js +2 -2
  38. package/lib/payloads/{sdk-trace.d.ts → sdk.d.ts} +10 -0
  39. package/lib/payloads/sdk.js +3 -0
  40. package/lib/payloads/types.d.ts +11 -0
  41. package/lib/payloads/types.js +1 -1
  42. package/lib/toolkit/toolkit.d.ts +5 -5
  43. package/lib/toolkit/toolkit.js +12 -12
  44. package/package.json +11 -11
  45. package/lib/api/io/private/testing/fake-io-host.d.ts +0 -28
  46. package/lib/api/io/private/testing/fake-io-host.js +0 -41
  47. package/lib/api/io/private/testing/index.d.ts +0 -2
  48. package/lib/api/io/private/testing/index.js +0 -19
  49. package/lib/api/io/private/testing/test-io-host.d.ts +0 -27
  50. package/lib/api/io/private/testing/test-io-host.js +0 -61
  51. package/lib/api/require-approval.d.ts +0 -17
  52. package/lib/api/require-approval.js +0 -22
  53. package/lib/payloads/sdk-trace.js +0 -3
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2025-05-16T08:26:31Z by build-info.sh",
3
- "commit": "66e0b2d"
2
+ "comment": "Generated at 2025-05-21T09:27:47Z by build-info.sh",
3
+ "commit": "6de56b2"
4
4
  }
package/db.json.gz CHANGED
Binary file
@@ -2,10 +2,12 @@ import type { StackSelector } from '../../api/cloud-assembly';
2
2
  export interface DestroyOptions {
3
3
  /**
4
4
  * Criteria for selecting stacks to deploy
5
+ *
6
+ * @default - all stacks
5
7
  */
6
- readonly stacks: StackSelector;
8
+ readonly stacks?: StackSelector;
7
9
  /**
8
- * The arn of the IAM role to use
10
+ * The arn of the IAM role to use for the stack destroy operation
9
11
  */
10
12
  readonly roleArn?: string;
11
13
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogVGhlIGFybiBvZiB0aGUgSUFNIHJvbGUgdG8gdXNlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIG9mIHRoZSBJQU0gcm9sZSB0byB1c2UgZm9yIHRoZSBzdGFjayBkZXN0cm95IG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcbn1cbiJdfQ==
@@ -60,8 +60,10 @@ export declare class DiffMethod {
60
60
  export interface DiffOptions {
61
61
  /**
62
62
  * Select the stacks
63
+ *
64
+ * @default - all stacks
63
65
  */
64
- readonly stacks: StackSelector;
66
+ readonly stacks?: StackSelector;
65
67
  /**
66
68
  * The method to create a stack diff.
67
69
  *
@@ -45,4 +45,4 @@ class DiffMethod {
45
45
  }
46
46
  }
47
47
  exports.DiffMethod = DiffMethod;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRmlsZURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGxvY2FsIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgbG9jYWwgdGVtcGxhdGUgZmlsZSB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMb2NhbEZpbGUocGF0aDogc3RyaW5nKTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH07XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogTG9jYWxGaWxlRGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2xvY2FsLWZpbGUnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KHsgcGF0aCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnIHwgJ3RlbXBsYXRlLW9ubHknIHwgJ2xvY2FsLWZpbGUnLFxuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBDaGFuZ2VTZXREaWZmT3B0aW9ucyB8IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMgfCBMb2NhbEZpbGVEaWZmT3B0aW9ucyxcbiAgKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpbnMgZm9yIHRoZSBkaWZmIG1ldGhvZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gY3JlYXRlIGEgc3RhY2sgZGlmZi5cbiAgICpcbiAgICogVXNlIGNoYW5nZXNldCBkaWZmIGZvciB0aGUgaGlnaGVzdCBmaWRlbGl0eSwgaW5jbHVkaW5nIGFuYWx5emUgcmVzb3VyY2UgcmVwbGFjZW1lbnRzLlxuICAgKiBJbiB0aGlzIG1ldGhvZCwgZGlmZiB3aWxsIHVzZSB0aGUgZGVwbG95IHJvbGUgaW5zdGVhZCBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIFVzZSB0ZW1wbGF0ZS1vbmx5IGRpZmYgZm9yIGEgZmFzdGVyLCBsZXNzIGFjY3VyYXRlIGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogcGVybWlzc2lvbnMgdG8gY3JlYXRlIGEgY2hhbmdlLXNldC5cbiAgICpcbiAgICogVXNlIGxvY2FsLXRlbXBsYXRlIGRpZmYgZm9yIGEgZmFzdCwgbG9jYWwtb25seSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIGFueSBwZXJtaXNzaW9ucyBvciBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IERpZmZNZXRob2QuQ2hhbmdlU2V0XG4gICAqL1xuICByZWFkb25seSBtZXRob2Q/OiBEaWZmTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdHJpY3QgZGlmZiBtb2RlXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSByZXNvdXJjZXMsIG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIG9yIHRoZSBDaGVja0Jvb3RzdHJhcFZlcnNpb25SdWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgbGluZXMgb2YgY29udGV4dCB0byBzaG93IGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogT25seSBpbmNsdWRlIGJyb2FkZW5lZCBzZWN1cml0eSBjaGFuZ2VzIGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIGltcGxlbWVudCBpbiBJb0hvc3RcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5T25seT86IGJvb2xlYW47XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRmlsZURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGxvY2FsIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgbG9jYWwgdGVtcGxhdGUgZmlsZSB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMb2NhbEZpbGUocGF0aDogc3RyaW5nKTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH07XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogTG9jYWxGaWxlRGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2xvY2FsLWZpbGUnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KHsgcGF0aCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnIHwgJ3RlbXBsYXRlLW9ubHknIHwgJ2xvY2FsLWZpbGUnLFxuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBDaGFuZ2VTZXREaWZmT3B0aW9ucyB8IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMgfCBMb2NhbEZpbGVEaWZmT3B0aW9ucyxcbiAgKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpbnMgZm9yIHRoZSBkaWZmIG1ldGhvZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlbGVjdCB0aGUgc3RhY2tzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB0byBjcmVhdGUgYSBzdGFjayBkaWZmLlxuICAgKlxuICAgKiBVc2UgY2hhbmdlc2V0IGRpZmYgZm9yIHRoZSBoaWdoZXN0IGZpZGVsaXR5LCBpbmNsdWRpbmcgYW5hbHl6ZSByZXNvdXJjZSByZXBsYWNlbWVudHMuXG4gICAqIEluIHRoaXMgbWV0aG9kLCBkaWZmIHdpbGwgdXNlIHRoZSBkZXBsb3kgcm9sZSBpbnN0ZWFkIG9mIHRoZSBsb29rdXAgcm9sZS5cbiAgICpcbiAgICogVXNlIHRlbXBsYXRlLW9ubHkgZGlmZiBmb3IgYSBmYXN0ZXIsIGxlc3MgYWNjdXJhdGUgZGlmZiB0aGF0IGRvZXNuJ3QgcmVxdWlyZVxuICAgKiBwZXJtaXNzaW9ucyB0byBjcmVhdGUgYSBjaGFuZ2Utc2V0LlxuICAgKlxuICAgKiBVc2UgbG9jYWwtdGVtcGxhdGUgZGlmZiBmb3IgYSBmYXN0LCBsb2NhbC1vbmx5IGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogYW55IHBlcm1pc3Npb25zIG9yIGludGVybmV0IGFjY2Vzcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRGlmZk1ldGhvZC5DaGFuZ2VTZXRcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZD86IERpZmZNZXRob2Q7XG5cbiAgLyoqXG4gICAqIFN0cmljdCBkaWZmIG1vZGVcbiAgICogV2hlbiBlbmFibGVkLCB0aGlzIHdpbGwgbm90IGZpbHRlciBvdXQgQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlcywgbWFuZ2xlZCBub24tQVNDSUkgY2hhcmFjdGVycywgb3IgdGhlIENoZWNrQm9vdHN0cmFwVmVyc2lvblJ1bGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdHJpY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgbWFueSBsaW5lcyBvZiBjb250ZXh0IHRvIHNob3cgaW4gdGhlIGRpZmZcbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dExpbmVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBPbmx5IGluY2x1ZGUgYnJvYWRlbmVkIHNlY3VyaXR5IGNoYW5nZXMgaW4gdGhlIGRpZmZcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgaW1wbGVtZW50IGluIElvSG9zdFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlPbmx5PzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -2,8 +2,10 @@ import type { StackSelector } from '../../api/cloud-assembly';
2
2
  export interface RollbackOptions {
3
3
  /**
4
4
  * Criteria for selecting stacks to rollback
5
+ *
6
+ * @default - all stacks
5
7
  */
6
- readonly stacks: StackSelector;
8
+ readonly stacks?: StackSelector;
7
9
  /**
8
10
  * Role to pass to CloudFormation for deployment
9
11
  *
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBSb2xsYmFja09wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gcm9sbGJhY2tcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogUm9sZSB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBzdGFjayByb2xlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgb3JwaGFuIHJlc291cmNlcyB0aGF0IGZhaWxlZCB0aGUgcm9sbGJhY2sgb3Igbm90XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5GYWlsZWRSZXNvdXJjZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb2dpY2FsIElEcyBvZiByZXNvdXJjZXMgdG8gb3JwaGFuXG4gICAqXG4gICAqIFRoZXNlIHJlc291cmNlcyB3aWxsIGJlIHNraXBwZWQgZnJvbSB0aGUgcm9sbCBiYWNrLlxuICAgKiBTcGVjaWZ5IHRoaXMgcHJvcGVydHkgdG8gb3JwaGFuIHJlc291cmNlcyB0aGF0IGNhbid0IGJlIHN1Y2Nlc3NmdWxseSByb2xsZWQgYmFjay5cbiAgICogV2UgcmVjb21tZW5kIHRoYXQgeW91IHRyb3VibGVzaG9vdCByZXNvdXJjZXMgYmVmb3JlIHNraXBwaW5nIHRoZW0uXG4gICAqIEFmdGVyIHRoZSByb2xsYmFjayBpcyBjb21wbGV0ZSwgdGhlIHN0YXRlIG9mIHRoZSBza2lwcGVkIHJlc291cmNlcyB3aWxsIGJlIGluY29uc2lzdGVudCB3aXRoXG4gICAqIHRoZSBzdGF0ZSBvZiB0aGUgcmVzb3VyY2VzIGluIHRoZSBzdGFjay4gQmVmb3JlIHBlcmZvcm1pbmcgYW5vdGhlciBzdGFjayB1cGRhdGUsXG4gICAqIHlvdSBtdXN0IHVwZGF0ZSB0aGUgc3RhY2sgb3IgcmVzb3VyY2VzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBlYWNoIG90aGVyLiBJZiB5b3UgZG9uJ3RcbiAgICogc3Vic2VxdWVudCBzdGFjayB1cGRhdGVzIG1pZ2h0IGZhaWwsIGFuZCB0aGUgc3RhY2sgd2lsbCBiZWNvbWUgdW5yZWNvdmVyYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyByZXNvdXJjZXMgYXJlIG9ycGhhbmVkXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5Mb2dpY2FsSWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmFsaWRhdGUgdGhlIHZlcnNpb24gb2YgdGhlIGJvb3RzdHJhcCBzdGFjayBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZUJvb3RzdHJhcFN0YWNrVmVyc2lvbj86IGJvb2xlYW47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBSb2xsYmFja09wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gcm9sbGJhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBSb2xlIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZm9yIGRlcGxveW1lbnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHN0YWNrIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgZmFpbGVkIHRoZSByb2xsYmFjayBvciBub3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvZ2ljYWwgSURzIG9mIHJlc291cmNlcyB0byBvcnBoYW5cbiAgICpcbiAgICogVGhlc2UgcmVzb3VyY2VzIHdpbGwgYmUgc2tpcHBlZCBmcm9tIHRoZSByb2xsIGJhY2suXG4gICAqIFNwZWNpZnkgdGhpcyBwcm9wZXJ0eSB0byBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgY2FuJ3QgYmUgc3VjY2Vzc2Z1bGx5IHJvbGxlZCBiYWNrLlxuICAgKiBXZSByZWNvbW1lbmQgdGhhdCB5b3UgdHJvdWJsZXNob290IHJlc291cmNlcyBiZWZvcmUgc2tpcHBpbmcgdGhlbS5cbiAgICogQWZ0ZXIgdGhlIHJvbGxiYWNrIGlzIGNvbXBsZXRlLCB0aGUgc3RhdGUgb2YgdGhlIHNraXBwZWQgcmVzb3VyY2VzIHdpbGwgYmUgaW5jb25zaXN0ZW50IHdpdGhcbiAgICogdGhlIHN0YXRlIG9mIHRoZSByZXNvdXJjZXMgaW4gdGhlIHN0YWNrLiBCZWZvcmUgcGVyZm9ybWluZyBhbm90aGVyIHN0YWNrIHVwZGF0ZSxcbiAgICogeW91IG11c3QgdXBkYXRlIHRoZSBzdGFjayBvciByZXNvdXJjZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIGVhY2ggb3RoZXIuIElmIHlvdSBkb24ndFxuICAgKiBzdWJzZXF1ZW50IHN0YWNrIHVwZGF0ZXMgbWlnaHQgZmFpbCwgYW5kIHRoZSBzdGFjayB3aWxsIGJlY29tZSB1bnJlY292ZXJhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHJlc291cmNlcyBhcmUgb3JwaGFuZWRcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkxvZ2ljYWxJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB2YWxpZGF0ZSB0aGUgdmVyc2lvbiBvZiB0aGUgYm9vdHN0cmFwIHN0YWNrIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlQm9vdHN0cmFwU3RhY2tWZXJzaW9uPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -58,7 +58,7 @@ export declare class AwsCliCompatible {
58
58
  private getRegionFromIni;
59
59
  private getRegionFromIniFile;
60
60
  /**
61
- * Ask user for MFA token for given serial
61
+ * Ask user for MFA token for given MFA device
62
62
  *
63
63
  * Result is send to callback function for SDK to authorize the request
64
64
  */
@@ -6,7 +6,6 @@ const node_util_1 = require("node:util");
6
6
  const credential_providers_1 = require("@aws-sdk/credential-providers");
7
7
  const ec2_metadata_service_1 = require("@aws-sdk/ec2-metadata-service");
8
8
  const shared_ini_file_loader_1 = require("@smithy/shared-ini-file-loader");
9
- const promptly = require("promptly");
10
9
  const provider_caching_1 = require("./provider-caching");
11
10
  const proxy_agent_1 = require("./proxy-agent");
12
11
  const toolkit_error_1 = require("../../toolkit/toolkit-error");
@@ -195,18 +194,17 @@ class AwsCliCompatible {
195
194
  return data?.[profile]?.region;
196
195
  }
197
196
  /**
198
- * Ask user for MFA token for given serial
197
+ * Ask user for MFA token for given MFA device
199
198
  *
200
199
  * Result is send to callback function for SDK to authorize the request
201
200
  */
202
- async tokenCodeFn(serialArn) {
201
+ async tokenCodeFn(deviceArn) {
203
202
  const debugFn = (msg, ...args) => this.ioHelper.notify(private_1.IO.DEFAULT_SDK_DEBUG.msg((0, node_util_1.format)(msg, ...args)));
204
- await debugFn('Require MFA token for serial ARN', serialArn);
203
+ await debugFn('Require MFA token from MFA device with ARN', deviceArn);
205
204
  try {
206
- const token = await promptly.prompt(`MFA token for ${serialArn}: `, {
207
- trim: true,
208
- default: '',
209
- });
205
+ const token = await this.ioHelper.requestResponse(private_1.IO.CDK_SDK_I1100.req(`MFA token for ${deviceArn}`, {
206
+ deviceArn,
207
+ }, ''));
210
208
  await debugFn('Successfully got MFA token from user');
211
209
  return token;
212
210
  }
@@ -247,4 +245,4 @@ async function makeRequestHandler(ioHelper, options = {}) {
247
245
  httpAgent: agent,
248
246
  };
249
247
  }
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3NjbGktY29tcGF0aWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpUkEsZ0RBU0M7QUExUkQseUNBQW1DO0FBRW5DLHdFQUErRztBQUMvRyx3RUFBZ0U7QUFFaEUsMkVBQXVFO0FBQ3ZFLHFDQUFxQztBQUNyQyx5REFBeUQ7QUFDekQsK0NBQW1EO0FBR25ELCtEQUFrRTtBQUNsRSwyQ0FBa0Q7QUFFbEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFDekMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDO0FBRS9COzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGdCQUFnQjtJQUNWLFFBQVEsQ0FBVztJQUNuQixjQUFjLENBQXlCO0lBQ3ZDLE1BQU0sQ0FBYztJQUVyQyxZQUFtQixRQUFrQixFQUFFLGNBQXNDLEVBQUUsTUFBbUI7UUFDaEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBZ0I7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztZQUMzRCxPQUFPO1lBQ1AsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsc0JBQXNCLENBQ2pDLFVBQWtDLEVBQUU7UUFFcEMsTUFBTSxZQUFZLEdBQUc7WUFDbkIsY0FBYyxFQUFFLElBQUks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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlciB9IGZyb20gJ0Bhd3MtY2RrL2NsaS1wbHVnaW4tY29udHJhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ3JlZGVudGlhbENoYWluLCBmcm9tRW52LCBmcm9tSW5pLCBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4gfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICdAYXdzLXNkay9lYzItbWV0YWRhdGEtc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IE5vZGVIdHRwSGFuZGxlck9wdGlvbnMgfSBmcm9tICdAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyJztcbmltcG9ydCB7IGxvYWRTaGFyZWRDb25maWdGaWxlcyB9IGZyb20gJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcic7XG5pbXBvcnQgKiBhcyBwcm9tcHRseSBmcm9tICdwcm9tcHRseSc7XG5pbXBvcnQgeyBtYWtlQ2FjaGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlci1jYWNoaW5nJztcbmltcG9ydCB7IFByb3h5QWdlbnRQcm92aWRlciB9IGZyb20gJy4vcHJveHktYWdlbnQnO1xuaW1wb3J0IHR5cGUgeyBJU2RrTG9nZ2VyIH0gZnJvbSAnLi9zZGstbG9nZ2VyJztcbmltcG9ydCB0eXBlIHsgU2RrSHR0cE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgSU8sIHR5cGUgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcblxuY29uc3QgREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQgPSAxMDAwMDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVCA9IDMwMDAwMDtcblxuLyoqXG4gKiBCZWhhdmlvcnMgdG8gbWF0Y2ggQVdTIENMSVxuICpcbiAqIFNlZSB0aGVzZSBsaW5rczpcbiAqXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC90b3BpYy9jb25maWctdmFycy5odG1sXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNvbmZpZ3VyZS1lbnZ2YXJzLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0NsaUNvbXBhdGlibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0SGFuZGxlcjogTm9kZUh0dHBIYW5kbGVyT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIHJlcXVlc3RIYW5kbGVyOiBOb2RlSHR0cEhhbmRsZXJPcHRpb25zLCBsb2dnZXI/OiBJU2RrTG9nZ2VyKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMucmVxdWVzdEhhbmRsZXIgPSByZXF1ZXN0SGFuZGxlcjtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBiYXNlQ29uZmlnKHByb2ZpbGU/OiBzdHJpbmcpOiBQcm9taXNlPHsgY3JlZGVudGlhbFByb3ZpZGVyOiBTREt2M0NvbXBhdGlibGVDcmVkZW50aWFsUHJvdmlkZXI7IGRlZmF1bHRSZWdpb246IHN0cmluZyB9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbFByb3ZpZGVyID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsQ2hhaW5CdWlsZGVyKHtcbiAgICAgIHByb2ZpbGUsXG4gICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlZmF1bHRSZWdpb24gPSBhd2FpdCB0aGlzLnJlZ2lvbihwcm9maWxlKTtcbiAgICByZXR1cm4geyBjcmVkZW50aWFsUHJvdmlkZXIsIGRlZmF1bHRSZWdpb24gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBBV1MgQ0xJLWNvbXBhdGlibGUgY3JlZGVudGlhbCBjaGFpbiBwcm92aWRlclxuICAgKlxuICAgKiBUaGUgY3JlZGVudGlhbCBjaGFpbiByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBjYWNoaW5nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWRlbnRpYWxDaGFpbkJ1aWxkZXIoXG4gICAgb3B0aW9uczogQ3JlZGVudGlhbENoYWluT3B0aW9ucyA9IHt9LFxuICApOiBQcm9taXNlPFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcj4ge1xuICAgIGNvbnN0IGNsaWVudENvbmZpZyA9IHtcbiAgICAgIHJlcXVlc3RIYW5kbGVyOiB0aGlzLnJlcXVlc3RIYW5kbGVyLFxuICAgICAgY3VzdG9tVXNlckFnZW50OiAnYXdzLWNkaycsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgIH07XG5cbiAgICAvLyBTdXBlciBoYWNreSBzb2x1dGlvbiB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzMyNTEwLCBwcm9wb3NlZCBieSB0aGUgU0RLIHRlYW0uXG4gICAgLy9cbiAgICAvLyBTdW1tYXJ5IG9mIHRoZSBwcm9ibGVtOiB3ZSB3ZXJlIHJlYWRpbmcgdGhlIHJlZ2lvbiBmcm9tIHRoZSBjb25maWcgZmlsZSBhbmQgcGFzc2luZyBpdCB0b1xuICAgIC8vIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVycy4gSG93ZXZlciwgaW4gdGhlIGNhc2Ugb2YgU1NPLCB0aGlzIG1ha2VzIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyXG4gICAgLy8gdXNlIHRoYXQgcmVnaW9uIHRvIGRvIHRoZSBTU08gZmxvdywgd2hpY2ggaXMgaW5jb3JyZWN0LiBUaGUgcmVnaW9uIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yXG4gICAgLy8gdGhhdCBpcyB0aGUgb25lIHNldCBpbiB0aGUgc3NvX3Nlc3Npb24gc2VjdGlvbiBvZiB0aGUgY29uZmlnIGZpbGUuXG4gICAgLy9cbiAgICAvLyBUaGUgaWRlYSBoZXJlOiB0aGUgXCJjbGllbnRDb25maWdcIiBpcyBmb3IgY29uZmlndXJpbmcgdGhlIGlubmVyIGF1dGggY2xpZW50IGRpcmVjdGx5LFxuICAgIC8vIGFuZCBoYXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHksIHdoZXJlYXMgXCJwYXJlbnRDbGllbnRDb25maWdcIiBpcyB0aGUgdXBwZXIgZGF0YSBjbGllbnRcbiAgICAvLyBhbmQgaGFzIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNzb19yZWdpb24gYnV0IHN0aWxsIGhpZ2hlciBwcmlvcml0eSB0aGFuIFNUUyBnbG9iYWwgcmVnaW9uLlxuICAgIGNvbnN0IHBhcmVudENsaWVudENvbmZpZyA9IHtcbiAgICAgIHJlZ2lvbjogYXdhaXQgdGhpcy5yZWdpb24ob3B0aW9ucy5wcm9maWxlKSxcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBtYXRjaGVkIEFXUyBDTEkgYmVoYXZpb3I6XG4gICAgICpcbiAgICAgKiBJZiBhIHByb2ZpbGUgaXMgZXhwbGljaXRseSBzZXQgdXNpbmcgYC0tcHJvZmlsZWAsXG4gICAgICogd2UgdXNlIHRoYXQgdG8gdGhlIGV4Y2x1c2lvbiBvZiBldmVyeXRoaW5nIGVsc2UuXG4gICAgICpcbiAgICAgKiBOb3RlOiB0aGlzIGRvZXMgbm90IGFwcGx5IHRvIEFXU19QUk9GSUxFLFxuICAgICAqIGVudmlyb25tZW50IGNyZWRlbnRpYWxzIHN0aWxsIHRha2UgcHJlY2VkZW5jZSBvdmVyIEFXU19QUk9GSUxFXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucHJvZmlsZSkge1xuICAgICAgcmV0dXJuIG1ha2VDYWNoaW5nUHJvdmlkZXIoZnJvbUluaSh7XG4gICAgICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgICAgICAgaWdub3JlQ2FjaGU6IHRydWUsXG4gICAgICAgIG1mYUNvZGVQcm92aWRlcjogdGhpcy50b2tlbkNvZGVGbi5iaW5kKHRoaXMpLFxuICAgICAgICBjbGllbnRDb25maWcsXG4gICAgICAgIHBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnZQcm9maWxlID0gcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRTtcblxuICAgIC8qKlxuICAgICAqIEVudiBBV1MgLSBFbnZpcm9ubWVudENyZWRlbnRpYWxzIHdpdGggc3RyaW5nIEFXU1xuICAgICAqIEVudiBBbWF6b24gLSBFbnZpcm9ubWVudENyZWRlbnRpYWxzIHdpdGggc3RyaW5nIEFNQVpPTlxuICAgICAqIFByb2ZpbGUgQ3JlZGVudGlhbHMgLSBQYXRjaGVkU2hhcmVkSW5pRmlsZUNyZWRlbnRpYWxzIHdpdGggaW1wbGljaXQgcHJvZmlsZSwgY3JlZGVudGlhbHMgZmlsZSwgaHR0cCBvcHRpb25zLCBhbmQgdG9rZW4gZm5cbiAgICAgKiAgICBTU08gd2l0aCBpbXBsaWNpdCBwcm9maWxlIG9ubHlcbiAgICAgKiAgICBTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlIGFuZCBwcmVmZXJTdGF0aWNDcmVkZW50aWFscyB0cnVlIChwcm9maWxlIHdpdGggc291cmNlX3Byb2ZpbGUpXG4gICAgICogICAgU2hhcmVkIENyZWRlbnRpYWwgZmlsZSB0aGF0IHBvaW50cyB0byBFbnZpcm9ubWVudCBDcmVkZW50aWFscyB3aXRoIEFXUyBwcmVmaXhcbiAgICAgKiAgICBTaGFyZWQgQ3JlZGVudGlhbCBmaWxlIHRoYXQgcG9pbnRzIHRvIEVDMiBNZXRhZGF0YVxuICAgICAqICAgIFNoYXJlZCBDcmVkZW50aWFsIGZpbGUgdGhhdCBwb2ludHMgdG8gRUNTIENyZWRlbnRpYWxzXG4gICAgICogU1NPIENyZWRlbnRpYWxzIC0gU3NvQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlIGFuZCBodHRwIG9wdGlvbnNcbiAgICAgKiBQcm9jZXNzQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlXG4gICAgICogRUNTIENyZWRlbnRpYWxzIC0gRUNTQ3JlZGVudGlhbHMgd2l0aCBubyBpbnB1dCBPUiBXZWIgSWRlbnRpdHkgLSBUb2tlbkZpbGVXZWJJZGVudGl0eUNyZWRlbnRpYWxzIHdpdGggbm8gaW5wdXQgT1IgRUMyIE1ldGFkYXRhIC0gRUMyTWV0YWRhdGFDcmVkZW50aWFscyB3aXRoIG5vIGlucHV0XG4gICAgICpcbiAgICAgKiBUaGVzZSB0cmFuc2xhdGUgdG86XG4gICAgICogZnJvbUVudigpXG4gICAgICogZnJvbVNTTygpL2Zyb21JbmkoKVxuICAgICAqIGZyb21Qcm9jZXNzKClcbiAgICAgKiBmcm9tQ29udGFpbmVyTWV0YWRhdGEoKVxuICAgICAqIGZyb21Ub2tlbkZpbGUoKVxuICAgICAqIGZyb21JbnN0YW5jZU1ldGFkYXRhKClcbiAgICAgKlxuICAgICAqIFRoZSBOb2RlUHJvdmlkZXJDaGFpbiBpcyBhbHJlYWR5IGNhY2hlZC5cbiAgICAgKi9cbiAgICBjb25zdCBub2RlUHJvdmlkZXJDaGFpbiA9IGZyb21Ob2RlUHJvdmlkZXJDaGFpbih7XG4gICAgICBwcm9maWxlOiBlbnZQcm9maWxlLFxuICAgICAgY2xpZW50Q29uZmlnLFxuICAgICAgcGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlcixcbiAgICAgIG1mYUNvZGVQcm92aWRlcjogdGhpcy50b2tlbkNvZGVGbi5iaW5kKHRoaXMpLFxuICAgICAgaWdub3JlQ2FjaGU6IHRydWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2hvdWxkUHJpb3JpdGl6ZUVudigpXG4gICAgICA/IGNyZWF0ZUNyZWRlbnRpYWxDaGFpbihmcm9tRW52KCksIG5vZGVQcm92aWRlckNoYWluKS5leHBpcmVBZnRlcig2MCAqIDYwXzAwMClcbiAgICAgIDogbm9kZVByb3ZpZGVyQ2hhaW47XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZ2V0IHRoZSByZWdpb24gZnJvbSBhIG51bWJlciBvZiBzb3VyY2VzIGFuZCBmYWxscyBiYWNrIHRvIHVzLWVhc3QtMSBpZiBubyByZWdpb24gY2FuIGJlIGZvdW5kLFxuICAgKiBhcyBpcyBkb25lIGluIHRoZSBBV1MgQ0xJLlxuICAgKlxuICAgKiBUaGUgb3JkZXIgb2YgcHJpb3JpdHkgaXMgdGhlIGZvbGxvd2luZzpcbiAgICpcbiAgICogMS4gRW52aXJvbm1lbnQgdmFyaWFibGVzIHNwZWNpZnlpbmcgcmVnaW9uLCB3aXRoIGJvdGggYW4gQVdTIHByZWZpeCBhbmQgQU1BWk9OIHByZWZpeFxuICAgKiAgICB0byBtYWludGFpbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYW5kIHdpdGhvdXQgYERFRkFVTFRgIGluIHRoZSBuYW1lIGJlY2F1c2VcbiAgICogICAgTGFtYmRhIGFuZCBDb2RlQnVpbGQgc2V0IHRoZSAkQVdTX1JFR0lPTiB2YXJpYWJsZS5cbiAgICogMi4gUmVnaW9ucyBsaXN0ZWQgaW4gdGhlIFNoYXJlZCBJbmkgRmlsZXMgLSBGaXJzdCBjaGVja2luZyBmb3IgdGhlIHByb2ZpbGUgcHJvdmlkZWRcbiAgICogICAgYW5kIHRoZW4gY2hlY2tpbmcgZm9yIHRoZSBkZWZhdWx0IHByb2ZpbGUuXG4gICAqIDMuIElNRFMgaW5zdGFuY2UgaWRlbnRpdHkgcmVnaW9uIGZyb20gdGhlIE1ldGFkYXRhIFNlcnZpY2UuXG4gICAqIDQuIHVzLWVhc3QtMVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlZ2lvbihtYXliZVByb2ZpbGU/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRlZmF1bHRSZWdpb24gPSAndXMtZWFzdC0xJztcbiAgICBjb25zdCBwcm9maWxlID0gbWF5YmVQcm9maWxlIHx8IHByb2Nlc3MuZW52LkFXU19QUk9GSUxFIHx8IHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1BST0ZJTEUgfHwgJ2RlZmF1bHQnO1xuXG4gICAgY29uc3QgcmVnaW9uID1cbiAgICAgIHByb2Nlc3MuZW52LkFXU19SRUdJT04gfHxcbiAgICAgIHByb2Nlc3MuZW52LkFNQVpPTl9SRUdJT04gfHxcbiAgICAgIHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQU1BWk9OX0RFRkFVTFRfUkVHSU9OIHx8XG4gICAgICAoYXdhaXQgdGhpcy5nZXRSZWdpb25Gcm9tSW5pKHByb2ZpbGUpKSB8fFxuICAgICAgKGF3YWl0IHRoaXMucmVnaW9uRnJvbU1ldGFkYXRhU2VydmljZSgpKTtcblxuICAgIGlmICghcmVnaW9uKSB7XG4gICAgICBjb25zdCB1c2VkUHJvZmlsZSA9ICFwcm9maWxlID8gJycgOiBgIChwcm9maWxlOiBcIiR7cHJvZmlsZX1cIilgO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9TREtfREVCVUcubXNnKFxuICAgICAgICBgVW5hYmxlIHRvIGRldGVybWluZSBBV1MgcmVnaW9uIGZyb20gZW52aXJvbm1lbnQgb3IgQVdTIGNvbmZpZ3VyYXRpb24ke3VzZWRQcm9maWxlfSwgZGVmYXVsdGluZyB0byAnJHtkZWZhdWx0UmVnaW9ufSdgLFxuICAgICAgKSk7XG4gICAgICByZXR1cm4gZGVmYXVsdFJlZ2lvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVnaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBNZXRhZGF0YVNlcnZpY2UgY2xhc3Mgd2lsbCBhdHRlbXB0IHRvIGZldGNoIHRoZSBpbnN0YW5jZSBpZGVudGl0eSBkb2N1bWVudCBmcm9tXG4gICAqIElNRFN2MiBmaXJzdCwgYW5kIHRoZW4gd2lsbCBhdHRlbXB0IHYxIGFzIGEgZmFsbGJhY2suXG4gICAqXG4gICAqIElmIHRoaXMgZmFpbHMsIHdlIHdpbGwgdXNlIHVzLWVhc3QtMSBhcyB0aGUgcmVnaW9uIHNvIG5vIGVycm9yIHNob3VsZCBiZSB0aHJvd24uXG4gICAqIEByZXR1cm5zIFRoZSByZWdpb24gZm9yIHRoZSBpbnN0YW5jZSBpZGVudGl0eVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWdpb25Gcm9tTWV0YWRhdGFTZXJ2aWNlKCkge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfU0RLX0RFQlVHLm1zZygnTG9va2luZyB1cCBBV1MgcmVnaW9uIGluIHRoZSBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSAoSU1EUykuJykpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXRhZGF0YVNlcnZpY2UgPSBuZXcgTWV0YWRhdGFTZXJ2aWNlKHtcbiAgICAgICAgaHR0cE9wdGlvbnM6IHtcbiAgICAgICAgICB0aW1lb3V0OiAxMDAwLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IG1ldGFkYXRhU2VydmljZS5mZXRjaE1ldGFkYXRhVG9rZW4oKTtcbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gYXdhaXQgbWV0YWRhdGFTZXJ2aWNlLnJlcXVlc3QoJy9sYXRlc3QvZHluYW1pYy9pbnN0YW5jZS1pZGVudGl0eS9kb2N1bWVudCcsIHt9KTtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRvY3VtZW50KS5yZWdpb247XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9TREtfREVCVUcubXNnKGBVbmFibGUgdG8gcmV0cmlldmUgQVdTIHJlZ2lvbiBmcm9tIElNRFM6ICR7ZX1gKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvb2tzIHVwIHRoZSByZWdpb24gb2YgdGhlIHByb3ZpZGVkIHByb2ZpbGUuIElmIG5vIHJlZ2lvbiBpcyBwcmVzZW50LFxuICAgKiBpdCB3aWxsIGF0dGVtcHQgdG8gbG9va3VwIHRoZSBkZWZhdWx0IHJlZ2lvbi5cbiAgICogQHBhcmFtIHByb2ZpbGUgVGhlIHByb2ZpbGUgdG8gdXNlIHRvIGxvb2t1cCB0aGUgcmVnaW9uXG4gICAqIEByZXR1cm5zIFRoZSByZWdpb24gZm9yIHRoZSBwcm9maWxlIG9yIGRlZmF1bHQgcHJvZmlsZSwgaWYgcHJlc2VudC4gT3RoZXJ3aXNlIHJldHVybnMgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRSZWdpb25Gcm9tSW5pKHByb2ZpbGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qgc2hhcmVkRmlsZXMgPSBhd2FpdCBsb2FkU2hhcmVkQ29uZmlnRmlsZXMoeyBpZ25vcmVDYWNoZTogdHJ1ZSB9KTtcblxuICAgIC8vIFByaW9yaXR5OlxuICAgIC8vXG4gICAgLy8gY3JlZGVudGlhbHMgY29tZSBiZWZvcmUgY29uZmlnIGJlY2F1c2UgYXdzLWNsaSB2MSBiZWhhdmVzIGxpa2UgdGhhdC5cbiAgICAvL1xuICAgIC8vIDEuIHByb2ZpbGUtcmVnaW9uLWluLWNyZWRlbnRpYWxzXG4gICAgLy8gMi4gcHJvZmlsZS1yZWdpb24taW4tY29uZmlnXG4gICAgLy8gMy4gZGVmYXVsdC1yZWdpb24taW4tY3JlZGVudGlhbHNcbiAgICAvLyA0LiBkZWZhdWx0LXJlZ2lvbi1pbi1jb25maWdcblxuICAgIHJldHVybiB0aGlzLmdldFJlZ2lvbkZyb21JbmlGaWxlKHByb2ZpbGUsIHNoYXJlZEZpbGVzLmNyZWRlbnRpYWxzRmlsZSlcbiAgICA/PyB0aGlzLmdldFJlZ2lvbkZyb21JbmlGaWxlKHByb2ZpbGUsIHNoYXJlZEZpbGVzLmNvbmZpZ0ZpbGUpXG4gICAgPz8gdGhpcy5nZXRSZWdpb25Gcm9tSW5pRmlsZSgnZGVmYXVsdCcsIHNoYXJlZEZpbGVzLmNyZWRlbnRpYWxzRmlsZSlcbiAgICA/PyB0aGlzLmdldFJlZ2lvbkZyb21JbmlGaWxlKCdkZWZhdWx0Jywgc2hhcmVkRmlsZXMuY29uZmlnRmlsZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlZ2lvbkZyb21JbmlGaWxlKHByb2ZpbGU6IHN0cmluZywgZGF0YT86IGFueSkge1xuICAgIHJldHVybiBkYXRhPy5bcHJvZmlsZV0/LnJlZ2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc2sgdXNlciBmb3IgTUZBIHRva2VuIGZvciBnaXZlbiBzZXJpYWxcbiAgICpcbiAgICogUmVzdWx0IGlzIHNlbmQgdG8gY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFNESyB0byBhdXRob3JpemUgdGhlIHJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdG9rZW5Db2RlRm4oc2VyaWFsQXJuOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRlYnVnRm4gPSAobXNnOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coZm9ybWF0KG1zZywgLi4uYXJncykpKTtcbiAgICBhd2FpdCBkZWJ1Z0ZuKCdSZXF1aXJlIE1GQSB0b2tlbiBmb3Igc2VyaWFsIEFSTicsIHNlcmlhbEFybik7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuOiBzdHJpbmcgPSBhd2FpdCBwcm9tcHRseS5wcm9tcHQoYE1GQSB0b2tlbiBmb3IgJHtzZXJpYWxBcm59OiBgLCB7XG4gICAgICAgIHRyaW06IHRydWUsXG4gICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBkZWJ1Z0ZuKCdTdWNjZXNzZnVsbHkgZ290IE1GQSB0b2tlbiBmcm9tIHVzZXInKTtcbiAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgYXdhaXQgZGVidWdGbignRmFpbGVkIHRvIGdldCBNRkEgdG9rZW4nLCBlcnIpO1xuICAgICAgY29uc3QgZSA9IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKGBFcnJvciBmZXRjaGluZyBNRkEgdG9rZW46ICR7ZXJyLm1lc3NhZ2UgPz8gZXJyfWApO1xuICAgICAgZS5uYW1lID0gJ1NoYXJlZEluaUZpbGVDcmVkZW50aWFsc1Byb3ZpZGVyRmFpbHVyZSc7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdlIHVzZWQgdG8gc3VwcG9ydCBib3RoIEFXUyBhbmQgQU1BWk9OIHByZWZpeGVzIGZvciB0aGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogQWRkaW5nIHRoaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByaW9yaXRpemVFbnYoKSB7XG4gIGNvbnN0IGlkID0gcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgfHwgcHJvY2Vzcy5lbnYuQU1BWk9OX0FDQ0VTU19LRVlfSUQ7XG4gIGNvbnN0IGtleSA9IHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSB8fCBwcm9jZXNzLmVudi5BTUFaT05fU0VDUkVUX0FDQ0VTU19LRVk7XG5cbiAgaWYgKCEhaWQgJiYgISFrZXkpIHtcbiAgICBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRCA9IGlkO1xuICAgIHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSA9IGtleTtcblxuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID8/IHByb2Nlc3MuZW52LkFNQVpPTl9TRVNTSU9OX1RPS0VOO1xuICAgIGlmIChzZXNzaW9uVG9rZW4pIHtcbiAgICAgIHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID0gc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWRlbnRpYWxDaGFpbk9wdGlvbnMge1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuICByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZVJlcXVlc3RIYW5kbGVyKGlvSGVscGVyOiBJb0hlbHBlciwgb3B0aW9uczogU2RrSHR0cE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Tm9kZUh0dHBIYW5kbGVyT3B0aW9ucz4ge1xuICBjb25zdCBhZ2VudCA9IGF3YWl0IG5ldyBQcm94eUFnZW50UHJvdmlkZXIoaW9IZWxwZXIpLmNyZWF0ZShvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCxcbiAgICByZXF1ZXN0VGltZW91dDogREVGQVVMVF9USU1FT1VULFxuICAgIGh0dHBzQWdlbnQ6IGFnZW50LFxuICAgIGh0dHBBZ2VudDogYWdlbnQsXG4gIH07XG59XG4iXX0=
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3NjbGktY29tcGF0aWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnUkEsZ0RBU0M7QUF6UkQseUNBQW1DO0FBRW5DLHdFQUErRztBQUMvRyx3RUFBZ0U7QUFFaEUsMkVBQXVFO0FBQ3ZFLHlEQUF5RDtBQUN6RCwrQ0FBbUQ7QUFHbkQsK0RBQWtFO0FBQ2xFLDJDQUFrRDtBQUVsRCxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUN6QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFFL0I7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1YsUUFBUSxDQUFXO0lBQ25CLGNBQWMsQ0FBeUI7SUFDdkMsTUFBTSxDQUFjO0lBRXJDLFlBQW1CLFFBQWtCLEVBQUUsY0FBc0MsRUFBRSxNQUFtQjtRQUNoRyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFnQjtRQUN0QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzNELE9BQU87WUFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsVUFBa0MsRUFBRTtRQUVwQyxNQUFNLFlBQVksR0FBRztZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFD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QUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnQGF3cy1jZGsvY2xpLXBsdWdpbi1jb250cmFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDcmVkZW50aWFsQ2hhaW4sIGZyb21FbnYsIGZyb21JbmksIGZyb21Ob2RlUHJvdmlkZXJDaGFpbiB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IE1ldGFkYXRhU2VydmljZSB9IGZyb20gJ0Bhd3Mtc2RrL2VjMi1tZXRhZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgTm9kZUh0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gJ0BzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXInO1xuaW1wb3J0IHsgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzIH0gZnJvbSAnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJztcbmltcG9ydCB7IG1ha2VDYWNoaW5nUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyLWNhY2hpbmcnO1xuaW1wb3J0IHsgUHJveHlBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi9wcm94eS1hZ2VudCc7XG5pbXBvcnQgdHlwZSB7IElTZGtMb2dnZXIgfSBmcm9tICcuL3Nkay1sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBTZGtIdHRwT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25FcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBJTywgdHlwZSBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5jb25zdCBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCA9IDEwMDAwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUID0gMzAwMDAwO1xuXG4vKipcbiAqIEJlaGF2aW9ycyB0byBtYXRjaCBBV1MgQ0xJXG4gKlxuICogU2VlIHRoZXNlIGxpbmtzOlxuICpcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3RvcGljL2NvbmZpZy12YXJzLmh0bWxcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3VzZXJndWlkZS9jbGktY29uZmlndXJlLWVudnZhcnMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgQXdzQ2xpQ29tcGF0aWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RIYW5kbGVyOiBOb2RlSHR0cEhhbmRsZXJPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IElTZGtMb2dnZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgcmVxdWVzdEhhbmRsZXI6IE5vZGVIdHRwSGFuZGxlck9wdGlvbnMsIGxvZ2dlcj86IElTZGtMb2dnZXIpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlciA9IHJlcXVlc3RIYW5kbGVyO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJhc2VDb25maWcocHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8eyBjcmVkZW50aWFsUHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcjsgZGVmYXVsdFJlZ2lvbjogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsUHJvdmlkZXIgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxDaGFpbkJ1aWxkZXIoe1xuICAgICAgcHJvZmlsZSxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgfSk7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9IGF3YWl0IHRoaXMucmVnaW9uKHByb2ZpbGUpO1xuICAgIHJldHVybiB7IGNyZWRlbnRpYWxQcm92aWRlciwgZGVmYXVsdFJlZ2lvbiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEFXUyBDTEktY29tcGF0aWJsZSBjcmVkZW50aWFsIGNoYWluIHByb3ZpZGVyXG4gICAqXG4gICAqIFRoZSBjcmVkZW50aWFsIGNoYWluIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gaXMgYWx3YXlzIGNhY2hpbmcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlZGVudGlhbENoYWluQnVpbGRlcihcbiAgICBvcHRpb25zOiBDcmVkZW50aWFsQ2hhaW5PcHRpb25zID0ge30sXG4gICk6IFByb21pc2U8U0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyPiB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0ge1xuICAgICAgcmVxdWVzdEhhbmRsZXI6IHRoaXMucmVxdWVzdEhhbmRsZXIsXG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6ICdhd3MtY2RrJyxcbiAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgfTtcblxuICAgIC8vIFN1cGVyIGhhY2t5IHNvbHV0aW9uIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMzI1MTAsIHByb3Bvc2VkIGJ5IHRoZSBTREsgdGVhbS5cbiAgICAvL1xuICAgIC8vIFN1bW1hcnkgb2YgdGhlIHByb2JsZW06IHdlIHdlcmUgcmVhZGluZyB0aGUgcmVnaW9uIGZyb20gdGhlIGNvbmZpZyBmaWxlIGFuZCBwYXNzaW5nIGl0IHRvXG4gICAgLy8gdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJzLiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBTU08sIHRoaXMgbWFrZXMgdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICAvLyB1c2UgdGhhdCByZWdpb24gdG8gZG8gdGhlIFNTTyBmbG93LCB3aGljaCBpcyBpbmNvcnJlY3QuIFRoZSByZWdpb24gdGhhdCBzaG91bGQgYmUgdXNlZCBmb3JcbiAgICAvLyB0aGF0IGlzIHRoZSBvbmUgc2V0IGluIHRoZSBzc29fc2Vzc2lvbiBzZWN0aW9uIG9mIHRoZSBjb25maWcgZmlsZS5cbiAgICAvL1xuICAgIC8vIFRoZSBpZGVhIGhlcmU6IHRoZSBcImNsaWVudENvbmZpZ1wiIGlzIGZvciBjb25maWd1cmluZyB0aGUgaW5uZXIgYXV0aCBjbGllbnQgZGlyZWN0bHksXG4gICAgLy8gYW5kIGhhcyB0aGUgaGlnaGVzdCBwcmlvcml0eSwgd2hlcmVhcyBcInBhcmVudENsaWVudENvbmZpZ1wiIGlzIHRoZSB1cHBlciBkYXRhIGNsaWVudFxuICAgIC8vIGFuZCBoYXMgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc3NvX3JlZ2lvbiBidXQgc3RpbGwgaGlnaGVyIHByaW9yaXR5IHRoYW4gU1RTIGdsb2JhbCByZWdpb24uXG4gICAgY29uc3QgcGFyZW50Q2xpZW50Q29uZmlnID0ge1xuICAgICAgcmVnaW9uOiBhd2FpdCB0aGlzLnJlZ2lvbihvcHRpb25zLnByb2ZpbGUpLFxuICAgIH07XG4gICAgLyoqXG4gICAgICogVGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIG1hdGNoZWQgQVdTIENMSSBiZWhhdmlvcjpcbiAgICAgKlxuICAgICAqIElmIGEgcHJvZmlsZSBpcyBleHBsaWNpdGx5IHNldCB1c2luZyBgLS1wcm9maWxlYCxcbiAgICAgKiB3ZSB1c2UgdGhhdCB0byB0aGUgZXhjbHVzaW9uIG9mIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgICAgKlxuICAgICAqIE5vdGU6IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gQVdTX1BST0ZJTEUsXG4gICAgICogZW52aXJvbm1lbnQgY3JlZGVudGlhbHMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgQVdTX1BST0ZJTEVcbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy5wcm9maWxlKSB7XG4gICAgICByZXR1cm4gbWFrZUNhY2hpbmdQcm92aWRlcihmcm9tSW5pKHtcbiAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICAgIGNsaWVudENvbmZpZyxcbiAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudlByb2ZpbGUgPSBwcm9jZXNzLmVudi5BV1NfUFJPRklMRSB8fCBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9QUk9GSUxFO1xuXG4gICAgLyoqXG4gICAgICogRW52IEFXUyAtIEVudmlyb25tZW50Q3JlZGVudGlhbHMgd2l0aCBzdHJpbmcgQVdTXG4gICAgICogRW52IEFtYXpvbiAtIEVudmlyb25tZW50Q3JlZGVudGlhbHMgd2l0aCBzdHJpbmcgQU1BWk9OXG4gICAgICogUHJvZmlsZSBDcmVkZW50aWFscyAtIFBhdGNoZWRTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlLCBjcmVkZW50aWFscyBmaWxlLCBodHRwIG9wdGlvbnMsIGFuZCB0b2tlbiBmblxuICAgICAqICAgIFNTTyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgb25seVxuICAgICAqICAgIFNoYXJlZEluaUZpbGVDcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgYW5kIHByZWZlclN0YXRpY0NyZWRlbnRpYWxzIHRydWUgKHByb2ZpbGUgd2l0aCBzb3VyY2VfcHJvZmlsZSlcbiAgICAgKiAgICBTaGFyZWQgQ3JlZGVudGlhbCBmaWxlIHRoYXQgcG9pbnRzIHRvIEVudmlyb25tZW50IENyZWRlbnRpYWxzIHdpdGggQVdTIHByZWZpeFxuICAgICAqICAgIFNoYXJlZCBDcmVkZW50aWFsIGZpbGUgdGhhdCBwb2ludHMgdG8gRUMyIE1ldGFkYXRhXG4gICAgICogICAgU2hhcmVkIENyZWRlbnRpYWwgZmlsZSB0aGF0IHBvaW50cyB0byBFQ1MgQ3JlZGVudGlhbHNcbiAgICAgKiBTU08gQ3JlZGVudGlhbHMgLSBTc29DcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgYW5kIGh0dHAgb3B0aW9uc1xuICAgICAqIFByb2Nlc3NDcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGVcbiAgICAgKiBFQ1MgQ3JlZGVudGlhbHMgLSBFQ1NDcmVkZW50aWFscyB3aXRoIG5vIGlucHV0IE9SIFdlYiBJZGVudGl0eSAtIFRva2VuRmlsZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgd2l0aCBubyBpbnB1dCBPUiBFQzIgTWV0YWRhdGEgLSBFQzJNZXRhZGF0YUNyZWRlbnRpYWxzIHdpdGggbm8gaW5wdXRcbiAgICAgKlxuICAgICAqIFRoZXNlIHRyYW5zbGF0ZSB0bzpcbiAgICAgKiBmcm9tRW52KClcbiAgICAgKiBmcm9tU1NPKCkvZnJvbUluaSgpXG4gICAgICogZnJvbVByb2Nlc3MoKVxuICAgICAqIGZyb21Db250YWluZXJNZXRhZGF0YSgpXG4gICAgICogZnJvbVRva2VuRmlsZSgpXG4gICAgICogZnJvbUluc3RhbmNlTWV0YWRhdGEoKVxuICAgICAqXG4gICAgICogVGhlIE5vZGVQcm92aWRlckNoYWluIGlzIGFscmVhZHkgY2FjaGVkLlxuICAgICAqL1xuICAgIGNvbnN0IG5vZGVQcm92aWRlckNoYWluID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IGVudlByb2ZpbGUsXG4gICAgICBjbGllbnRDb25maWcsXG4gICAgICBwYXJlbnRDbGllbnRDb25maWcsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaG91bGRQcmlvcml0aXplRW52KClcbiAgICAgID8gY3JlYXRlQ3JlZGVudGlhbENoYWluKGZyb21FbnYoKSwgbm9kZVByb3ZpZGVyQ2hhaW4pLmV4cGlyZUFmdGVyKDYwICogNjBfMDAwKVxuICAgICAgOiBub2RlUHJvdmlkZXJDaGFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBnZXQgdGhlIHJlZ2lvbiBmcm9tIGEgbnVtYmVyIG9mIHNvdXJjZXMgYW5kIGZhbGxzIGJhY2sgdG8gdXMtZWFzdC0xIGlmIG5vIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAqIGFzIGlzIGRvbmUgaW4gdGhlIEFXUyBDTEkuXG4gICAqXG4gICAqIFRoZSBvcmRlciBvZiBwcmlvcml0eSBpcyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAxLiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc3BlY2lmeWluZyByZWdpb24sIHdpdGggYm90aCBhbiBBV1MgcHJlZml4IGFuZCBBTUFaT04gcHJlZml4XG4gICAqICAgIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBhbmQgd2l0aG91dCBgREVGQVVMVGAgaW4gdGhlIG5hbWUgYmVjYXVzZVxuICAgKiAgICBMYW1iZGEgYW5kIENvZGVCdWlsZCBzZXQgdGhlICRBV1NfUkVHSU9OIHZhcmlhYmxlLlxuICAgKiAyLiBSZWdpb25zIGxpc3RlZCBpbiB0aGUgU2hhcmVkIEluaSBGaWxlcyAtIEZpcnN0IGNoZWNraW5nIGZvciB0aGUgcHJvZmlsZSBwcm92aWRlZFxuICAgKiAgICBhbmQgdGhlbiBjaGVja2luZyBmb3IgdGhlIGRlZmF1bHQgcHJvZmlsZS5cbiAgICogMy4gSU1EUyBpbnN0YW5jZSBpZGVudGl0eSByZWdpb24gZnJvbSB0aGUgTWV0YWRhdGEgU2VydmljZS5cbiAgICogNC4gdXMtZWFzdC0xXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaW9uKG1heWJlUHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBtYXliZVByb2ZpbGUgfHwgcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRSB8fCAnZGVmYXVsdCc7XG5cbiAgICBjb25zdCByZWdpb24gPVxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQU1BWk9OX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OIHx8XG4gICAgICBwcm9jZXNzLmVudi5BTUFaT05fREVGQVVMVF9SRUdJT04gfHxcbiAgICAgIChhd2FpdCB0aGlzLmdldFJlZ2lvbkZyb21JbmkocHJvZmlsZSkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy5yZWdpb25Gcm9tTWV0YWRhdGFTZXJ2aWNlKCkpO1xuXG4gICAgaWYgKCFyZWdpb24pIHtcbiAgICAgIGNvbnN0IHVzZWRQcm9maWxlID0gIXByb2ZpbGUgPyAnJyA6IGAgKHByb2ZpbGU6IFwiJHtwcm9maWxlfVwiKWA7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coXG4gICAgICAgIGBVbmFibGUgdG8gZGV0ZXJtaW5lIEFXUyByZWdpb24gZnJvbSBlbnZpcm9ubWVudCBvciBBV1MgY29uZmlndXJhdGlvbiR7dXNlZFByb2ZpbGV9LCBkZWZhdWx0aW5nIHRvICcke2RlZmF1bHRSZWdpb259J2AsXG4gICAgICApKTtcbiAgICAgIHJldHVybiBkZWZhdWx0UmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiByZWdpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIE1ldGFkYXRhU2VydmljZSBjbGFzcyB3aWxsIGF0dGVtcHQgdG8gZmV0Y2ggdGhlIGluc3RhbmNlIGlkZW50aXR5IGRvY3VtZW50IGZyb21cbiAgICogSU1EU3YyIGZpcnN0LCBhbmQgdGhlbiB3aWxsIGF0dGVtcHQgdjEgYXMgYSBmYWxsYmFjay5cbiAgICpcbiAgICogSWYgdGhpcyBmYWlscywgd2Ugd2lsbCB1c2UgdXMtZWFzdC0xIGFzIHRoZSByZWdpb24gc28gbm8gZXJyb3Igc2hvdWxkIGJlIHRocm93bi5cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIGluc3RhbmNlIGlkZW50aXR5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZ2lvbkZyb21NZXRhZGF0YVNlcnZpY2UoKSB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9TREtfREVCVUcubXNnKCdMb29raW5nIHVwIEFXUyByZWdpb24gaW4gdGhlIEVDMiBJbnN0YW5jZSBNZXRhZGF0YSBTZXJ2aWNlIChJTURTKS4nKSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhU2VydmljZSA9IG5ldyBNZXRhZGF0YVNlcnZpY2Uoe1xuICAgICAgICBodHRwT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IDEwMDAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWV0YWRhdGFTZXJ2aWNlLmZldGNoTWV0YWRhdGFUb2tlbigpO1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCBtZXRhZGF0YVNlcnZpY2UucmVxdWVzdCgnL2xhdGVzdC9keW5hbWljL2luc3RhbmNlLWlkZW50aXR5L2RvY3VtZW50Jywge30pO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZG9jdW1lbnQpLnJlZ2lvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coYFVuYWJsZSB0byByZXRyaWV2ZSBBV1MgcmVnaW9uIGZyb20gSU1EUzogJHtlfWApKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIHJlZ2lvbiBvZiB0aGUgcHJvdmlkZWQgcHJvZmlsZS4gSWYgbm8gcmVnaW9uIGlzIHByZXNlbnQsXG4gICAqIGl0IHdpbGwgYXR0ZW1wdCB0byBsb29rdXAgdGhlIGRlZmF1bHQgcmVnaW9uLlxuICAgKiBAcGFyYW0gcHJvZmlsZSBUaGUgcHJvZmlsZSB0byB1c2UgdG8gbG9va3VwIHRoZSByZWdpb25cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIHByb2ZpbGUgb3IgZGVmYXVsdCBwcm9maWxlLCBpZiBwcmVzZW50LiBPdGhlcndpc2UgcmV0dXJucyB1bmRlZmluZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldFJlZ2lvbkZyb21JbmkocHJvZmlsZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzaGFyZWRGaWxlcyA9IGF3YWl0IGxvYWRTaGFyZWRDb25maWdGaWxlcyh7IGlnbm9yZUNhY2hlOiB0cnVlIH0pO1xuXG4gICAgLy8gUHJpb3JpdHk6XG4gICAgLy9cbiAgICAvLyBjcmVkZW50aWFscyBjb21lIGJlZm9yZSBjb25maWcgYmVjYXVzZSBhd3MtY2xpIHYxIGJlaGF2ZXMgbGlrZSB0aGF0LlxuICAgIC8vXG4gICAgLy8gMS4gcHJvZmlsZS1yZWdpb24taW4tY3JlZGVudGlhbHNcbiAgICAvLyAyLiBwcm9maWxlLXJlZ2lvbi1pbi1jb25maWdcbiAgICAvLyAzLiBkZWZhdWx0LXJlZ2lvbi1pbi1jcmVkZW50aWFsc1xuICAgIC8vIDQuIGRlZmF1bHQtcmVnaW9uLWluLWNvbmZpZ1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZSwgc2hhcmVkRmlsZXMuY3JlZGVudGlhbHNGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZSwgc2hhcmVkRmlsZXMuY29uZmlnRmlsZSlcbiAgICA/PyB0aGlzLmdldFJlZ2lvbkZyb21JbmlGaWxlKCdkZWZhdWx0Jywgc2hhcmVkRmlsZXMuY3JlZGVudGlhbHNGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUoJ2RlZmF1bHQnLCBzaGFyZWRGaWxlcy5jb25maWdGaWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZTogc3RyaW5nLCBkYXRhPzogYW55KSB7XG4gICAgcmV0dXJuIGRhdGE/Lltwcm9maWxlXT8ucmVnaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzayB1c2VyIGZvciBNRkEgdG9rZW4gZm9yIGdpdmVuIE1GQSBkZXZpY2VcbiAgICpcbiAgICogUmVzdWx0IGlzIHNlbmQgdG8gY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFNESyB0byBhdXRob3JpemUgdGhlIHJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdG9rZW5Db2RlRm4oZGV2aWNlQXJuOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRlYnVnRm4gPSAobXNnOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coZm9ybWF0KG1zZywgLi4uYXJncykpKTtcbiAgICBhd2FpdCBkZWJ1Z0ZuKCdSZXF1aXJlIE1GQSB0b2tlbiBmcm9tIE1GQSBkZXZpY2Ugd2l0aCBBUk4nLCBkZXZpY2VBcm4pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbjogc3RyaW5nID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1NES19JMTEwMC5yZXEoYE1GQSB0b2tlbiBmb3IgJHtkZXZpY2VBcm59YCwge1xuICAgICAgICBkZXZpY2VBcm4sXG4gICAgICB9LCAnJykpO1xuXG4gICAgICBhd2FpdCBkZWJ1Z0ZuKCdTdWNjZXNzZnVsbHkgZ290IE1GQSB0b2tlbiBmcm9tIHVzZXInKTtcbiAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgYXdhaXQgZGVidWdGbignRmFpbGVkIHRvIGdldCBNRkEgdG9rZW4nLCBlcnIpO1xuICAgICAgY29uc3QgZSA9IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKGBFcnJvciBmZXRjaGluZyBNRkEgdG9rZW46ICR7ZXJyLm1lc3NhZ2UgPz8gZXJyfWApO1xuICAgICAgZS5uYW1lID0gJ1NoYXJlZEluaUZpbGVDcmVkZW50aWFsc1Byb3ZpZGVyRmFpbHVyZSc7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdlIHVzZWQgdG8gc3VwcG9ydCBib3RoIEFXUyBhbmQgQU1BWk9OIHByZWZpeGVzIGZvciB0aGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogQWRkaW5nIHRoaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByaW9yaXRpemVFbnYoKSB7XG4gIGNvbnN0IGlkID0gcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgfHwgcHJvY2Vzcy5lbnYuQU1BWk9OX0FDQ0VTU19LRVlfSUQ7XG4gIGNvbnN0IGtleSA9IHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSB8fCBwcm9jZXNzLmVudi5BTUFaT05fU0VDUkVUX0FDQ0VTU19LRVk7XG5cbiAgaWYgKCEhaWQgJiYgISFrZXkpIHtcbiAgICBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRCA9IGlkO1xuICAgIHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSA9IGtleTtcblxuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID8/IHByb2Nlc3MuZW52LkFNQVpPTl9TRVNTSU9OX1RPS0VOO1xuICAgIGlmIChzZXNzaW9uVG9rZW4pIHtcbiAgICAgIHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID0gc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWRlbnRpYWxDaGFpbk9wdGlvbnMge1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuICByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZVJlcXVlc3RIYW5kbGVyKGlvSGVscGVyOiBJb0hlbHBlciwgb3B0aW9uczogU2RrSHR0cE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Tm9kZUh0dHBIYW5kbGVyT3B0aW9ucz4ge1xuICBjb25zdCBhZ2VudCA9IGF3YWl0IG5ldyBQcm94eUFnZW50UHJvdmlkZXIoaW9IZWxwZXIpLmNyZWF0ZShvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCxcbiAgICByZXF1ZXN0VGltZW91dDogREVGQVVMVF9USU1FT1VULFxuICAgIGh0dHBzQWdlbnQ6IGFnZW50LFxuICAgIGh0dHBBZ2VudDogYWdlbnQsXG4gIH07XG59XG4iXX0=
@@ -2,7 +2,6 @@ import { type TemplateDiff } from '@aws-cdk/cloudformation-diff';
2
2
  import type * as cxapi from '@aws-cdk/cx-api';
3
3
  import { PermissionChangeType } from '../../payloads';
4
4
  import type { NestedStackTemplates } from '../cloudformation';
5
- import type { IoHelper } from '../io/private';
6
5
  /**
7
6
  * Output of formatSecurityDiff
8
7
  */
@@ -34,10 +33,6 @@ interface FormatStackDiffOutput {
34
33
  * Props for the Diff Formatter
35
34
  */
36
35
  interface DiffFormatterProps {
37
- /**
38
- * Helper for the IoHost class
39
- */
40
- readonly ioHelper: IoHelper;
41
36
  /**
42
37
  * The relevant information for the Template that is being diffed.
43
38
  * Includes the old/current state of the stack as well as the new state.
@@ -106,7 +101,6 @@ export interface TemplateInfo {
106
101
  * Class for formatting the diff output
107
102
  */
108
103
  export declare class DiffFormatter {
109
- private readonly ioHelper;
110
104
  private readonly oldTemplate;
111
105
  private readonly newTemplate;
112
106
  private readonly stackName;
@@ -6,13 +6,11 @@ const cxschema = require("@aws-cdk/cloud-assembly-schema");
6
6
  const cloudformation_diff_1 = require("@aws-cdk/cloudformation-diff");
7
7
  const chalk = require("chalk");
8
8
  const payloads_1 = require("../../payloads");
9
- const private_1 = require("../io/private");
10
9
  const streams_1 = require("../streams");
11
10
  /**
12
11
  * Class for formatting the diff output
13
12
  */
14
13
  class DiffFormatter {
15
- ioHelper;
16
14
  oldTemplate;
17
15
  newTemplate;
18
16
  stackName;
@@ -25,7 +23,6 @@ class DiffFormatter {
25
23
  */
26
24
  _diffs = {};
27
25
  constructor(props) {
28
- this.ioHelper = props.ioHelper;
29
26
  this.oldTemplate = props.templateInfo.oldTemplate;
30
27
  this.newTemplate = props.templateInfo.newTemplate;
31
28
  this.stackName = props.templateInfo.newTemplate.displayName ?? props.templateInfo.newTemplate.stackName;
@@ -69,11 +66,7 @@ class DiffFormatter {
69
66
  * Format the stack diff
70
67
  */
71
68
  formatStackDiff(options = {}) {
72
- const ioDefaultHelper = new private_1.IoDefaultMessages(this.ioHelper);
73
- return this.formatStackDiffHelper(this.oldTemplate, this.stackName, this.nestedStacks, {
74
- ...options,
75
- ioDefaultHelper,
76
- });
69
+ return this.formatStackDiffHelper(this.oldTemplate, this.stackName, this.nestedStacks, options);
77
70
  }
78
71
  formatStackDiffHelper(oldTemplate, stackName, nestedStackTemplates, options) {
79
72
  let diff = this.diff(stackName, oldTemplate);
@@ -222,4 +215,4 @@ function obscureDiff(diff) {
222
215
  });
223
216
  }
224
217
  }
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBbUM7QUFDbkMsMkRBQTJEO0FBQzNELHNFQU1zQztBQUV0QywrQkFBK0I7QUFDL0IsNkNBQXNEO0FBR3RELDJDQUFrRDtBQUNsRCx3Q0FBK0M7QUF1SC9DOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ1AsUUFBUSxDQUFXO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixXQUFXLENBQW9DO0lBQy9DLFNBQVMsQ0FBUztJQUNsQixTQUFTLENBQU87SUFDaEIsWUFBWSxDQUF1RTtJQUNuRixRQUFRLENBQVU7SUFFbkM7OztPQUdHO0lBQ0ssTUFBTSxHQUFxQyxFQUFFLENBQUM7SUFFdEQsWUFBWSxLQUF5QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJ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bXBvcnQgeyBmb3JtYXQgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7XG4gIGZvcm1hdERpZmZlcmVuY2VzLFxuICBmb3JtYXRTZWN1cml0eUNoYW5nZXMsXG4gIGZ1bGxEaWZmLFxuICBtYW5nbGVMaWtlQ2xvdWRGb3JtYXRpb24sXG4gIHR5cGUgVGVtcGxhdGVEaWZmLFxufSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IFBlcm1pc3Npb25DaGFuZ2VUeXBlIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMnO1xuaW1wb3J0IHR5cGUgeyBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9IGZyb20gJy4uL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9pby9wcml2YXRlJztcbmltcG9ydCB7IElvRGVmYXVsdE1lc3NhZ2VzIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZVN0cmVhbSB9IGZyb20gJy4uL3N0cmVhbXMnO1xuXG4vKipcbiAqIE91dHB1dCBvZiBmb3JtYXRTZWN1cml0eURpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFNlY3VyaXR5RGlmZk91dHB1dCB7XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgc2VjdXJpdHkgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwZXJtaXNzaW9uIGNoYW5nZXMgaW4gdGhlIHNlY3VyaXR5IGRpZmYuXG4gICAqIFRoZSBJb0hvc3Qgd2lsbCB1c2UgdGhpcyB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gcHJpbnQuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG59XG5cbi8qKlxuICogT3V0cHV0IG9mIGZvcm1hdFN0YWNrRGlmZlxuICovXG5pbnRlcmZhY2UgRm9ybWF0U3RhY2tEaWZmT3V0cHV0IHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBzdGFja3Mgd2l0aCBkaWZmIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlIGZvcm1hdHRlZCBkaWZmXG4gICAqL1xuICByZWFkb25seSBmb3JtYXR0ZWREaWZmOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBEaWZmIEZvcm1hdHRlclxuICovXG5pbnRlcmZhY2UgRGlmZkZvcm1hdHRlclByb3BzIHtcbiAgLyoqXG4gICAqIEhlbHBlciBmb3IgdGhlIElvSG9zdCBjbGFzc1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yIHRoZSBUZW1wbGF0ZSB0aGF0IGlzIGJlaW5nIGRpZmZlZC5cbiAgICogSW5jbHVkZXMgdGhlIG9sZC9jdXJyZW50IHN0YXRlIG9mIHRoZSBzdGFjayBhcyB3ZWxsIGFzIHRoZSBuZXcgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZUluZm86IFRlbXBsYXRlSW5mbztcbn1cblxuLyoqXG4gKiBQUm9wZXJ0aWVzIHNwZWNpZmljIHRvIGZvcm1hdHRpbmcgdGhlIHN0YWNrIGRpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFN0YWNrRGlmZk9wdGlvbnMge1xuICAvKipcbiAgICogZG8gbm90IGZpbHRlciBvdXQgQVdTOjpDREs6Ok1ldGFkYXRhIG9yIFJ1bGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdHJpY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBsaW5lcyBvZiBjb250ZXh0IHRvIHVzZSBpbiBhcmJpdHJhcnkgSlNPTiBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHNpbGVuY2VzIFxcJ1RoZXJlIHdlcmUgbm8gZGlmZmVyZW5jZXNcXCcgbWVzc2FnZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFJldXNhYmxlU3RhY2tEaWZmT3B0aW9ucyBleHRlbmRzIEZvcm1hdFN0YWNrRGlmZk9wdGlvbnMge1xuICByZWFkb25seSBpb0RlZmF1bHRIZWxwZXI6IElvRGVmYXVsdE1lc3NhZ2VzO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIG9uIGEgdGVtcGxhdGUncyBvbGQvbmV3IHN0YXRlXG4gKiB0aGF0IGlzIHVzZWQgZm9yIGRpZmYuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBvbGQvZXhpc3RpbmcgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IG9sZFRlbXBsYXRlOiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBuZXcgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IG5ld1RlbXBsYXRlOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG5cbiAgLyoqXG4gICAqIEEgQ2xvdWRGb3JtYXRpb24gQ2hhbmdlU2V0IHRvIGhlbHAgdGhlIGRpZmYgb3BlcmF0aW9uLlxuICAgKiBQcm9iYWJseSBjcmVhdGVkIHZpYSBgY3JlYXRlRGlmZkNoYW5nZVNldGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0PzogYW55O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUgYW55IGltcG9ydGVkIHJlc291cmNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNJbXBvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbnkgbmVzdGVkIHN0YWNrcyBpbmNsdWRlZCBpbiB0aGUgdGVtcGxhdGVcbiAgICpcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IG5lc3RlZFN0YWNrcz86IHtcbiAgICBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzO1xuICB9O1xufVxuXG4vKipcbiAqIENsYXNzIGZvciBmb3JtYXR0aW5nIHRoZSBkaWZmIG91dHB1dFxuICovXG5leHBvcnQgY2xhc3MgRGlmZkZvcm1hdHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IG9sZFRlbXBsYXRlOiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmV3VGVtcGxhdGU6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VTZXQ/OiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmVzdGVkU3RhY2tzOiB7IFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBpc0ltcG9ydDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBUZW1wbGF0ZURpZmZzIHRoYXQgZ2V0IGNhbGN1bGF0ZWQgaW4gdGhpcyBEaWZmRm9ybWF0dGVyLFxuICAgKiBpbmRleGVkIGJ5IHRoZSBzdGFjayBuYW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlmZnM6IHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IERpZmZGb3JtYXR0ZXJQcm9wcykge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBwcm9wcy5pb0hlbHBlcjtcbiAgICB0aGlzLm9sZFRlbXBsYXRlID0gcHJvcHMudGVtcGxhdGVJbmZvLm9sZFRlbXBsYXRlO1xuICAgIHRoaXMubmV3VGVtcGxhdGUgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGU7XG4gICAgdGhpcy5zdGFja05hbWUgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUuZGlzcGxheU5hbWUgPz8gcHJvcHMudGVtcGxhdGVJbmZvLm5ld1RlbXBsYXRlLnN0YWNrTmFtZTtcbiAgICB0aGlzLmNoYW5nZVNldCA9IHByb3BzLnRlbXBsYXRlSW5mby5jaGFuZ2VTZXQ7XG4gICAgdGhpcy5uZXN0ZWRTdGFja3MgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmVzdGVkU3RhY2tzO1xuICAgIHRoaXMuaXNJbXBvcnQgPSBwcm9wcy50ZW1wbGF0ZUluZm8uaXNJbXBvcnQgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZzKCkge1xuICAgIHJldHVybiB0aGlzLl9kaWZmcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb3IgY3JlYXRlcyB0aGUgZGlmZiBvZiBhIHN0YWNrLlxuICAgKiBJZiBpdCBjcmVhdGVzIHRoZSBkaWZmLCBpdCBzdG9yZXMgdGhlIHJlc3VsdCBpbiBhIG1hcCBmb3JcbiAgICogZWFzaWVyIHJldHJldmFsIGxhdGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBkaWZmKHN0YWNrTmFtZT86IHN0cmluZywgb2xkVGVtcGxhdGU/OiBhbnkpIHtcbiAgICBjb25zdCByZWFsU3RhY2tOYW1lID0gc3RhY2tOYW1lID8/IHRoaXMuc3RhY2tOYW1lO1xuXG4gICAgaWYgKCF0aGlzLl9kaWZmc1tyZWFsU3RhY2tOYW1lXSkge1xuICAgICAgdGhpcy5fZGlmZnNbcmVhbFN0YWNrTmFtZV0gPSBmdWxsRGlmZihcbiAgICAgICAgb2xkVGVtcGxhdGUgPz8gdGhpcy5vbGRUZW1wbGF0ZSxcbiAgICAgICAgdGhpcy5uZXdUZW1wbGF0ZS50ZW1wbGF0ZSxcbiAgICAgICAgdGhpcy5jaGFuZ2VTZXQsXG4gICAgICAgIHRoaXMuaXNJbXBvcnQsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGlmZnNbcmVhbFN0YWNrTmFtZV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGRpZmYgaGFzIHNlY3VyaXR5LWltcGFjdGluZyBjaGFuZ2VzIHRoYXQgbmVlZCBjb25maXJtYXRpb24uXG4gICAqXG4gICAqIElmIG5vIHN0YWNrTmFtZSBpcyBnaXZlbiwgdGhlbiB0aGUgcm9vdCBzdGFjayBuYW1lIGlzIHVzZWQuXG4gICAqL1xuICBwcml2YXRlIHBlcm1pc3Npb25UeXBlKHN0YWNrTmFtZT86IHN0cmluZyk6IFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmKHN0YWNrTmFtZSk7XG5cbiAgICBpZiAoZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZCkge1xuICAgICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLkJST0FERU5JTkc7XG4gICAgfSBlbHNlIGlmIChkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcykge1xuICAgICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTl9CUk9BREVOSU5HO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRoZSBzdGFjayBkaWZmXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0U3RhY2tEaWZmKG9wdGlvbnM6IEZvcm1hdFN0YWNrRGlmZk9wdGlvbnMgPSB7fSk6IEZvcm1hdFN0YWNrRGlmZk91dHB1dCB7XG4gICAgY29uc3QgaW9EZWZhdWx0SGVscGVyID0gbmV3IElvRGVmYXVsdE1lc3NhZ2VzKHRoaXMuaW9IZWxwZXIpO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFN0YWNrRGlmZkhlbHBlcihcbiAgICAgIHRoaXMub2xkVGVtcGxhdGUsXG4gICAgICB0aGlzLnN0YWNrTmFtZSxcbiAgICAgIHRoaXMubmVzdGVkU3RhY2tzLFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpb0RlZmF1bHRIZWxwZXIsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFN0YWNrRGlmZkhlbHBlcihcbiAgICBvbGRUZW1wbGF0ZTogYW55LFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIG5lc3RlZFN0YWNrVGVtcGxhdGVzOiB7IFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBSZXVzYWJsZVN0YWNrRGlmZk9wdGlvbnMsXG4gICkge1xuICAgIGxldCBkaWZmID0gdGhpcy5kaWZmKHN0YWNrTmFtZSwgb2xkVGVtcGxhdGUpO1xuXG4gICAgLy8gVGhlIHN0YWNrIGRpZmYgaXMgZm9ybWF0dGVkIHZpYSBgRm9ybWF0dGVyYCwgd2hpY2ggdGFrZXMgaW4gYSBzdHJlYW1cbiAgICAvLyBhbmQgc2VuZHMgaXRzIG91dHB1dCBkaXJlY3RseSB0byB0aGF0IHN0cmVhbS4gVG8gZmFjaWxpYXRlIHVzZSBvZiB0aGVcbiAgICAvLyBnbG9iYWwgQ2xpSW9Ib3N0LCB3ZSBjcmVhdGUgb3VyIG93biBzdHJlYW0gdG8gY2FwdHVyZSB0aGUgb3V0cHV0IG9mXG4gICAgLy8gYEZvcm1hdHRlcmAgYW5kIHJldHVybiB0aGUgb3V0cHV0IGFzIGEgc3RyaW5nIGZvciB0aGUgY29uc3VtZXIgb2ZcbiAgICAvLyBgZm9ybWF0U3RhY2tEaWZmYCB0byBkZWNpZGUgd2hhdCB0byBkbyB3aXRoIGl0LlxuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuXG4gICAgbGV0IG51bVN0YWNrc1dpdGhDaGFuZ2VzID0gMDtcbiAgICBsZXQgZm9ybWF0dGVkRGlmZiA9ICcnO1xuICAgIGxldCBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IDA7XG4gICAgdHJ5IHtcbiAgICAgIC8vIG11c3Qgb3V0cHV0IHRoZSBzdGFjayBuYW1lIGlmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgZXZlbiBpZiBxdWlldFxuICAgICAgaWYgKHN0YWNrTmFtZSAmJiAoIW9wdGlvbnMucXVpZXQgfHwgIWRpZmYuaXNFbXB0eSkpIHtcbiAgICAgICAgc3RyZWFtLndyaXRlKGZvcm1hdChgU3RhY2sgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9XFxuYCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnMucXVpZXQgJiYgdGhpcy5pc0ltcG9ydCkge1xuICAgICAgICBzdHJlYW0ud3JpdGUoJ1BhcmFtZXRlcnMgYW5kIHJ1bGVzIGNyZWF0ZWQgZHVyaW5nIG1pZ3JhdGlvbiBkbyBub3QgYWZmZWN0IHJlc291cmNlIGNvbmZpZ3VyYXRpb24uXFxuJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRldGVjdCBhbmQgZmlsdGVyIG91dCBtYW5nbGVkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGlmZlxuICAgICAgaWYgKGRpZmYuZGlmZmVyZW5jZUNvdW50ICYmICFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBjb25zdCBtYW5nbGVkTmV3VGVtcGxhdGUgPSBKU09OLnBhcnNlKG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbihKU09OLnN0cmluZ2lmeSh0aGlzLm5ld1RlbXBsYXRlLnRlbXBsYXRlKSkpO1xuICAgICAgICBjb25zdCBtYW5nbGVkRGlmZiA9IGZ1bGxEaWZmKHRoaXMub2xkVGVtcGxhdGUsIG1hbmdsZWROZXdUZW1wbGF0ZSwgdGhpcy5jaGFuZ2VTZXQpO1xuICAgICAgICBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IE1hdGgubWF4KDAsIGRpZmYuZGlmZmVyZW5jZUNvdW50IC0gbWFuZ2xlZERpZmYuZGlmZmVyZW5jZUNvdW50KTtcbiAgICAgICAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgICAgICAgIGRpZmYgPSBtYW5nbGVkRGlmZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBmaWx0ZXIgb3V0ICdBV1M6OkNESzo6TWV0YWRhdGEnIHJlc291cmNlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgLy8gZmlsdGVyIG91dCAnQ2hlY2tCb290c3RyYXBWZXJzaW9uJyBydWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKCFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBvYnNjdXJlRGlmZihkaWZmKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaWZmLmlzRW1wdHkpIHtcbiAgICAgICAgbnVtU3RhY2tzV2l0aENoYW5nZXMrKztcblxuICAgICAgICAvLyBmb3JtYXREaWZmZXJlbmNlcyB1cGRhdGVzIHRoZSBzdHJlYW0gd2l0aCB0aGUgZm9ybWF0dGVkIHN0YWNrIGRpZmZcbiAgICAgICAgZm9ybWF0RGlmZmVyZW5jZXMoc3RyZWFtLCBkaWZmLCB7XG4gICAgICAgICAgLi4ubG9naWNhbElkTWFwRnJvbVRlbXBsYXRlKHRoaXMub2xkVGVtcGxhdGUpLFxuICAgICAgICAgIC4uLmJ1aWxkTG9naWNhbFRvUGF0aE1hcCh0aGlzLm5ld1RlbXBsYXRlKSxcbiAgICAgICAgfSwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMucXVpZXQpIHtcbiAgICAgICAgc3RyZWFtLndyaXRlKGNoYWxrLmdyZWVuKCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzXFxuJykpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlsdGVyZWRDaGFuZ2VzQ291bnQgPiAwKSB7XG4gICAgICAgIHN0cmVhbS53cml0ZShjaGFsay55ZWxsb3coYE9taXR0ZWQgJHtmaWx0ZXJlZENoYW5nZXNDb3VudH0gY2hhbmdlcyBiZWNhdXNlIHRoZXkgYXJlIGxpa2VseSBtYW5nbGVkIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLiBVc2UgLS1zdHJpY3QgdG8gcHJpbnQgdGhlbS5cXG5gKSk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIHN0b3JlIHRoZSBzdHJlYW0gY29udGFpbmluZyBhIGZvcm1hdHRlZCBzdGFjayBkaWZmXG4gICAgICBmb3JtYXR0ZWREaWZmID0gc3RyZWFtLnRvU3RyaW5nKCk7XG4gICAgICBzdHJlYW0uZW5kKCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuZXN0ZWRTdGFja0xvZ2ljYWxJZCBvZiBPYmplY3Qua2V5cyhuZXN0ZWRTdGFja1RlbXBsYXRlcyA/PyB7fSkpIHtcbiAgICAgIGlmICghbmVzdGVkU3RhY2tUZW1wbGF0ZXMpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCBuZXN0ZWRTdGFjayA9IG5lc3RlZFN0YWNrVGVtcGxhdGVzW25lc3RlZFN0YWNrTG9naWNhbElkXTtcblxuICAgICAgKHRoaXMubmV3VGVtcGxhdGUgYXMgYW55KS5fdGVtcGxhdGUgPSBuZXN0ZWRTdGFjay5nZW5lcmF0ZWRUZW1wbGF0ZTtcbiAgICAgIGNvbnN0IG5leHREaWZmID0gdGhpcy5mb3JtYXRTdGFja0RpZmZIZWxwZXIoXG4gICAgICAgIG5lc3RlZFN0YWNrLmRlcGxveWVkVGVtcGxhdGUsXG4gICAgICAgIG5lc3RlZFN0YWNrLnBoeXNpY2FsTmFtZSA/PyBuZXN0ZWRTdGFja0xvZ2ljYWxJZCxcbiAgICAgICAgbmVzdGVkU3RhY2submVzdGVkU3RhY2tUZW1wbGF0ZXMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuICAgICAgbnVtU3RhY2tzV2l0aENoYW5nZXMgKz0gbmV4dERpZmYubnVtU3RhY2tzV2l0aENoYW5nZXM7XG4gICAgICBmb3JtYXR0ZWREaWZmICs9IG5leHREaWZmLmZvcm1hdHRlZERpZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzLFxuICAgICAgZm9ybWF0dGVkRGlmZixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgc2VjdXJpdHkgZGlmZlxuICAgKi9cbiAgcHVibGljIGZvcm1hdFNlY3VyaXR5RGlmZigpOiBGb3JtYXRTZWN1cml0eURpZmZPdXRwdXQge1xuICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRpZmYoKTtcblxuICAgIC8vIFRoZSBzZWN1cml0eSBkaWZmIGlzIGZvcm1hdHRlZCB2aWEgYEZvcm1hdHRlcmAsIHdoaWNoIHRha2VzIGluIGEgc3RyZWFtXG4gICAgLy8gYW5kIHNlbmRzIGl0cyBvdXRwdXQgZGlyZWN0bHkgdG8gdGhhdCBzdHJlYW0uIFRvIGZhY2lsaWF0ZSB1c2Ugb2YgdGhlXG4gICAgLy8gZ2xvYmFsIENsaUlvSG9zdCwgd2UgY3JlYXRlIG91ciBvd24gc3RyZWFtIHRvIGNhcHR1cmUgdGhlIG91dHB1dCBvZlxuICAgIC8vIGBGb3JtYXR0ZXJgIGFuZCByZXR1cm4gdGhlIG91dHB1dCBhcyBhIHN0cmluZyBmb3IgdGhlIGNvbnN1bWVyIG9mXG4gICAgLy8gYGZvcm1hdFNlY3VyaXR5RGlmZmAgdG8gZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCBpdC5cbiAgICBjb25zdCBzdHJlYW0gPSBuZXcgU3RyaW5nV3JpdGVTdHJlYW0oKTtcblxuICAgIHN0cmVhbS53cml0ZShmb3JtYXQoYFN0YWNrICR7Y2hhbGsuYm9sZCh0aGlzLnN0YWNrTmFtZSl9XFxuYCkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyB1cGRhdGVzIHRoZSBzdHJlYW0gd2l0aCB0aGUgZm9ybWF0dGVkIHNlY3VyaXR5IGRpZmZcbiAgICAgIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyhzdHJlYW0sIGRpZmYsIGJ1aWxkTG9naWNhbFRvUGF0aE1hcCh0aGlzLm5ld1RlbXBsYXRlKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHN0cmVhbS5lbmQoKTtcbiAgICB9XG4gICAgLy8gc3RvcmUgdGhlIHN0cmVhbSBjb250YWluaW5nIGEgZm9ybWF0dGVkIHN0YWNrIGRpZmZcbiAgICBjb25zdCBmb3JtYXR0ZWREaWZmID0gc3RyZWFtLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHsgZm9ybWF0dGVkRGlmZiwgcGVybWlzc2lvbkNoYW5nZVR5cGU6IHRoaXMucGVybWlzc2lvblR5cGUoKSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9naWNhbFRvUGF0aE1hcChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gIGNvbnN0IG1hcDogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIGZvciAoY29uc3QgbWQgb2Ygc3RhY2suZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCkpIHtcbiAgICBtYXBbbWQuZGF0YSBhcyBzdHJpbmddID0gbWQucGF0aDtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuXG5mdW5jdGlvbiBsb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xuICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIHJlc291cmNlXSBvZiBPYmplY3QuZW50cmllcyh0ZW1wbGF0ZS5SZXNvdXJjZXMgPz8ge30pKSB7XG4gICAgY29uc3QgcGF0aCA9IChyZXNvdXJjZSBhcyBhbnkpPy5NZXRhZGF0YT8uWydhd3M6Y2RrOnBhdGgnXTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgcmV0W2xvZ2ljYWxJZF0gPSBwYXRoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbnkgdGVtcGxhdGUgZWxlbWVudHMgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHNob3cgdXNlcnMuXG4gKiBUaGlzIGlzIGN1cnJlbnRseTpcbiAqIC0gQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlXG4gKiAtIENoZWNrQm9vdHN0cmFwVmVyc2lvbiBSdWxlXG4gKi9cbmZ1bmN0aW9uIG9ic2N1cmVEaWZmKGRpZmY6IFRlbXBsYXRlRGlmZikge1xuICBpZiAoZGlmZi51bmtub3duKSB7XG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTc5NDJcbiAgICBkaWZmLnVua25vd24gPSBkaWZmLnVua25vd24uZmlsdGVyKGNoYW5nZSA9PiB7XG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2UubmV3VmFsdWU/LkNoZWNrQm9vdHN0cmFwVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlLm9sZFZhbHVlPy5DaGVja0Jvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZGlmZi5yZXNvdXJjZXMpIHtcbiAgICBkaWZmLnJlc291cmNlcyA9IGRpZmYucmVzb3VyY2VzLmZpbHRlcihjaGFuZ2UgPT4ge1xuICAgICAgaWYgKCFjaGFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlLm5ld1Jlc291cmNlVHlwZSA9PT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZS5vbGRSZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNESzo6TWV0YWRhdGEnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi1mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBbUM7QUFDbkMsMkRBQTJEO0FBQzNELHNFQU1zQztBQUV0QywrQkFBK0I7QUFDL0IsNkNBQXNEO0FBRXRELHdDQUErQztBQWlIL0M7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDUCxXQUFXLENBQU07SUFDakIsV0FBVyxDQUFvQztJQUMvQyxTQUFTLENBQVM7SUFDbEIsU0FBUyxDQUFPO0lBQ2hCLFlBQVksQ0FBdUU7SUFDbkYsUUFBUSxDQUFVO0lBRW5DOzs7T0FHRztJQUNLLE1BQU0sR0FBcUMsRUFBRSxDQUFDO0lBRXRELFlBQVksS0FBeUI7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLElBQUksQ0FBQyxTQUFrQixFQUFFLFdBQWlCO1FBQ2hELE1BQU0sYUFBYSxHQUFH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QUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUM7Z0JBQzNDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxlQUFlLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQge1xuICBmb3JtYXREaWZmZXJlbmNlcyxcbiAgZm9ybWF0U2VjdXJpdHlDaGFuZ2VzLFxuICBmdWxsRGlmZixcbiAgbWFuZ2xlTGlrZUNsb3VkRm9ybWF0aW9uLFxuICB0eXBlIFRlbXBsYXRlRGlmZixcbn0gZnJvbSAnQGF3cy1jZGsvY2xvdWRmb3JtYXRpb24tZGlmZic7XG5pbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uQ2hhbmdlVHlwZSB9IGZyb20gJy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB0eXBlIHsgTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBTdHJpbmdXcml0ZVN0cmVhbSB9IGZyb20gJy4uL3N0cmVhbXMnO1xuXG4vKipcbiAqIE91dHB1dCBvZiBmb3JtYXRTZWN1cml0eURpZmZcbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFNlY3VyaXR5RGlmZk91dHB1dCB7XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgc2VjdXJpdHkgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwZXJtaXNzaW9uIGNoYW5nZXMgaW4gdGhlIHNlY3VyaXR5IGRpZmYuXG4gICAqIFRoZSBJb0hvc3Qgd2lsbCB1c2UgdGhpcyB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gcHJpbnQuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG59XG5cbi8qKlxuICogT3V0cHV0IG9mIGZvcm1hdFN0YWNrRGlmZlxuICovXG5pbnRlcmZhY2UgRm9ybWF0U3RhY2tEaWZmT3V0cHV0IHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBzdGFja3Mgd2l0aCBkaWZmIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlIGZvcm1hdHRlZCBkaWZmXG4gICAqL1xuICByZWFkb25seSBmb3JtYXR0ZWREaWZmOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBEaWZmIEZvcm1hdHRlclxuICovXG5pbnRlcmZhY2UgRGlmZkZvcm1hdHRlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgdGhlIFRlbXBsYXRlIHRoYXQgaXMgYmVpbmcgZGlmZmVkLlxuICAgKiBJbmNsdWRlcyB0aGUgb2xkL2N1cnJlbnQgc3RhdGUgb2YgdGhlIHN0YWNrIGFzIHdlbGwgYXMgdGhlIG5ldyBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlSW5mbzogVGVtcGxhdGVJbmZvO1xufVxuXG4vKipcbiAqIFBSb3BlcnRpZXMgc3BlY2lmaWMgdG8gZm9ybWF0dGluZyB0aGUgc3RhY2sgZGlmZlxuICovXG5pbnRlcmZhY2UgRm9ybWF0U3RhY2tEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBkbyBub3QgZmlsdGVyIG91dCBBV1M6OkNESzo6TWV0YWRhdGEgb3IgUnVsZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN0cmljdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGxpbmVzIG9mIGNvbnRleHQgdG8gdXNlIGluIGFyYml0cmFyeSBKU09OIGRpZmZcbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dD86IG51bWJlcjtcblxuICAvKipcbiAgICogc2lsZW5jZXMgXFwnVGhlcmUgd2VyZSBubyBkaWZmZXJlbmNlc1xcJyBtZXNzYWdlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUmV1c2FibGVTdGFja0RpZmZPcHRpb25zIGV4dGVuZHMgRm9ybWF0U3RhY2tEaWZmT3B0aW9ucyB7XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gb24gYSB0ZW1wbGF0ZSdzIG9sZC9uZXcgc3RhdGVcbiAqIHRoYXQgaXMgdXNlZCBmb3IgZGlmZi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUluZm8ge1xuICAvKipcbiAgICogVGhlIG9sZC9leGlzdGluZyB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgb2xkVGVtcGxhdGU6IGFueTtcblxuICAvKipcbiAgICogVGhlIG5ldyB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbmV3VGVtcGxhdGU6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogQSBDbG91ZEZvcm1hdGlvbiBDaGFuZ2VTZXQgdG8gaGVscCB0aGUgZGlmZiBvcGVyYXRpb24uXG4gICAqIFByb2JhYmx5IGNyZWF0ZWQgdmlhIGBjcmVhdGVEaWZmQ2hhbmdlU2V0YC5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VTZXQ/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBhbnkgaW1wb3J0ZWQgcmVzb3VyY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpc0ltcG9ydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFueSBuZXN0ZWQgc3RhY2tzIGluY2x1ZGVkIGluIHRoZSB0ZW1wbGF0ZVxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tzPzoge1xuICAgIFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXM7XG4gIH07XG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIGZvcm1hdHRpbmcgdGhlIGRpZmYgb3V0cHV0XG4gKi9cbmV4cG9ydCBjbGFzcyBEaWZmRm9ybWF0dGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvbGRUZW1wbGF0ZTogYW55O1xuICBwcml2YXRlIHJlYWRvbmx5IG5ld1RlbXBsYXRlOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlU2V0PzogYW55O1xuICBwcml2YXRlIHJlYWRvbmx5IG5lc3RlZFN0YWNrczogeyBbbmVzdGVkU3RhY2tMb2dpY2FsSWQ6IHN0cmluZ106IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNJbXBvcnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgVGVtcGxhdGVEaWZmcyB0aGF0IGdldCBjYWxjdWxhdGVkIGluIHRoaXMgRGlmZkZvcm1hdHRlcixcbiAgICogaW5kZXhlZCBieSB0aGUgc3RhY2sgbmFtZS5cbiAgICovXG4gIHByaXZhdGUgX2RpZmZzOiB7IFtuYW1lOiBzdHJpbmddOiBUZW1wbGF0ZURpZmYgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBEaWZmRm9ybWF0dGVyUHJvcHMpIHtcbiAgICB0aGlzLm9sZFRlbXBsYXRlID0gcHJvcHMudGVtcGxhdGVJbmZvLm9sZFRlbXBsYXRlO1xuICAgIHRoaXMubmV3VGVtcGxhdGUgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGU7XG4gICAgdGhpcy5zdGFja05hbWUgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmV3VGVtcGxhdGUuZGlzcGxheU5hbWUgPz8gcHJvcHMudGVtcGxhdGVJbmZvLm5ld1RlbXBsYXRlLnN0YWNrTmFtZTtcbiAgICB0aGlzLmNoYW5nZVNldCA9IHByb3BzLnRlbXBsYXRlSW5mby5jaGFuZ2VTZXQ7XG4gICAgdGhpcy5uZXN0ZWRTdGFja3MgPSBwcm9wcy50ZW1wbGF0ZUluZm8ubmVzdGVkU3RhY2tzO1xuICAgIHRoaXMuaXNJbXBvcnQgPSBwcm9wcy50ZW1wbGF0ZUluZm8uaXNJbXBvcnQgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpZmZzKCkge1xuICAgIHJldHVybiB0aGlzLl9kaWZmcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb3IgY3JlYXRlcyB0aGUgZGlmZiBvZiBhIHN0YWNrLlxuICAgKiBJZiBpdCBjcmVhdGVzIHRoZSBkaWZmLCBpdCBzdG9yZXMgdGhlIHJlc3VsdCBpbiBhIG1hcCBmb3JcbiAgICogZWFzaWVyIHJldHJldmFsIGxhdGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBkaWZmKHN0YWNrTmFtZT86IHN0cmluZywgb2xkVGVtcGxhdGU/OiBhbnkpIHtcbiAgICBjb25zdCByZWFsU3RhY2tOYW1lID0gc3RhY2tOYW1lID8/IHRoaXMuc3RhY2tOYW1lO1xuXG4gICAgaWYgKCF0aGlzLl9kaWZmc1tyZWFsU3RhY2tOYW1lXSkge1xuICAgICAgdGhpcy5fZGlmZnNbcmVhbFN0YWNrTmFtZV0gPSBmdWxsRGlmZihcbiAgICAgICAgb2xkVGVtcGxhdGUgPz8gdGhpcy5vbGRUZW1wbGF0ZSxcbiAgICAgICAgdGhpcy5uZXdUZW1wbGF0ZS50ZW1wbGF0ZSxcbiAgICAgICAgdGhpcy5jaGFuZ2VTZXQsXG4gICAgICAgIHRoaXMuaXNJbXBvcnQsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGlmZnNbcmVhbFN0YWNrTmFtZV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGRpZmYgaGFzIHNlY3VyaXR5LWltcGFjdGluZyBjaGFuZ2VzIHRoYXQgbmVlZCBjb25maXJtYXRpb24uXG4gICAqXG4gICAqIElmIG5vIHN0YWNrTmFtZSBpcyBnaXZlbiwgdGhlbiB0aGUgcm9vdCBzdGFjayBuYW1lIGlzIHVzZWQuXG4gICAqL1xuICBwcml2YXRlIHBlcm1pc3Npb25UeXBlKHN0YWNrTmFtZT86IHN0cmluZyk6IFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmKHN0YWNrTmFtZSk7XG5cbiAgICBpZiAoZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZCkge1xuICAgICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLkJST0FERU5JTkc7XG4gICAgfSBlbHNlIGlmIChkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcykge1xuICAgICAgcmV0dXJuIFBlcm1pc3Npb25DaGFuZ2VUeXBlLk5PTl9CUk9BREVOSU5HO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUGVybWlzc2lvbkNoYW5nZVR5cGUuTk9ORTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRoZSBzdGFjayBkaWZmXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0U3RhY2tEaWZmKG9wdGlvbnM6IEZvcm1hdFN0YWNrRGlmZk9wdGlvbnMgPSB7fSk6IEZvcm1hdFN0YWNrRGlmZk91dHB1dCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0U3RhY2tEaWZmSGVscGVyKFxuICAgICAgdGhpcy5vbGRUZW1wbGF0ZSxcbiAgICAgIHRoaXMuc3RhY2tOYW1lLFxuICAgICAgdGhpcy5uZXN0ZWRTdGFja3MsXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFN0YWNrRGlmZkhlbHBlcihcbiAgICBvbGRUZW1wbGF0ZTogYW55LFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIG5lc3RlZFN0YWNrVGVtcGxhdGVzOiB7IFtuZXN0ZWRTdGFja0xvZ2ljYWxJZDogc3RyaW5nXTogTmVzdGVkU3RhY2tUZW1wbGF0ZXMgfSB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBSZXVzYWJsZVN0YWNrRGlmZk9wdGlvbnMsXG4gICkge1xuICAgIGxldCBkaWZmID0gdGhpcy5kaWZmKHN0YWNrTmFtZSwgb2xkVGVtcGxhdGUpO1xuXG4gICAgLy8gVGhlIHN0YWNrIGRpZmYgaXMgZm9ybWF0dGVkIHZpYSBgRm9ybWF0dGVyYCwgd2hpY2ggdGFrZXMgaW4gYSBzdHJlYW1cbiAgICAvLyBhbmQgc2VuZHMgaXRzIG91dHB1dCBkaXJlY3RseSB0byB0aGF0IHN0cmVhbS4gVG8gZmFjaWxpYXRlIHVzZSBvZiB0aGVcbiAgICAvLyBnbG9iYWwgQ2xpSW9Ib3N0LCB3ZSBjcmVhdGUgb3VyIG93biBzdHJlYW0gdG8gY2FwdHVyZSB0aGUgb3V0cHV0IG9mXG4gICAgLy8gYEZvcm1hdHRlcmAgYW5kIHJldHVybiB0aGUgb3V0cHV0IGFzIGEgc3RyaW5nIGZvciB0aGUgY29uc3VtZXIgb2ZcbiAgICAvLyBgZm9ybWF0U3RhY2tEaWZmYCB0byBkZWNpZGUgd2hhdCB0byBkbyB3aXRoIGl0LlxuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJpbmdXcml0ZVN0cmVhbSgpO1xuXG4gICAgbGV0IG51bVN0YWNrc1dpdGhDaGFuZ2VzID0gMDtcbiAgICBsZXQgZm9ybWF0dGVkRGlmZiA9ICcnO1xuICAgIGxldCBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IDA7XG4gICAgdHJ5IHtcbiAgICAgIC8vIG11c3Qgb3V0cHV0IHRoZSBzdGFjayBuYW1lIGlmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgZXZlbiBpZiBxdWlldFxuICAgICAgaWYgKHN0YWNrTmFtZSAmJiAoIW9wdGlvbnMucXVpZXQgfHwgIWRpZmYuaXNFbXB0eSkpIHtcbiAgICAgICAgc3RyZWFtLndyaXRlKGZvcm1hdChgU3RhY2sgJHtjaGFsay5ib2xkKHN0YWNrTmFtZSl9XFxuYCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnMucXVpZXQgJiYgdGhpcy5pc0ltcG9ydCkge1xuICAgICAgICBzdHJlYW0ud3JpdGUoJ1BhcmFtZXRlcnMgYW5kIHJ1bGVzIGNyZWF0ZWQgZHVyaW5nIG1pZ3JhdGlvbiBkbyBub3QgYWZmZWN0IHJlc291cmNlIGNvbmZpZ3VyYXRpb24uXFxuJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRldGVjdCBhbmQgZmlsdGVyIG91dCBtYW5nbGVkIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGlmZlxuICAgICAgaWYgKGRpZmYuZGlmZmVyZW5jZUNvdW50ICYmICFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBjb25zdCBtYW5nbGVkTmV3VGVtcGxhdGUgPSBKU09OLnBhcnNlKG1hbmdsZUxpa2VDbG91ZEZvcm1hdGlvbihKU09OLnN0cmluZ2lmeSh0aGlzLm5ld1RlbXBsYXRlLnRlbXBsYXRlKSkpO1xuICAgICAgICBjb25zdCBtYW5nbGVkRGlmZiA9IGZ1bGxEaWZmKHRoaXMub2xkVGVtcGxhdGUsIG1hbmdsZWROZXdUZW1wbGF0ZSwgdGhpcy5jaGFuZ2VTZXQpO1xuICAgICAgICBmaWx0ZXJlZENoYW5nZXNDb3VudCA9IE1hdGgubWF4KDAsIGRpZmYuZGlmZmVyZW5jZUNvdW50IC0gbWFuZ2xlZERpZmYuZGlmZmVyZW5jZUNvdW50KTtcbiAgICAgICAgaWYgKGZpbHRlcmVkQ2hhbmdlc0NvdW50ID4gMCkge1xuICAgICAgICAgIGRpZmYgPSBtYW5nbGVkRGlmZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBmaWx0ZXIgb3V0ICdBV1M6OkNESzo6TWV0YWRhdGEnIHJlc291cmNlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgLy8gZmlsdGVyIG91dCAnQ2hlY2tCb290c3RyYXBWZXJzaW9uJyBydWxlcyBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKCFvcHRpb25zLnN0cmljdCkge1xuICAgICAgICBvYnNjdXJlRGlmZihkaWZmKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaWZmLmlzRW1wdHkpIHtcbiAgICAgICAgbnVtU3RhY2tzV2l0aENoYW5nZXMrKztcblxuICAgICAgICAvLyBmb3JtYXREaWZmZXJlbmNlcyB1cGRhdGVzIHRoZSBzdHJlYW0gd2l0aCB0aGUgZm9ybWF0dGVkIHN0YWNrIGRpZmZcbiAgICAgICAgZm9ybWF0RGlmZmVyZW5jZXMoc3RyZWFtLCBkaWZmLCB7XG4gICAgICAgICAgLi4ubG9naWNhbElkTWFwRnJvbVRlbXBsYXRlKHRoaXMub2xkVGVtcGxhdGUpLFxuICAgICAgICAgIC4uLmJ1aWxkTG9naWNhbFRvUGF0aE1hcCh0aGlzLm5ld1RlbXBsYXRlKSxcbiAgICAgICAgfSwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMucXVpZXQpIHtcbiAgICAgICAgc3RyZWFtLndyaXRlKGNoYWxrLmdyZWVuKCdUaGVyZSB3ZXJlIG5vIGRpZmZlcmVuY2VzXFxuJykpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlsdGVyZWRDaGFuZ2VzQ291bnQgPiAwKSB7XG4gICAgICAgIHN0cmVhbS53cml0ZShjaGFsay55ZWxsb3coYE9taXR0ZWQgJHtmaWx0ZXJlZENoYW5nZXNDb3VudH0gY2hhbmdlcyBiZWNhdXNlIHRoZXkgYXJlIGxpa2VseSBtYW5nbGVkIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLiBVc2UgLS1zdHJpY3QgdG8gcHJpbnQgdGhlbS5cXG5gKSk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIHN0b3JlIHRoZSBzdHJlYW0gY29udGFpbmluZyBhIGZvcm1hdHRlZCBzdGFjayBkaWZmXG4gICAgICBmb3JtYXR0ZWREaWZmID0gc3RyZWFtLnRvU3RyaW5nKCk7XG4gICAgICBzdHJlYW0uZW5kKCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBuZXN0ZWRTdGFja0xvZ2ljYWxJZCBvZiBPYmplY3Qua2V5cyhuZXN0ZWRTdGFja1RlbXBsYXRlcyA/PyB7fSkpIHtcbiAgICAgIGlmICghbmVzdGVkU3RhY2tUZW1wbGF0ZXMpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCBuZXN0ZWRTdGFjayA9IG5lc3RlZFN0YWNrVGVtcGxhdGVzW25lc3RlZFN0YWNrTG9naWNhbElkXTtcblxuICAgICAgKHRoaXMubmV3VGVtcGxhdGUgYXMgYW55KS5fdGVtcGxhdGUgPSBuZXN0ZWRTdGFjay5nZW5lcmF0ZWRUZW1wbGF0ZTtcbiAgICAgIGNvbnN0IG5leHREaWZmID0gdGhpcy5mb3JtYXRTdGFja0RpZmZIZWxwZXIoXG4gICAgICAgIG5lc3RlZFN0YWNrLmRlcGxveWVkVGVtcGxhdGUsXG4gICAgICAgIG5lc3RlZFN0YWNrLnBoeXNpY2FsTmFtZSA/PyBuZXN0ZWRTdGFja0xvZ2ljYWxJZCxcbiAgICAgICAgbmVzdGVkU3RhY2submVzdGVkU3RhY2tUZW1wbGF0ZXMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuICAgICAgbnVtU3RhY2tzV2l0aENoYW5nZXMgKz0gbmV4dERpZmYubnVtU3RhY2tzV2l0aENoYW5nZXM7XG4gICAgICBmb3JtYXR0ZWREaWZmICs9IG5leHREaWZmLmZvcm1hdHRlZERpZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG51bVN0YWNrc1dpdGhDaGFuZ2VzLFxuICAgICAgZm9ybWF0dGVkRGlmZixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgc2VjdXJpdHkgZGlmZlxuICAgKi9cbiAgcHVibGljIGZvcm1hdFNlY3VyaXR5RGlmZigpOiBGb3JtYXRTZWN1cml0eURpZmZPdXRwdXQge1xuICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRpZmYoKTtcblxuICAgIC8vIFRoZSBzZWN1cml0eSBkaWZmIGlzIGZvcm1hdHRlZCB2aWEgYEZvcm1hdHRlcmAsIHdoaWNoIHRha2VzIGluIGEgc3RyZWFtXG4gICAgLy8gYW5kIHNlbmRzIGl0cyBvdXRwdXQgZGlyZWN0bHkgdG8gdGhhdCBzdHJlYW0uIFRvIGZhY2lsaWF0ZSB1c2Ugb2YgdGhlXG4gICAgLy8gZ2xvYmFsIENsaUlvSG9zdCwgd2UgY3JlYXRlIG91ciBvd24gc3RyZWFtIHRvIGNhcHR1cmUgdGhlIG91dHB1dCBvZlxuICAgIC8vIGBGb3JtYXR0ZXJgIGFuZCByZXR1cm4gdGhlIG91dHB1dCBhcyBhIHN0cmluZyBmb3IgdGhlIGNvbnN1bWVyIG9mXG4gICAgLy8gYGZvcm1hdFNlY3VyaXR5RGlmZmAgdG8gZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCBpdC5cbiAgICBjb25zdCBzdHJlYW0gPSBuZXcgU3RyaW5nV3JpdGVTdHJlYW0oKTtcblxuICAgIHN0cmVhbS53cml0ZShmb3JtYXQoYFN0YWNrICR7Y2hhbGsuYm9sZCh0aGlzLnN0YWNrTmFtZSl9XFxuYCkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyB1cGRhdGVzIHRoZSBzdHJlYW0gd2l0aCB0aGUgZm9ybWF0dGVkIHNlY3VyaXR5IGRpZmZcbiAgICAgIGZvcm1hdFNlY3VyaXR5Q2hhbmdlcyhzdHJlYW0sIGRpZmYsIGJ1aWxkTG9naWNhbFRvUGF0aE1hcCh0aGlzLm5ld1RlbXBsYXRlKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHN0cmVhbS5lbmQoKTtcbiAgICB9XG4gICAgLy8gc3RvcmUgdGhlIHN0cmVhbSBjb250YWluaW5nIGEgZm9ybWF0dGVkIHN0YWNrIGRpZmZcbiAgICBjb25zdCBmb3JtYXR0ZWREaWZmID0gc3RyZWFtLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHsgZm9ybWF0dGVkRGlmZiwgcGVybWlzc2lvbkNoYW5nZVR5cGU6IHRoaXMucGVybWlzc2lvblR5cGUoKSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9naWNhbFRvUGF0aE1hcChzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KSB7XG4gIGNvbnN0IG1hcDogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIGZvciAoY29uc3QgbWQgb2Ygc3RhY2suZmluZE1ldGFkYXRhQnlUeXBlKGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuTE9HSUNBTF9JRCkpIHtcbiAgICBtYXBbbWQuZGF0YSBhcyBzdHJpbmddID0gbWQucGF0aDtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuXG5mdW5jdGlvbiBsb2dpY2FsSWRNYXBGcm9tVGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xuICBjb25zdCByZXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IFtsb2dpY2FsSWQsIHJlc291cmNlXSBvZiBPYmplY3QuZW50cmllcyh0ZW1wbGF0ZS5SZXNvdXJjZXMgPz8ge30pKSB7XG4gICAgY29uc3QgcGF0aCA9IChyZXNvdXJjZSBhcyBhbnkpPy5NZXRhZGF0YT8uWydhd3M6Y2RrOnBhdGgnXTtcbiAgICBpZiAocGF0aCkge1xuICAgICAgcmV0W2xvZ2ljYWxJZF0gPSBwYXRoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbnkgdGVtcGxhdGUgZWxlbWVudHMgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHNob3cgdXNlcnMuXG4gKiBUaGlzIGlzIGN1cnJlbnRseTpcbiAqIC0gQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlXG4gKiAtIENoZWNrQm9vdHN0cmFwVmVyc2lvbiBSdWxlXG4gKi9cbmZ1bmN0aW9uIG9ic2N1cmVEaWZmKGRpZmY6IFRlbXBsYXRlRGlmZikge1xuICBpZiAoZGlmZi51bmtub3duKSB7XG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTc5NDJcbiAgICBkaWZmLnVua25vd24gPSBkaWZmLnVua25vd24uZmlsdGVyKGNoYW5nZSA9PiB7XG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2UubmV3VmFsdWU/LkNoZWNrQm9vdHN0cmFwVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlLm9sZFZhbHVlPy5DaGVja0Jvb3RzdHJhcFZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZGlmZi5yZXNvdXJjZXMpIHtcbiAgICBkaWZmLnJlc291cmNlcyA9IGRpZmYucmVzb3VyY2VzLmZpbHRlcihjaGFuZ2UgPT4ge1xuICAgICAgaWYgKCFjaGFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlLm5ld1Jlc291cmNlVHlwZSA9PT0gJ0FXUzo6Q0RLOjpNZXRhZGF0YScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZS5vbGRSZXNvdXJjZVR5cGUgPT09ICdBV1M6OkNESzo6TWV0YWRhdGEnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -13,7 +13,6 @@ export * from './logs-monitor';
13
13
  export * from './notices';
14
14
  export * from './plugin';
15
15
  export * from './refactoring';
16
- export * from './require-approval';
17
16
  export * from './resource-import';
18
17
  export * from './rwlock';
19
18
  export * from './settings';
package/lib/api/index.js CHANGED
@@ -29,7 +29,6 @@ __exportStar(require("./logs-monitor"), exports);
29
29
  __exportStar(require("./notices"), exports);
30
30
  __exportStar(require("./plugin"), exports);
31
31
  __exportStar(require("./refactoring"), exports);
32
- __exportStar(require("./require-approval"), exports);
33
32
  __exportStar(require("./resource-import"), exports);
34
33
  __exportStar(require("./rwlock"), exports);
35
34
  __exportStar(require("./settings"), exports);
@@ -38,4 +37,4 @@ __exportStar(require("./toolkit-info"), exports);
38
37
  __exportStar(require("./work-graph"), exports);
39
38
  __exportStar(require("./tree"), exports);
40
39
  __exportStar(require("./tags"), exports);
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLDhDQUE0QjtBQUM1QixtREFBaUM7QUFDakMsbURBQWlDO0FBQ2pDLDRDQUEwQjtBQUMxQixnREFBOEI7QUFDOUIseUNBQXVCO0FBQ3ZCLGdEQUE4QjtBQUM5Qix1REFBcUM7QUFDckMsNENBQTBCO0FBQzFCLHVDQUFxQjtBQUNyQixpREFBK0I7QUFDL0IsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIscURBQW1DO0FBQ25DLG9EQUFrQztBQUNsQywyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQixpREFBK0I7QUFDL0IsK0NBQTZCO0FBQzdCLHlDQUF1QjtBQUN2Qix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F3cy1hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwJztcbmV4cG9ydCAqIGZyb20gJy4vY2xvdWQtYXNzZW1ibHknO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZGZvcm1hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXBsb3ltZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2RpZmYnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dhcmJhZ2UtY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2hvdHN3YXAnO1xuZXhwb3J0ICogZnJvbSAnLi9pbyc7XG5leHBvcnQgKiBmcm9tICcuL2xvZ3MtbW9uaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL25vdGljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9yZWZhY3RvcmluZyc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVpcmUtYXBwcm92YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1pbXBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yd2xvY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zZXR0aW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWV2ZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xraXQtaW5mbyc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmstZ3JhcGgnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFncyc7XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLDhDQUE0QjtBQUM1QixtREFBaUM7QUFDakMsbURBQWlDO0FBQ2pDLDRDQUEwQjtBQUMxQixnREFBOEI7QUFDOUIseUNBQXVCO0FBQ3ZCLGdEQUE4QjtBQUM5Qix1REFBcUM7QUFDckMsNENBQTBCO0FBQzFCLHVDQUFxQjtBQUNyQixpREFBK0I7QUFDL0IsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsb0RBQWtDO0FBQ2xDLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0IseUNBQXVCO0FBQ3ZCLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXdzLWF1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9ib290c3RyYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5leHBvcnQgKiBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveW1lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vZGlmZic7XG5leHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2FyYmFnZS1jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vaG90c3dhcCc7XG5leHBvcnQgKiBmcm9tICcuL2lvJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ncy1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL3JlZmFjdG9yaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2UtaW1wb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vcndsb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFjay1ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90b29sa2l0LWluZm8nO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrLWdyYXBoJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhZ3MnO1xuIl19
@@ -5,4 +5,3 @@ export * from './span';
5
5
  export * from './message-maker';
6
6
  export * from './messages';
7
7
  export * from './types';
8
- export * from './io-default-messages';
@@ -21,5 +21,4 @@ __exportStar(require("./span"), exports);
21
21
  __exportStar(require("./message-maker"), exports);
22
22
  __exportStar(require("./messages"), exports);
23
23
  __exportStar(require("./types"), exports);
24
- __exportStar(require("./io-default-messages"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDhDQUE0QjtBQUM1QixtREFBaUM7QUFDakMseUNBQXVCO0FBQ3ZCLGtEQUFnQztBQUNoQyw2Q0FBMkI7QUFDM0IsMENBQXdCO0FBQ3hCLHdEQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW8taG9zdC13cmFwcGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2lvLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xldmVsLXByaW9yaXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc3Bhbic7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2UtbWFrZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW8tZGVmYXVsdC1tZXNzYWdlcyc7XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDhDQUE0QjtBQUM1QixtREFBaUM7QUFDakMseUNBQXVCO0FBQ3ZCLGtEQUFnQztBQUNoQyw2Q0FBMkI7QUFDM0IsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pby1ob3N0LXdyYXBwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vaW8taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGV2ZWwtcHJpb3JpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9zcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -10,12 +10,12 @@ export declare class IoDefaultMessages {
10
10
  constructor(ioHelper: IoHelper);
11
11
  notify(msg: ActionLessMessage<unknown>): Promise<void>;
12
12
  requestResponse<T, U>(msg: ActionLessRequest<T, U>): Promise<U>;
13
- error(input: string, ...args: unknown[]): void;
14
- warn(input: string, ...args: unknown[]): void;
15
- warning(input: string, ...args: unknown[]): void;
16
- info(input: string, ...args: unknown[]): void;
17
- debug(input: string, ...args: unknown[]): void;
18
- trace(input: string, ...args: unknown[]): void;
19
- result(input: string, ...args: unknown[]): void;
13
+ error(input: string, ...args: unknown[]): Promise<void>;
14
+ warn(input: string, ...args: unknown[]): Promise<void>;
15
+ warning(input: string, ...args: unknown[]): Promise<void>;
16
+ info(input: string, ...args: unknown[]): Promise<void>;
17
+ debug(input: string, ...args: unknown[]): Promise<void>;
18
+ trace(input: string, ...args: unknown[]): Promise<void>;
19
+ result(input: string, ...args: unknown[]): Promise<void>;
20
20
  private emitMessage;
21
21
  }
@@ -14,34 +14,34 @@ class IoDefaultMessages {
14
14
  constructor(ioHelper) {
15
15
  this.ioHelper = ioHelper;
16
16
  }
17
- notify(msg) {
17
+ async notify(msg) {
18
18
  return this.ioHelper.notify(msg);
19
19
  }
20
- requestResponse(msg) {
20
+ async requestResponse(msg) {
21
21
  return this.ioHelper.requestResponse(msg);
22
22
  }
23
- error(input, ...args) {
24
- this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_ERROR, input, ...args);
23
+ async error(input, ...args) {
24
+ return this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_ERROR, input, ...args);
25
25
  }
26
- warn(input, ...args) {
27
- this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_WARN, input, ...args);
26
+ async warn(input, ...args) {
27
+ return this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_WARN, input, ...args);
28
28
  }
29
- warning(input, ...args) {
30
- this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_WARN, input, ...args);
29
+ async warning(input, ...args) {
30
+ return this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_WARN, input, ...args);
31
31
  }
32
- info(input, ...args) {
33
- this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_INFO, input, ...args);
32
+ async info(input, ...args) {
33
+ return this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_INFO, input, ...args);
34
34
  }
35
- debug(input, ...args) {
36
- this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_DEBUG, input, ...args);
35
+ async debug(input, ...args) {
36
+ return this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_DEBUG, input, ...args);
37
37
  }
38
- trace(input, ...args) {
39
- this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_TRACE, input, ...args);
38
+ async trace(input, ...args) {
39
+ return this.emitMessage(messages_1.IO.DEFAULT_TOOLKIT_TRACE, input, ...args);
40
40
  }
41
- result(input, ...args) {
41
+ async result(input, ...args) {
42
42
  const message = args.length > 0 ? util.format(input, ...args) : input;
43
43
  // This is just the default "info" message but with a level of "result"
44
- void this.ioHelper.notify({
44
+ return this.ioHelper.notify({
45
45
  time: new Date(),
46
46
  code: messages_1.IO.DEFAULT_TOOLKIT_INFO.code,
47
47
  level: 'result',
@@ -49,11 +49,11 @@ class IoDefaultMessages {
49
49
  data: undefined,
50
50
  });
51
51
  }
52
- emitMessage(maker, input, ...args) {
52
+ async emitMessage(maker, input, ...args) {
53
53
  // Format message if args are provided
54
54
  const message = args.length > 0 ? util.format(input, ...args) : input;
55
- void this.ioHelper.notify(maker.msg(message));
55
+ return this.ioHelper.notify(maker.msg(message));
56
56
  }
57
57
  }
58
58
  exports.IoDefaultMessages = IoDefaultMessages;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tZGVmYXVsdC1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWRlZmF1bHQtbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLHlDQUFnQztBQUVoQzs7Ozs7R0FLRztBQUNILE1BQWEsaUJBQWlCO0lBQ0M7SUFBN0IsWUFBNkIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUMvQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQStCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGVBQWUsQ0FBTyxHQUE0QjtRQUN2RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQUUsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sSUFBSSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFFLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBRSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxJQUFJLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQUUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RFLHVFQUF1RTtRQUN2RSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtZQUNoQixJQUFJLEVBQUUsYUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUk7WUFDbEMsS0FBSyxFQUFFLFFBQVE7WUFDZixPQUFPO1lBQ1AsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUEyQixFQUFFLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDaEYsc0NBQXNDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBckRELDhDQXFEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbkxlc3NNZXNzYWdlLCBBY3Rpb25MZXNzUmVxdWVzdCwgSW9IZWxwZXIgfSBmcm9tICcuL2lvLWhlbHBlcic7XG5pbXBvcnQgdHlwZSB7IElvTWVzc2FnZU1ha2VyIH0gZnJvbSAnLi9tZXNzYWdlLW1ha2VyJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi9tZXNzYWdlcyc7XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIHRvIGVtaXQgc3RhbmRhcmQgbG9nIG1lc3NhZ2VzIHRvIGFuIElvSG9zdFxuICpcbiAqIEl0IHdyYXBzIGFuIGBJb0hlbHBlcmAsIGFuZCBhZGRzIGNvbnZlbmllbmNlIG1ldGhvZHMgdG8gZW1pdCBkZWZhdWx0IG1lc3NhZ2VzXG4gKiBmb3IgdGhlIHZhcmlvdXMgbG9nIGxldmVscy5cbiAqL1xuZXhwb3J0IGNsYXNzIElvRGVmYXVsdE1lc3NhZ2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgfVxuXG4gIHB1YmxpYyBub3RpZnkobXNnOiBBY3Rpb25MZXNzTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeShtc2cpO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RSZXNwb25zZTxULCBVPihtc2c6IEFjdGlvbkxlc3NSZXF1ZXN0PFQsIFU+KTogUHJvbWlzZTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIucmVxdWVzdFJlc3BvbnNlKG1zZyk7XG4gIH1cblxuICBwdWJsaWMgZXJyb3IoaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgdGhpcy5lbWl0TWVzc2FnZShJTy5ERUZBVUxUX1RPT0xLSVRfRVJST1IsIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyB3YXJuKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIHRoaXMuZW1pdE1lc3NhZ2UoSU8uREVGQVVMVF9UT09MS0lUX1dBUk4sIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyB3YXJuaW5nKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIHRoaXMuZW1pdE1lc3NhZ2UoSU8uREVGQVVMVF9UT09MS0lUX1dBUk4sIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmZvKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIHRoaXMuZW1pdE1lc3NhZ2UoSU8uREVGQVVMVF9UT09MS0lUX0lORk8sIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWJ1ZyhpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICB0aGlzLmVtaXRNZXNzYWdlKElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIHRyYWNlKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIHRoaXMuZW1pdE1lc3NhZ2UoSU8uREVGQVVMVF9UT09MS0lUX1RSQUNFLCBpbnB1dCwgLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgcmVzdWx0KGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDAgPyB1dGlsLmZvcm1hdChpbnB1dCwgLi4uYXJncykgOiBpbnB1dDtcbiAgICAvLyBUaGlzIGlzIGp1c3QgdGhlIGRlZmF1bHQgXCJpbmZvXCIgbWVzc2FnZSBidXQgd2l0aCBhIGxldmVsIG9mIFwicmVzdWx0XCJcbiAgICB2b2lkIHRoaXMuaW9IZWxwZXIubm90aWZ5KHtcbiAgICAgIHRpbWU6IG5ldyBEYXRlKCksXG4gICAgICBjb2RlOiBJTy5ERUZBVUxUX1RPT0xLSVRfSU5GTy5jb2RlLFxuICAgICAgbGV2ZWw6ICdyZXN1bHQnLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdE1lc3NhZ2UobWFrZXI6IElvTWVzc2FnZU1ha2VyPHZvaWQ+LCBpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICAvLyBGb3JtYXQgbWVzc2FnZSBpZiBhcmdzIGFyZSBwcm92aWRlZFxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDAgPyB1dGlsLmZvcm1hdChpbnB1dCwgLi4uYXJncykgOiBpbnB1dDtcbiAgICB2b2lkIHRoaXMuaW9IZWxwZXIubm90aWZ5KG1ha2VyLm1zZyhtZXNzYWdlKSk7XG4gIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tZGVmYXVsdC1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWRlZmF1bHQtbWVzc2FnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLHlDQUFnQztBQUVoQzs7Ozs7R0FLRztBQUNILE1BQWEsaUJBQWlCO0lBQ1gsUUFBUSxDQUFXO0lBRXBDLFlBQVksUUFBa0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBK0I7UUFDakQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FBTyxHQUE0QjtRQUM3RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDbEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQUUsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFFLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBRSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQUUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBRyxJQUFlO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUNsRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWU7UUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0RSx1RUFBdUU7UUFDdkUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMxQixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsSUFBSSxFQUFFLGFBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJO1lBQ2xDLEtBQUssRUFBRSxRQUFRO1lBQ2YsT0FBTztZQUNQLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQTJCLEVBQUUsS0FBYSxFQUFFLEdBQUcsSUFBZTtRQUN0RixzQ0FBc0M7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUF4REQsOENBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uTGVzc01lc3NhZ2UsIEFjdGlvbkxlc3NSZXF1ZXN0LCBJb0hlbHBlciB9IGZyb20gJy4vaW8taGVscGVyJztcbmltcG9ydCB0eXBlIHsgSW9NZXNzYWdlTWFrZXIgfSBmcm9tICcuL21lc3NhZ2UtbWFrZXInO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuL21lc3NhZ2VzJztcblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgdG8gZW1pdCBzdGFuZGFyZCBsb2cgbWVzc2FnZXMgdG8gYW4gSW9Ib3N0XG4gKlxuICogSXQgd3JhcHMgYW4gYElvSGVscGVyYCwgYW5kIGFkZHMgY29udmVuaWVuY2UgbWV0aG9kcyB0byBlbWl0IGRlZmF1bHQgbWVzc2FnZXNcbiAqIGZvciB0aGUgdmFyaW91cyBsb2cgbGV2ZWxzLlxuICovXG5leHBvcnQgY2xhc3MgSW9EZWZhdWx0TWVzc2FnZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbm90aWZ5KG1zZzogQWN0aW9uTGVzc01lc3NhZ2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5ub3RpZnkobXNnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0UmVzcG9uc2U8VCwgVT4obXNnOiBBY3Rpb25MZXNzUmVxdWVzdDxULCBVPik6IFByb21pc2U8VT4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLnJlcXVlc3RSZXNwb25zZShtc2cpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVycm9yKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKElPLkRFRkFVTFRfVE9PTEtJVF9FUlJPUiwgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHdhcm4oaW5wdXQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdE1lc3NhZ2UoSU8uREVGQVVMVF9UT09MS0lUX1dBUk4sIGlucHV0LCAuLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB3YXJuaW5nKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKElPLkRFRkFVTFRfVE9PTEtJVF9XQVJOLCBpbnB1dCwgLi4uYXJncyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5mbyhpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbWl0TWVzc2FnZShJTy5ERUZBVUxUX1RPT0xLSVRfSU5GTywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlYnVnKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRywgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRyYWNlKGlucHV0OiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmVtaXRNZXNzYWdlKElPLkRFRkFVTFRfVE9PTEtJVF9UUkFDRSwgaW5wdXQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlc3VsdChpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gYXJncy5sZW5ndGggPiAwID8gdXRpbC5mb3JtYXQoaW5wdXQsIC4uLmFyZ3MpIDogaW5wdXQ7XG4gICAgLy8gVGhpcyBpcyBqdXN0IHRoZSBkZWZhdWx0IFwiaW5mb1wiIG1lc3NhZ2UgYnV0IHdpdGggYSBsZXZlbCBvZiBcInJlc3VsdFwiXG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KHtcbiAgICAgIHRpbWU6IG5ldyBEYXRlKCksXG4gICAgICBjb2RlOiBJTy5ERUZBVUxUX1RPT0xLSVRfSU5GTy5jb2RlLFxuICAgICAgbGV2ZWw6ICdyZXN1bHQnLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW1pdE1lc3NhZ2UobWFrZXI6IElvTWVzc2FnZU1ha2VyPHZvaWQ+LCBpbnB1dDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBGb3JtYXQgbWVzc2FnZSBpZiBhcmdzIGFyZSBwcm92aWRlZFxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhcmdzLmxlbmd0aCA+IDAgPyB1dGlsLmZvcm1hdChpbnB1dCwgLi4uYXJncykgOiBpbnB1dDtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5ub3RpZnkobWFrZXIubXNnKG1lc3NhZ2UpKTtcbiAgfVxufVxuIl19