@aws-cdk/aws-imagebuilder-alpha 2.242.0-alpha.0 → 2.244.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.
package/.jsii CHANGED
@@ -11,7 +11,7 @@
11
11
  "yaml": "1.10.2"
12
12
  },
13
13
  "dependencies": {
14
- "aws-cdk-lib": "^2.242.0",
14
+ "aws-cdk-lib": "^2.244.0",
15
15
  "constructs": "^10.5.0"
16
16
  },
17
17
  "dependencyClosure": {
@@ -11547,7 +11547,7 @@
11547
11547
  },
11548
11548
  "locationInModule": {
11549
11549
  "filename": "lib/component.ts",
11550
- "line": 1019
11550
+ "line": 1020
11551
11551
  },
11552
11552
  "parameters": [
11553
11553
  {
@@ -11699,7 +11699,7 @@
11699
11699
  },
11700
11700
  "locationInModule": {
11701
11701
  "filename": "lib/component.ts",
11702
- "line": 1002
11702
+ "line": 1003
11703
11703
  },
11704
11704
  "name": "isComponent",
11705
11705
  "parameters": [
@@ -11813,7 +11813,7 @@
11813
11813
  "immutable": true,
11814
11814
  "locationInModule": {
11815
11815
  "filename": "lib/component.ts",
11816
- "line": 1075
11816
+ "line": 1077
11817
11817
  },
11818
11818
  "name": "componentArn",
11819
11819
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
@@ -11829,7 +11829,7 @@
11829
11829
  "immutable": true,
11830
11830
  "locationInModule": {
11831
11831
  "filename": "lib/component.ts",
11832
- "line": 1070
11832
+ "line": 1072
11833
11833
  },
11834
11834
  "name": "componentName",
11835
11835
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
@@ -11848,7 +11848,7 @@
11848
11848
  "immutable": true,
11849
11849
  "locationInModule": {
11850
11850
  "filename": "lib/component.ts",
11851
- "line": 1089
11851
+ "line": 1091
11852
11852
  },
11853
11853
  "name": "componentType",
11854
11854
  "type": {
@@ -11863,7 +11863,7 @@
11863
11863
  "immutable": true,
11864
11864
  "locationInModule": {
11865
11865
  "filename": "lib/component.ts",
11866
- "line": 1009
11866
+ "line": 1010
11867
11867
  },
11868
11868
  "name": "componentVersion",
11869
11869
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
@@ -11879,7 +11879,7 @@
11879
11879
  "immutable": true,
11880
11880
  "locationInModule": {
11881
11881
  "filename": "lib/component.ts",
11882
- "line": 1014
11882
+ "line": 1015
11883
11883
  },
11884
11884
  "name": "encrypted",
11885
11885
  "type": {
@@ -11893,7 +11893,7 @@
11893
11893
  "immutable": true,
11894
11894
  "locationInModule": {
11895
11895
  "filename": "lib/component.ts",
11896
- "line": 1016
11896
+ "line": 1017
11897
11897
  },
11898
11898
  "name": "kmsKey",
11899
11899
  "optional": true,
@@ -14172,7 +14172,7 @@
14172
14172
  },
14173
14173
  "locationInModule": {
14174
14174
  "filename": "lib/container-recipe.ts",
14175
- "line": 482
14175
+ "line": 483
14176
14176
  },
14177
14177
  "parameters": [
14178
14178
  {
@@ -14321,7 +14321,7 @@
14321
14321
  },
14322
14322
  "locationInModule": {
14323
14323
  "filename": "lib/container-recipe.ts",
14324
- "line": 475
14324
+ "line": 476
14325
14325
  },
14326
14326
  "name": "isContainerRecipe",
14327
14327
  "parameters": [
@@ -14346,7 +14346,7 @@
14346
14346
  },
14347
14347
  "locationInModule": {
14348
14348
  "filename": "lib/container-recipe.ts",
14349
- "line": 570
14349
+ "line": 571
14350
14350
  },
14351
14351
  "name": "addInstanceBlockDevice",
14352
14352
  "parameters": [
@@ -14391,7 +14391,7 @@
14391
14391
  "immutable": true,
14392
14392
  "locationInModule": {
14393
14393
  "filename": "lib/container-recipe.ts",
14394
- "line": 551
14394
+ "line": 552
14395
14395
  },
14396
14396
  "name": "containerRecipeArn",
14397
14397
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
@@ -14407,7 +14407,7 @@
14407
14407
  "immutable": true,
14408
14408
  "locationInModule": {
14409
14409
  "filename": "lib/container-recipe.ts",
14410
- "line": 546
14410
+ "line": 547
14411
14411
  },
14412
14412
  "name": "containerRecipeName",
14413
14413
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
@@ -14423,7 +14423,7 @@
14423
14423
  "immutable": true,
14424
14424
  "locationInModule": {
14425
14425
  "filename": "lib/container-recipe.ts",
14426
- "line": 560
14426
+ "line": 561
14427
14427
  },
14428
14428
  "name": "containerRecipeVersion",
14429
14429
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
@@ -15156,7 +15156,7 @@
15156
15156
  },
15157
15157
  "locationInModule": {
15158
15158
  "filename": "lib/distribution-configuration.ts",
15159
- "line": 560
15159
+ "line": 561
15160
15160
  },
15161
15161
  "name": "addContainerDistributions",
15162
15162
  "parameters": [
@@ -19416,7 +19416,7 @@
19416
19416
  },
19417
19417
  "locationInModule": {
19418
19418
  "filename": "lib/image-recipe.ts",
19419
- "line": 310
19419
+ "line": 311
19420
19420
  },
19421
19421
  "parameters": [
19422
19422
  {
@@ -19568,7 +19568,7 @@
19568
19568
  },
19569
19569
  "locationInModule": {
19570
19570
  "filename": "lib/image-recipe.ts",
19571
- "line": 303
19571
+ "line": 304
19572
19572
  },
19573
19573
  "name": "isImageRecipe",
19574
19574
  "parameters": [
@@ -19593,7 +19593,7 @@
19593
19593
  },
19594
19594
  "locationInModule": {
19595
19595
  "filename": "lib/image-recipe.ts",
19596
- "line": 385
19596
+ "line": 386
19597
19597
  },
19598
19598
  "name": "addBlockDevice",
19599
19599
  "parameters": [
@@ -19705,7 +19705,7 @@
19705
19705
  "immutable": true,
19706
19706
  "locationInModule": {
19707
19707
  "filename": "lib/image-recipe.ts",
19708
- "line": 366
19708
+ "line": 367
19709
19709
  },
19710
19710
  "name": "imageRecipeArn",
19711
19711
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
@@ -19721,7 +19721,7 @@
19721
19721
  "immutable": true,
19722
19722
  "locationInModule": {
19723
19723
  "filename": "lib/image-recipe.ts",
19724
- "line": 361
19724
+ "line": 362
19725
19725
  },
19726
19726
  "name": "imageRecipeName",
19727
19727
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
@@ -19737,7 +19737,7 @@
19737
19737
  "immutable": true,
19738
19738
  "locationInModule": {
19739
19739
  "filename": "lib/image-recipe.ts",
19740
- "line": 375
19740
+ "line": 376
19741
19741
  },
19742
19742
  "name": "imageRecipeVersion",
19743
19743
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
@@ -20345,7 +20345,7 @@
20345
20345
  "immutable": true,
20346
20346
  "locationInModule": {
20347
20347
  "filename": "lib/infrastructure-configuration.ts",
20348
- "line": 550
20348
+ "line": 554
20349
20349
  },
20350
20350
  "name": "infrastructureConfigurationArn",
20351
20351
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IInfrastructureConfiguration",
@@ -20361,7 +20361,7 @@
20361
20361
  "immutable": true,
20362
20362
  "locationInModule": {
20363
20363
  "filename": "lib/infrastructure-configuration.ts",
20364
- "line": 545
20364
+ "line": 549
20365
20365
  },
20366
20366
  "name": "infrastructureConfigurationName",
20367
20367
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IInfrastructureConfiguration",
@@ -23408,7 +23408,7 @@
23408
23408
  },
23409
23409
  "locationInModule": {
23410
23410
  "filename": "lib/workflow.ts",
23411
- "line": 728
23411
+ "line": 731
23412
23412
  },
23413
23413
  "parameters": [
23414
23414
  {
@@ -23522,7 +23522,7 @@
23522
23522
  },
23523
23523
  "locationInModule": {
23524
23524
  "filename": "lib/workflow.ts",
23525
- "line": 712
23525
+ "line": 715
23526
23526
  },
23527
23527
  "name": "isWorkflow",
23528
23528
  "parameters": [
@@ -23635,7 +23635,7 @@
23635
23635
  "immutable": true,
23636
23636
  "locationInModule": {
23637
23637
  "filename": "lib/workflow.ts",
23638
- "line": 769
23638
+ "line": 772
23639
23639
  },
23640
23640
  "name": "workflowArn",
23641
23641
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -23651,7 +23651,7 @@
23651
23651
  "immutable": true,
23652
23652
  "locationInModule": {
23653
23653
  "filename": "lib/workflow.ts",
23654
- "line": 764
23654
+ "line": 767
23655
23655
  },
23656
23656
  "name": "workflowName",
23657
23657
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -23667,7 +23667,7 @@
23667
23667
  "immutable": true,
23668
23668
  "locationInModule": {
23669
23669
  "filename": "lib/workflow.ts",
23670
- "line": 719
23670
+ "line": 722
23671
23671
  },
23672
23672
  "name": "workflowType",
23673
23673
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -23683,7 +23683,7 @@
23683
23683
  "immutable": true,
23684
23684
  "locationInModule": {
23685
23685
  "filename": "lib/workflow.ts",
23686
- "line": 724
23686
+ "line": 727
23687
23687
  },
23688
23688
  "name": "workflowVersion",
23689
23689
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -24786,6 +24786,6 @@
24786
24786
  "symbolId": "lib/workflow:WorkflowType"
24787
24787
  }
24788
24788
  },
24789
- "version": "2.242.0-alpha.0",
24789
+ "version": "2.244.0-alpha.0",
24790
24790
  "fingerprint": "**********"
24791
24791
  }
Binary file
@@ -11,7 +11,7 @@ const constants_1 = require("./private/constants");
11
11
  * Helper class for working with Amazon-managed components
12
12
  */
13
13
  class AmazonManagedComponent {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent", version: "2.242.0-alpha.0" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent", version: "2.244.0-alpha.0" };
15
15
  /**
16
16
  * Imports the AWS CLI v2 Amazon-managed component
17
17
  *
@@ -206,17 +206,17 @@ class AmazonManagedComponent {
206
206
  };
207
207
  static validatePredefinedManagedComponentOptions(scope, opts, component) {
208
208
  if (opts.platform === undefined) {
209
- throw new cdk.ValidationError(`a platform is required for ${component}`, scope);
209
+ throw new cdk.ValidationError('PlatformRequired', `a platform is required for ${component}`, scope);
210
210
  }
211
211
  if (cdk.Token.isUnresolved(opts.platform)) {
212
- throw new cdk.ValidationError(`platform cannot be a token for ${component}`, scope);
212
+ throw new cdk.ValidationError('PlatformCannotBeToken', `platform cannot be a token for ${component}`, scope);
213
213
  }
214
214
  }
215
215
  static predefinedManagedComponent(scope, id, opts, config) {
216
216
  this.validatePredefinedManagedComponentOptions(scope, opts, config.component);
217
217
  const componentName = config.supportedPlatforms[opts.platform];
218
218
  if (!componentName) {
219
- throw new cdk.ValidationError(`${opts.platform} is not a supported platform for ${config.component}`, scope);
219
+ throw new cdk.ValidationError('UnsupportedPlatform', `${opts.platform} is not a supported platform for ${config.component}`, scope);
220
220
  }
221
221
  return this.fromAmazonManagedComponentAttributes(scope, id, {
222
222
  componentName,
@@ -225,4 +225,4 @@ class AmazonManagedComponent {
225
225
  }
226
226
  }
227
227
  exports.AmazonManagedComponent = AmazonManagedComponent;
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBR25DLDJDQUF3QztBQUN4Qyw2Q0FBd0M7QUFDeEMsbURBQXFEO0FBeUNyRDs7R0FFRztBQUNILE1BQXNCLHNCQUFzQjs7SUFDMUM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFtQzs7Ozs7Ozs7OztRQUN0RixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNqRjtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDeEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEY7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQW1DOzs7Ozs7Ozs7O1FBQ3JGLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMvRTtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDcEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tB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QztLQUNKOztBQTNMSCx3REE0TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnLi9vcy12ZXJzaW9uJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gRUMyIEltYWdlIEJ1aWxkZXIgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhIHByZWRlZmluZWQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm0gb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm06IFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudDogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0ZWRQbGF0Zm9ybXM6IHsgW3BsYXRmb3JtIGluIFBsYXRmb3JtXT86IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFtYXpvbk1hbmFnZWRDb21wb25lbnQge1xuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQVdTIENMSSB2MiBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXdzQ2xpVjIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuQVdTX0NMSV9WMl9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGhlbGxvIHdvcmxkIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoZWxsb1dvcmxkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRPcHRpb25zKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnQoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkhFTExPX1dPUkxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgUHl0aG9uIDMgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHB5dGhvbjMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuUFlUSE9OXzNfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSByZWJvb3QgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYm9vdChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5SRUJPT1RfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBTVElHIGhhcmRlbmluZyBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWItc3RpZy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0aWdCdWlsZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5TVElHX0JVSUxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgT1MgdXBkYXRlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVPcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VUERBVEVfT1NfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyxcbiAgKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIENvbXBvbmVudC5mcm9tQ29tcG9uZW50QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ2NvbXBvbmVudCcsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMuY29tcG9uZW50TmFtZX0vJHthdHRycy5jb21wb25lbnRWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lOiBzdHJpbmcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgY29tcG9uZW50TmFtZTogYW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBV1NfQ0xJX1YyX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICdhd3NDbGlWMicsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnYXdzLWNsaS12ZXJzaW9uLTItbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnYXdzLWNsaS12ZXJzaW9uLTItd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIRUxMT19XT1JMRF9DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAnaGVsbG9Xb3JsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnaGVsbG8td29ybGQtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnaGVsbG8td29ybGQtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQWVRIT05fM19DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAncHl0aG9uMycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncHl0aG9uLTMtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAncHl0aG9uLTMtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRUJPT1RfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3JlYm9vdCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncmVib290LWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3JlYm9vdC13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNUSUdfQlVJTERfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3N0aWdCdWlsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnc3RpZy1idWlsZC1saW51eCcsXG4gICAgICBbUGxhdGZvcm0uV0lORE9XU106ICdzdGlnLWJ1aWxkLXdpbmRvd3MnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVBEQVRFX09TX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICd1cGRhdGVPUycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAndXBkYXRlLWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3VwZGF0ZS13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnRPcHRpb25zKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMsXG4gICAgY29tcG9uZW50OiBzdHJpbmcsXG4gICkge1xuICAgIGlmIChvcHRzLnBsYXRmb3JtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGBhIHBsYXRmb3JtIGlzIHJlcXVpcmVkIGZvciAke2NvbXBvbmVudH1gLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQob3B0cy5wbGF0Zm9ybSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGBwbGF0Zm9ybSBjYW5ub3QgYmUgYSB0b2tlbiBmb3IgJHtjb21wb25lbnR9YCwgc2NvcGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyxcbiAgICBjb25maWc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudE9wdGlvbnMoc2NvcGUsIG9wdHMsIGNvbmZpZy5jb21wb25lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IGNvbmZpZy5zdXBwb3J0ZWRQbGF0Zm9ybXNbb3B0cy5wbGF0Zm9ybV07XG5cbiAgICBpZiAoIWNvbXBvbmVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGAke29wdHMucGxhdGZvcm19IGlzIG5vdCBhIHN1cHBvcnRlZCBwbGF0Zm9ybSBmb3IgJHtjb25maWcuY29tcG9uZW50fWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICBjb21wb25lbnROYW1lLFxuICAgICAgY29tcG9uZW50VmVyc2lvbjogb3B0cy5jb21wb25lbnRWZXJzaW9uLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBR25DLDJDQUF3QztBQUN4Qyw2Q0FBd0M7QUFDeEMsbURBQXFEO0FBeUNyRDs7R0FFRztBQUNILE1BQXNCLHNCQUFzQjs7SUFDMUM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFtQzs7Ozs7Ozs7OztRQUN0RixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNqRjtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDeEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEY7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQW1DOzs7Ozs7Ozs7O1FBQ3JGLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMvRTtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDcEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tB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RUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztLQUNKOztBQTNMSCx3REE0TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnLi9vcy12ZXJzaW9uJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gRUMyIEltYWdlIEJ1aWxkZXIgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhIHByZWRlZmluZWQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm0gb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm06IFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudDogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0ZWRQbGF0Zm9ybXM6IHsgW3BsYXRmb3JtIGluIFBsYXRmb3JtXT86IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFtYXpvbk1hbmFnZWRDb21wb25lbnQge1xuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQVdTIENMSSB2MiBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXdzQ2xpVjIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuQVdTX0NMSV9WMl9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGhlbGxvIHdvcmxkIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoZWxsb1dvcmxkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRPcHRpb25zKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnQoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkhFTExPX1dPUkxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgUHl0aG9uIDMgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHB5dGhvbjMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuUFlUSE9OXzNfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSByZWJvb3QgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYm9vdChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5SRUJPT1RfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBTVElHIGhhcmRlbmluZyBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWItc3RpZy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0aWdCdWlsZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5TVElHX0JVSUxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgT1MgdXBkYXRlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVPcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VUERBVEVfT1NfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyxcbiAgKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIENvbXBvbmVudC5mcm9tQ29tcG9uZW50QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ2NvbXBvbmVudCcsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMuY29tcG9uZW50TmFtZX0vJHthdHRycy5jb21wb25lbnRWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lOiBzdHJpbmcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgY29tcG9uZW50TmFtZTogYW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBV1NfQ0xJX1YyX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICdhd3NDbGlWMicsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnYXdzLWNsaS12ZXJzaW9uLTItbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnYXdzLWNsaS12ZXJzaW9uLTItd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIRUxMT19XT1JMRF9DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAnaGVsbG9Xb3JsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnaGVsbG8td29ybGQtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnaGVsbG8td29ybGQtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQWVRIT05fM19DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAncHl0aG9uMycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncHl0aG9uLTMtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAncHl0aG9uLTMtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRUJPT1RfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3JlYm9vdCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncmVib290LWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3JlYm9vdC13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNUSUdfQlVJTERfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3N0aWdCdWlsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnc3RpZy1idWlsZC1saW51eCcsXG4gICAgICBbUGxhdGZvcm0uV0lORE9XU106ICdzdGlnLWJ1aWxkLXdpbmRvd3MnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVBEQVRFX09TX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICd1cGRhdGVPUycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAndXBkYXRlLWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3VwZGF0ZS13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnRPcHRpb25zKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMsXG4gICAgY29tcG9uZW50OiBzdHJpbmcsXG4gICkge1xuICAgIGlmIChvcHRzLnBsYXRmb3JtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdQbGF0Zm9ybVJlcXVpcmVkJywgYGEgcGxhdGZvcm0gaXMgcmVxdWlyZWQgZm9yICR7Y29tcG9uZW50fWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLnBsYXRmb3JtKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1BsYXRmb3JtQ2Fubm90QmVUb2tlbicsIGBwbGF0Zm9ybSBjYW5ub3QgYmUgYSB0b2tlbiBmb3IgJHtjb21wb25lbnR9YCwgc2NvcGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyxcbiAgICBjb25maWc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudE9wdGlvbnMoc2NvcGUsIG9wdHMsIGNvbmZpZy5jb21wb25lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IGNvbmZpZy5zdXBwb3J0ZWRQbGF0Zm9ybXNbb3B0cy5wbGF0Zm9ybV07XG5cbiAgICBpZiAoIWNvbXBvbmVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdVbnN1cHBvcnRlZFBsYXRmb3JtJywgYCR7b3B0cy5wbGF0Zm9ybX0gaXMgbm90IGEgc3VwcG9ydGVkIHBsYXRmb3JtIGZvciAke2NvbmZpZy5jb21wb25lbnR9YCwgc2NvcGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICBjb21wb25lbnRWZXJzaW9uOiBvcHRzLmNvbXBvbmVudFZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -10,7 +10,7 @@ const constants_1 = require("./private/constants");
10
10
  * Helper class for working with Amazon-managed images
11
11
  */
12
12
  class AmazonManagedImage {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage", version: "2.242.0-alpha.0" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage", version: "2.244.0-alpha.0" };
14
14
  /**
15
15
  * Imports the Amazon Linux 2 Amazon-managed image
16
16
  *
@@ -499,10 +499,10 @@ class AmazonManagedImage {
499
499
  };
500
500
  static validatePredefinedManagedImageOptions(scope, opts, image) {
501
501
  if (cdk.Token.isUnresolved(opts.imageArchitecture)) {
502
- throw new cdk.ValidationError(`architecture cannot be a token for ${image}`, scope);
502
+ throw new cdk.ValidationError('ArchitectureCannotBeToken', `architecture cannot be a token for ${image}`, scope);
503
503
  }
504
504
  if (cdk.Token.isUnresolved(opts.imageType)) {
505
- throw new cdk.ValidationError(`type cannot be a token for ${image}`, scope);
505
+ throw new cdk.ValidationError('TypeCannotBeToken', `type cannot be a token for ${image}`, scope);
506
506
  }
507
507
  }
508
508
  static predefinedManagedImage(scope, id, opts, config) {
@@ -510,7 +510,7 @@ class AmazonManagedImage {
510
510
  const key = `${opts.imageType}-${opts.imageArchitecture}`;
511
511
  const imageName = config.supportedCombinations[key];
512
512
  if (!imageName) {
513
- throw new cdk.ValidationError(`architecture ${opts.imageArchitecture} with type ${opts.imageType} is not a supported architecture and type for ${config.image}`, scope);
513
+ throw new cdk.ValidationError('UnsupportedArchitectureAndType', `architecture ${opts.imageArchitecture} with type ${opts.imageType} is not a supported architecture and type for ${config.image}`, scope);
514
514
  }
515
515
  return this.fromAmazonManagedImageAttributes(scope, id, {
516
516
  imageName,
@@ -519,4 +519,4 @@ class AmazonManagedImage {
519
519
  }
520
520
  }
521
521
  exports.AmazonManagedImage = AmazonManagedImage;
522
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUduQyxtQ0FBOEQ7QUFDOUQsbURBQXFEO0FBK0NyRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCOztJQUM3Qjs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ3RGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUN6RixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUNwRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pHLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBQzlGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDckcsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDbEc7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b250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJSW1hZ2UgfSBmcm9tICcuL2ltYWdlJztcbmltcG9ydCB7IEltYWdlLCBJbWFnZUFyY2hpdGVjdHVyZSwgSW1hZ2VUeXBlIH0gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgeyBMQVRFU1RfVkVSU0lPTiB9IGZyb20gJy4vcHJpdmF0ZS9jb25zdGFudHMnO1xuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBBbWF6b24tbWFuYWdlZCBpbWFnZSBieSBuYW1lIChhbmQgb3B0aW9uYWxseSBhIHZlcnNpb24pXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UuIFRoZSBwcm92aWRlZCBuYW1lIG11c3QgYmUgbm9ybWFsaXplZCBieSBjb252ZXJ0aW5nIGFsbCBhbHBoYWJldGljYWxcbiAgICogY2hhcmFjdGVycyB0byBsb3dlcmNhc2UsIGFuZCByZXBsYWNpbmcgYWxsIHNwYWNlcyBhbmQgdW5kZXJzY29yZXMgd2l0aCBoeXBoZW5zLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCB4LngueFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhIHByZWRlZmluZWQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFyY2hpdGVjdHVyZTogSW1hZ2VBcmNoaXRlY3R1cmU7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VUeXBlOiBJbWFnZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCB4LngueFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnIHtcbiAgcmVhZG9ubHkgaW1hZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7IFtjb21ibzogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciB3b3JraW5nIHdpdGggQW1hem9uLW1hbmFnZWQgaW1hZ2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBBbWF6b25NYW5hZ2VkSW1hZ2Uge1xuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQW1hem9uIExpbnV4IDIgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9saW51eC9hbDIvdWcvaW5kZXguaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZ2FsbGVyeS5lY3IuYXdzL2FtYXpvbmxpbnV4L2FtYXpvbmxpbnV4XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFtYXpvbkxpbnV4MihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5BTUFaT05fTElOVVhfMl9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIEFtYXpvbiBMaW51eCAyMDIzIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGludXgvYWwyMDIzL3VnL3doYXQtaXMtYW1hem9uLWxpbnV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2dhbGxlcnkuZWNyLmF3cy9hbWF6b25saW51eC9hbWF6b25saW51eFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbWF6b25MaW51eDIwMjMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuQU1BWk9OX0xJTlVYXzIwMjNfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBSZWQgSGF0IEVudGVycHJpc2UgTGludXggMTAgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vcGFydG5lcnMvcmVkaGF0L2ZhcXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVkSGF0RW50ZXJwcmlzZUxpbnV4MTAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuUkVEX0hBVF9FTlRFUlBSSVNFX0xJTlVYXzEwX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgU1VTRSBMaW51eCBFbnRlcnByaXNlIFNlcnZlciAxNSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9saW51eC9jb21tZXJjaWFsLWxpbnV4L2ZhcXMvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1c2VMaW51eEVudGVycHJpc2VTZXJ2ZXIxNShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5TVVNFX0xJTlVYX0VOVEVSUFJJU0VfU0VSVkVSXzE1X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgVWJ1bnR1IDIyLjA0IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3VtZW50YXRpb24udWJ1bnR1LmNvbS9hd3NcbiAgICogQHNlZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vdWJ1bnR1XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVidW50dVNlcnZlcjIyMDQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuVUJVTlRVX1NFUlZFUl8yMl8wNF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFVidW50dSAyNC4wNCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2N1bWVudGF0aW9uLnVidW50dS5jb20vYXdzXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3VidW50dVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1YnVudHVTZXJ2ZXIyNDA0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlVCVU5UVV9TRVJWRVJfMjRfMDRfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE2IENvcmUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL21pY3Jvc29mdC93aW5kb3dzLXNlcnZlcmNvcmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTZDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTZfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTYgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTZGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTZfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTkgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbWljcm9zb2Z0L3dpbmRvd3Mtc2VydmVyY29yZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAxOUNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAxOV9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxOSBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAxOUZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAxOV9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyMiBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyMkNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyMl9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyMiBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyMkZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyMl9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyNSBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyNUNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyNV9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyNSBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyNUZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyNV9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgbWFjT1MgMTQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItbWFjLWluc3RhbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hY09TMTQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuTUFDT1NfMTRfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBtYWNPUyAxNSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1tYWMtaW5zdGFuY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFjT1MxNShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5NQUNPU18xNV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQW1hem9uLW1hbmFnZWQgaW1hZ2UgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyAtIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyxcbiAgKTogSUltYWdlIHtcbiAgICByZXR1cm4gSW1hZ2UuZnJvbUltYWdlQXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ2ltYWdlJyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy5pbWFnZU5hbWV9LyR7YXR0cnMuaW1hZ2VWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQW1hem9uLW1hbmFnZWQgaW1hZ2UgZnJvbSBpdHMgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhbWF6b25NYW5hZ2VkSW1hZ2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BbWF6b25NYW5hZ2VkSW1hZ2VOYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFtYXpvbk1hbmFnZWRJbWFnZU5hbWU6IHN0cmluZyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IGltYWdlTmFtZTogYW1hem9uTWFuYWdlZEltYWdlTmFtZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFNQVpPTl9MSU5VWF8yX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnQW1hem9uIExpbnV4IDInLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LTIteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnYW1hem9uLWxpbnV4LTItYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LXg4Ni0yJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFNQVpPTl9MSU5VWF8yMDIzX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnQW1hem9uIExpbnV4IDIwMjMnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LTIwMjMteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnYW1hem9uLWxpbnV4LTIwMjMtYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LTIwMjMteDg2LTIwMjMnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVEX0hBVF9FTlRFUlBSSVNFX0xJTlVYXzEwX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDEwJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3JlZC1oYXQtZW50ZXJwcmlzZS1saW51eC0xMC14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdyZWQtaGF0LWVudGVycHJpc2UtbGludXgtMTAtYXJtNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgU1VTRV9MSU5VWF9FTlRFUlBSSVNFX1NFUlZFUl8xNV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1NVU0UgTGludXggRW50ZXJwcmlzZSBTZXJ2ZXIgMTUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnc3VzZS1saW51eC1lbnRlcnByaXNlLXNlcnZlci0xNS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdzdXNlLWxpbnV4LWVudGVycHJpc2Utc2VydmVyLTE1LWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVCVU5UVV9TRVJWRVJfMjJfMDRfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdVYnVudHUgMjIuMDQnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAndWJ1bnR1LXNlcnZlci0yMi1sdHMteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAndWJ1bnR1LXNlcnZlci0yMi1sdHMtYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAndWJ1bnR1LTIyLXg4Ni0yMi0wNCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVQlVOVFVfU0VSVkVSXzI0XzA0X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnVWJ1bnR1IDI0LjA0JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS1zZXJ2ZXItMjQtbHRzLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ3VidW50dS1zZXJ2ZXItMjQtbHRzLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS0yNC14ODYtMjQtMDQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAxNl9DT1JFX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAxNiBDb3JlJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTYtZW5nbGlzaC1jb3JlLWJhc2UteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTYteDg2LWNvcmUtbHRzYzIwMTYtYW1kNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAxNl9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAxNiBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTYtZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTlfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTkgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE5LWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE5LXg4Ni1jb3JlLWx0c2MyMDE5LWFtZDY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTlfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTkgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE5LWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDIyX0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDIyIENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyMi1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyMl9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyMiBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjItZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMjVfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMjUgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDI1LWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDI1X0ZVTExfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDI1IEZ1bGwnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyNS1lbmdsaXNoLWZ1bGwtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUFDT1NfMTRfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdtYWNPUyAxNCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdtYWNvcy1zb25vbWEteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnbWFjb3Mtc29ub21hLWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1BQ09TXzE1X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnbWFjT1MgMTUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnbWFjb3Mtc2VxdW9pYS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdtYWNvcy1zZXF1b2lhLWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUHJlZGVmaW5lZE1hbmFnZWRJbWFnZU9wdGlvbnMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zLFxuICAgIGltYWdlOiBzdHJpbmcsXG4gICkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKG9wdHMuaW1hZ2VBcmNoaXRlY3R1cmUpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihgYXJjaGl0ZWN0dXJlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLmltYWdlVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGB0eXBlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwcmVkZWZpbmVkTWFuYWdlZEltYWdlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zLFxuICAgIGNvbmZpZzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnLFxuICApOiBJSW1hZ2Uge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZEltYWdlT3B0aW9ucyhzY29wZSwgb3B0cywgY29uZmlnLmltYWdlKTtcblxuICAgIGNvbnN0IGtleSA9IGAke29wdHMuaW1hZ2VUeXBlfS0ke29wdHMuaW1hZ2VBcmNoaXRlY3R1cmV9YDtcbiAgICBjb25zdCBpbWFnZU5hbWUgPSBjb25maWcuc3VwcG9ydGVkQ29tYmluYXRpb25zW2tleV07XG5cbiAgICBpZiAoIWltYWdlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBhcmNoaXRlY3R1cmUgJHtvcHRzLmltYWdlQXJjaGl0ZWN0dXJlfSB3aXRoIHR5cGUgJHtvcHRzLmltYWdlVHlwZX0gaXMgbm90IGEgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSBhbmQgdHlwZSBmb3IgJHtjb25maWcuaW1hZ2V9YCxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgaW1hZ2VOYW1lLFxuICAgICAgaW1hZ2VWZXJzaW9uOiBvcHRzLmltYWdlVmVyc2lvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
522
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUduQyxtQ0FBOEQ7QUFDOUQsbURBQXFEO0FBK0NyRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCOztJQUM3Qjs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ3RGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUN6RixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUNwRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pHLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBQzlGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDckcsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDbEc7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDMUYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDdEY7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDMUYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDdEY7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDL0YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUMvRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUMvRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQy9GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQzNGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDL0YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUMvRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQy9GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQzNGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDL0YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDakYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQzNFO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMzRTtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FDNUMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQW1DOzs7Ozs7Ozs7O1FBRW5DLE9BQU8sYUFBSyxDQUFDLFlBQVksQ0FDdkIsS0FBSyxFQUNMLEVBQUUsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksMEJBQWMsRUFBRTtTQUMzRSxDQUFDLENBQ0gsQ0FBQztLQUNIO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLHNCQUE4QjtRQUNuRyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztLQUNoRztJQUVPLE1BQU0sQ0FBVSxxQkFBcUIsR0FBNkI7UUFDeEUsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxvQkFBb0I7WUFDdEUsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsc0JBQXNCO1lBQ3ZFLENBQUMsR0FBRyxpQkFBUyxDQUFDLE1BQU0sSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQjtTQUMxRTtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsd0JBQXdCLEdBQTZCO1FBQzNFLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsdUJBQXVCO1lBQ3pFLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLHlCQUF5QjtZQUMxRSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxNQUFNLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSw0QkFBNEI7U0FDbEY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLGtDQUFrQyxHQUE2QjtRQUNyRixLQUFLLEVBQUUsNkJBQTZCO1FBQ3BDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLGlDQUFpQztZQUNuRixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxtQ0FBbUM7U0FDckY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLHNDQUFzQyxHQUE2QjtRQUN6RixLQUFLLEVBQUUsaUNBQWlDO1FBQ3hDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLHFDQUFxQztZQUN2RixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSx1Q0FBdUM7U0FDekY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLDBCQUEwQixHQUE2QjtRQUM3RSxLQUFLLEVBQUUsY0FBYztRQUNyQixxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwwQkFBMEI7WUFDNUUsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsNEJBQTRCO1lBQzdFLENBQUMsR0FBRyxpQkFBUyxDQUFDLE1BQU0sSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQjtTQUMzRTtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsMEJBQTBCLEdBQTZCO1FBQzdFLEtBQUssRUFBRSxjQUFjO1FBQ3JCLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDBCQUEwQjtZQUM1RSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSw0QkFBNEI7WUFDN0UsQ0FBQyxHQUFHLGlCQUFTLENBQUMsTUFBTSxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUscUJBQXFCO1NBQzNFO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSwrQkFBK0IsR0FBNkI7UUFDbEYsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwyQ0FBMkM7WUFDN0YsQ0FBQyxHQUFHLGlCQUFTLENBQUMsTUFBTSxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsNkNBQTZDO1NBQ25HO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSwrQkFBK0IsR0FBNkI7UUFDbEYsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwyQ0FBMkM7U0FDOUY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLCtCQUErQixHQUE2QjtRQUNsRixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDJDQUEyQztZQUM3RixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxNQUFNLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSw2Q0FBNkM7U0FDbkc7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLCtCQUErQixHQUE2QjtRQUNsRixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDJDQUEyQztTQUM5RjtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsK0JBQStCLEdBQTZCO1FBQ2xGLEtBQUssRUFBRSwwQkFBMEI7UUFDakMscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsMkNBQTJDO1NBQzlGO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSwrQkFBK0IsR0FBNkI7UUFDbEYsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwyQ0FBMkM7U0FDOUY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLCtCQUErQixHQUE2QjtRQUNsRixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDJDQUEyQztTQUM5RjtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsK0JBQStCLEdBQTZCO1FBQ2xGLEtBQUssRUFBRSwwQkFBMEI7UUFDakMscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsMkNBQTJDO1NBQzlGO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSxlQUFlLEdBQTZCO1FBQ2xFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQjtZQUNwRSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxvQkFBb0I7U0FDdEU7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLGVBQWUsR0FBNkI7UUFDbEUsS0FBSyxFQUFFLFVBQVU7UUFDakIscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsbUJBQW1CO1lBQ3JFLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQjtTQUN2RTtLQUNGLENBQUM7SUFFTSxNQUFNLENBQUMscUNBQXFDLENBQ2xELEtBQWdCLEVBQ2hCLElBQStCLEVBQy9CLEtBQWE7UUFFYixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLEVBQUUsc0NBQXNDLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ILENBQUM7UUFFRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLDhCQUE4QixLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRyxDQUFDO0tBQ0Y7SUFFTyxNQUFNLENBQUMsc0JBQXNCLENBQ25DLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixJQUErQixFQUMvQixNQUFnQztRQUVoQyxJQUFJLENBQUMscUNBQXFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEUsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FDM0IsZ0NBQWdDLEVBQ2hDLGdCQUFnQixJQUFJLENBQUMsaUJBQWlCLGNBQWMsSUFBSSxDQUFDLFNBQVMsaURBQWlELE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFDakksS0FBSyxDQUNOLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN0RCxTQUFTO1lBQ1QsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUMsQ0FBQztLQUNKOztBQTdaSCxnREE4WkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUltYWdlIH0gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgeyBJbWFnZSwgSW1hZ2VBcmNoaXRlY3R1cmUsIEltYWdlVHlwZSB9IGZyb20gJy4vaW1hZ2UnO1xuaW1wb3J0IHsgTEFURVNUX1ZFUlNJT04gfSBmcm9tICcuL3ByaXZhdGUvY29uc3RhbnRzJztcblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gQW1hem9uLW1hbmFnZWQgaW1hZ2UgYnkgbmFtZSAoYW5kIG9wdGlvbmFsbHkgYSB2ZXJzaW9uKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlLiBUaGUgcHJvdmlkZWQgbmFtZSBtdXN0IGJlIG5vcm1hbGl6ZWQgYnkgY29udmVydGluZyBhbGwgYWxwaGFiZXRpY2FsXG4gICAqIGNoYXJhY3RlcnMgdG8gbG93ZXJjYXNlLCBhbmQgcmVwbGFjaW5nIGFsbCBzcGFjZXMgYW5kIHVuZGVyc2NvcmVzIHdpdGggaHlwaGVucy5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgeC54LnhcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBzZWxlY3RpbmcgYSBwcmVkZWZpbmVkIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VBcmNoaXRlY3R1cmU6IEltYWdlQXJjaGl0ZWN0dXJlO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVHlwZTogSW1hZ2VUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgeC54LnhcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVmVyc2lvbj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyB7XG4gIHJlYWRvbmx5IGltYWdlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN1cHBvcnRlZENvbWJpbmF0aW9uczogeyBbY29tYm86IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIGltYWdlc1xuICovXG5leHBvcnQgY2xhc3MgQW1hem9uTWFuYWdlZEltYWdlIHtcbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIEFtYXpvbiBMaW51eCAyIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGludXgvYWwyL3VnL2luZGV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2dhbGxlcnkuZWNyLmF3cy9hbWF6b25saW51eC9hbWF6b25saW51eFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbWF6b25MaW51eDIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuQU1BWk9OX0xJTlVYXzJfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBBbWF6b24gTGludXggMjAyMyBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xpbnV4L2FsMjAyMy91Zy93aGF0LWlzLWFtYXpvbi1saW51eC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9nYWxsZXJ5LmVjci5hd3MvYW1hem9ubGludXgvYW1hem9ubGludXhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW1hem9uTGludXgyMDIzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkFNQVpPTl9MSU5VWF8yMDIzX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDEwIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL3BhcnRuZXJzL3JlZGhhdC9mYXFzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlZEhhdEVudGVycHJpc2VMaW51eDEwKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlJFRF9IQVRfRU5URVJQUklTRV9MSU5VWF8xMF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFNVU0UgTGludXggRW50ZXJwcmlzZSBTZXJ2ZXIgMTUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vbGludXgvY29tbWVyY2lhbC1saW51eC9mYXFzL1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdXNlTGludXhFbnRlcnByaXNlU2VydmVyMTUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuU1VTRV9MSU5VWF9FTlRFUlBSSVNFX1NFUlZFUl8xNV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFVidW50dSAyMi4wNCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2N1bWVudGF0aW9uLnVidW50dS5jb20vYXdzXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3VidW50dVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1YnVudHVTZXJ2ZXIyMjA0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlVCVU5UVV9TRVJWRVJfMjJfMDRfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBVYnVudHUgMjQuMDQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jdW1lbnRhdGlvbi51YnVudHUuY29tL2F3c1xuICAgKiBAc2VlIGh0dHBzOi8vaHViLmRvY2tlci5jb20vXy91YnVudHVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdWJ1bnR1U2VydmVyMjQwNChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VQlVOVFVfU0VSVkVSXzI0XzA0X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxNiBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9taWNyb3NvZnQvd2luZG93cy1zZXJ2ZXJjb3JlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDE2Q29yZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDE2X0NPUkVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE2IEZ1bGwgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDE2RnVsbChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDE2X0ZVTExfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE5IENvcmUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL21pY3Jvc29mdC93aW5kb3dzLXNlcnZlcmNvcmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTlDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTlfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTkgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTlGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTlfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjIgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjJDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjJfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjIgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjJGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjJfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjUgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjVDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjVfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjUgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjVGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjVfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIG1hY09TIDE0IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLW1hYy1pbnN0YW5jZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYWNPUzE0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLk1BQ09TXzE0X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgbWFjT1MgMTUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItbWFjLWluc3RhbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hY09TMTUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuTUFDT1NfMTVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGZyb20gaXRzIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gYXR0cnMgLSBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IEFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMsXG4gICk6IElJbWFnZSB7XG4gICAgcmV0dXJuIEltYWdlLmZyb21JbWFnZUFybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgICAgcmVzb3VyY2U6ICdpbWFnZScsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMuaW1hZ2VOYW1lfS8ke2F0dHJzLmltYWdlVmVyc2lvbiA/PyBMQVRFU1RfVkVSU0lPTn1gLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGZyb20gaXRzIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gYW1hem9uTWFuYWdlZEltYWdlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZEltYWdlTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhbWF6b25NYW5hZ2VkSW1hZ2VOYW1lOiBzdHJpbmcpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBpbWFnZU5hbWU6IGFtYXpvbk1hbmFnZWRJbWFnZU5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBTUFaT05fTElOVVhfMl9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ0FtYXpvbiBMaW51eCAyJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC0yLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ2FtYXpvbi1saW51eC0yLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC14ODYtMicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBTUFaT05fTElOVVhfMjAyM19DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ0FtYXpvbiBMaW51eCAyMDIzJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC0yMDIzLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ2FtYXpvbi1saW51eC0yMDIzLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC0yMDIzLXg4Ni0yMDIzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJFRF9IQVRfRU5URVJQUklTRV9MSU5VWF8xMF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1JlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCAxMCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdyZWQtaGF0LWVudGVycHJpc2UtbGludXgtMTAteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAncmVkLWhhdC1lbnRlcnByaXNlLWxpbnV4LTEwLWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNVU0VfTElOVVhfRU5URVJQUklTRV9TRVJWRVJfMTVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdTVVNFIExpbnV4IEVudGVycHJpc2UgU2VydmVyIDE1JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3N1c2UtbGludXgtZW50ZXJwcmlzZS1zZXJ2ZXItMTUteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnc3VzZS1saW51eC1lbnRlcnByaXNlLXNlcnZlci0xNS1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVQlVOVFVfU0VSVkVSXzIyXzA0X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnVWJ1bnR1IDIyLjA0JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS1zZXJ2ZXItMjItbHRzLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ3VidW50dS1zZXJ2ZXItMjItbHRzLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS0yMi14ODYtMjItMDQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVUJVTlRVX1NFUlZFUl8yNF8wNF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1VidW50dSAyNC4wNCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd1YnVudHUtc2VydmVyLTI0LWx0cy14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICd1YnVudHUtc2VydmVyLTI0LWx0cy1hcm02NCcsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd1YnVudHUtMjQteDg2LTI0LTA0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTZfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTYgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE2LWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE2LXg4Ni1jb3JlLWx0c2MyMDE2LWFtZDY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTZfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTYgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE2LWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDE5X0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDE5IENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxOS1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxOS14ODYtY29yZS1sdHNjMjAxOS1hbWQ2NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDE5X0ZVTExfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDE5IEZ1bGwnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxOS1lbmdsaXNoLWZ1bGwtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyMl9DT1JFX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyMiBDb3JlJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjItZW5nbGlzaC1jb3JlLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMjJfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMjIgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDIyLWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDI1X0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDI1IENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyNS1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyNV9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyNSBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjUtZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1BQ09TXzE0X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnbWFjT1MgMTQnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnbWFjb3Mtc29ub21hLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ21hY29zLXNvbm9tYS1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQUNPU18xNV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ21hY09TIDE1JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ21hY29zLXNlcXVvaWEteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnbWFjb3Mtc2VxdW9pYS1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZVByZWRlZmluZWRNYW5hZ2VkSW1hZ2VPcHRpb25zKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyxcbiAgICBpbWFnZTogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLmltYWdlQXJjaGl0ZWN0dXJlKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ0FyY2hpdGVjdHVyZUNhbm5vdEJlVG9rZW4nLCBgYXJjaGl0ZWN0dXJlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLmltYWdlVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdUeXBlQ2Fubm90QmVUb2tlbicsIGB0eXBlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwcmVkZWZpbmVkTWFuYWdlZEltYWdlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zLFxuICAgIGNvbmZpZzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnLFxuICApOiBJSW1hZ2Uge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZEltYWdlT3B0aW9ucyhzY29wZSwgb3B0cywgY29uZmlnLmltYWdlKTtcblxuICAgIGNvbnN0IGtleSA9IGAke29wdHMuaW1hZ2VUeXBlfS0ke29wdHMuaW1hZ2VBcmNoaXRlY3R1cmV9YDtcbiAgICBjb25zdCBpbWFnZU5hbWUgPSBjb25maWcuc3VwcG9ydGVkQ29tYmluYXRpb25zW2tleV07XG5cbiAgICBpZiAoIWltYWdlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdVbnN1cHBvcnRlZEFyY2hpdGVjdHVyZUFuZFR5cGUnLFxuICAgICAgICBgYXJjaGl0ZWN0dXJlICR7b3B0cy5pbWFnZUFyY2hpdGVjdHVyZX0gd2l0aCB0eXBlICR7b3B0cy5pbWFnZVR5cGV9IGlzIG5vdCBhIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmUgYW5kIHR5cGUgZm9yICR7Y29uZmlnLmltYWdlfWAsXG4gICAgICAgIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIGltYWdlTmFtZSxcbiAgICAgIGltYWdlVmVyc2lvbjogb3B0cy5pbWFnZVZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -10,7 +10,7 @@ const workflow_1 = require("./workflow");
10
10
  * Helper class for working with Amazon-managed workflows
11
11
  */
12
12
  class AmazonManagedWorkflow {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow", version: "2.242.0-alpha.0" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow", version: "2.244.0-alpha.0" };
14
14
  /**
15
15
  * Imports the build-container Amazon-managed workflow
16
16
  *
@@ -101,7 +101,7 @@ class AmazonManagedWorkflow {
101
101
  throw error;
102
102
  }
103
103
  if (cdk.Token.isUnresolved(attrs.workflowType)) {
104
- throw new cdk.ValidationError('workflowType cannot be a token', scope);
104
+ throw new cdk.ValidationError('WorkflowTypeCannotBeToken', 'workflowType cannot be a token', scope);
105
105
  }
106
106
  return workflow_1.Workflow.fromWorkflowArn(scope, id, cdk.Stack.of(scope).formatArn({
107
107
  service: 'imagebuilder',
@@ -112,4 +112,4 @@ class AmazonManagedWorkflow {
112
112
  }
113
113
  }
114
114
  exports.AmazonManagedWorkflow = AmazonManagedWorkflow;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUVuQyxtREFBcUQ7QUFFckQseUNBQW9EO0FBaUJwRDs7R0FFRztBQUNILE1BQWEscUJBQXFCOztJQUNoQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLGlCQUFpQjtZQUMvQixZQUFZLEVBQUUsdUJBQVksQ0FBQyxLQUFLO1NBQ2pDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUNuRCxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3pELFlBQVksRUFBRSxhQUFhO1lBQzNCLFlBQVksRUFBRSx1QkFBWSxDQUFDLEtBQUs7U0FDakMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDNUQsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN6RCxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLFlBQVksRUFBRSx1QkFBWSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxFQUFVO1FBQ3hELE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxZQUFZLEVBQUUsdUJBQVksQ0FBQyxZQUFZO1NBQ3hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUN0RCxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3pELFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIsWUFBWSxFQUFFLHVCQUFZLENBQUMsSUFBSTtTQUNoQyxDQUFDLENBQUM7S0FDSjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDbEQsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN6RCxZQUFZLEVBQUUsWUFBWTtZQUMxQixZQUFZLEVBQUUsdUJBQVksQ0FBQyxJQUFJO1NBQ2hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1DQUFtQyxDQUMvQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0M7Ozs7Ozs7Ozs7UUFFdEMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsT0FBTyxtQkFBUSxDQUFDLGVBQWUsQ0FDN0IsS0FBSyxFQUNMLEVBQUUsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsVUFBVTtZQUNwQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksMEJBQWMsRUFBRTtTQUM1RixDQUFDLENBQ0gsQ0FBQztLQUNIOztBQXpHSCxzREEwR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IElXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3cnO1xuaW1wb3J0IHsgV29ya2Zsb3csIFdvcmtmbG93VHlwZSB9IGZyb20gJy4vd29ya2Zsb3cnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEVDMiBJbWFnZSBCdWlsZGVyIEFtYXpvbi1tYW5hZ2VkIHdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIHdvcmtmbG93c1xuICovXG5leHBvcnQgY2xhc3MgQW1hem9uTWFuYWdlZFdvcmtmbG93IHtcbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGJ1aWxkLWNvbnRhaW5lciBBbWF6b24tbWFuYWdlZCB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJ1aWxkQ29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnYnVpbGQtY29udGFpbmVyJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkJVSUxELFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGJ1aWxkLWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRJbWFnZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2J1aWxkLWltYWdlJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkJVSUxELFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGRpc3RyaWJ1dGUtY29udGFpbmVyIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzdHJpYnV0ZUNvbnRhaW5lcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2Rpc3RyaWJ1dGUtY29udGFpbmVyJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkRJU1RSSUJVVElPTixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBkaXN0cmlidXRlLWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzdHJpYnV0ZUltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnZGlzdHJpYnV0ZS1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5ESVNUUklCVVRJT04sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgdGVzdC1jb250YWluZXIgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0ZXN0Q29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1jb250YWluZXInLFxuICAgICAgd29ya2Zsb3dUeXBlOiBXb3JrZmxvd1R5cGUuVEVTVCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSB0ZXN0LWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGVzdEltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5URVNULFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQVdTLW1hbmFnZWQgd29ya2Zsb3cgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFtYXpvbk1hbmFnZWRXb3JrZmxvd0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzLFxuICApOiBJV29ya2Zsb3cge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGF0dHJzLndvcmtmbG93VHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd3b3JrZmxvd1R5cGUgY2Fubm90IGJlIGEgdG9rZW4nLCBzY29wZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFdvcmtmbG93LmZyb21Xb3JrZmxvd0FybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgICAgcmVzb3VyY2U6ICd3b3JrZmxvdycsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMud29ya2Zsb3dUeXBlLnRvTG93ZXJDYXNlKCl9LyR7YXR0cnMud29ya2Zsb3dOYW1lfS8ke0xBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUVuQyxtREFBcUQ7QUFFckQseUNBQW9EO0FBaUJwRDs7R0FFRztBQUNILE1BQWEscUJBQXFCOztJQUNoQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLGlCQUFpQjtZQUMvQixZQUFZLEVBQUUsdUJBQVksQ0FBQyxLQUFLO1NBQ2pDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUNuRCxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3pELFlBQVksRUFBRSxhQUFhO1lBQzNCLFlBQVksRUFBRSx1QkFBWSxDQUFDLEtBQUs7U0FDakMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDNUQsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN6RCxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLFlBQVksRUFBRSx1QkFBWSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxFQUFVO1FBQ3hELE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxZQUFZLEVBQUUsdUJBQVksQ0FBQyxZQUFZO1NBQ3hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUN0RCxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3pELFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIsWUFBWSxFQUFFLHVCQUFZLENBQUMsSUFBSTtTQUNoQyxDQUFDLENBQUM7S0FDSjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDbEQsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN6RCxZQUFZLEVBQUUsWUFBWTtZQUMxQixZQUFZLEVBQUUsdUJBQVksQ0FBQyxJQUFJO1NBQ2hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1DQUFtQyxDQUMvQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0M7Ozs7Ozs7Ozs7UUFFdEMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RyxDQUFDO1FBRUQsT0FBTyxtQkFBUSxDQUFDLGVBQWUsQ0FDN0IsS0FBSyxFQUNMLEVBQUUsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsVUFBVTtZQUNwQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksMEJBQWMsRUFBRTtTQUM1RixDQUFDLENBQ0gsQ0FBQztLQUNIOztBQXpHSCxzREEwR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IElXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3cnO1xuaW1wb3J0IHsgV29ya2Zsb3csIFdvcmtmbG93VHlwZSB9IGZyb20gJy4vd29ya2Zsb3cnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEVDMiBJbWFnZSBCdWlsZGVyIEFtYXpvbi1tYW5hZ2VkIHdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIHdvcmtmbG93c1xuICovXG5leHBvcnQgY2xhc3MgQW1hem9uTWFuYWdlZFdvcmtmbG93IHtcbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGJ1aWxkLWNvbnRhaW5lciBBbWF6b24tbWFuYWdlZCB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJ1aWxkQ29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnYnVpbGQtY29udGFpbmVyJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkJVSUxELFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGJ1aWxkLWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRJbWFnZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2J1aWxkLWltYWdlJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkJVSUxELFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGRpc3RyaWJ1dGUtY29udGFpbmVyIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzdHJpYnV0ZUNvbnRhaW5lcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2Rpc3RyaWJ1dGUtY29udGFpbmVyJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkRJU1RSSUJVVElPTixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBkaXN0cmlidXRlLWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzdHJpYnV0ZUltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnZGlzdHJpYnV0ZS1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5ESVNUUklCVVRJT04sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgdGVzdC1jb250YWluZXIgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0ZXN0Q29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1jb250YWluZXInLFxuICAgICAgd29ya2Zsb3dUeXBlOiBXb3JrZmxvd1R5cGUuVEVTVCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSB0ZXN0LWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGVzdEltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5URVNULFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQVdTLW1hbmFnZWQgd29ya2Zsb3cgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFtYXpvbk1hbmFnZWRXb3JrZmxvd0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzLFxuICApOiBJV29ya2Zsb3cge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGF0dHJzLndvcmtmbG93VHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdXb3JrZmxvd1R5cGVDYW5ub3RCZVRva2VuJywgJ3dvcmtmbG93VHlwZSBjYW5ub3QgYmUgYSB0b2tlbicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gV29ya2Zsb3cuZnJvbVdvcmtmbG93QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ3dvcmtmbG93JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy53b3JrZmxvd1R5cGUudG9Mb3dlckNhc2UoKX0vJHthdHRycy53b3JrZmxvd05hbWV9LyR7TEFURVNUX1ZFUlNJT059YCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==