@aws-cdk/aws-bedrock-agentcore-alpha 2.256.1-alpha.0 → 2.258.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/.jsii +2806 -2580
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +2135 -59
  4. package/lib/common/types.d.ts +2 -0
  5. package/lib/common/types.js +3 -1
  6. package/lib/evaluation/custom-evaluator.d.ts +1 -0
  7. package/lib/evaluation/custom-evaluator.js +37 -4
  8. package/lib/evaluation/data-source.d.ts +1 -0
  9. package/lib/evaluation/data-source.js +15 -2
  10. package/lib/evaluation/evaluator-base.d.ts +2 -0
  11. package/lib/evaluation/evaluator-base.js +65 -3
  12. package/lib/evaluation/evaluator-config.d.ts +4 -0
  13. package/lib/evaluation/evaluator-config.js +25 -3
  14. package/lib/evaluation/evaluator.d.ts +1 -0
  15. package/lib/evaluation/evaluator.js +14 -2
  16. package/lib/evaluation/online-evaluation-base.d.ts +2 -0
  17. package/lib/evaluation/online-evaluation-base.js +65 -3
  18. package/lib/evaluation/online-evaluation.d.ts +1 -0
  19. package/lib/evaluation/online-evaluation.js +37 -4
  20. package/lib/evaluation/perms.d.ts +5 -0
  21. package/lib/evaluation/perms.js +6 -1
  22. package/lib/evaluation/types.d.ts +15 -0
  23. package/lib/evaluation/types.js +75 -6
  24. package/lib/evaluation/validation-helpers.d.ts +22 -0
  25. package/lib/evaluation/validation-helpers.js +23 -1
  26. package/lib/gateway/gateway-base.d.ts +7 -0
  27. package/lib/gateway/gateway-base.js +178 -3
  28. package/lib/gateway/gateway.d.ts +9 -0
  29. package/lib/gateway/gateway.js +49 -6
  30. package/lib/gateway/inbound-auth/authorizer.d.ts +12 -0
  31. package/lib/gateway/inbound-auth/authorizer.js +31 -5
  32. package/lib/gateway/inbound-auth/custom-claim.d.ts +1 -0
  33. package/lib/gateway/inbound-auth/custom-claim.js +13 -2
  34. package/lib/gateway/interceptor.d.ts +5 -0
  35. package/lib/gateway/interceptor.js +7 -2
  36. package/lib/gateway/outbound-auth/api-key.d.ts +5 -0
  37. package/lib/gateway/outbound-auth/api-key.js +7 -2
  38. package/lib/gateway/outbound-auth/credential-provider.d.ts +5 -0
  39. package/lib/gateway/outbound-auth/credential-provider.js +17 -2
  40. package/lib/gateway/outbound-auth/iam-role.d.ts +1 -0
  41. package/lib/gateway/outbound-auth/iam-role.js +2 -1
  42. package/lib/gateway/outbound-auth/oauth.d.ts +2 -0
  43. package/lib/gateway/outbound-auth/oauth.js +2 -1
  44. package/lib/gateway/perms.d.ts +16 -0
  45. package/lib/gateway/perms.js +17 -1
  46. package/lib/gateway/protocol.d.ts +7 -0
  47. package/lib/gateway/protocol.js +10 -3
  48. package/lib/gateway/targets/schema/api-schema.d.ts +4 -0
  49. package/lib/gateway/targets/schema/api-schema.js +161 -6
  50. package/lib/gateway/targets/schema/base-schema.d.ts +1 -0
  51. package/lib/gateway/targets/schema/base-schema.js +2 -1
  52. package/lib/gateway/targets/schema/tool-schema.d.ts +12 -0
  53. package/lib/gateway/targets/schema/tool-schema.js +166 -6
  54. package/lib/gateway/targets/target-base.d.ts +5 -0
  55. package/lib/gateway/targets/target-base.js +76 -3
  56. package/lib/gateway/targets/target-configuration.d.ts +14 -0
  57. package/lib/gateway/targets/target-configuration.js +125 -9
  58. package/lib/gateway/targets/target.d.ts +8 -0
  59. package/lib/gateway/targets/target.js +37 -4
  60. package/lib/gateway/validation-helpers.d.ts +4 -0
  61. package/lib/gateway/validation-helpers.js +4 -1
  62. package/lib/identity/api-key-credential-provider.d.ts +4 -0
  63. package/lib/identity/api-key-credential-provider.js +36 -3
  64. package/lib/identity/grant-helpers.d.ts +7 -0
  65. package/lib/identity/grant-helpers.js +42 -2
  66. package/lib/identity/oauth2-credential-provider.d.ts +29 -0
  67. package/lib/identity/oauth2-credential-provider.js +37 -3
  68. package/lib/identity/perms.d.ts +5 -0
  69. package/lib/identity/perms.js +9 -4
  70. package/lib/identity/validation-helpers.d.ts +53 -0
  71. package/lib/identity/validation-helpers.js +54 -1
  72. package/lib/identity/workload-identity.d.ts +3 -0
  73. package/lib/identity/workload-identity.js +36 -3
  74. package/lib/memory/memory-strategy.d.ts +6 -0
  75. package/lib/memory/memory-strategy.js +47 -2
  76. package/lib/memory/memory.d.ts +4 -0
  77. package/lib/memory/memory.js +210 -5
  78. package/lib/memory/strategies/managed-strategy.d.ts +4 -0
  79. package/lib/memory/strategies/managed-strategy.js +22 -2
  80. package/lib/memory/strategies/self-managed-strategy.d.ts +4 -0
  81. package/lib/memory/strategies/self-managed-strategy.js +57 -4
  82. package/lib/memory/validation-helpers.d.ts +6 -0
  83. package/lib/memory/validation-helpers.js +7 -1
  84. package/lib/network/network-configuration.d.ts +5 -0
  85. package/lib/network/network-configuration.js +83 -6
  86. package/lib/policy/policy-base.js +36 -3
  87. package/lib/policy/policy-engine-base.js +36 -3
  88. package/lib/policy/policy-engine.js +37 -4
  89. package/lib/policy/policy-statement.js +5 -5
  90. package/lib/policy/policy-types.js +1 -1
  91. package/lib/policy/policy.js +36 -3
  92. package/lib/runtime/inbound-auth/custom-claim.d.ts +1 -0
  93. package/lib/runtime/inbound-auth/custom-claim.js +13 -2
  94. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.d.ts +1 -0
  95. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +40 -2
  96. package/lib/runtime/observability.d.ts +5 -0
  97. package/lib/runtime/observability.js +79 -5
  98. package/lib/runtime/perms.d.ts +12 -0
  99. package/lib/runtime/perms.js +13 -1
  100. package/lib/runtime/runtime-artifact.d.ts +3 -0
  101. package/lib/runtime/runtime-artifact.js +69 -5
  102. package/lib/runtime/runtime-base.d.ts +3 -0
  103. package/lib/runtime/runtime-base.js +200 -3
  104. package/lib/runtime/runtime-endpoint-base.d.ts +3 -0
  105. package/lib/runtime/runtime-endpoint-base.js +22 -2
  106. package/lib/runtime/runtime-endpoint.d.ts +1 -0
  107. package/lib/runtime/runtime-endpoint.js +36 -3
  108. package/lib/runtime/runtime.d.ts +2 -0
  109. package/lib/runtime/runtime.js +38 -5
  110. package/lib/runtime/types.d.ts +3 -0
  111. package/lib/runtime/types.js +2 -1
  112. package/lib/runtime/validation-helpers.d.ts +6 -0
  113. package/lib/runtime/validation-helpers.js +7 -1
  114. package/lib/tools/browser.d.ts +6 -0
  115. package/lib/tools/browser.js +205 -8
  116. package/lib/tools/code-interpreter.d.ts +4 -0
  117. package/lib/tools/code-interpreter.js +185 -7
  118. package/lib/tools/perms.d.ts +12 -0
  119. package/lib/tools/perms.js +13 -1
  120. package/lib/tools/validation-helpers.d.ts +6 -0
  121. package/lib/tools/validation-helpers.js +7 -1
  122. package/package.json +10 -10
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.AgentRuntimeArtifact = exports.AgentCoreRuntime = void 0;
4
37
  const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
@@ -16,14 +49,15 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
16
49
  * and limitations under the License.
17
50
  */
18
51
  const aws_cdk_lib_1 = require("aws-cdk-lib");
19
- const assets = require("aws-cdk-lib/aws-ecr-assets");
20
- const s3 = require("aws-cdk-lib/aws-s3");
21
- const s3_assets = require("aws-cdk-lib/aws-s3-assets");
52
+ const assets = __importStar(require("aws-cdk-lib/aws-ecr-assets"));
53
+ const s3 = __importStar(require("aws-cdk-lib/aws-s3"));
54
+ const s3_assets = __importStar(require("aws-cdk-lib/aws-s3-assets"));
22
55
  const errors_1 = require("aws-cdk-lib/core/lib/errors");
23
56
  const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
24
57
  /**
25
58
  * Bedrock AgentCore runtime environment for code execution
26
59
  * Allowed values: PYTHON_3_10 | PYTHON_3_11 | PYTHON_3_12 | PYTHON_3_13 | PYTHON_3_14 | NODE_22
60
+ * @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
27
61
  */
28
62
  var AgentCoreRuntime;
29
63
  (function (AgentCoreRuntime) {
@@ -55,13 +89,23 @@ var AgentCoreRuntime;
55
89
  /**
56
90
  * Abstract base class for agent runtime artifacts.
57
91
  * Provides methods to reference container images from ECR repositories or local assets.
92
+ * @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
58
93
  */
59
94
  class AgentRuntimeArtifact {
60
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.256.1-alpha.0" };
95
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.258.0-alpha.0" };
61
96
  /**
62
97
  * Reference an image in an ECR repository
63
98
  */
64
99
  static fromEcrRepository(repository, tag = 'latest') {
100
+ try {
101
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact#fromEcrRepository", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
102
+ }
103
+ catch (error) {
104
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
105
+ Error.captureStackTrace(error, this.fromEcrRepository);
106
+ }
107
+ throw error;
108
+ }
65
109
  return new EcrImage(repository, tag);
66
110
  }
67
111
  /**
@@ -70,6 +114,15 @@ class AgentRuntimeArtifact {
70
114
  * @param options The options to further configure the selected image
71
115
  */
72
116
  static fromAsset(directory, options = {}) {
117
+ try {
118
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact#fromAsset", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
119
+ }
120
+ catch (error) {
121
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
122
+ Error.captureStackTrace(error, this.fromAsset);
123
+ }
124
+ throw error;
125
+ }
73
126
  return new AssetImage(directory, options);
74
127
  }
75
128
  /**
@@ -80,6 +133,7 @@ class AgentRuntimeArtifact {
80
133
  */
81
134
  static fromS3(s3Location, runtime, entrypoint) {
82
135
  try {
136
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact#fromS3", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
83
137
  jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_AgentCoreRuntime(runtime);
84
138
  }
85
139
  catch (error) {
@@ -96,6 +150,7 @@ class AgentRuntimeArtifact {
96
150
  */
97
151
  static fromCodeAsset(options) {
98
152
  try {
153
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact#fromCodeAsset", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
99
154
  jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_CodeAssetOptions(options);
100
155
  }
101
156
  catch (error) {
@@ -117,6 +172,15 @@ class AgentRuntimeArtifact {
117
172
  * @param containerUri The ECR container image URI (format: {account}.dkr.ecr.{region}.amazonaws.com/{repository}:{tag})
118
173
  */
119
174
  static fromImageUri(containerUri) {
175
+ try {
176
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact#fromImageUri", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
177
+ }
178
+ catch (error) {
179
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
180
+ Error.captureStackTrace(error, this.fromImageUri);
181
+ }
182
+ throw error;
183
+ }
120
184
  return new ImageUriArtifact(containerUri);
121
185
  }
122
186
  }
@@ -287,4 +351,4 @@ class ImageUriArtifact extends AgentRuntimeArtifact {
287
351
  };
288
352
  }
289
353
  }
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bnRpbWUtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILDZDQUEyQztBQUczQyxxREFBcUQ7QUFDckQseUNBQXlDO0FBQ3pDLHVEQUF1RDtBQUN2RCx3REFBc0U7QUFDdEUsNEVBQTREO0FBSTVEOzs7R0FHRztBQUNILElBQVksZ0JBeUJYO0FBekJELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gsK0NBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILCtDQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsK0NBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUF6QlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUF5QjNCO0FBc0JEOzs7R0FHRztBQUNILE1BQXNCLG9CQUFvQjs7SUFDeEM7O09BRUc7SUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsVUFBMkIsRUFBRSxNQUFjLFFBQVE7UUFDakYsT0FBTyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDdEM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFpQixFQUFFLFVBQTBDLEVBQUU7UUFDckYsT0FBTyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDM0M7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBdUIsRUFBRSxPQUF5QixFQUFFLFVBQW9COzs7Ozs7Ozs7O1FBQzNGLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztLQUNyRDtJQUVEOzs7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Q0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLGdDQUF1QixDQUFDLElBQUEsc0JBQUcsRUFBQSxxQkFBcUIsRUFBRSxxREFBcUQsQ0FBQyxDQUFDO1FBQ3JILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBUTtZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUNwQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUM7UUFFRixPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxRQUFRO2FBQ2I7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQ3JCLENBQUM7S0FDVjtDQUNGO0FBRUQsTUFBTSxnQkFBaUIsU0FBUSxvQkFBb0I7SUFDcEI7SUFBN0IsWUFBNkIsWUFBb0I7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFEbUIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFHL0Msb0VBQW9FO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLDhIQUE4SCxDQUFDO1FBQ2xKLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN4RSxNQUFNLElBQUksZ0NBQXVCLENBQy9CLElBQUEsc0JBQUcsRUFBQSx3QkFBd0IsRUFDM0IscUNBQXFDLFlBQVksbUZBQW1GLENBQ3JJLENBQUM7UUFDSixDQUFDO0tBQ0Y7SUFFTSxJQUFJLENBQUMsTUFBaUIsRUFBRSxRQUFpQjtLQUcvQztJQUVNLE9BQU87UUFDWixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3pCLENBQUM7S0FDVjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU3RhY2ssIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5SdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHR5cGUgKiBhcyBlY3IgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcic7XG5pbXBvcnQgKiBhcyBhc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzX2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvZXJyb3JzJztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgUnVudGltZSB9IGZyb20gJy4vcnVudGltZSc7XG5cbi8qKlxuICogQmVkcm9jayBBZ2VudENvcmUgcnVudGltZSBlbnZpcm9ubWVudCBmb3IgY29kZSBleGVjdXRpb25cbiAqIEFsbG93ZWQgdmFsdWVzOiBQWVRIT05fM18xMCB8IFBZVEhPTl8zXzExIHwgUFlUSE9OXzNfMTIgfCBQWVRIT05fM18xMyB8IFBZVEhPTl8zXzE0IHwgTk9ERV8yMlxuICovXG5leHBvcnQgZW51bSBBZ2VudENvcmVSdW50aW1lIHtcbiAgLyoqXG4gICAqIFB5dGhvbiAzLjEwIHJ1bnRpbWVcbiAgICovXG4gIFBZVEhPTl8zXzEwID0gJ1BZVEhPTl8zXzEwJyxcbiAgLyoqXG4gICAqIFB5dGhvbiAzLjExIHJ1bnRpbWVcbiAgICovXG4gIFBZVEhPTl8zXzExID0gJ1BZVEhPTl8zXzExJyxcbiAgLyoqXG4gICAqIFB5dGhvbiAzLjEyIHJ1bnRpbWVcbiAgICovXG4gIFBZVEhPTl8zXzEyID0gJ1BZVEhPTl8zXzEyJyxcbiAgLyoqXG4gICAqIFB5dGhvbiAzLjEzIHJ1bnRpbWVcbiAgICovXG4gIFBZVEhPTl8zXzEzID0gJ1BZVEhPTl8zXzEzJyxcbiAgLyoqXG4gICAqIFB5dGhvbiAzLjE0IHJ1bnRpbWVcbiAgICovXG4gIFBZVEhPTl8zXzE0ID0gJ1BZVEhPTl8zXzE0JyxcbiAgLyoqXG4gICAqIE5vZGUuanMgMjIgcnVudGltZVxuICAgKi9cbiAgTk9ERV8yMiA9ICdOT0RFXzIyJyxcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyBhbiBTMyBjb2RlIGFzc2V0IGZyb20gbG9jYWwgZmlsZXMgZm9yIGFnZW50IHJ1bnRpbWUgYXJ0aWZhY3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQXNzZXRPcHRpb25zIGV4dGVuZHMgczNfYXNzZXRzLkFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBwYXRoIHRvIHRoZSBjb2RlIGFzc2V0XG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBydW50aW1lIGVudmlyb25tZW50IGZvciBleGVjdXRpbmcgdGhlIGNvZGVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU6IEFnZW50Q29yZVJ1bnRpbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIGNvZGUgZXhlY3V0aW9uLCBzcGVjaWZ5aW5nIHRoZSBmdW5jdGlvbiBvciBtZXRob2QgdGhhdCBzaG91bGQgYmUgaW52b2tlZCB3aGVuIHRoZSBjb2RlIHJ1bnNcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGFnZW50IHJ1bnRpbWUgYXJ0aWZhY3RzLlxuICogUHJvdmlkZXMgbWV0aG9kcyB0byByZWZlcmVuY2UgY29udGFpbmVyIGltYWdlcyBmcm9tIEVDUiByZXBvc2l0b3JpZXMgb3IgbG9jYWwgYXNzZXRzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWdlbnRSdW50aW1lQXJ0aWZhY3Qge1xuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGltYWdlIGluIGFuIEVDUiByZXBvc2l0b3J5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FY3JSZXBvc2l0b3J5KHJlcG9zaXRvcnk6IGVjci5JUmVwb3NpdG9yeSwgdGFnOiBzdHJpbmcgPSAnbGF0ZXN0Jyk6IEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgICByZXR1cm4gbmV3IEVjckltYWdlKHJlcG9zaXRvcnksIHRhZyk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGFnZW50IHJ1bnRpbWUgYXJ0aWZhY3QgdGhhdCdzIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGZyb20gc291cmNlcyBvbiBkaXNrXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgVGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgRG9ja2VyZmlsZSBpcyBzdG9yZWRcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgdG8gZnVydGhlciBjb25maWd1cmUgdGhlIHNlbGVjdGVkIGltYWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChkaXJlY3Rvcnk6IHN0cmluZywgb3B0aW9uczogYXNzZXRzLkRvY2tlckltYWdlQXNzZXRPcHRpb25zID0ge30pOiBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gICAgcmV0dXJuIG5ldyBBc3NldEltYWdlKGRpcmVjdG9yeSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGFnZW50IHJ1bnRpbWUgYXJ0aWZhY3QgdGhhdCdzIGNvbnN0cnVjdGVkIGRpcmVjdGx5IGZyb20gYW4gUzMgb2JqZWN0XG4gICAqIEBwYXJhbSBzM0xvY2F0aW9uIFRoZSBzb3VyY2UgY29kZSBsb2NhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBkZXRhaWxzLlxuICAgKiBAcGFyYW0gcnVudGltZSBUaGUgcnVudGltZSBlbnZpcm9ubWVudCBmb3IgZXhlY3V0aW5nIHRoZSBjb2RlLiBBbGxvd2VkIHZhbHVlczogUFlUSE9OXzNfMTAgfCBQWVRIT05fM18xMSB8IFBZVEhPTl8zXzEyIHwgUFlUSE9OXzNfMTMgfCBQWVRIT05fM18xNCB8IE5PREVfMjJcbiAgICogQHBhcmFtIGVudHJ5cG9pbnQgVGhlIGVudHJ5IHBvaW50IGZvciB0aGUgY29kZSBleGVjdXRpb24sIHNwZWNpZnlpbmcgdGhlIGZ1bmN0aW9uIG9yIG1ldGhvZCB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGNvZGUgcnVucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzKHMzTG9jYXRpb246IHMzLkxvY2F0aW9uLCBydW50aW1lOiBBZ2VudENvcmVSdW50aW1lLCBlbnRyeXBvaW50OiBzdHJpbmdbXSk6IEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgICByZXR1cm4gbmV3IFMzSW1hZ2UoczNMb2NhdGlvbiwgcnVudGltZSwgZW50cnlwb2ludCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGFnZW50IHJ1bnRpbWUgYXJ0aWZhY3QgdGhhdCdzIGNvbnN0cnVjdGVkIGZyb20gbG9jYWwgY29kZSBhc3NldHMgdXBsb2FkZWQgdG8gYSBDREstbWFuYWdlZCBTMyBidWNrZXRcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBjb2RlIGFzc2V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db2RlQXNzZXQob3B0aW9uczogQ29kZUFzc2V0T3B0aW9ucyk6IEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgICByZXR1cm4gbmV3IENvZGVBc3NldChvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgYW4gaW1hZ2UgdXNpbmcgYW4gRUNSIGNvbnRhaW5lciBVUklcbiAgICpcbiAgICogVXNlIHRoaXMgd2hlbiByZWZlcmVuY2luZyBFQ1IgaW1hZ2VzIGZyb20gQ2xvdWRGb3JtYXRpb24gcGFyYW1ldGVycyBvciBjcm9zcy1zdGFjayByZWZlcmVuY2VzLlxuICAgKlxuICAgKiAqKk5vdGU6KiogTm8gSUFNIHBlcm1pc3Npb25zIGFyZSBhdXRvbWF0aWNhbGx5IGdyYW50ZWQuIFlvdSBtdXN0IGVuc3VyZSB0aGUgcnVudGltZSBoYXNcbiAgICogRUNSIHB1bGwgcGVybWlzc2lvbnMgZm9yIHRoZSByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyVXJpIFRoZSBFQ1IgY29udGFpbmVyIGltYWdlIFVSSSAoZm9ybWF0OiB7YWNjb3VudH0uZGtyLmVjci57cmVnaW9ufS5hbWF6b25hd3MuY29tL3tyZXBvc2l0b3J5fTp7dGFnfSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUltYWdlVXJpKGNvbnRhaW5lclVyaTogc3RyaW5nKTogQWdlbnRSdW50aW1lQXJ0aWZhY3Qge1xuICAgIHJldHVybiBuZXcgSW1hZ2VVcmlBcnRpZmFjdChjb250YWluZXJVcmkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBpbWFnZSBpcyB1c2VkIGJ5IGEgUnVudGltZSB0byBoYW5kbGUgc2lkZSBlZmZlY3RzIGxpa2UgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIHJ1bnRpbWU6IFJ1bnRpbWUpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGFydGlmYWN0IGNvbmZpZ3VyYXRpb24gZm9yIENsb3VkRm9ybWF0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BZ2VudFJ1bnRpbWVBcnRpZmFjdFByb3BlcnR5O1xufVxuXG5jbGFzcyBFY3JJbWFnZSBleHRlbmRzIEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgcHJpdmF0ZSBib3VuZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeTogZWNyLklSZXBvc2l0b3J5LCBwcml2YXRlIHJlYWRvbmx5IHRhZzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0LCBydW50aW1lOiBSdW50aW1lKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIHBlcm1pc3Npb25zIChvbmx5IG9uY2UpXG4gICAgaWYgKCF0aGlzLmJvdW5kICYmIHJ1bnRpbWUucm9sZSkge1xuICAgICAgdGhpcy5yZXBvc2l0b3J5LmdyYW50UHVsbChydW50aW1lLnJvbGUpO1xuICAgICAgdGhpcy5ib3VuZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BZ2VudFJ1bnRpbWVBcnRpZmFjdFByb3BlcnR5IHtcbiAgICAvLyBSZXR1cm4gY29udGFpbmVyIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkgYXMgZXhwZWN0ZWQgYnkgdGhlIHJ1bnRpbWVcbiAgICAvLyBUaGUgcnVudGltZSB3cmFwcyB0aGlzIGluIGNvbnRhaW5lckNvbmZpZ3VyYXRpb25cbiAgICByZXR1cm4ge1xuICAgICAgY29udGFpbmVyVXJpOiB0aGlzLnJlcG9zaXRvcnkucmVwb3NpdG9yeVVyaUZvclRhZyh0aGlzLnRhZyksXG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cblxuY2xhc3MgQXNzZXRJbWFnZSBleHRlbmRzIEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgcHJpdmF0ZSBhc3NldD86IGFzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0O1xuICBwcml2YXRlIGJvdW5kID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBhc3NldHMuRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCBydW50aW1lOiBSdW50aW1lKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIHRoZSBhc3NldCBpZiBub3QgYWxyZWFkeSBjcmVhdGVkXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IGFzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0KHNjb3BlLCAnQWdlbnRSdW50aW1lQXJ0aWZhY3QnLCB7XG4gICAgICAgIGRpcmVjdG9yeTogdGhpcy5kaXJlY3RvcnksXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEdyYW50IHBlcm1pc3Npb25zIChvbmx5IG9uY2UpXG4gICAgaWYgKCF0aGlzLmJvdW5kKSB7XG4gICAgICB0aGlzLmFzc2V0LnJlcG9zaXRvcnkuZ3JhbnRQdWxsKHJ1bnRpbWUucm9sZSk7XG4gICAgICB0aGlzLmJvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5SdW50aW1lLkFnZW50UnVudGltZUFydGlmYWN0UHJvcGVydHkge1xuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBBc3NldE5vdEluaXRpYWxpemVkYCwgJ0Fzc2V0IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBiaW5kKCkgYmVmb3JlIF9yZW5kZXIoKScpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBjb250YWluZXIgY29uZmlndXJhdGlvbiBkaXJlY3RseSBhcyBleHBlY3RlZCBieSB0aGUgcnVudGltZVxuICAgIC8vIFRoZSBydW50aW1lIHdyYXBzIHRoaXMgaW4gY29udGFpbmVyQ29uZmlndXJhdGlvblxuICAgIHJldHVybiB7XG4gICAgICBjb250YWluZXJVcmk6IHRoaXMuYXNzZXQuaW1hZ2VVcmksXG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cblxuY2xhc3MgUzNJbWFnZSBleHRlbmRzIEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgcHJpdmF0ZSBib3VuZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgczNMb2NhdGlvbjogczMuTG9jYXRpb24sIHByaXZhdGUgcmVhZG9ubHkgcnVudGltZTogQWdlbnRDb3JlUnVudGltZSwgcHJpdmF0ZSByZWFkb25seSBlbnRyeXBvaW50OiBzdHJpbmdbXSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0LCBydW50aW1lOiBSdW50aW1lKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIHBlcm1pc3Npb25zIChvbmx5IG9uY2UpXG4gICAgaWYgKCF0aGlzLmJvdW5kICYmIHJ1bnRpbWUucm9sZSkge1xuICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUpKSB7XG4gICAgICAgIFN0YWNrLm9mKHNjb3BlKS5yZXNvbHZlKHRoaXMuczNMb2NhdGlvbi5idWNrZXROYW1lKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJ1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGAke3RoaXMuczNMb2NhdGlvbi5idWNrZXROYW1lfUNvZGVBcmNoaXZlYCxcbiAgICAgICAgdGhpcy5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICApO1xuICAgICAgLy8gRW5zdXJlIHRoZSBwb2xpY3kgaXMgYXBwbGllZCBiZWZvcmUgdGhlIGJyb3dzZXIgcmVzb3VyY2UgaXMgY3JlYXRlZFxuICAgICAgYnVja2V0LmdyYW50UmVhZChydW50aW1lLnJvbGUpO1xuICAgICAgdGhpcy5ib3VuZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BZ2VudFJ1bnRpbWVBcnRpZmFjdFByb3BlcnR5IHtcbiAgICBjb25zdCBzM0NvbmZpZzogYW55ID0ge1xuICAgICAgYnVja2V0OiB0aGlzLnMzTG9jYXRpb24uYnVja2V0TmFtZSxcbiAgICAgIHByZWZpeDogdGhpcy5zM0xvY2F0aW9uLm9iamVjdEtleSxcbiAgICB9O1xuICAgIGlmICh0aGlzLnMzTG9jYXRpb24ub2JqZWN0VmVyc2lvbikge1xuICAgICAgczNDb25maWcudmVyc2lvbklkID0gdGhpcy5zM0xvY2F0aW9uLm9iamVjdFZlcnNpb247XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiB7XG4gICAgICAgIHMzOiBzM0NvbmZpZyxcbiAgICAgIH0sXG4gICAgICBydW50aW1lOiB0aGlzLnJ1bnRpbWUsXG4gICAgICBlbnRyeVBvaW50OiB0aGlzLmVudHJ5cG9pbnQsXG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cblxuY2xhc3MgQ29kZUFzc2V0IGV4dGVuZHMgQWdlbnRSdW50aW1lQXJ0aWZhY3Qge1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuICBwcml2YXRlIGJvdW5kID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bnRpbWU6IEFnZW50Q29yZVJ1bnRpbWU7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogczNfYXNzZXRzLkFzc2V0T3B0aW9ucztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQ29kZUFzc2V0T3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBwYXRoLCBydW50aW1lLCBlbnRyeXBvaW50LCAuLi5vcHRpb25zIH0gPSBwcm9wcztcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMucnVudGltZSA9IHJ1bnRpbWU7XG4gICAgdGhpcy5lbnRyeXBvaW50ID0gZW50cnlwb2ludDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgcnVudGltZTogUnVudGltZSk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSB0aGUgYXNzZXQgaWYgbm90IGFscmVhZHkgY3JlYXRlZFxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBzM19hc3NldHMuQXNzZXQoc2NvcGUsICdBZ2VudFJ1bnRpbWVBcnRpZmFjdCcsIHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgcGVybWlzc2lvbnMgKG9ubHkgb25jZSlcbiAgICBpZiAoIXRoaXMuYm91bmQgJiYgcnVudGltZS5yb2xlKSB7XG4gICAgICBjb25zdCBidWNrZXQgPSB0aGlzLmFzc2V0LmJ1Y2tldDtcbiAgICAgIC8vIEVuc3VyZSB0aGUgcG9saWN5IGlzIGFwcGxpZWQgYmVmb3JlIHRoZSBydW50aW1lIHJlc291cmNlIGlzIGNyZWF0ZWRcbiAgICAgIGJ1Y2tldC5ncmFudFJlYWQocnVudGltZS5yb2xlKTtcbiAgICAgIHRoaXMuYm91bmQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQWdlbnRSdW50aW1lQXJ0aWZhY3RQcm9wZXJ0eSB7XG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IobGl0YEFzc2V0Tm90SW5pdGlhbGl6ZWRgLCAnQXNzZXQgbm90IGluaXRpYWxpemVkLiBDYWxsIGJpbmQoKSBiZWZvcmUgX3JlbmRlcigpJyk7XG4gICAgfVxuXG4gICAgY29uc3QgczNDb25maWc6IGFueSA9IHtcbiAgICAgIGJ1Y2tldDogdGhpcy5hc3NldC5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIHByZWZpeDogdGhpcy5hc3NldC5zM09iamVjdEtleSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6IHtcbiAgICAgICAgczM6IHMzQ29uZmlnLFxuICAgICAgfSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMucnVudGltZSxcbiAgICAgIGVudHJ5UG9pbnQ6IHRoaXMuZW50cnlwb2ludCxcbiAgICB9IGFzIGFueTtcbiAgfVxufVxuXG5jbGFzcyBJbWFnZVVyaUFydGlmYWN0IGV4dGVuZHMgQWdlbnRSdW50aW1lQXJ0aWZhY3Qge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lclVyaTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIFZhbGlkYXRlIEVDUiBjb250YWluZXIgVVJJIGZvcm1hdCBwZXIgQ2xvdWRGb3JtYXRpb24gcmVxdWlyZW1lbnRzXG4gICAgY29uc3QgZWNyUGF0dGVybiA9IC9eXFxkezEyfVxcLmRrclxcLmVjclxcLihbYS16MC05LV0rKVxcLmFtYXpvbmF3c1xcLmNvbVxcLygoPzpbYS16MC05XSsoPzpbLl8tXVthLXowLTldKykqXFwvKSpbYS16MC05XSsoPzpbLl8tXVthLXowLTldKykqKShbOkBdXFxTKykkLztcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChjb250YWluZXJVcmkpICYmICFlY3JQYXR0ZXJuLnRlc3QoY29udGFpbmVyVXJpKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZEVjckNvbnRhaW5lclVyaWAsXG4gICAgICAgIGBJbnZhbGlkIEVDUiBjb250YWluZXIgVVJJIGZvcm1hdDogJHtjb250YWluZXJVcml9LiBNdXN0IGJlIGFuIEVDUiBVUkk6IHthY2NvdW50fS5ka3IuZWNyLntyZWdpb259LmFtYXpvbmF3cy5jb20ve3JlcG9zaXRvcnl9Ont0YWd9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QsIF9ydW50aW1lOiBSdW50aW1lKTogdm9pZCB7XG4gICAgLy8gTm8gcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQgYXV0b21hdGljYWxseSB3aGVuIHVzaW5nIGEgZGlyZWN0IFVSSS5cbiAgICAvLyBVc2VycyBtdXN0IG1hbmFnZSBFQ1IgcHVsbCBwZXJtaXNzaW9ucyBzZXBhcmF0ZWx5LlxuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BZ2VudFJ1bnRpbWVBcnRpZmFjdFByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGFpbmVyVXJpOiB0aGlzLmNvbnRhaW5lclVyaSxcbiAgICB9IGFzIGFueTtcbiAgfVxufVxuIl19
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bnRpbWUtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILDZDQUEyQztBQUczQyxtRUFBcUQ7QUFDckQsdURBQXlDO0FBQ3pDLHFFQUF1RDtBQUN2RCx3REFBc0U7QUFDdEUsNEVBQTREO0FBSTVEOzs7O0dBSUc7QUFDSCxJQUFZLGdCQXlCWDtBQXpCRCxXQUFZLGdCQUFnQjtJQUMxQjs7T0FFRztJQUNILCtDQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsK0NBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILCtDQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsK0NBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCx1Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBekJXLGdCQUFnQixnQ0FBaEIsZ0JBQWdCLFFBeUIzQjtBQXVCRDs7OztHQUlHO0FBQ0gsTUFBc0Isb0JBQW9COztJQUN4Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxVQUEyQixFQUFFLE1BQWMsUUFBUTs7Ozs7Ozs7OztRQUNqRixPQUFPLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUN0QztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQWlCLEVBQUUsVUFBMEMsRUFBRTs7Ozs7Ozs7OztRQUNyRixPQUFPLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMzQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUF1QixFQUFFLE9BQXlCLEVBQUUsVUFBb0I7Ozs7Ozs7Ozs7O1FBQzNGLE9BQU8sSUFBSSxPQUFP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b250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgQ2ZuUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB0eXBlICogYXMgZWNyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3InO1xuaW1wb3J0ICogYXMgYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3ItYXNzZXRzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2Vycm9ycyc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWUgfSBmcm9tICcuL3J1bnRpbWUnO1xuXG4vKipcbiAqIEJlZHJvY2sgQWdlbnRDb3JlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIGNvZGUgZXhlY3V0aW9uXG4gKiBBbGxvd2VkIHZhbHVlczogUFlUSE9OXzNfMTAgfCBQWVRIT05fM18xMSB8IFBZVEhPTl8zXzEyIHwgUFlUSE9OXzNfMTMgfCBQWVRIT05fM18xNCB8IE5PREVfMjJcbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgZXF1aXZhbGVudCBjb25zdHJ1Y3QgZnJvbSBgYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmVgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBlbnVtIEFnZW50Q29yZVJ1bnRpbWUge1xuICAvKipcbiAgICogUHl0aG9uIDMuMTAgcnVudGltZVxuICAgKi9cbiAgUFlUSE9OXzNfMTAgPSAnUFlUSE9OXzNfMTAnLFxuICAvKipcbiAgICogUHl0aG9uIDMuMTEgcnVudGltZVxuICAgKi9cbiAgUFlUSE9OXzNfMTEgPSAnUFlUSE9OXzNfMTEnLFxuICAvKipcbiAgICogUHl0aG9uIDMuMTIgcnVudGltZVxuICAgKi9cbiAgUFlUSE9OXzNfMTIgPSAnUFlUSE9OXzNfMTInLFxuICAvKipcbiAgICogUHl0aG9uIDMuMTMgcnVudGltZVxuICAgKi9cbiAgUFlUSE9OXzNfMTMgPSAnUFlUSE9OXzNfMTMnLFxuICAvKipcbiAgICogUHl0aG9uIDMuMTQgcnVudGltZVxuICAgKi9cbiAgUFlUSE9OXzNfMTQgPSAnUFlUSE9OXzNfMTQnLFxuICAvKipcbiAgICogTm9kZS5qcyAyMiBydW50aW1lXG4gICAqL1xuICBOT0RFXzIyID0gJ05PREVfMjInLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIGFuIFMzIGNvZGUgYXNzZXQgZnJvbSBsb2NhbCBmaWxlcyBmb3IgYWdlbnQgcnVudGltZSBhcnRpZmFjdFxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBlcXVpdmFsZW50IGNvbnN0cnVjdCBmcm9tIGBhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZWAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQXNzZXRPcHRpb25zIGV4dGVuZHMgczNfYXNzZXRzLkFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBwYXRoIHRvIHRoZSBjb2RlIGFzc2V0XG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBydW50aW1lIGVudmlyb25tZW50IGZvciBleGVjdXRpbmcgdGhlIGNvZGVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU6IEFnZW50Q29yZVJ1bnRpbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIGNvZGUgZXhlY3V0aW9uLCBzcGVjaWZ5aW5nIHRoZSBmdW5jdGlvbiBvciBtZXRob2QgdGhhdCBzaG91bGQgYmUgaW52b2tlZCB3aGVuIHRoZSBjb2RlIHJ1bnNcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGFnZW50IHJ1bnRpbWUgYXJ0aWZhY3RzLlxuICogUHJvdmlkZXMgbWV0aG9kcyB0byByZWZlcmVuY2UgY29udGFpbmVyIGltYWdlcyBmcm9tIEVDUiByZXBvc2l0b3JpZXMgb3IgbG9jYWwgYXNzZXRzLlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBlcXVpdmFsZW50IGNvbnN0cnVjdCBmcm9tIGBhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZWAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhbiBpbWFnZSBpbiBhbiBFQ1IgcmVwb3NpdG9yeVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5OiBlY3IuSVJlcG9zaXRvcnksIHRhZzogc3RyaW5nID0gJ2xhdGVzdCcpOiBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gICAgcmV0dXJuIG5ldyBFY3JJbWFnZShyZXBvc2l0b3J5LCB0YWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhbiBhZ2VudCBydW50aW1lIGFydGlmYWN0IHRoYXQncyBjb25zdHJ1Y3RlZCBkaXJlY3RseSBmcm9tIHNvdXJjZXMgb24gZGlza1xuICAgKiBAcGFyYW0gZGlyZWN0b3J5IFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIERvY2tlcmZpbGUgaXMgc3RvcmVkXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIGZ1cnRoZXIgY29uZmlndXJlIHRoZSBzZWxlY3RlZCBpbWFnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXNzZXQoZGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM6IGFzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0T3B0aW9ucyA9IHt9KTogQWdlbnRSdW50aW1lQXJ0aWZhY3Qge1xuICAgIHJldHVybiBuZXcgQXNzZXRJbWFnZShkaXJlY3RvcnksIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhbiBhZ2VudCBydW50aW1lIGFydGlmYWN0IHRoYXQncyBjb25zdHJ1Y3RlZCBkaXJlY3RseSBmcm9tIGFuIFMzIG9iamVjdFxuICAgKiBAcGFyYW0gczNMb2NhdGlvbiBUaGUgc291cmNlIGNvZGUgbG9jYXRpb24gYW5kIGNvbmZpZ3VyYXRpb24gZGV0YWlscy5cbiAgICogQHBhcmFtIHJ1bnRpbWUgVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIGV4ZWN1dGluZyB0aGUgY29kZS4gQWxsb3dlZCB2YWx1ZXM6IFBZVEhPTl8zXzEwIHwgUFlUSE9OXzNfMTEgfCBQWVRIT05fM18xMiB8IFBZVEhPTl8zXzEzIHwgUFlUSE9OXzNfMTQgfCBOT0RFXzIyXG4gICAqIEBwYXJhbSBlbnRyeXBvaW50IFRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIGNvZGUgZXhlY3V0aW9uLCBzcGVjaWZ5aW5nIHRoZSBmdW5jdGlvbiBvciBtZXRob2QgdGhhdCBzaG91bGQgYmUgaW52b2tlZCB3aGVuIHRoZSBjb2RlIHJ1bnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TMyhzM0xvY2F0aW9uOiBzMy5Mb2NhdGlvbiwgcnVudGltZTogQWdlbnRDb3JlUnVudGltZSwgZW50cnlwb2ludDogc3RyaW5nW10pOiBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gICAgcmV0dXJuIG5ldyBTM0ltYWdlKHMzTG9jYXRpb24sIHJ1bnRpbWUsIGVudHJ5cG9pbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhbiBhZ2VudCBydW50aW1lIGFydGlmYWN0IHRoYXQncyBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsIGNvZGUgYXNzZXRzIHVwbG9hZGVkIHRvIGEgQ0RLLW1hbmFnZWQgUzMgYnVja2V0XG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgY29kZSBhc3NldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29kZUFzc2V0KG9wdGlvbnM6IENvZGVBc3NldE9wdGlvbnMpOiBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gICAgcmV0dXJuIG5ldyBDb2RlQXNzZXQob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGltYWdlIHVzaW5nIGFuIEVDUiBjb250YWluZXIgVVJJXG4gICAqXG4gICAqIFVzZSB0aGlzIHdoZW4gcmVmZXJlbmNpbmcgRUNSIGltYWdlcyBmcm9tIENsb3VkRm9ybWF0aW9uIHBhcmFtZXRlcnMgb3IgY3Jvc3Mtc3RhY2sgcmVmZXJlbmNlcy5cbiAgICpcbiAgICogKipOb3RlOioqIE5vIElBTSBwZXJtaXNzaW9ucyBhcmUgYXV0b21hdGljYWxseSBncmFudGVkLiBZb3UgbXVzdCBlbnN1cmUgdGhlIHJ1bnRpbWUgaGFzXG4gICAqIEVDUiBwdWxsIHBlcm1pc3Npb25zIGZvciB0aGUgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lclVyaSBUaGUgRUNSIGNvbnRhaW5lciBpbWFnZSBVUkkgKGZvcm1hdDoge2FjY291bnR9LmRrci5lY3Iue3JlZ2lvbn0uYW1hem9uYXdzLmNvbS97cmVwb3NpdG9yeX06e3RhZ30pXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbWFnZVVyaShjb250YWluZXJVcmk6IHN0cmluZyk6IEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgICByZXR1cm4gbmV3IEltYWdlVXJpQXJ0aWZhY3QoY29udGFpbmVyVXJpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgaW1hZ2UgaXMgdXNlZCBieSBhIFJ1bnRpbWUgdG8gaGFuZGxlIHNpZGUgZWZmZWN0cyBsaWtlIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0LCBydW50aW1lOiBSdW50aW1lKTogdm9pZDtcblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBhcnRpZmFjdCBjb25maWd1cmF0aW9uIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQWdlbnRSdW50aW1lQXJ0aWZhY3RQcm9wZXJ0eTtcbn1cblxuY2xhc3MgRWNySW1hZ2UgZXh0ZW5kcyBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gIHByaXZhdGUgYm91bmQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnk6IGVjci5JUmVwb3NpdG9yeSwgcHJpdmF0ZSByZWFkb25seSB0YWc6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChfc2NvcGU6IENvbnN0cnVjdCwgcnVudGltZTogUnVudGltZSk6IHZvaWQge1xuICAgIC8vIEhhbmRsZSBwZXJtaXNzaW9ucyAob25seSBvbmNlKVxuICAgIGlmICghdGhpcy5ib3VuZCAmJiBydW50aW1lLnJvbGUpIHtcbiAgICAgIHRoaXMucmVwb3NpdG9yeS5ncmFudFB1bGwocnVudGltZS5yb2xlKTtcbiAgICAgIHRoaXMuYm91bmQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQWdlbnRSdW50aW1lQXJ0aWZhY3RQcm9wZXJ0eSB7XG4gICAgLy8gUmV0dXJuIGNvbnRhaW5lciBjb25maWd1cmF0aW9uIGRpcmVjdGx5IGFzIGV4cGVjdGVkIGJ5IHRoZSBydW50aW1lXG4gICAgLy8gVGhlIHJ1bnRpbWUgd3JhcHMgdGhpcyBpbiBjb250YWluZXJDb25maWd1cmF0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRhaW5lclVyaTogdGhpcy5yZXBvc2l0b3J5LnJlcG9zaXRvcnlVcmlGb3JUYWcodGhpcy50YWcpLFxuICAgIH0gYXMgYW55O1xuICB9XG59XG5cbmNsYXNzIEFzc2V0SW1hZ2UgZXh0ZW5kcyBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gIHByaXZhdGUgYXNzZXQ/OiBhc3NldHMuRG9ja2VySW1hZ2VBc3NldDtcbiAgcHJpdmF0ZSBib3VuZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogYXNzZXRzLkRvY2tlckltYWdlQXNzZXRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgcnVudGltZTogUnVudGltZSk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSB0aGUgYXNzZXQgaWYgbm90IGFscmVhZHkgY3JlYXRlZFxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBhc3NldHMuRG9ja2VySW1hZ2VBc3NldChzY29wZSwgJ0FnZW50UnVudGltZUFydGlmYWN0Jywge1xuICAgICAgICBkaXJlY3Rvcnk6IHRoaXMuZGlyZWN0b3J5LFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBHcmFudCBwZXJtaXNzaW9ucyAob25seSBvbmNlKVxuICAgIGlmICghdGhpcy5ib3VuZCkge1xuICAgICAgdGhpcy5hc3NldC5yZXBvc2l0b3J5LmdyYW50UHVsbChydW50aW1lLnJvbGUpO1xuICAgICAgdGhpcy5ib3VuZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BZ2VudFJ1bnRpbWVBcnRpZmFjdFByb3BlcnR5IHtcbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgQXNzZXROb3RJbml0aWFsaXplZGAsICdBc3NldCBub3QgaW5pdGlhbGl6ZWQuIENhbGwgYmluZCgpIGJlZm9yZSBfcmVuZGVyKCknKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gY29udGFpbmVyIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkgYXMgZXhwZWN0ZWQgYnkgdGhlIHJ1bnRpbWVcbiAgICAvLyBUaGUgcnVudGltZSB3cmFwcyB0aGlzIGluIGNvbnRhaW5lckNvbmZpZ3VyYXRpb25cbiAgICByZXR1cm4ge1xuICAgICAgY29udGFpbmVyVXJpOiB0aGlzLmFzc2V0LmltYWdlVXJpLFxuICAgIH0gYXMgYW55O1xuICB9XG59XG5cbmNsYXNzIFMzSW1hZ2UgZXh0ZW5kcyBBZ2VudFJ1bnRpbWVBcnRpZmFjdCB7XG4gIHByaXZhdGUgYm91bmQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHMzTG9jYXRpb246IHMzLkxvY2F0aW9uLCBwcml2YXRlIHJlYWRvbmx5IHJ1bnRpbWU6IEFnZW50Q29yZVJ1bnRpbWUsIHByaXZhdGUgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgcnVudGltZTogUnVudGltZSk6IHZvaWQge1xuICAgIC8vIEhhbmRsZSBwZXJtaXNzaW9ucyAob25seSBvbmNlKVxuICAgIGlmICghdGhpcy5ib3VuZCAmJiBydW50aW1lLnJvbGUpIHtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuczNMb2NhdGlvbi5idWNrZXROYW1lKSkge1xuICAgICAgICBTdGFjay5vZihzY29wZSkucmVzb2x2ZSh0aGlzLnMzTG9jYXRpb24uYnVja2V0TmFtZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBidWNrZXQgPSBzMy5CdWNrZXQuZnJvbUJ1Y2tldE5hbWUoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBgJHt0aGlzLnMzTG9jYXRpb24uYnVja2V0TmFtZX1Db2RlQXJjaGl2ZWAsXG4gICAgICAgIHRoaXMuczNMb2NhdGlvbi5idWNrZXROYW1lLFxuICAgICAgKTtcbiAgICAgIC8vIEVuc3VyZSB0aGUgcG9saWN5IGlzIGFwcGxpZWQgYmVmb3JlIHRoZSBicm93c2VyIHJlc291cmNlIGlzIGNyZWF0ZWRcbiAgICAgIGJ1Y2tldC5ncmFudFJlYWQocnVudGltZS5yb2xlKTtcbiAgICAgIHRoaXMuYm91bmQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQWdlbnRSdW50aW1lQXJ0aWZhY3RQcm9wZXJ0eSB7XG4gICAgY29uc3QgczNDb25maWc6IGFueSA9IHtcbiAgICAgIGJ1Y2tldDogdGhpcy5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICBwcmVmaXg6IHRoaXMuczNMb2NhdGlvbi5vYmplY3RLZXksXG4gICAgfTtcbiAgICBpZiAodGhpcy5zM0xvY2F0aW9uLm9iamVjdFZlcnNpb24pIHtcbiAgICAgIHMzQ29uZmlnLnZlcnNpb25JZCA9IHRoaXMuczNMb2NhdGlvbi5vYmplY3RWZXJzaW9uO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29kZToge1xuICAgICAgICBzMzogczNDb25maWcsXG4gICAgICB9LFxuICAgICAgcnVudGltZTogdGhpcy5ydW50aW1lLFxuICAgICAgZW50cnlQb2ludDogdGhpcy5lbnRyeXBvaW50LFxuICAgIH0gYXMgYW55O1xuICB9XG59XG5cbmNsYXNzIENvZGVBc3NldCBleHRlbmRzIEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgcHJpdmF0ZSBhc3NldD86IHMzX2Fzc2V0cy5Bc3NldDtcbiAgcHJpdmF0ZSBib3VuZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBydW50aW1lOiBBZ2VudENvcmVSdW50aW1lO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudHJ5cG9pbnQ6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IENvZGVBc3NldE9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgcGF0aCwgcnVudGltZSwgZW50cnlwb2ludCwgLi4ub3B0aW9ucyB9ID0gcHJvcHM7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLnJ1bnRpbWUgPSBydW50aW1lO1xuICAgIHRoaXMuZW50cnlwb2ludCA9IGVudHJ5cG9pbnQ7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIHJ1bnRpbWU6IFJ1bnRpbWUpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgdGhlIGFzc2V0IGlmIG5vdCBhbHJlYWR5IGNyZWF0ZWRcbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCAnQWdlbnRSdW50aW1lQXJ0aWZhY3QnLCB7XG4gICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHBlcm1pc3Npb25zIChvbmx5IG9uY2UpXG4gICAgaWYgKCF0aGlzLmJvdW5kICYmIHJ1bnRpbWUucm9sZSkge1xuICAgICAgY29uc3QgYnVja2V0ID0gdGhpcy5hc3NldC5idWNrZXQ7XG4gICAgICAvLyBFbnN1cmUgdGhlIHBvbGljeSBpcyBhcHBsaWVkIGJlZm9yZSB0aGUgcnVudGltZSByZXNvdXJjZSBpcyBjcmVhdGVkXG4gICAgICBidWNrZXQuZ3JhbnRSZWFkKHJ1bnRpbWUucm9sZSk7XG4gICAgICB0aGlzLmJvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgX3JlbmRlcigpOiBDZm5SdW50aW1lLkFnZW50UnVudGltZUFydGlmYWN0UHJvcGVydHkge1xuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBBc3NldE5vdEluaXRpYWxpemVkYCwgJ0Fzc2V0IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBiaW5kKCkgYmVmb3JlIF9yZW5kZXIoKScpO1xuICAgIH1cblxuICAgIGNvbnN0IHMzQ29uZmlnOiBhbnkgPSB7XG4gICAgICBidWNrZXQ6IHRoaXMuYXNzZXQuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICBwcmVmaXg6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiB7XG4gICAgICAgIHMzOiBzM0NvbmZpZyxcbiAgICAgIH0sXG4gICAgICBydW50aW1lOiB0aGlzLnJ1bnRpbWUsXG4gICAgICBlbnRyeVBvaW50OiB0aGlzLmVudHJ5cG9pbnQsXG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cblxuY2xhc3MgSW1hZ2VVcmlBcnRpZmFjdCBleHRlbmRzIEFnZW50UnVudGltZUFydGlmYWN0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb250YWluZXJVcmk6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBWYWxpZGF0ZSBFQ1IgY29udGFpbmVyIFVSSSBmb3JtYXQgcGVyIENsb3VkRm9ybWF0aW9uIHJlcXVpcmVtZW50c1xuICAgIGNvbnN0IGVjclBhdHRlcm4gPSAvXlxcZHsxMn1cXC5ka3JcXC5lY3JcXC4oW2EtejAtOS1dKylcXC5hbWF6b25hd3NcXC5jb21cXC8oKD86W2EtejAtOV0rKD86Wy5fLV1bYS16MC05XSspKlxcLykqW2EtejAtOV0rKD86Wy5fLV1bYS16MC05XSspKikoWzpAXVxcUyspJC87XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoY29udGFpbmVyVXJpKSAmJiAhZWNyUGF0dGVybi50ZXN0KGNvbnRhaW5lclVyaSkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRFY3JDb250YWluZXJVcmlgLFxuICAgICAgICBgSW52YWxpZCBFQ1IgY29udGFpbmVyIFVSSSBmb3JtYXQ6ICR7Y29udGFpbmVyVXJpfS4gTXVzdCBiZSBhbiBFQ1IgVVJJOiB7YWNjb3VudH0uZGtyLmVjci57cmVnaW9ufS5hbWF6b25hd3MuY29tL3tyZXBvc2l0b3J5fTp7dGFnfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0LCBfcnVudGltZTogUnVudGltZSk6IHZvaWQge1xuICAgIC8vIE5vIHBlcm1pc3Npb25zIGFyZSBncmFudGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB1c2luZyBhIGRpcmVjdCBVUkkuXG4gICAgLy8gVXNlcnMgbXVzdCBtYW5hZ2UgRUNSIHB1bGwgcGVybWlzc2lvbnMgc2VwYXJhdGVseS5cbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQWdlbnRSdW50aW1lQXJ0aWZhY3RQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRhaW5lclVyaTogdGhpcy5jb250YWluZXJVcmksXG4gICAgfSBhcyBhbnk7XG4gIH1cbn1cbiJdfQ==
@@ -23,6 +23,7 @@ import type { Construct } from 'constructs';
23
23
  *****************************************************************************/
24
24
  /**
25
25
  * Interface for Agent Runtime resources
26
+ * @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
26
27
  */
27
28
  export interface IBedrockAgentRuntime extends IResource, iam.IGrantable, ec2.IConnectable, IRuntimeRef {
28
29
  /**
@@ -149,6 +150,7 @@ export interface IBedrockAgentRuntime extends IResource, iam.IGrantable, ec2.ICo
149
150
  *****************************************************************************/
150
151
  /**
151
152
  * Base class for Agent Runtime
153
+ * @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
152
154
  */
153
155
  export declare abstract class RuntimeBase extends Resource implements IBedrockAgentRuntime {
154
156
  abstract readonly agentRuntimeArn: string;
@@ -274,6 +276,7 @@ export declare abstract class RuntimeBase extends Resource implements IBedrockAg
274
276
  }
275
277
  /**
276
278
  * Attributes for importing an existing Agent Runtime
279
+ * @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
277
280
  */
278
281
  export interface AgentRuntimeAttributes {
279
282
  /**