@aws-cdk/aws-imagebuilder-alpha 2.243.0-alpha.0 → 2.245.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.jsii +90 -32
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/lib/amazon-managed-component.js +5 -5
  4. package/lib/amazon-managed-image.js +5 -5
  5. package/lib/amazon-managed-workflow.js +3 -3
  6. package/lib/base-image.js +3 -3
  7. package/lib/component.js +15 -15
  8. package/lib/container-recipe.js +10 -10
  9. package/lib/distribution-configuration.js +13 -13
  10. package/lib/image-pipeline.js +9 -9
  11. package/lib/image-recipe.js +7 -7
  12. package/lib/image.js +7 -7
  13. package/lib/infrastructure-configuration.js +15 -15
  14. package/lib/lifecycle-policy.js +25 -25
  15. package/lib/os-version.js +1 -1
  16. package/lib/private/image-and-pipeline-props-helper.js +3 -3
  17. package/lib/recipe-base.js +1 -1
  18. package/lib/workflow.js +14 -14
  19. package/node_modules/yaml/browser/dist/PlainValue-183afbad.js +751 -0
  20. package/node_modules/yaml/browser/dist/Schema-9530c078.js +467 -0
  21. package/node_modules/yaml/browser/dist/index.js +436 -746
  22. package/node_modules/yaml/browser/dist/legacy-exports.js +3 -3
  23. package/node_modules/yaml/browser/dist/parse-cst.js +1290 -1689
  24. package/node_modules/yaml/browser/dist/resolveSeq-67caf78a.js +1835 -0
  25. package/node_modules/yaml/browser/dist/types.js +4 -4
  26. package/node_modules/yaml/browser/dist/util.js +2 -2
  27. package/node_modules/yaml/browser/dist/warnings-5e4358fe.js +348 -0
  28. package/node_modules/yaml/dist/{Document-9b4560a1.js → Document-a8d0fbf9.js} +11 -131
  29. package/node_modules/yaml/dist/{PlainValue-ec8e588e.js → PlainValue-516d5bc2.js} +35 -146
  30. package/node_modules/yaml/dist/{Schema-88e323a7.js → Schema-bcc6c2d7.js} +10 -66
  31. package/node_modules/yaml/dist/index.js +5 -17
  32. package/node_modules/yaml/dist/legacy-exports.js +3 -3
  33. package/node_modules/yaml/dist/parse-cst.js +45 -291
  34. package/node_modules/yaml/dist/{resolveSeq-d03cb037.js → resolveSeq-95613e94.js} +44 -346
  35. package/node_modules/yaml/dist/test-events.js +28 -44
  36. package/node_modules/yaml/dist/types.js +4 -4
  37. package/node_modules/yaml/dist/util.js +2 -2
  38. package/node_modules/yaml/dist/{warnings-1000a372.js → warnings-793925ce.js} +16 -73
  39. package/node_modules/yaml/package.json +2 -3
  40. package/package.json +8 -8
  41. package/node_modules/yaml/browser/dist/PlainValue-b8036b75.js +0 -1275
  42. package/node_modules/yaml/browser/dist/Schema-e94716c8.js +0 -682
  43. package/node_modules/yaml/browser/dist/resolveSeq-492ab440.js +0 -2419
  44. package/node_modules/yaml/browser/dist/warnings-df54cb69.js +0 -499
package/.jsii CHANGED
@@ -8,10 +8,10 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "bundled": {
11
- "yaml": "1.10.2"
11
+ "yaml": "1.10.3"
12
12
  },
13
13
  "dependencies": {
14
- "aws-cdk-lib": "^2.243.0",
14
+ "aws-cdk-lib": "^2.245.0",
15
15
  "constructs": "^10.5.0"
16
16
  },
17
17
  "dependencyClosure": {
@@ -1601,6 +1601,19 @@
1601
1601
  }
1602
1602
  }
1603
1603
  },
1604
+ "aws-cdk-lib.aws_elementalinference": {
1605
+ "targets": {
1606
+ "dotnet": {
1607
+ "namespace": "Amazon.CDK.AWS.ElementalInference"
1608
+ },
1609
+ "java": {
1610
+ "package": "software.amazon.awscdk.services.elementalinference"
1611
+ },
1612
+ "python": {
1613
+ "module": "aws_cdk.aws_elementalinference"
1614
+ }
1615
+ }
1616
+ },
1604
1617
  "aws-cdk-lib.aws_emr": {
1605
1618
  "targets": {
1606
1619
  "dotnet": {
@@ -3291,6 +3304,19 @@
3291
3304
  }
3292
3305
  }
3293
3306
  },
3307
+ "aws-cdk-lib.aws_route53globalresolver": {
3308
+ "targets": {
3309
+ "dotnet": {
3310
+ "namespace": "Amazon.CDK.AWS.Route53GlobalResolver"
3311
+ },
3312
+ "java": {
3313
+ "package": "software.amazon.awscdk.services.route53globalresolver"
3314
+ },
3315
+ "python": {
3316
+ "module": "aws_cdk.aws_route53globalresolver"
3317
+ }
3318
+ }
3319
+ },
3294
3320
  "aws-cdk-lib.aws_route53profiles": {
3295
3321
  "targets": {
3296
3322
  "dotnet": {
@@ -5727,6 +5753,22 @@
5727
5753
  }
5728
5754
  }
5729
5755
  },
5756
+ "aws-cdk-lib.interfaces.aws_elementalinference": {
5757
+ "targets": {
5758
+ "dotnet": {
5759
+ "namespace": "Amazon.CDK.Interfaces.ElementalInference"
5760
+ },
5761
+ "go": {
5762
+ "packageName": "interfacesawselementalinference"
5763
+ },
5764
+ "java": {
5765
+ "package": "software.amazon.awscdk.interfaces.elementalinference"
5766
+ },
5767
+ "python": {
5768
+ "module": "aws_cdk.interfaces.aws_elementalinference"
5769
+ }
5770
+ }
5771
+ },
5730
5772
  "aws-cdk-lib.interfaces.aws_emr": {
5731
5773
  "targets": {
5732
5774
  "dotnet": {
@@ -7679,6 +7721,22 @@
7679
7721
  }
7680
7722
  }
7681
7723
  },
7724
+ "aws-cdk-lib.interfaces.aws_route53globalresolver": {
7725
+ "targets": {
7726
+ "dotnet": {
7727
+ "namespace": "Amazon.CDK.Interfaces.Route53GlobalResolver"
7728
+ },
7729
+ "go": {
7730
+ "packageName": "interfacesawsroute53globalresolver"
7731
+ },
7732
+ "java": {
7733
+ "package": "software.amazon.awscdk.interfaces.route53globalresolver"
7734
+ },
7735
+ "python": {
7736
+ "module": "aws_cdk.interfaces.aws_route53globalresolver"
7737
+ }
7738
+ }
7739
+ },
7682
7740
  "aws-cdk-lib.interfaces.aws_route53profiles": {
7683
7741
  "targets": {
7684
7742
  "dotnet": {
@@ -11547,7 +11605,7 @@
11547
11605
  },
11548
11606
  "locationInModule": {
11549
11607
  "filename": "lib/component.ts",
11550
- "line": 1019
11608
+ "line": 1020
11551
11609
  },
11552
11610
  "parameters": [
11553
11611
  {
@@ -11699,7 +11757,7 @@
11699
11757
  },
11700
11758
  "locationInModule": {
11701
11759
  "filename": "lib/component.ts",
11702
- "line": 1002
11760
+ "line": 1003
11703
11761
  },
11704
11762
  "name": "isComponent",
11705
11763
  "parameters": [
@@ -11813,7 +11871,7 @@
11813
11871
  "immutable": true,
11814
11872
  "locationInModule": {
11815
11873
  "filename": "lib/component.ts",
11816
- "line": 1075
11874
+ "line": 1077
11817
11875
  },
11818
11876
  "name": "componentArn",
11819
11877
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
@@ -11829,7 +11887,7 @@
11829
11887
  "immutable": true,
11830
11888
  "locationInModule": {
11831
11889
  "filename": "lib/component.ts",
11832
- "line": 1070
11890
+ "line": 1072
11833
11891
  },
11834
11892
  "name": "componentName",
11835
11893
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
@@ -11848,7 +11906,7 @@
11848
11906
  "immutable": true,
11849
11907
  "locationInModule": {
11850
11908
  "filename": "lib/component.ts",
11851
- "line": 1089
11909
+ "line": 1091
11852
11910
  },
11853
11911
  "name": "componentType",
11854
11912
  "type": {
@@ -11863,7 +11921,7 @@
11863
11921
  "immutable": true,
11864
11922
  "locationInModule": {
11865
11923
  "filename": "lib/component.ts",
11866
- "line": 1009
11924
+ "line": 1010
11867
11925
  },
11868
11926
  "name": "componentVersion",
11869
11927
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
@@ -11879,7 +11937,7 @@
11879
11937
  "immutable": true,
11880
11938
  "locationInModule": {
11881
11939
  "filename": "lib/component.ts",
11882
- "line": 1014
11940
+ "line": 1015
11883
11941
  },
11884
11942
  "name": "encrypted",
11885
11943
  "type": {
@@ -11893,7 +11951,7 @@
11893
11951
  "immutable": true,
11894
11952
  "locationInModule": {
11895
11953
  "filename": "lib/component.ts",
11896
- "line": 1016
11954
+ "line": 1017
11897
11955
  },
11898
11956
  "name": "kmsKey",
11899
11957
  "optional": true,
@@ -14172,7 +14230,7 @@
14172
14230
  },
14173
14231
  "locationInModule": {
14174
14232
  "filename": "lib/container-recipe.ts",
14175
- "line": 482
14233
+ "line": 483
14176
14234
  },
14177
14235
  "parameters": [
14178
14236
  {
@@ -14321,7 +14379,7 @@
14321
14379
  },
14322
14380
  "locationInModule": {
14323
14381
  "filename": "lib/container-recipe.ts",
14324
- "line": 475
14382
+ "line": 476
14325
14383
  },
14326
14384
  "name": "isContainerRecipe",
14327
14385
  "parameters": [
@@ -14346,7 +14404,7 @@
14346
14404
  },
14347
14405
  "locationInModule": {
14348
14406
  "filename": "lib/container-recipe.ts",
14349
- "line": 570
14407
+ "line": 571
14350
14408
  },
14351
14409
  "name": "addInstanceBlockDevice",
14352
14410
  "parameters": [
@@ -14391,7 +14449,7 @@
14391
14449
  "immutable": true,
14392
14450
  "locationInModule": {
14393
14451
  "filename": "lib/container-recipe.ts",
14394
- "line": 551
14452
+ "line": 552
14395
14453
  },
14396
14454
  "name": "containerRecipeArn",
14397
14455
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
@@ -14407,7 +14465,7 @@
14407
14465
  "immutable": true,
14408
14466
  "locationInModule": {
14409
14467
  "filename": "lib/container-recipe.ts",
14410
- "line": 546
14468
+ "line": 547
14411
14469
  },
14412
14470
  "name": "containerRecipeName",
14413
14471
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
@@ -14423,7 +14481,7 @@
14423
14481
  "immutable": true,
14424
14482
  "locationInModule": {
14425
14483
  "filename": "lib/container-recipe.ts",
14426
- "line": 560
14484
+ "line": 561
14427
14485
  },
14428
14486
  "name": "containerRecipeVersion",
14429
14487
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
@@ -15156,7 +15214,7 @@
15156
15214
  },
15157
15215
  "locationInModule": {
15158
15216
  "filename": "lib/distribution-configuration.ts",
15159
- "line": 560
15217
+ "line": 561
15160
15218
  },
15161
15219
  "name": "addContainerDistributions",
15162
15220
  "parameters": [
@@ -19416,7 +19474,7 @@
19416
19474
  },
19417
19475
  "locationInModule": {
19418
19476
  "filename": "lib/image-recipe.ts",
19419
- "line": 310
19477
+ "line": 311
19420
19478
  },
19421
19479
  "parameters": [
19422
19480
  {
@@ -19568,7 +19626,7 @@
19568
19626
  },
19569
19627
  "locationInModule": {
19570
19628
  "filename": "lib/image-recipe.ts",
19571
- "line": 303
19629
+ "line": 304
19572
19630
  },
19573
19631
  "name": "isImageRecipe",
19574
19632
  "parameters": [
@@ -19593,7 +19651,7 @@
19593
19651
  },
19594
19652
  "locationInModule": {
19595
19653
  "filename": "lib/image-recipe.ts",
19596
- "line": 385
19654
+ "line": 386
19597
19655
  },
19598
19656
  "name": "addBlockDevice",
19599
19657
  "parameters": [
@@ -19705,7 +19763,7 @@
19705
19763
  "immutable": true,
19706
19764
  "locationInModule": {
19707
19765
  "filename": "lib/image-recipe.ts",
19708
- "line": 366
19766
+ "line": 367
19709
19767
  },
19710
19768
  "name": "imageRecipeArn",
19711
19769
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
@@ -19721,7 +19779,7 @@
19721
19779
  "immutable": true,
19722
19780
  "locationInModule": {
19723
19781
  "filename": "lib/image-recipe.ts",
19724
- "line": 361
19782
+ "line": 362
19725
19783
  },
19726
19784
  "name": "imageRecipeName",
19727
19785
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
@@ -19737,7 +19795,7 @@
19737
19795
  "immutable": true,
19738
19796
  "locationInModule": {
19739
19797
  "filename": "lib/image-recipe.ts",
19740
- "line": 375
19798
+ "line": 376
19741
19799
  },
19742
19800
  "name": "imageRecipeVersion",
19743
19801
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
@@ -20345,7 +20403,7 @@
20345
20403
  "immutable": true,
20346
20404
  "locationInModule": {
20347
20405
  "filename": "lib/infrastructure-configuration.ts",
20348
- "line": 550
20406
+ "line": 554
20349
20407
  },
20350
20408
  "name": "infrastructureConfigurationArn",
20351
20409
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IInfrastructureConfiguration",
@@ -20361,7 +20419,7 @@
20361
20419
  "immutable": true,
20362
20420
  "locationInModule": {
20363
20421
  "filename": "lib/infrastructure-configuration.ts",
20364
- "line": 545
20422
+ "line": 549
20365
20423
  },
20366
20424
  "name": "infrastructureConfigurationName",
20367
20425
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IInfrastructureConfiguration",
@@ -23408,7 +23466,7 @@
23408
23466
  },
23409
23467
  "locationInModule": {
23410
23468
  "filename": "lib/workflow.ts",
23411
- "line": 728
23469
+ "line": 731
23412
23470
  },
23413
23471
  "parameters": [
23414
23472
  {
@@ -23522,7 +23580,7 @@
23522
23580
  },
23523
23581
  "locationInModule": {
23524
23582
  "filename": "lib/workflow.ts",
23525
- "line": 712
23583
+ "line": 715
23526
23584
  },
23527
23585
  "name": "isWorkflow",
23528
23586
  "parameters": [
@@ -23635,7 +23693,7 @@
23635
23693
  "immutable": true,
23636
23694
  "locationInModule": {
23637
23695
  "filename": "lib/workflow.ts",
23638
- "line": 769
23696
+ "line": 772
23639
23697
  },
23640
23698
  "name": "workflowArn",
23641
23699
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -23651,7 +23709,7 @@
23651
23709
  "immutable": true,
23652
23710
  "locationInModule": {
23653
23711
  "filename": "lib/workflow.ts",
23654
- "line": 764
23712
+ "line": 767
23655
23713
  },
23656
23714
  "name": "workflowName",
23657
23715
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -23667,7 +23725,7 @@
23667
23725
  "immutable": true,
23668
23726
  "locationInModule": {
23669
23727
  "filename": "lib/workflow.ts",
23670
- "line": 719
23728
+ "line": 722
23671
23729
  },
23672
23730
  "name": "workflowType",
23673
23731
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -23683,7 +23741,7 @@
23683
23741
  "immutable": true,
23684
23742
  "locationInModule": {
23685
23743
  "filename": "lib/workflow.ts",
23686
- "line": 724
23744
+ "line": 727
23687
23745
  },
23688
23746
  "name": "workflowVersion",
23689
23747
  "overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
@@ -24786,6 +24844,6 @@
24786
24844
  "symbolId": "lib/workflow:WorkflowType"
24787
24845
  }
24788
24846
  },
24789
- "version": "2.243.0-alpha.0",
24847
+ "version": "2.245.0-alpha.0",
24790
24848
  "fingerprint": "**********"
24791
24849
  }
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.243.0-alpha.0" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent", version: "2.245.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==