@aws-cdk/app-staging-synthesizer-alpha 2.237.1-alpha.0 → 2.239.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 +49 -49
- package/.jsii.tabl.json.gz +0 -0
- package/lib/app-staging-synthesizer.d.ts +4 -3
- package/lib/app-staging-synthesizer.js +2 -2
- package/lib/bootstrap-roles.js +2 -2
- package/lib/default-staging-stack.d.ts +4 -3
- package/lib/default-staging-stack.js +3 -3
- package/lib/per-env-staging-factory.d.ts +2 -2
- package/lib/per-env-staging-factory.js +1 -1
- package/lib/private/app-global.d.ts +1 -1
- package/lib/private/app-global.js +1 -1
- package/lib/staging-stack.d.ts +2 -2
- package/lib/staging-stack.js +1 -1
- package/package.json +9 -9
package/.jsii
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
12
|
-
"constructs": "^10.
|
|
11
|
+
"aws-cdk-lib": "^2.239.0",
|
|
12
|
+
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
15
15
|
"@aws-cdk/asset-awscli-v1": {
|
|
@@ -8499,7 +8499,7 @@
|
|
|
8499
8499
|
"stability": "experimental"
|
|
8500
8500
|
},
|
|
8501
8501
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8502
|
-
"jsiiVersion": "5.9.
|
|
8502
|
+
"jsiiVersion": "5.9.26 (build f85d3df)",
|
|
8503
8503
|
"keywords": [
|
|
8504
8504
|
"aws",
|
|
8505
8505
|
"cdk"
|
|
@@ -8574,7 +8574,7 @@
|
|
|
8574
8574
|
"kind": "class",
|
|
8575
8575
|
"locationInModule": {
|
|
8576
8576
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8577
|
-
"line":
|
|
8577
|
+
"line": 104
|
|
8578
8578
|
},
|
|
8579
8579
|
"methods": [
|
|
8580
8580
|
{
|
|
@@ -8585,7 +8585,7 @@
|
|
|
8585
8585
|
},
|
|
8586
8586
|
"locationInModule": {
|
|
8587
8587
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8588
|
-
"line":
|
|
8588
|
+
"line": 162
|
|
8589
8589
|
},
|
|
8590
8590
|
"name": "customFactory",
|
|
8591
8591
|
"parameters": [
|
|
@@ -8610,7 +8610,7 @@
|
|
|
8610
8610
|
},
|
|
8611
8611
|
"locationInModule": {
|
|
8612
8612
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8613
|
-
"line":
|
|
8613
|
+
"line": 142
|
|
8614
8614
|
},
|
|
8615
8615
|
"name": "customResources",
|
|
8616
8616
|
"parameters": [
|
|
@@ -8635,7 +8635,7 @@
|
|
|
8635
8635
|
},
|
|
8636
8636
|
"locationInModule": {
|
|
8637
8637
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8638
|
-
"line":
|
|
8638
|
+
"line": 128
|
|
8639
8639
|
},
|
|
8640
8640
|
"name": "defaultResources",
|
|
8641
8641
|
"parameters": [
|
|
@@ -8661,7 +8661,7 @@
|
|
|
8661
8661
|
},
|
|
8662
8662
|
"locationInModule": {
|
|
8663
8663
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8664
|
-
"line":
|
|
8664
|
+
"line": 242
|
|
8665
8665
|
},
|
|
8666
8666
|
"name": "addDockerImageAsset",
|
|
8667
8667
|
"overrides": "aws-cdk-lib.StackSynthesizer",
|
|
@@ -8687,7 +8687,7 @@
|
|
|
8687
8687
|
},
|
|
8688
8688
|
"locationInModule": {
|
|
8689
8689
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8690
|
-
"line":
|
|
8690
|
+
"line": 235
|
|
8691
8691
|
},
|
|
8692
8692
|
"name": "addFileAsset",
|
|
8693
8693
|
"overrides": "aws-cdk-lib.StackSynthesizer",
|
|
@@ -8713,7 +8713,7 @@
|
|
|
8713
8713
|
},
|
|
8714
8714
|
"locationInModule": {
|
|
8715
8715
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8716
|
-
"line":
|
|
8716
|
+
"line": 221
|
|
8717
8717
|
},
|
|
8718
8718
|
"name": "bind",
|
|
8719
8719
|
"overrides": "aws-cdk-lib.StackSynthesizer",
|
|
@@ -8733,7 +8733,7 @@
|
|
|
8733
8733
|
},
|
|
8734
8734
|
"locationInModule": {
|
|
8735
8735
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8736
|
-
"line":
|
|
8736
|
+
"line": 191
|
|
8737
8737
|
},
|
|
8738
8738
|
"name": "reusableBind",
|
|
8739
8739
|
"overrides": "aws-cdk-lib.IReusableStackSynthesizer",
|
|
@@ -8759,7 +8759,7 @@
|
|
|
8759
8759
|
},
|
|
8760
8760
|
"locationInModule": {
|
|
8761
8761
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8762
|
-
"line":
|
|
8762
|
+
"line": 228
|
|
8763
8763
|
},
|
|
8764
8764
|
"name": "synthesize",
|
|
8765
8765
|
"overrides": "aws-cdk-lib.StackSynthesizer",
|
|
@@ -8784,7 +8784,7 @@
|
|
|
8784
8784
|
"immutable": true,
|
|
8785
8785
|
"locationInModule": {
|
|
8786
8786
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8787
|
-
"line":
|
|
8787
|
+
"line": 113
|
|
8788
8788
|
},
|
|
8789
8789
|
"name": "DEFAULT_CLOUDFORMATION_ROLE_ARN",
|
|
8790
8790
|
"static": true,
|
|
@@ -8801,7 +8801,7 @@
|
|
|
8801
8801
|
"immutable": true,
|
|
8802
8802
|
"locationInModule": {
|
|
8803
8803
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8804
|
-
"line":
|
|
8804
|
+
"line": 118
|
|
8805
8805
|
},
|
|
8806
8806
|
"name": "DEFAULT_DEPLOY_ROLE_ARN",
|
|
8807
8807
|
"static": true,
|
|
@@ -8818,7 +8818,7 @@
|
|
|
8818
8818
|
"immutable": true,
|
|
8819
8819
|
"locationInModule": {
|
|
8820
8820
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8821
|
-
"line":
|
|
8821
|
+
"line": 123
|
|
8822
8822
|
},
|
|
8823
8823
|
"name": "DEFAULT_LOOKUP_ROLE_ARN",
|
|
8824
8824
|
"static": true,
|
|
@@ -8835,7 +8835,7 @@
|
|
|
8835
8835
|
"immutable": true,
|
|
8836
8836
|
"locationInModule": {
|
|
8837
8837
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8838
|
-
"line":
|
|
8838
|
+
"line": 108
|
|
8839
8839
|
},
|
|
8840
8840
|
"name": "DEFAULT_QUALIFIER",
|
|
8841
8841
|
"static": true,
|
|
@@ -8861,7 +8861,7 @@
|
|
|
8861
8861
|
"kind": "interface",
|
|
8862
8862
|
"locationInModule": {
|
|
8863
8863
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8864
|
-
"line":
|
|
8864
|
+
"line": 33
|
|
8865
8865
|
},
|
|
8866
8866
|
"name": "AppStagingSynthesizerOptions",
|
|
8867
8867
|
"properties": [
|
|
@@ -8876,7 +8876,7 @@
|
|
|
8876
8876
|
"immutable": true,
|
|
8877
8877
|
"locationInModule": {
|
|
8878
8878
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8879
|
-
"line":
|
|
8879
|
+
"line": 55
|
|
8880
8880
|
},
|
|
8881
8881
|
"name": "bootstrapQualifier",
|
|
8882
8882
|
"optional": true,
|
|
@@ -8895,7 +8895,7 @@
|
|
|
8895
8895
|
"immutable": true,
|
|
8896
8896
|
"locationInModule": {
|
|
8897
8897
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
8898
|
-
"line":
|
|
8898
|
+
"line": 44
|
|
8899
8899
|
},
|
|
8900
8900
|
"name": "deploymentIdentities",
|
|
8901
8901
|
"optional": true,
|
|
@@ -9080,7 +9080,7 @@
|
|
|
9080
9080
|
"kind": "interface",
|
|
9081
9081
|
"locationInModule": {
|
|
9082
9082
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
9083
|
-
"line":
|
|
9083
|
+
"line": 66
|
|
9084
9084
|
},
|
|
9085
9085
|
"name": "CustomFactoryOptions",
|
|
9086
9086
|
"properties": [
|
|
@@ -9093,7 +9093,7 @@
|
|
|
9093
9093
|
"immutable": true,
|
|
9094
9094
|
"locationInModule": {
|
|
9095
9095
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
9096
|
-
"line":
|
|
9096
|
+
"line": 70
|
|
9097
9097
|
},
|
|
9098
9098
|
"name": "factory",
|
|
9099
9099
|
"type": {
|
|
@@ -9110,7 +9110,7 @@
|
|
|
9110
9110
|
"immutable": true,
|
|
9111
9111
|
"locationInModule": {
|
|
9112
9112
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
9113
|
-
"line":
|
|
9113
|
+
"line": 77
|
|
9114
9114
|
},
|
|
9115
9115
|
"name": "oncePerEnv",
|
|
9116
9116
|
"optional": true,
|
|
@@ -9139,7 +9139,7 @@
|
|
|
9139
9139
|
"kind": "interface",
|
|
9140
9140
|
"locationInModule": {
|
|
9141
9141
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
9142
|
-
"line":
|
|
9142
|
+
"line": 83
|
|
9143
9143
|
},
|
|
9144
9144
|
"name": "CustomResourcesOptions",
|
|
9145
9145
|
"properties": [
|
|
@@ -9152,7 +9152,7 @@
|
|
|
9152
9152
|
"immutable": true,
|
|
9153
9153
|
"locationInModule": {
|
|
9154
9154
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
9155
|
-
"line":
|
|
9155
|
+
"line": 87
|
|
9156
9156
|
},
|
|
9157
9157
|
"name": "resources",
|
|
9158
9158
|
"type": {
|
|
@@ -9222,7 +9222,7 @@
|
|
|
9222
9222
|
"kind": "interface",
|
|
9223
9223
|
"locationInModule": {
|
|
9224
9224
|
"filename": "lib/app-staging-synthesizer.ts",
|
|
9225
|
-
"line":
|
|
9225
|
+
"line": 61
|
|
9226
9226
|
},
|
|
9227
9227
|
"name": "DefaultResourcesOptions",
|
|
9228
9228
|
"symbolId": "lib/app-staging-synthesizer:DefaultResourcesOptions"
|
|
@@ -9242,7 +9242,7 @@
|
|
|
9242
9242
|
},
|
|
9243
9243
|
"locationInModule": {
|
|
9244
9244
|
"filename": "lib/default-staging-stack.ts",
|
|
9245
|
-
"line":
|
|
9245
|
+
"line": 261
|
|
9246
9246
|
},
|
|
9247
9247
|
"parameters": [
|
|
9248
9248
|
{
|
|
@@ -9271,7 +9271,7 @@
|
|
|
9271
9271
|
"kind": "class",
|
|
9272
9272
|
"locationInModule": {
|
|
9273
9273
|
"filename": "lib/default-staging-stack.ts",
|
|
9274
|
-
"line":
|
|
9274
|
+
"line": 172
|
|
9275
9275
|
},
|
|
9276
9276
|
"methods": [
|
|
9277
9277
|
{
|
|
@@ -9281,7 +9281,7 @@
|
|
|
9281
9281
|
},
|
|
9282
9282
|
"locationInModule": {
|
|
9283
9283
|
"filename": "lib/default-staging-stack.ts",
|
|
9284
|
-
"line":
|
|
9284
|
+
"line": 176
|
|
9285
9285
|
},
|
|
9286
9286
|
"name": "factory",
|
|
9287
9287
|
"parameters": [
|
|
@@ -9306,7 +9306,7 @@
|
|
|
9306
9306
|
},
|
|
9307
9307
|
"locationInModule": {
|
|
9308
9308
|
"filename": "lib/default-staging-stack.ts",
|
|
9309
|
-
"line":
|
|
9309
|
+
"line": 494
|
|
9310
9310
|
},
|
|
9311
9311
|
"name": "addDockerImage",
|
|
9312
9312
|
"overrides": "@aws-cdk/app-staging-synthesizer-alpha.IStagingResources",
|
|
@@ -9331,7 +9331,7 @@
|
|
|
9331
9331
|
},
|
|
9332
9332
|
"locationInModule": {
|
|
9333
9333
|
"filename": "lib/default-staging-stack.ts",
|
|
9334
|
-
"line":
|
|
9334
|
+
"line": 482
|
|
9335
9335
|
},
|
|
9336
9336
|
"name": "addFile",
|
|
9337
9337
|
"overrides": "@aws-cdk/app-staging-synthesizer-alpha.IStagingResources",
|
|
@@ -9360,7 +9360,7 @@
|
|
|
9360
9360
|
"immutable": true,
|
|
9361
9361
|
"locationInModule": {
|
|
9362
9362
|
"filename": "lib/default-staging-stack.ts",
|
|
9363
|
-
"line":
|
|
9363
|
+
"line": 237
|
|
9364
9364
|
},
|
|
9365
9365
|
"name": "dependencyStack",
|
|
9366
9366
|
"type": {
|
|
@@ -9375,7 +9375,7 @@
|
|
|
9375
9375
|
"immutable": true,
|
|
9376
9376
|
"locationInModule": {
|
|
9377
9377
|
"filename": "lib/default-staging-stack.ts",
|
|
9378
|
-
"line":
|
|
9378
|
+
"line": 232
|
|
9379
9379
|
},
|
|
9380
9380
|
"name": "stagingRepos",
|
|
9381
9381
|
"type": {
|
|
@@ -9395,7 +9395,7 @@
|
|
|
9395
9395
|
"immutable": true,
|
|
9396
9396
|
"locationInModule": {
|
|
9397
9397
|
"filename": "lib/default-staging-stack.ts",
|
|
9398
|
-
"line":
|
|
9398
|
+
"line": 227
|
|
9399
9399
|
},
|
|
9400
9400
|
"name": "stagingBucket",
|
|
9401
9401
|
"optional": true,
|
|
@@ -9421,7 +9421,7 @@
|
|
|
9421
9421
|
"kind": "interface",
|
|
9422
9422
|
"locationInModule": {
|
|
9423
9423
|
"filename": "lib/default-staging-stack.ts",
|
|
9424
|
-
"line":
|
|
9424
|
+
"line": 47
|
|
9425
9425
|
},
|
|
9426
9426
|
"name": "DefaultStagingStackOptions",
|
|
9427
9427
|
"properties": [
|
|
@@ -9435,7 +9435,7 @@
|
|
|
9435
9435
|
"immutable": true,
|
|
9436
9436
|
"locationInModule": {
|
|
9437
9437
|
"filename": "lib/default-staging-stack.ts",
|
|
9438
|
-
"line":
|
|
9438
|
+
"line": 57
|
|
9439
9439
|
},
|
|
9440
9440
|
"name": "appId",
|
|
9441
9441
|
"type": {
|
|
@@ -9452,7 +9452,7 @@
|
|
|
9452
9452
|
"immutable": true,
|
|
9453
9453
|
"locationInModule": {
|
|
9454
9454
|
"filename": "lib/default-staging-stack.ts",
|
|
9455
|
-
"line":
|
|
9455
|
+
"line": 80
|
|
9456
9456
|
},
|
|
9457
9457
|
"name": "stagingBucketEncryption",
|
|
9458
9458
|
"type": {
|
|
@@ -9469,7 +9469,7 @@
|
|
|
9469
9469
|
"immutable": true,
|
|
9470
9470
|
"locationInModule": {
|
|
9471
9471
|
"filename": "lib/default-staging-stack.ts",
|
|
9472
|
-
"line":
|
|
9472
|
+
"line": 131
|
|
9473
9473
|
},
|
|
9474
9474
|
"name": "autoDeleteStagingAssets",
|
|
9475
9475
|
"optional": true,
|
|
@@ -9488,7 +9488,7 @@
|
|
|
9488
9488
|
"immutable": true,
|
|
9489
9489
|
"locationInModule": {
|
|
9490
9490
|
"filename": "lib/default-staging-stack.ts",
|
|
9491
|
-
"line":
|
|
9491
|
+
"line": 111
|
|
9492
9492
|
},
|
|
9493
9493
|
"name": "deployTimeFileAssetLifetime",
|
|
9494
9494
|
"optional": true,
|
|
@@ -9506,7 +9506,7 @@
|
|
|
9506
9506
|
"immutable": true,
|
|
9507
9507
|
"locationInModule": {
|
|
9508
9508
|
"filename": "lib/default-staging-stack.ts",
|
|
9509
|
-
"line":
|
|
9509
|
+
"line": 87
|
|
9510
9510
|
},
|
|
9511
9511
|
"name": "fileAssetPublishingRole",
|
|
9512
9512
|
"optional": true,
|
|
@@ -9524,7 +9524,7 @@
|
|
|
9524
9524
|
"immutable": true,
|
|
9525
9525
|
"locationInModule": {
|
|
9526
9526
|
"filename": "lib/default-staging-stack.ts",
|
|
9527
|
-
"line":
|
|
9527
|
+
"line": 94
|
|
9528
9528
|
},
|
|
9529
9529
|
"name": "imageAssetPublishingRole",
|
|
9530
9530
|
"optional": true,
|
|
@@ -9543,7 +9543,7 @@
|
|
|
9543
9543
|
"immutable": true,
|
|
9544
9544
|
"locationInModule": {
|
|
9545
9545
|
"filename": "lib/default-staging-stack.ts",
|
|
9546
|
-
"line":
|
|
9546
|
+
"line": 123
|
|
9547
9547
|
},
|
|
9548
9548
|
"name": "imageAssetVersionCount",
|
|
9549
9549
|
"optional": true,
|
|
@@ -9561,7 +9561,7 @@
|
|
|
9561
9561
|
"immutable": true,
|
|
9562
9562
|
"locationInModule": {
|
|
9563
9563
|
"filename": "lib/default-staging-stack.ts",
|
|
9564
|
-
"line":
|
|
9564
|
+
"line": 64
|
|
9565
9565
|
},
|
|
9566
9566
|
"name": "stagingBucketName",
|
|
9567
9567
|
"optional": true,
|
|
@@ -9580,7 +9580,7 @@
|
|
|
9580
9580
|
"immutable": true,
|
|
9581
9581
|
"locationInModule": {
|
|
9582
9582
|
"filename": "lib/default-staging-stack.ts",
|
|
9583
|
-
"line":
|
|
9583
|
+
"line": 141
|
|
9584
9584
|
},
|
|
9585
9585
|
"name": "stagingStackNamePrefix",
|
|
9586
9586
|
"optional": true,
|
|
@@ -9610,7 +9610,7 @@
|
|
|
9610
9610
|
"kind": "interface",
|
|
9611
9611
|
"locationInModule": {
|
|
9612
9612
|
"filename": "lib/default-staging-stack.ts",
|
|
9613
|
-
"line":
|
|
9613
|
+
"line": 147
|
|
9614
9614
|
},
|
|
9615
9615
|
"name": "DefaultStagingStackProps",
|
|
9616
9616
|
"properties": [
|
|
@@ -9624,7 +9624,7 @@
|
|
|
9624
9624
|
"immutable": true,
|
|
9625
9625
|
"locationInModule": {
|
|
9626
9626
|
"filename": "lib/default-staging-stack.ts",
|
|
9627
|
-
"line":
|
|
9627
|
+
"line": 162
|
|
9628
9628
|
},
|
|
9629
9629
|
"name": "qualifier",
|
|
9630
9630
|
"type": {
|
|
@@ -9642,7 +9642,7 @@
|
|
|
9642
9642
|
"immutable": true,
|
|
9643
9643
|
"locationInModule": {
|
|
9644
9644
|
"filename": "lib/default-staging-stack.ts",
|
|
9645
|
-
"line":
|
|
9645
|
+
"line": 155
|
|
9646
9646
|
},
|
|
9647
9647
|
"name": "deployRoleArn",
|
|
9648
9648
|
"optional": true,
|
|
@@ -10234,7 +10234,7 @@
|
|
|
10234
10234
|
},
|
|
10235
10235
|
"locationInModule": {
|
|
10236
10236
|
"filename": "lib/default-staging-stack.ts",
|
|
10237
|
-
"line":
|
|
10237
|
+
"line": 39
|
|
10238
10238
|
},
|
|
10239
10239
|
"parameters": [
|
|
10240
10240
|
{
|
|
@@ -10254,12 +10254,12 @@
|
|
|
10254
10254
|
"kind": "class",
|
|
10255
10255
|
"locationInModule": {
|
|
10256
10256
|
"filename": "lib/default-staging-stack.ts",
|
|
10257
|
-
"line":
|
|
10257
|
+
"line": 38
|
|
10258
10258
|
},
|
|
10259
10259
|
"name": "UsingAppStagingSynthesizer",
|
|
10260
10260
|
"symbolId": "lib/default-staging-stack:UsingAppStagingSynthesizer"
|
|
10261
10261
|
}
|
|
10262
10262
|
},
|
|
10263
|
-
"version": "2.
|
|
10263
|
+
"version": "2.239.0-alpha.0",
|
|
10264
10264
|
"fingerprint": "**********"
|
|
10265
10265
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { DockerImageAssetLocation, DockerImageAssetSource, FileAssetLocation, FileAssetSource, IBoundStackSynthesizer as IBoundAppStagingSynthesizer, IReusableStackSynthesizer, ISynthesisSession, Stack
|
|
1
|
+
import type { DockerImageAssetLocation, DockerImageAssetSource, FileAssetLocation, FileAssetSource, IBoundStackSynthesizer as IBoundAppStagingSynthesizer, IReusableStackSynthesizer, ISynthesisSession, Stack } from 'aws-cdk-lib/core';
|
|
2
|
+
import { StackSynthesizer } from 'aws-cdk-lib/core';
|
|
2
3
|
import { DeploymentIdentities } from './bootstrap-roles';
|
|
3
|
-
import { DefaultStagingStackOptions } from './default-staging-stack';
|
|
4
|
-
import { IStagingResources, IStagingResourcesFactory } from './staging-stack';
|
|
4
|
+
import type { DefaultStagingStackOptions } from './default-staging-stack';
|
|
5
|
+
import type { IStagingResources, IStagingResourcesFactory } from './staging-stack';
|
|
5
6
|
/**
|
|
6
7
|
* Options that apply to all AppStagingSynthesizer variants
|
|
7
8
|
*/
|
|
@@ -17,7 +17,7 @@ const ENV_AWARE_STACKS = new app_global_1.AppScopedGlobal(() => new Set());
|
|
|
17
17
|
*/
|
|
18
18
|
class AppStagingSynthesizer extends core_1.StackSynthesizer {
|
|
19
19
|
props;
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.AppStagingSynthesizer", version: "2.
|
|
20
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.AppStagingSynthesizer", version: "2.239.0-alpha.0" };
|
|
21
21
|
/**
|
|
22
22
|
* Default ARN qualifier
|
|
23
23
|
*/
|
|
@@ -258,4 +258,4 @@ class BoundAppStagingSynthesizer extends core_1.StackSynthesizer {
|
|
|
258
258
|
return this.cloudFormationLocationFromDockerImageAsset(location);
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YWdpbmctc3ludGhlc2l6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHAtc3RhZ2luZy1zeW50aGVzaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQWEwQjtBQUMxQiw0RUFBeUc7QUFDekcsdURBQXdGO0FBQ3hGLG1FQUEwRjtBQUMxRix1RUFBeUc7QUFDekcscURBQXVEO0FBQ3ZELG1EQUF1RDtBQUd2RCxNQUFNLGVBQWUsR0FBRyxJQUFJLDRCQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQVMsQ0FBQyxDQUFDO0FBQ3BFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSw0QkFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFTLENBQUMsQ0FBQztBQXlFckU7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHVCQUFnQjtJQXVFcEI7O0lBdEVyQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxpQkFBaUIsR0FBRyxXQUFXLENBQUM7SUFFdkQ7O09BRUc7SUFDSSxNQUFNLENBQVUsK0JBQStCLEdBQUcsbUhBQW1ILENBQUM7SUFFN0s7O09BRUc7SUFDSSxNQUFNLENBQVUsdUJBQXVCLEdBQUcsaUhBQWlILENBQUM7SUFFbks7O09BRUc7SUFDSSxNQUFNLENBQVUsdUJBQXVCLEdBQUcsaUhBQWlILENBQUM7SUFFbks7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBZ0M7Ozs7Ozs7Ozs7UUFDN0QsSUFBQSw0QkFBZ0IsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUVuRCxPQUFPLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztZQUN6QyxPQUFPLEVBQUUsMkNBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUM3QyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CO1lBQ2xELGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7WUFDOUMsVUFBVSxF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QUFTO1NBQ2xHLEVBQUU7WUFDRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsMERBQTBELENBQUMsQ0FBQztZQUMzRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNsRTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIEJPT1RTVFJBUF9RVUFMSUZJRVJfQ09OVEVYVCxcbiAgRG9ja2VySW1hZ2VBc3NldExvY2F0aW9uLFxuICBEb2NrZXJJbWFnZUFzc2V0U291cmNlLFxuICBGaWxlQXNzZXRMb2NhdGlvbixcbiAgRmlsZUFzc2V0U291cmNlLFxuICBJQm91bmRTdGFja1N5bnRoZXNpemVyIGFzIElCb3VuZEFwcFN0YWdpbmdTeW50aGVzaXplcixcbiAgSVJldXNhYmxlU3RhY2tTeW50aGVzaXplcixcbiAgSVN5bnRoZXNpc1Nlc3Npb24sXG4gIFN0YWNrLFxuICBTdGFja1N5bnRoZXNpemVyLFxuICBUb2tlbixcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBTdHJpbmdTcGVjaWFsaXplciwgdHJhbnNsYXRlQ2ZuVG9rZW5Ub0Fzc2V0VG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IEJvb3RzdHJhcFJvbGUsIEJvb3RzdHJhcFJvbGVzLCBEZXBsb3ltZW50SWRlbnRpdGllcyB9IGZyb20gJy4vYm9vdHN0cmFwLXJvbGVzJztcbmltcG9ydCB7IERlZmF1bHRTdGFnaW5nU3RhY2ssIERlZmF1bHRTdGFnaW5nU3RhY2tPcHRpb25zIH0gZnJvbSAnLi9kZWZhdWx0LXN0YWdpbmctc3RhY2snO1xuaW1wb3J0IHsgUGVyRW52aXJvbm1lbnRTdGFnaW5nRmFjdG9yeSBhcyBQZXJFbnZpcm9ubWVudFN0YWdpbmdGYWN0b3J5IH0gZnJvbSAnLi9wZXItZW52LXN0YWdpbmctZmFjdG9yeSc7XG5pbXBvcnQgeyBBcHBTY29wZWRHbG9iYWwgfSBmcm9tICcuL3ByaXZhdGUvYXBwLWdsb2JhbCc7XG5pbXBvcnQgeyB2YWxpZGF0ZU5vVG9rZW5zIH0gZnJvbSAnLi9wcml2YXRlL25vLXRva2Vucyc7XG5pbXBvcnQgeyBJU3RhZ2luZ1Jlc291cmNlcywgSVN0YWdpbmdSZXNvdXJjZXNGYWN0b3J5LCBPYnRhaW5TdGFnaW5nUmVzb3VyY2VzQ29udGV4dCB9IGZyb20gJy4vc3RhZ2luZy1zdGFjayc7XG5cbmNvbnN0IEFHTk9TVElDX1NUQUNLUyA9IG5ldyBBcHBTY29wZWRHbG9iYWwoKCkgPT4gbmV3IFNldDxTdGFjaz4oKSk7XG5jb25zdCBFTlZfQVdBUkVfU1RBQ0tTID0gbmV3IEFwcFNjb3BlZEdsb2JhbCgoKSA9PiBuZXcgU2V0PFN0YWNrPigpKTtcblxuLyoqXG4gKiBPcHRpb25zIHRoYXQgYXBwbHkgdG8gYWxsIEFwcFN0YWdpbmdTeW50aGVzaXplciB2YXJpYW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogV2hhdCByb2xlcyB0byB1c2UgdG8gZGVwbG95IGFwcGxpY2F0aW9uc1xuICAgKlxuICAgKiBUaGVzZSBhcmUgdGhlIHJvbGVzIHRoYXQgaGF2ZSBwZXJtaXNzaW9ucyB0byBpbnRlcmFjdCB3aXRoIENsb3VkRm9ybWF0aW9uXG4gICAqIG9uIHlvdXIgYmVoYWxmLiBCeSBkZWZhdWx0IHRoZXNlIGFyZSB0aGUgc3RhbmRhcmQgYm9vdHN0cmFwcGVkIENESyByb2xlcyxcbiAgICogYnV0IHlvdSBjYW4gY3VzdG9taXplIHRoZW0gb3IgdHVybiB0aGVtIG9mZiBhbmQgdXNlIHRoZSBDTEkgY3JlZGVudGlhbHNcbiAgICogdG8gZGVwbG95LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzdGFuZGFyZCBib290c3RyYXBwZWQgQ0RLIHJvbGVzXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50SWRlbnRpdGllcz86IERlcGxveW1lbnRJZGVudGl0aWVzO1xuXG4gIC8qKlxuICAgKiBRdWFsaWZpZXIgdG8gZGlzYW1iaWd1YXRlIG11bHRpcGxlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudHMgaW4gdGhlIHNhbWUgYWNjb3VudFxuICAgKlxuICAgKiBUaGlzIHF1YWxpZmllciBpcyBvbmx5IHVzZWQgdG8gcmVmZXJlbmNlIGJvb3RzdHJhcHBlZCByZXNvdXJjZXMuIEl0IHdpbGwgbm90XG4gICAqIGJlIHVzZWQgaW4gdGhlIGNyZWF0aW9uIG9mIGFwcC1zcGVjaWZpYyBzdGFnaW5nIHJlc291cmNlczogYGFwcElkYCBpcyB1c2VkIGZvciB0aGF0XG4gICAqIGluc3RlYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVmFsdWUgb2YgY29udGV4dCBrZXkgJ0Bhd3MtY2RrL2NvcmU6Ym9vdHN0cmFwUXVhbGlmaWVyJyBpZiBzZXQsIG90aGVyd2lzZSBgREVGQVVMVF9RVUFMSUZJRVJgXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBRdWFsaWZpZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3Igc3RhY2tQZXJFbnYgc3RhdGljIG1ldGhvZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRSZXNvdXJjZXNPcHRpb25zIGV4dGVuZHMgQXBwU3RhZ2luZ1N5bnRoZXNpemVyT3B0aW9ucywgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMge31cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjdXN0b21GYWN0b3J5IHN0YXRpYyBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GYWN0b3J5T3B0aW9ucyBleHRlbmRzIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGZhY3RvcnkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmV0dXJuIHN0YWdpbmcgcmVzb3VyY2VzIGZvciBlYWNoIHN0YWNrXG4gICAqL1xuICByZWFkb25seSBmYWN0b3J5OiBJU3RhZ2luZ1Jlc291cmNlc0ZhY3Rvcnk7XG5cbiAgLyoqXG4gICAqIFJldXNlIHRoZSBhbnN3ZXIgZnJvbSB0aGUgZmFjdG9yeSBmb3Igc3RhY2tzIGluIHRoZSBzYW1lIGVudmlyb25tZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG9uY2VQZXJFbnY/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGN1c3RvbVJlc291cmNlcyBzdGF0aWMgbWV0aG9kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VzT3B0aW9ucyBleHRlbmRzIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogVXNlIHRoZXNlIGV4YWN0IHN0YWdpbmcgcmVzb3VyY2VzIGZvciBldmVyeSBzdGFjayB0aGF0IHRoaXMgc3ludGhlc2l6ZXIgaXMgdXNlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczogSVN0YWdpbmdSZXNvdXJjZXM7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgcHJvcGVydGllcyBmb3IgQXBwU3RhZ2luZ1N5bnRoZXNpemVyXG4gKi9cbmludGVyZmFjZSBBcHBTdGFnaW5nU3ludGhlc2l6ZXJQcm9wcyBleHRlbmRzIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogQSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gSVN0YWdpbmdTdGFjayB3aGVuIGdpdmVuIHRoZSBzdGFjayB0aGVcbiAgICogc3ludGhlc2l6ZXIgaXMgYmluZGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGZhY3Rvcnk6IElTdGFnaW5nUmVzb3VyY2VzRmFjdG9yeTtcbn1cblxuLyoqXG4gKiBBcHAgU3RhZ2luZyBTeW50aGVzaXplclxuICovXG5leHBvcnQgY2xhc3MgQXBwU3RhZ2luZ1N5bnRoZXNpemVyIGV4dGVuZHMgU3RhY2tTeW50aGVzaXplciBpbXBsZW1lbnRzIElSZXVzYWJsZVN0YWNrU3ludGhlc2l6ZXIge1xuICAvKipcbiAgICogRGVmYXVsdCBBUk4gcXVhbGlmaWVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUVVBTElGSUVSID0gJ2huYjY1OWZkcyc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgQ2xvdWRGb3JtYXRpb24gcm9sZSBBUk4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQ0xPVURGT1JNQVRJT05fUk9MRV9BUk4gPSAnYXJuOiR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHtBV1M6OkFjY291bnRJZH06cm9sZS9jZGstJHtRdWFsaWZpZXJ9LWNmbi1leGVjLXJvbGUtJHtBV1M6OkFjY291bnRJZH0tJHtBV1M6OlJlZ2lvbn0nO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGRlcGxveSByb2xlIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9ERVBMT1lfUk9MRV9BUk4gPSAnYXJuOiR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHtBV1M6OkFjY291bnRJZH06cm9sZS9jZGstJHtRdWFsaWZpZXJ9LWRlcGxveS1yb2xlLSR7QVdTOjpBY2NvdW50SWR9LSR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogRGVmYXVsdCBsb29rdXAgcm9sZSBBUk4gZm9yIG1pc3NpbmcgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0xPT0tVUF9ST0xFX0FSTiA9ICdhcm46JHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke0FXUzo6QWNjb3VudElkfTpyb2xlL2Nkay0ke1F1YWxpZmllcn0tbG9va3VwLXJvbGUtJHtBV1M6OkFjY291bnRJZH0tJHtBV1M6OlJlZ2lvbn0nO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhlIERlZmF1bHQgU3RhZ2luZyBSZXNvdXJjZXMsIGNyZWF0aW5nIGEgc2luZ2xlIHN0YWNrIHBlciBlbnZpcm9ubWVudCB0aGlzIGFwcCBpcyBkZXBsb3llZCBpblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UmVzb3VyY2VzKG9wdGlvbnM6IERlZmF1bHRSZXNvdXJjZXNPcHRpb25zKSB7XG4gICAgdmFsaWRhdGVOb1Rva2VucyhvcHRpb25zLCAnQXBwU3RhZ2luZ1N5bnRoZXNpemVyJyk7XG5cbiAgICByZXR1cm4gQXBwU3RhZ2luZ1N5bnRoZXNpemVyLmN1c3RvbUZhY3Rvcnkoe1xuICAgICAgZmFjdG9yeTogRGVmYXVsdFN0YWdpbmdTdGFjay5mYWN0b3J5KG9wdGlvbnMpLFxuICAgICAgZGVwbG95bWVudElkZW50aXRpZXM6IG9wdGlvbnMuZGVwbG95bWVudElkZW50aXRpZXMsXG4gICAgICBib290c3RyYXBRdWFsaWZpZXI6IG9wdGlvbnMuYm9vdHN0cmFwUXVhbGlmaWVyLFxuICAgICAgb25jZVBlckVudjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlc2UgZXhhY3Qgc3RhZ2luZyByZXNvdXJjZXMgZm9yIGV2ZXJ5IHN0YWNrIHRoYXQgdGhpcyBzeW50aGVzaXplciBpcyB1c2VkIGZvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b21SZXNvdXJjZXMob3B0aW9uczogQ3VzdG9tUmVzb3VyY2VzT3B0aW9ucykge1xuICAgIHJldHVybiBBcHBTdGFnaW5nU3ludGhlc2l6ZXIuY3VzdG9tRmFjdG9yeSh7XG4gICAgICBkZXBsb3ltZW50SWRlbnRpdGllczogb3B0aW9ucy5kZXBsb3ltZW50SWRlbnRpdGllcyxcbiAgICAgIGJvb3RzdHJhcFF1YWxpZmllcjogb3B0aW9ucy5ib290c3RyYXBRdWFsaWZpZXIsXG4gICAgICBvbmNlUGVyRW52OiBmYWxzZSxcbiAgICAgIGZhY3Rvcnk6IHtcbiAgICAgICAgb2J0YWluU3RhZ2luZ1Jlc291cmNlcygpIHtcbiAgICAgICAgICByZXR1cm4gb3B0aW9ucy5yZXNvdXJjZXM7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1cHBseSB5b3VyIG93biBzdGFnaW5nU3RhY2tGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYW4gSVN0YWdpbmdTdGFjayB3aGVuXG4gICAqIGEgc3RhY2sgaXMgYm91bmQgdG8gdGhlIHN5bnRoZXNpemVyLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBgb25jZVBlckVudiA9IHRydWVgLCB3aGljaCBtZWFucyB0aGF0IGEgbmV3IGluc3RhbmNlIG9mIHRoZSBJU3RhZ2luZ1N0YWNrXG4gICAqIHdpbGwgYmUgY3JlYXRlZCBpbiBuZXcgZW52aXJvbm1lbnRzLiBTZXQgYG9uY2VQZXJFbnYgPSBmYWxzZWAgdG8gdHVybiBvZmYgdGhhdCBiZWhhdmlvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3VzdG9tRmFjdG9yeShvcHRpb25zOiBDdXN0b21GYWN0b3J5T3B0aW9ucykge1xuICAgIGNvbnN0IG9uY2VQZXJFbnYgPSBvcHRpb25zLm9uY2VQZXJFbnYgPz8gdHJ1ZTtcbiAgICBjb25zdCBmYWN0b3J5ID0gb25jZVBlckVudiA/IG5ldyBQZXJFbnZpcm9ubWVudFN0YWdpbmdGYWN0b3J5KG9wdGlvbnMuZmFjdG9yeSkgOiBvcHRpb25zLmZhY3Rvcnk7XG5cbiAgICByZXR1cm4gbmV3IEFwcFN0YWdpbmdTeW50aGVzaXplcih7XG4gICAgICBmYWN0b3J5LFxuICAgICAgYm9vdHN0cmFwUXVhbGlmaWVyOiBvcHRpb25zLmJvb3RzdHJhcFF1YWxpZmllcixcbiAgICAgIGRlcGxveW1lbnRJZGVudGl0aWVzOiBvcHRpb25zLmRlcGxveW1lbnRJZGVudGl0aWVzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb2xlczogUmVxdWlyZWQ8Qm9vdHN0cmFwUm9sZXM+O1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogQXBwU3RhZ2luZ1N5bnRoZXNpemVyUHJvcHMpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgZGVmYXVsdElkZW50aXRpZXMgPSBEZXBsb3ltZW50SWRlbnRpdGllcy5kZWZhdWx0Qm9vdHN0cmFwUm9sZXMoKTtcbiAgICBjb25zdCBpZGVudGl0aWVzID0gcHJvcHMuZGVwbG95bWVudElkZW50aXRpZXMgPz8gRGVwbG95bWVudElkZW50aXRpZXMuZGVmYXVsdEJvb3RzdHJhcFJvbGVzKCk7XG5cbiAgICB0aGlzLnJvbGVzID0ge1xuICAgICAgZGVwbG95bWVudFJvbGU6IGlkZW50aXRpZXMuZGVwbG95bWVudFJvbGUgPz8gZGVmYXVsdElkZW50aXRpZXMuZGVwbG95bWVudFJvbGUhLFxuICAgICAgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlOiBpZGVudGl0aWVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZSA/PyBkZWZhdWx0SWRlbnRpdGllcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGUhLFxuICAgICAgbG9va3VwUm9sZTogaWRlbnRpdGllcy5sb29rdXBSb2xlID8/IGlkZW50aXRpZXMubG9va3VwUm9sZSEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdmVyc2lvbiBvZiB0aGUgc3ludGhlc2l6ZXIgYm91bmQgdG8gYSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZXVzYWJsZUJpbmQoc3RhY2s6IFN0YWNrKTogSUJvdW5kQXBwU3RhZ2luZ1N5bnRoZXNpemVyIHtcbiAgICB0aGlzLmNoZWNrRW52aXJvbm1lbnRHbm9zdGljaXNtKHN0YWNrKTtcbiAgICBjb25zdCBxdWFsaWZpZXIgPSB0aGlzLnByb3BzLmJvb3RzdHJhcFF1YWxpZmllciA/P1xuICAgICAgc3RhY2subm9kZS50cnlHZXRDb250ZXh0KEJPT1RTVFJBUF9RVUFMSUZJRVJfQ09OVEVYVCkgPz9cbiAgICAgIEFwcFN0YWdpbmdTeW50aGVzaXplci5ERUZBVUxUX1FVQUxJRklFUjtcbiAgICBjb25zdCBzcGVjID0gbmV3IFN0cmluZ1NwZWNpYWxpemVyKHN0YWNrLCBxdWFsaWZpZXIpO1xuXG4gICAgY29uc3QgZGVwbG95Um9sZSA9IHRoaXMucm9sZXMuZGVwbG95bWVudFJvbGUuX3NwZWNpYWxpemUoc3BlYyk7XG5cbiAgICBjb25zdCBjb250ZXh0OiBPYnRhaW5TdGFnaW5nUmVzb3VyY2VzQ29udGV4dCA9IHtcbiAgICAgIGVudmlyb25tZW50U3RyaW5nOiBbXG4gICAgICAgIFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5hY2NvdW50KSA/ICdBQ0NPVU5UJyA6IHN0YWNrLmFjY291bnQsXG4gICAgICAgIFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5yZWdpb24pID8gJ1JFR0lPTicgOiBzdGFjay5yZWdpb24sXG4gICAgICBdLmpvaW4oJy0nKSxcbiAgICAgIGRlcGxveVJvbGVBcm46IGRlcGxveVJvbGUuX2FybkZvckNsb3VkRm9ybWF0aW9uKCksXG4gICAgICBxdWFsaWZpZXIsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXIoc3RhY2ssIHtcbiAgICAgIHN0YWdpbmdSZXNvdXJjZXM6IHRoaXMucHJvcHMuZmFjdG9yeS5vYnRhaW5TdGFnaW5nUmVzb3VyY2VzKHN0YWNrLCBjb250ZXh0KSxcbiAgICAgIGRlcGxveVJvbGUsXG4gICAgICBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGU6IHRoaXMucm9sZXMuY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlLl9zcGVjaWFsaXplKHNwZWMpLFxuICAgICAgbG9va3VwUm9sZTogdGhpcy5yb2xlcy5sb29rdXBSb2xlLl9zcGVjaWFsaXplKHNwZWMpLFxuICAgICAgcXVhbGlmaWVyLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGZvciBsZWdhY3kgcHVycG9zZXM7IHRoaXMgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgYmluZChfc3RhY2s6IFN0YWNrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIGlzIGEgbGVnYWN5IEFQSSwgY2FsbCByZXVzYWJsZUJpbmQgaW5zdGVhZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGZvciBsZWdhY3kgcHVycG9zZXM7IHRoaXMgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgc3ludGhlc2l6ZShfc2Vzc2lvbjogSVN5bnRoZXNpc1Nlc3Npb24pOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgaXMgYSBsZWdhY3kgQVBJLCBjYWxsIHJldXNhYmxlQmluZCBpbnN0ZWFkJyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgZm9yIGxlZ2FjeSBwdXJwb3NlczsgdGhpcyB3aWxsIG5ldmVyIGJlIGNhbGxlZC5cbiAgICovXG4gIHB1YmxpYyBhZGRGaWxlQXNzZXQoX2Fzc2V0OiBGaWxlQXNzZXRTb3VyY2UpOiBGaWxlQXNzZXRMb2NhdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIGlzIGEgbGVnYWN5IEFQSSwgY2FsbCByZXVzYWJsZUJpbmQgaW5zdGVhZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGZvciBsZWdhY3kgcHVycG9zZXM7IHRoaXMgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2VBc3NldChfYXNzZXQ6IERvY2tlckltYWdlQXNzZXRTb3VyY2UpOiBEb2NrZXJJbWFnZUFzc2V0TG9jYXRpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBpcyBhIGxlZ2FjeSBBUEksIGNhbGwgcmV1c2FibGVCaW5kIGluc3RlYWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGF0IHdlJ3JlIG9ubHkgYmVpbmcgdXNlZCBmb3IgZXhjbHVzaXZlbHkgZ25vc3RpYyBvciBhZ25vc3RpYyBzdGFja3MuXG4gICAqXG4gICAqIFdlIGNhbiB0aGluayBhYm91dCB3aGV0aGVyIHRvIGxvb3NlbiB0aGlzIHJlcXVpcmVtZW50IGxhdGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0Vudmlyb25tZW50R25vc3RpY2lzbShzdGFjazogU3RhY2spIHtcbiAgICBjb25zdCBpc0Fnbm9zdGljID0gVG9rZW4uaXNVbnJlc29sdmVkKHN0YWNrLmFjY291bnQpIHx8IFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5yZWdpb24pO1xuICAgIGNvbnN0IGFnbm9zdGljU3RhY2tzID0gQUdOT1NUSUNfU1RBQ0tTLmZvcihzdGFjayk7XG4gICAgY29uc3QgZW52QXdhcmVTdGFja3MgPSBFTlZfQVdBUkVfU1RBQ0tTLmZvcihzdGFjayk7XG5cbiAgICAoaXNBZ25vc3RpYyA/IGFnbm9zdGljU3RhY2tzIDogZW52QXdhcmVTdGFja3MpLmFkZChzdGFjayk7XG4gICAgaWYgKGFnbm9zdGljU3RhY2tzLnNpemUgPiAwICYmIGVudkF3YXJlU3RhY2tzLnNpemUgPiAwKSB7XG4gICAgICBjb25zdCBkZXNjcmliZVN0YWNrcyA9ICh4czogU2V0PFN0YWNrPikgPT4gQXJyYXkuZnJvbSh4cykubWFwKHMgPT4gcy5ub2RlLnBhdGgpLmpvaW4oJywgJyk7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihbXG4gICAgICAgICdJdCBpcyBub3Qgc2FmZSB0byB1c2UgQXBwU3RhZ2luZ1N5bnRoZXNpemVyIGZvciBib3RoIGVudmlyb25tZW50LWFnbm9zdGljIGFuZCBlbnZpcm9ubWVudC1hd2FyZSBzdGFja3MgYXQgdGhlIHNhbWUgdGltZS4nLFxuICAgICAgICAnUGxlYXNlIGVpdGhlciBzcGVjaWZ5IGVudmlyb25tZW50cyBmb3IgYWxsIHN0YWNrcyBvciBubyBzdGFja3MgaW4gdGhlIENESyBBcHAuJyxcbiAgICAgICAgYEF0IGxlYXN0IHRoZXNlIHN0YWNrcyB3aXRoIGVudmlyb25tZW50OiAke2Rlc2NyaWJlU3RhY2tzKGVudkF3YXJlU3RhY2tzKX0uYCxcbiAgICAgICAgYEF0IGxlYXN0IHRoZXNlIHN0YWNrcyB3aXRob3V0IGVudmlyb25tZW50OiAke2Rlc2NyaWJlU3RhY2tzKGFnbm9zdGljU3RhY2tzKX0uYCxcbiAgICAgIF0uam9pbignICcpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBwcm9wZXJ0aWVzIGZvciBCb3VuZEFwcFN0YWdpbmdTeW50aGVzaXplclxuICovXG5pbnRlcmZhY2UgQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgYm9vdHN0cmFwIHF1YWxpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgd2UgZW5kIHVwIHVzaW5nIGZvciB0aGlzIHN5bnRoZXNpemVyXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nUmVzb3VyY2VzOiBJU3RhZ2luZ1Jlc291cmNlcztcblxuICAvKipcbiAgICogVGhlIGRlcGxveSByb2xlXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lSb2xlOiBCb290c3RyYXBSb2xlO1xuXG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBFeGVjdXRpb24gUm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlOiBCb290c3RyYXBSb2xlO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgUm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUm9sZTogQm9vdHN0cmFwUm9sZTtcbn1cblxuY2xhc3MgQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXIgZXh0ZW5kcyBTdGFja1N5bnRoZXNpemVyIGltcGxlbWVudHMgSUJvdW5kQXBwU3RhZ2luZ1N5bnRoZXNpemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFnaW5nU3RhY2s6IElTdGFnaW5nUmVzb3VyY2VzO1xuICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0TWFuaWZlc3QgPSBuZXcgQXNzZXRNYW5pZmVzdEJ1aWxkZXIoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWFsaWZpZXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRlbmN5U3RhY2tzOiBTZXQ8U3RhY2s+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0cnVjdG9yKHN0YWNrOiBTdGFjaywgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXJQcm9wcykge1xuICAgIHN1cGVyKCk7XG4gICAgc3VwZXIuYmluZChzdGFjayk7XG5cbiAgICB0aGlzLnF1YWxpZmllciA9IHByb3BzLnF1YWxpZmllcjtcbiAgICB0aGlzLnN0YWdpbmdTdGFjayA9IHByb3BzLnN0YWdpbmdSZXNvdXJjZXM7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgdXNlZCB0byBib290c3RyYXAgdGhpcyBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldCBib290c3RyYXBRdWFsaWZpZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBOb3Qgc3VyZSB3aHkgd2UgbmVlZCB0aGlzLlxuICAgIHJldHVybiB0aGlzLnF1YWxpZmllcjtcbiAgfVxuXG4gIHB1YmxpYyBzeW50aGVzaXplKHNlc3Npb246IElTeW50aGVzaXNTZXNzaW9uKTogdm9pZCB7XG4gICAgY29uc3QgdGVtcGxhdGVBc3NldFNvdXJjZSA9IHRoaXMuc3ludGhlc2l6ZVRlbXBsYXRlKHNlc3Npb24sIHRoaXMucHJvcHMubG9va3VwUm9sZT8uX2FybkZvckNsb3VkQXNzZW1ibHkoKSk7XG4gICAgY29uc3QgdGVtcGxhdGVBc3NldCA9IHRoaXMuYWRkRmlsZUFzc2V0KHRlbXBsYXRlQXNzZXRTb3VyY2UpO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gQXJyYXkuZnJvbSh0aGlzLmRlcGVuZGVuY3lTdGFja3MpLmZsYXRNYXAoKGQpID0+IGQuYXJ0aWZhY3RJZCk7XG4gICAgY29uc3QgYXNzZXRNYW5pZmVzdElkID0gdGhpcy5hc3NldE1hbmlmZXN0LmVtaXRNYW5pZmVzdCh0aGlzLmJvdW5kU3RhY2ssIHNlc3Npb24sIHt9LCBkZXBlbmRlbmNpZXMpO1xuXG4gICAgY29uc3QgbG9va3VwUm9sZUFybiA9IHRoaXMucHJvcHMubG9va3VwUm9sZT8uX2FybkZvckNsb3VkQXNzZW1ibHkoKTtcblxuICAgIHRoaXMuZW1pdEFydGlmYWN0KHNlc3Npb24sIHtcbiAgICAgIGFzc3VtZVJvbGVBcm46IHRoaXMucHJvcHMuZGVwbG95Um9sZT8uX2FybkZvckNsb3VkQXNzZW1ibHkoKSxcbiAgICAgIGFkZGl0aW9uYWxEZXBlbmRlbmNpZXM6IFthc3NldE1hbmlmZXN0SWRdLFxuICAgICAgc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsOiB0ZW1wbGF0ZUFzc2V0LnMzT2JqZWN0VXJsV2l0aFBsYWNlaG9sZGVycyxcbiAgICAgIGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjogdGhpcy5wcm9wcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGU/Ll9hcm5Gb3JDbG91ZEFzc2VtYmx5KCksXG4gICAgICBsb29rdXBSb2xlOiBsb29rdXBSb2xlQXJuID8geyBhcm46IGxvb2t1cFJvbGVBcm4gfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmaWxlIGFzc2V0IHRvIHRoZSBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyBhZGRGaWxlQXNzZXQoYXNzZXQ6IEZpbGVBc3NldFNvdXJjZSk6IEZpbGVBc3NldExvY2F0aW9uIHtcbiAgICBjb25zdCB7IGJ1Y2tldE5hbWUsIGFzc3VtZVJvbGVBcm4sIHByZWZpeCwgZGVwZW5kZW5jeVN0YWNrIH0gPSB0aGlzLnN0YWdpbmdTdGFjay5hZGRGaWxlKGFzc2V0KTtcbiAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuYXNzZXRNYW5pZmVzdC5kZWZhdWx0QWRkRmlsZUFzc2V0KHRoaXMuYm91bmRTdGFjaywgYXNzZXQsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuKGJ1Y2tldE5hbWUpLFxuICAgICAgYnVja2V0UHJlZml4OiBwcmVmaXgsXG4gICAgICByb2xlOiBhc3N1bWVSb2xlQXJuID8geyBhc3N1bWVSb2xlQXJuOiB0cmFuc2xhdGVDZm5Ub2tlblRvQXNzZXRUb2tlbihhc3N1bWVSb2xlQXJuKSB9IDogdW5kZWZpbmVkLFxuICAgIH0sIHtcbiAgICAgIGRpc3BsYXlOYW1lOiBhc3NldC5kaXNwbGF5TmFtZSxcbiAgICB9KTtcblxuICAgIGlmIChkZXBlbmRlbmN5U3RhY2spIHtcbiAgICAgIHRoaXMuYm91bmRTdGFjay5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3lTdGFjaywgJ3N0YWNrIGRlcGVuZHMgb24gdGhlIHN0YWdpbmcgc3RhY2sgZm9yIHN0YWdpbmcgcmVzb3VyY2VzJyk7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lTdGFja3MuYWRkKGRlcGVuZGVuY3lTdGFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2xvdWRGb3JtYXRpb25Mb2NhdGlvbkZyb21GaWxlQXNzZXQobG9jYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGRvY2tlciBpbWFnZSBhc3NldCB0byB0aGUgbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2VBc3NldChhc3NldDogRG9ja2VySW1hZ2VBc3NldFNvdXJjZSk6IERvY2tlckltYWdlQXNzZXRMb2NhdGlvbiB7XG4gICAgY29uc3QgeyByZXBvTmFtZSwgYXNzdW1lUm9sZUFybiwgZGVwZW5kZW5jeVN0YWNrIH0gPSB0aGlzLnN0YWdpbmdTdGFjay5hZGREb2NrZXJJbWFnZShhc3NldCk7XG4gICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmFzc2V0TWFuaWZlc3QuZGVmYXVsdEFkZERvY2tlckltYWdlQXNzZXQodGhpcy5ib3VuZFN0YWNrLCBhc3NldCwge1xuICAgICAgcmVwb3NpdG9yeU5hbWU6IHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuKHJlcG9OYW1lKSxcbiAgICAgIHJvbGU6IGFzc3VtZVJvbGVBcm4gPyB7IGFzc3VtZVJvbGVBcm46IHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuKGFzc3VtZVJvbGVBcm4pIH0gOiB1bmRlZmluZWQsXG4gICAgfSwge1xuICAgICAgZGlzcGxheU5hbWU6IGFzc2V0LmRpc3BsYXlOYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKGRlcGVuZGVuY3lTdGFjaykge1xuICAgICAgdGhpcy5ib3VuZFN0YWNrLmFkZERlcGVuZGVuY3koZGVwZW5kZW5jeVN0YWNrLCAnc3RhY2sgZGVwZW5kcyBvbiB0aGUgc3RhZ2luZyBzdGFjayBmb3Igc3RhZ2luZyByZXNvdXJjZXMnKTtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVN0YWNrcy5hZGQoZGVwZW5kZW5jeVN0YWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jbG91ZEZvcm1hdGlvbkxvY2F0aW9uRnJvbURvY2tlckltYWdlQXNzZXQobG9jYXRpb24pO1xuICB9XG59XG4iXX0=
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YWdpbmctc3ludGhlc2l6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHAtc3RhZ2luZy1zeW50aGVzaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVVBLDJDQUswQjtBQUMxQiw0RUFBeUc7QUFFekcsdURBQXlEO0FBRXpELG1FQUE4RDtBQUM5RCx1RUFBeUc7QUFDekcscURBQXVEO0FBQ3ZELG1EQUF1RDtBQUd2RCxNQUFNLGVBQWUsR0FBRyxJQUFJLDRCQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQVMsQ0FBQyxDQUFDO0FBQ3BFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSw0QkFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFTLENBQUMsQ0FBQztBQXlFckU7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHVCQUFnQjtJQXVFcEI7O0lBdEVyQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxpQkFBaUIsR0FBRyxXQUFXLENBQUM7SUFFdkQ7O09BRUc7SUFDSSxNQUFNLENBQVUsK0JBQStCLEdBQUcsbUhBQW1ILENBQUM7SUFFN0s7O09BRUc7SUFDSSxNQUFNLENBQVUsdUJBQXVCLEdBQUcsaUhBQWlILENBQUM7SUFFbks7O09BRUc7SUFDSSxNQUFNLENBQVUsdUJBQXVCLEdBQUcsaUhBQWlILENBQUM7SUFFbks7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBZ0M7Ozs7Ozs7Ozs7UUFDN0QsSUFBQSw0QkFBZ0IsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUVuRCxPQUFPLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztZQUN6QyxPQUFPLEVBQUUsMkNBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUM3QyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CO1lBQ2xELGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7WUFDOUMsVUFBVSxF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QUFTO1NBQ2xHLEVBQUU7WUFDRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsMERBQTBELENBQUMsQ0FBQztZQUMzRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNsRTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEb2NrZXJJbWFnZUFzc2V0TG9jYXRpb24sXG4gIERvY2tlckltYWdlQXNzZXRTb3VyY2UsXG4gIEZpbGVBc3NldExvY2F0aW9uLFxuICBGaWxlQXNzZXRTb3VyY2UsXG4gIElCb3VuZFN0YWNrU3ludGhlc2l6ZXIgYXMgSUJvdW5kQXBwU3RhZ2luZ1N5bnRoZXNpemVyLFxuICBJUmV1c2FibGVTdGFja1N5bnRoZXNpemVyLFxuICBJU3ludGhlc2lzU2Vzc2lvbixcbiAgU3RhY2ssXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIEJPT1RTVFJBUF9RVUFMSUZJRVJfQ09OVEVYVCxcbiAgU3RhY2tTeW50aGVzaXplcixcbiAgVG9rZW4sXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nU3BlY2lhbGl6ZXIsIHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcFJvbGUsIEJvb3RzdHJhcFJvbGVzIH0gZnJvbSAnLi9ib290c3RyYXAtcm9sZXMnO1xuaW1wb3J0IHsgRGVwbG95bWVudElkZW50aXRpZXMgfSBmcm9tICcuL2Jvb3RzdHJhcC1yb2xlcyc7XG5pbXBvcnQgdHlwZSB7IERlZmF1bHRTdGFnaW5nU3RhY2tPcHRpb25zIH0gZnJvbSAnLi9kZWZhdWx0LXN0YWdpbmctc3RhY2snO1xuaW1wb3J0IHsgRGVmYXVsdFN0YWdpbmdTdGFjayB9IGZyb20gJy4vZGVmYXVsdC1zdGFnaW5nLXN0YWNrJztcbmltcG9ydCB7IFBlckVudmlyb25tZW50U3RhZ2luZ0ZhY3RvcnkgYXMgUGVyRW52aXJvbm1lbnRTdGFnaW5nRmFjdG9yeSB9IGZyb20gJy4vcGVyLWVudi1zdGFnaW5nLWZhY3RvcnknO1xuaW1wb3J0IHsgQXBwU2NvcGVkR2xvYmFsIH0gZnJvbSAnLi9wcml2YXRlL2FwcC1nbG9iYWwnO1xuaW1wb3J0IHsgdmFsaWRhdGVOb1Rva2VucyB9IGZyb20gJy4vcHJpdmF0ZS9uby10b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBJU3RhZ2luZ1Jlc291cmNlcywgSVN0YWdpbmdSZXNvdXJjZXNGYWN0b3J5LCBPYnRhaW5TdGFnaW5nUmVzb3VyY2VzQ29udGV4dCB9IGZyb20gJy4vc3RhZ2luZy1zdGFjayc7XG5cbmNvbnN0IEFHTk9TVElDX1NUQUNLUyA9IG5ldyBBcHBTY29wZWRHbG9iYWwoKCkgPT4gbmV3IFNldDxTdGFjaz4oKSk7XG5jb25zdCBFTlZfQVdBUkVfU1RBQ0tTID0gbmV3IEFwcFNjb3BlZEdsb2JhbCgoKSA9PiBuZXcgU2V0PFN0YWNrPigpKTtcblxuLyoqXG4gKiBPcHRpb25zIHRoYXQgYXBwbHkgdG8gYWxsIEFwcFN0YWdpbmdTeW50aGVzaXplciB2YXJpYW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogV2hhdCByb2xlcyB0byB1c2UgdG8gZGVwbG95IGFwcGxpY2F0aW9uc1xuICAgKlxuICAgKiBUaGVzZSBhcmUgdGhlIHJvbGVzIHRoYXQgaGF2ZSBwZXJtaXNzaW9ucyB0byBpbnRlcmFjdCB3aXRoIENsb3VkRm9ybWF0aW9uXG4gICAqIG9uIHlvdXIgYmVoYWxmLiBCeSBkZWZhdWx0IHRoZXNlIGFyZSB0aGUgc3RhbmRhcmQgYm9vdHN0cmFwcGVkIENESyByb2xlcyxcbiAgICogYnV0IHlvdSBjYW4gY3VzdG9taXplIHRoZW0gb3IgdHVybiB0aGVtIG9mZiBhbmQgdXNlIHRoZSBDTEkgY3JlZGVudGlhbHNcbiAgICogdG8gZGVwbG95LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzdGFuZGFyZCBib290c3RyYXBwZWQgQ0RLIHJvbGVzXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50SWRlbnRpdGllcz86IERlcGxveW1lbnRJZGVudGl0aWVzO1xuXG4gIC8qKlxuICAgKiBRdWFsaWZpZXIgdG8gZGlzYW1iaWd1YXRlIG11bHRpcGxlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudHMgaW4gdGhlIHNhbWUgYWNjb3VudFxuICAgKlxuICAgKiBUaGlzIHF1YWxpZmllciBpcyBvbmx5IHVzZWQgdG8gcmVmZXJlbmNlIGJvb3RzdHJhcHBlZCByZXNvdXJjZXMuIEl0IHdpbGwgbm90XG4gICAqIGJlIHVzZWQgaW4gdGhlIGNyZWF0aW9uIG9mIGFwcC1zcGVjaWZpYyBzdGFnaW5nIHJlc291cmNlczogYGFwcElkYCBpcyB1c2VkIGZvciB0aGF0XG4gICAqIGluc3RlYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVmFsdWUgb2YgY29udGV4dCBrZXkgJ0Bhd3MtY2RrL2NvcmU6Ym9vdHN0cmFwUXVhbGlmaWVyJyBpZiBzZXQsIG90aGVyd2lzZSBgREVGQVVMVF9RVUFMSUZJRVJgXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBRdWFsaWZpZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3Igc3RhY2tQZXJFbnYgc3RhdGljIG1ldGhvZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRSZXNvdXJjZXNPcHRpb25zIGV4dGVuZHMgQXBwU3RhZ2luZ1N5bnRoZXNpemVyT3B0aW9ucywgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMge31cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjdXN0b21GYWN0b3J5IHN0YXRpYyBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GYWN0b3J5T3B0aW9ucyBleHRlbmRzIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGZhY3RvcnkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmV0dXJuIHN0YWdpbmcgcmVzb3VyY2VzIGZvciBlYWNoIHN0YWNrXG4gICAqL1xuICByZWFkb25seSBmYWN0b3J5OiBJU3RhZ2luZ1Jlc291cmNlc0ZhY3Rvcnk7XG5cbiAgLyoqXG4gICAqIFJldXNlIHRoZSBhbnN3ZXIgZnJvbSB0aGUgZmFjdG9yeSBmb3Igc3RhY2tzIGluIHRoZSBzYW1lIGVudmlyb25tZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG9uY2VQZXJFbnY/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGN1c3RvbVJlc291cmNlcyBzdGF0aWMgbWV0aG9kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VzT3B0aW9ucyBleHRlbmRzIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogVXNlIHRoZXNlIGV4YWN0IHN0YWdpbmcgcmVzb3VyY2VzIGZvciBldmVyeSBzdGFjayB0aGF0IHRoaXMgc3ludGhlc2l6ZXIgaXMgdXNlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlczogSVN0YWdpbmdSZXNvdXJjZXM7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgcHJvcGVydGllcyBmb3IgQXBwU3RhZ2luZ1N5bnRoZXNpemVyXG4gKi9cbmludGVyZmFjZSBBcHBTdGFnaW5nU3ludGhlc2l6ZXJQcm9wcyBleHRlbmRzIEFwcFN0YWdpbmdTeW50aGVzaXplck9wdGlvbnMge1xuICAvKipcbiAgICogQSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gSVN0YWdpbmdTdGFjayB3aGVuIGdpdmVuIHRoZSBzdGFjayB0aGVcbiAgICogc3ludGhlc2l6ZXIgaXMgYmluZGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGZhY3Rvcnk6IElTdGFnaW5nUmVzb3VyY2VzRmFjdG9yeTtcbn1cblxuLyoqXG4gKiBBcHAgU3RhZ2luZyBTeW50aGVzaXplclxuICovXG5leHBvcnQgY2xhc3MgQXBwU3RhZ2luZ1N5bnRoZXNpemVyIGV4dGVuZHMgU3RhY2tTeW50aGVzaXplciBpbXBsZW1lbnRzIElSZXVzYWJsZVN0YWNrU3ludGhlc2l6ZXIge1xuICAvKipcbiAgICogRGVmYXVsdCBBUk4gcXVhbGlmaWVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUVVBTElGSUVSID0gJ2huYjY1OWZkcyc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgQ2xvdWRGb3JtYXRpb24gcm9sZSBBUk4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQ0xPVURGT1JNQVRJT05fUk9MRV9BUk4gPSAnYXJuOiR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHtBV1M6OkFjY291bnRJZH06cm9sZS9jZGstJHtRdWFsaWZpZXJ9LWNmbi1leGVjLXJvbGUtJHtBV1M6OkFjY291bnRJZH0tJHtBV1M6OlJlZ2lvbn0nO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGRlcGxveSByb2xlIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9ERVBMT1lfUk9MRV9BUk4gPSAnYXJuOiR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHtBV1M6OkFjY291bnRJZH06cm9sZS9jZGstJHtRdWFsaWZpZXJ9LWRlcGxveS1yb2xlLSR7QVdTOjpBY2NvdW50SWR9LSR7QVdTOjpSZWdpb259JztcblxuICAvKipcbiAgICogRGVmYXVsdCBsb29rdXAgcm9sZSBBUk4gZm9yIG1pc3NpbmcgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0xPT0tVUF9ST0xFX0FSTiA9ICdhcm46JHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke0FXUzo6QWNjb3VudElkfTpyb2xlL2Nkay0ke1F1YWxpZmllcn0tbG9va3VwLXJvbGUtJHtBV1M6OkFjY291bnRJZH0tJHtBV1M6OlJlZ2lvbn0nO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhlIERlZmF1bHQgU3RhZ2luZyBSZXNvdXJjZXMsIGNyZWF0aW5nIGEgc2luZ2xlIHN0YWNrIHBlciBlbnZpcm9ubWVudCB0aGlzIGFwcCBpcyBkZXBsb3llZCBpblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0UmVzb3VyY2VzKG9wdGlvbnM6IERlZmF1bHRSZXNvdXJjZXNPcHRpb25zKSB7XG4gICAgdmFsaWRhdGVOb1Rva2VucyhvcHRpb25zLCAnQXBwU3RhZ2luZ1N5bnRoZXNpemVyJyk7XG5cbiAgICByZXR1cm4gQXBwU3RhZ2luZ1N5bnRoZXNpemVyLmN1c3RvbUZhY3Rvcnkoe1xuICAgICAgZmFjdG9yeTogRGVmYXVsdFN0YWdpbmdTdGFjay5mYWN0b3J5KG9wdGlvbnMpLFxuICAgICAgZGVwbG95bWVudElkZW50aXRpZXM6IG9wdGlvbnMuZGVwbG95bWVudElkZW50aXRpZXMsXG4gICAgICBib290c3RyYXBRdWFsaWZpZXI6IG9wdGlvbnMuYm9vdHN0cmFwUXVhbGlmaWVyLFxuICAgICAgb25jZVBlckVudjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlc2UgZXhhY3Qgc3RhZ2luZyByZXNvdXJjZXMgZm9yIGV2ZXJ5IHN0YWNrIHRoYXQgdGhpcyBzeW50aGVzaXplciBpcyB1c2VkIGZvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b21SZXNvdXJjZXMob3B0aW9uczogQ3VzdG9tUmVzb3VyY2VzT3B0aW9ucykge1xuICAgIHJldHVybiBBcHBTdGFnaW5nU3ludGhlc2l6ZXIuY3VzdG9tRmFjdG9yeSh7XG4gICAgICBkZXBsb3ltZW50SWRlbnRpdGllczogb3B0aW9ucy5kZXBsb3ltZW50SWRlbnRpdGllcyxcbiAgICAgIGJvb3RzdHJhcFF1YWxpZmllcjogb3B0aW9ucy5ib290c3RyYXBRdWFsaWZpZXIsXG4gICAgICBvbmNlUGVyRW52OiBmYWxzZSxcbiAgICAgIGZhY3Rvcnk6IHtcbiAgICAgICAgb2J0YWluU3RhZ2luZ1Jlc291cmNlcygpIHtcbiAgICAgICAgICByZXR1cm4gb3B0aW9ucy5yZXNvdXJjZXM7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1cHBseSB5b3VyIG93biBzdGFnaW5nU3RhY2tGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYW4gSVN0YWdpbmdTdGFjayB3aGVuXG4gICAqIGEgc3RhY2sgaXMgYm91bmQgdG8gdGhlIHN5bnRoZXNpemVyLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBgb25jZVBlckVudiA9IHRydWVgLCB3aGljaCBtZWFucyB0aGF0IGEgbmV3IGluc3RhbmNlIG9mIHRoZSBJU3RhZ2luZ1N0YWNrXG4gICAqIHdpbGwgYmUgY3JlYXRlZCBpbiBuZXcgZW52aXJvbm1lbnRzLiBTZXQgYG9uY2VQZXJFbnYgPSBmYWxzZWAgdG8gdHVybiBvZmYgdGhhdCBiZWhhdmlvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3VzdG9tRmFjdG9yeShvcHRpb25zOiBDdXN0b21GYWN0b3J5T3B0aW9ucykge1xuICAgIGNvbnN0IG9uY2VQZXJFbnYgPSBvcHRpb25zLm9uY2VQZXJFbnYgPz8gdHJ1ZTtcbiAgICBjb25zdCBmYWN0b3J5ID0gb25jZVBlckVudiA/IG5ldyBQZXJFbnZpcm9ubWVudFN0YWdpbmdGYWN0b3J5KG9wdGlvbnMuZmFjdG9yeSkgOiBvcHRpb25zLmZhY3Rvcnk7XG5cbiAgICByZXR1cm4gbmV3IEFwcFN0YWdpbmdTeW50aGVzaXplcih7XG4gICAgICBmYWN0b3J5LFxuICAgICAgYm9vdHN0cmFwUXVhbGlmaWVyOiBvcHRpb25zLmJvb3RzdHJhcFF1YWxpZmllcixcbiAgICAgIGRlcGxveW1lbnRJZGVudGl0aWVzOiBvcHRpb25zLmRlcGxveW1lbnRJZGVudGl0aWVzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb2xlczogUmVxdWlyZWQ8Qm9vdHN0cmFwUm9sZXM+O1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogQXBwU3RhZ2luZ1N5bnRoZXNpemVyUHJvcHMpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgZGVmYXVsdElkZW50aXRpZXMgPSBEZXBsb3ltZW50SWRlbnRpdGllcy5kZWZhdWx0Qm9vdHN0cmFwUm9sZXMoKTtcbiAgICBjb25zdCBpZGVudGl0aWVzID0gcHJvcHMuZGVwbG95bWVudElkZW50aXRpZXMgPz8gRGVwbG95bWVudElkZW50aXRpZXMuZGVmYXVsdEJvb3RzdHJhcFJvbGVzKCk7XG5cbiAgICB0aGlzLnJvbGVzID0ge1xuICAgICAgZGVwbG95bWVudFJvbGU6IGlkZW50aXRpZXMuZGVwbG95bWVudFJvbGUgPz8gZGVmYXVsdElkZW50aXRpZXMuZGVwbG95bWVudFJvbGUhLFxuICAgICAgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlOiBpZGVudGl0aWVzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZSA/PyBkZWZhdWx0SWRlbnRpdGllcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGUhLFxuICAgICAgbG9va3VwUm9sZTogaWRlbnRpdGllcy5sb29rdXBSb2xlID8/IGlkZW50aXRpZXMubG9va3VwUm9sZSEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdmVyc2lvbiBvZiB0aGUgc3ludGhlc2l6ZXIgYm91bmQgdG8gYSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyByZXVzYWJsZUJpbmQoc3RhY2s6IFN0YWNrKTogSUJvdW5kQXBwU3RhZ2luZ1N5bnRoZXNpemVyIHtcbiAgICB0aGlzLmNoZWNrRW52aXJvbm1lbnRHbm9zdGljaXNtKHN0YWNrKTtcbiAgICBjb25zdCBxdWFsaWZpZXIgPSB0aGlzLnByb3BzLmJvb3RzdHJhcFF1YWxpZmllciA/P1xuICAgICAgc3RhY2subm9kZS50cnlHZXRDb250ZXh0KEJPT1RTVFJBUF9RVUFMSUZJRVJfQ09OVEVYVCkgPz9cbiAgICAgIEFwcFN0YWdpbmdTeW50aGVzaXplci5ERUZBVUxUX1FVQUxJRklFUjtcbiAgICBjb25zdCBzcGVjID0gbmV3IFN0cmluZ1NwZWNpYWxpemVyKHN0YWNrLCBxdWFsaWZpZXIpO1xuXG4gICAgY29uc3QgZGVwbG95Um9sZSA9IHRoaXMucm9sZXMuZGVwbG95bWVudFJvbGUuX3NwZWNpYWxpemUoc3BlYyk7XG5cbiAgICBjb25zdCBjb250ZXh0OiBPYnRhaW5TdGFnaW5nUmVzb3VyY2VzQ29udGV4dCA9IHtcbiAgICAgIGVudmlyb25tZW50U3RyaW5nOiBbXG4gICAgICAgIFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5hY2NvdW50KSA/ICdBQ0NPVU5UJyA6IHN0YWNrLmFjY291bnQsXG4gICAgICAgIFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5yZWdpb24pID8gJ1JFR0lPTicgOiBzdGFjay5yZWdpb24sXG4gICAgICBdLmpvaW4oJy0nKSxcbiAgICAgIGRlcGxveVJvbGVBcm46IGRlcGxveVJvbGUuX2FybkZvckNsb3VkRm9ybWF0aW9uKCksXG4gICAgICBxdWFsaWZpZXIsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXIoc3RhY2ssIHtcbiAgICAgIHN0YWdpbmdSZXNvdXJjZXM6IHRoaXMucHJvcHMuZmFjdG9yeS5vYnRhaW5TdGFnaW5nUmVzb3VyY2VzKHN0YWNrLCBjb250ZXh0KSxcbiAgICAgIGRlcGxveVJvbGUsXG4gICAgICBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGU6IHRoaXMucm9sZXMuY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlLl9zcGVjaWFsaXplKHNwZWMpLFxuICAgICAgbG9va3VwUm9sZTogdGhpcy5yb2xlcy5sb29rdXBSb2xlLl9zcGVjaWFsaXplKHNwZWMpLFxuICAgICAgcXVhbGlmaWVyLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGZvciBsZWdhY3kgcHVycG9zZXM7IHRoaXMgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgYmluZChfc3RhY2s6IFN0YWNrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIGlzIGEgbGVnYWN5IEFQSSwgY2FsbCByZXVzYWJsZUJpbmQgaW5zdGVhZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGZvciBsZWdhY3kgcHVycG9zZXM7IHRoaXMgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgc3ludGhlc2l6ZShfc2Vzc2lvbjogSVN5bnRoZXNpc1Nlc3Npb24pOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgaXMgYSBsZWdhY3kgQVBJLCBjYWxsIHJldXNhYmxlQmluZCBpbnN0ZWFkJyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgZm9yIGxlZ2FjeSBwdXJwb3NlczsgdGhpcyB3aWxsIG5ldmVyIGJlIGNhbGxlZC5cbiAgICovXG4gIHB1YmxpYyBhZGRGaWxlQXNzZXQoX2Fzc2V0OiBGaWxlQXNzZXRTb3VyY2UpOiBGaWxlQXNzZXRMb2NhdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIGlzIGEgbGVnYWN5IEFQSSwgY2FsbCByZXVzYWJsZUJpbmQgaW5zdGVhZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGZvciBsZWdhY3kgcHVycG9zZXM7IHRoaXMgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2VBc3NldChfYXNzZXQ6IERvY2tlckltYWdlQXNzZXRTb3VyY2UpOiBEb2NrZXJJbWFnZUFzc2V0TG9jYXRpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBpcyBhIGxlZ2FjeSBBUEksIGNhbGwgcmV1c2FibGVCaW5kIGluc3RlYWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGF0IHdlJ3JlIG9ubHkgYmVpbmcgdXNlZCBmb3IgZXhjbHVzaXZlbHkgZ25vc3RpYyBvciBhZ25vc3RpYyBzdGFja3MuXG4gICAqXG4gICAqIFdlIGNhbiB0aGluayBhYm91dCB3aGV0aGVyIHRvIGxvb3NlbiB0aGlzIHJlcXVpcmVtZW50IGxhdGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0Vudmlyb25tZW50R25vc3RpY2lzbShzdGFjazogU3RhY2spIHtcbiAgICBjb25zdCBpc0Fnbm9zdGljID0gVG9rZW4uaXNVbnJlc29sdmVkKHN0YWNrLmFjY291bnQpIHx8IFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5yZWdpb24pO1xuICAgIGNvbnN0IGFnbm9zdGljU3RhY2tzID0gQUdOT1NUSUNfU1RBQ0tTLmZvcihzdGFjayk7XG4gICAgY29uc3QgZW52QXdhcmVTdGFja3MgPSBFTlZfQVdBUkVfU1RBQ0tTLmZvcihzdGFjayk7XG5cbiAgICAoaXNBZ25vc3RpYyA/IGFnbm9zdGljU3RhY2tzIDogZW52QXdhcmVTdGFja3MpLmFkZChzdGFjayk7XG4gICAgaWYgKGFnbm9zdGljU3RhY2tzLnNpemUgPiAwICYmIGVudkF3YXJlU3RhY2tzLnNpemUgPiAwKSB7XG4gICAgICBjb25zdCBkZXNjcmliZVN0YWNrcyA9ICh4czogU2V0PFN0YWNrPikgPT4gQXJyYXkuZnJvbSh4cykubWFwKHMgPT4gcy5ub2RlLnBhdGgpLmpvaW4oJywgJyk7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihbXG4gICAgICAgICdJdCBpcyBub3Qgc2FmZSB0byB1c2UgQXBwU3RhZ2luZ1N5bnRoZXNpemVyIGZvciBib3RoIGVudmlyb25tZW50LWFnbm9zdGljIGFuZCBlbnZpcm9ubWVudC1hd2FyZSBzdGFja3MgYXQgdGhlIHNhbWUgdGltZS4nLFxuICAgICAgICAnUGxlYXNlIGVpdGhlciBzcGVjaWZ5IGVudmlyb25tZW50cyBmb3IgYWxsIHN0YWNrcyBvciBubyBzdGFja3MgaW4gdGhlIENESyBBcHAuJyxcbiAgICAgICAgYEF0IGxlYXN0IHRoZXNlIHN0YWNrcyB3aXRoIGVudmlyb25tZW50OiAke2Rlc2NyaWJlU3RhY2tzKGVudkF3YXJlU3RhY2tzKX0uYCxcbiAgICAgICAgYEF0IGxlYXN0IHRoZXNlIHN0YWNrcyB3aXRob3V0IGVudmlyb25tZW50OiAke2Rlc2NyaWJlU3RhY2tzKGFnbm9zdGljU3RhY2tzKX0uYCxcbiAgICAgIF0uam9pbignICcpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBwcm9wZXJ0aWVzIGZvciBCb3VuZEFwcFN0YWdpbmdTeW50aGVzaXplclxuICovXG5pbnRlcmZhY2UgQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgYm9vdHN0cmFwIHF1YWxpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbGlmaWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgd2UgZW5kIHVwIHVzaW5nIGZvciB0aGlzIHN5bnRoZXNpemVyXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nUmVzb3VyY2VzOiBJU3RhZ2luZ1Jlc291cmNlcztcblxuICAvKipcbiAgICogVGhlIGRlcGxveSByb2xlXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lSb2xlOiBCb290c3RyYXBSb2xlO1xuXG4gIC8qKlxuICAgKiBDbG91ZEZvcm1hdGlvbiBFeGVjdXRpb24gUm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Sb2xlOiBCb290c3RyYXBSb2xlO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgUm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUm9sZTogQm9vdHN0cmFwUm9sZTtcbn1cblxuY2xhc3MgQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXIgZXh0ZW5kcyBTdGFja1N5bnRoZXNpemVyIGltcGxlbWVudHMgSUJvdW5kQXBwU3RhZ2luZ1N5bnRoZXNpemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFnaW5nU3RhY2s6IElTdGFnaW5nUmVzb3VyY2VzO1xuICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0TWFuaWZlc3QgPSBuZXcgQXNzZXRNYW5pZmVzdEJ1aWxkZXIoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWFsaWZpZXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRlbmN5U3RhY2tzOiBTZXQ8U3RhY2s+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0cnVjdG9yKHN0YWNrOiBTdGFjaywgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQm91bmRBcHBTdGFnaW5nU3ludGhlc2l6ZXJQcm9wcykge1xuICAgIHN1cGVyKCk7XG4gICAgc3VwZXIuYmluZChzdGFjayk7XG5cbiAgICB0aGlzLnF1YWxpZmllciA9IHByb3BzLnF1YWxpZmllcjtcbiAgICB0aGlzLnN0YWdpbmdTdGFjayA9IHByb3BzLnN0YWdpbmdSZXNvdXJjZXM7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgdXNlZCB0byBib290c3RyYXAgdGhpcyBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldCBib290c3RyYXBRdWFsaWZpZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBOb3Qgc3VyZSB3aHkgd2UgbmVlZCB0aGlzLlxuICAgIHJldHVybiB0aGlzLnF1YWxpZmllcjtcbiAgfVxuXG4gIHB1YmxpYyBzeW50aGVzaXplKHNlc3Npb246IElTeW50aGVzaXNTZXNzaW9uKTogdm9pZCB7XG4gICAgY29uc3QgdGVtcGxhdGVBc3NldFNvdXJjZSA9IHRoaXMuc3ludGhlc2l6ZVRlbXBsYXRlKHNlc3Npb24sIHRoaXMucHJvcHMubG9va3VwUm9sZT8uX2FybkZvckNsb3VkQXNzZW1ibHkoKSk7XG4gICAgY29uc3QgdGVtcGxhdGVBc3NldCA9IHRoaXMuYWRkRmlsZUFzc2V0KHRlbXBsYXRlQXNzZXRTb3VyY2UpO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gQXJyYXkuZnJvbSh0aGlzLmRlcGVuZGVuY3lTdGFja3MpLmZsYXRNYXAoKGQpID0+IGQuYXJ0aWZhY3RJZCk7XG4gICAgY29uc3QgYXNzZXRNYW5pZmVzdElkID0gdGhpcy5hc3NldE1hbmlmZXN0LmVtaXRNYW5pZmVzdCh0aGlzLmJvdW5kU3RhY2ssIHNlc3Npb24sIHt9LCBkZXBlbmRlbmNpZXMpO1xuXG4gICAgY29uc3QgbG9va3VwUm9sZUFybiA9IHRoaXMucHJvcHMubG9va3VwUm9sZT8uX2FybkZvckNsb3VkQXNzZW1ibHkoKTtcblxuICAgIHRoaXMuZW1pdEFydGlmYWN0KHNlc3Npb24sIHtcbiAgICAgIGFzc3VtZVJvbGVBcm46IHRoaXMucHJvcHMuZGVwbG95Um9sZT8uX2FybkZvckNsb3VkQXNzZW1ibHkoKSxcbiAgICAgIGFkZGl0aW9uYWxEZXBlbmRlbmNpZXM6IFthc3NldE1hbmlmZXN0SWRdLFxuICAgICAgc3RhY2tUZW1wbGF0ZUFzc2V0T2JqZWN0VXJsOiB0ZW1wbGF0ZUFzc2V0LnMzT2JqZWN0VXJsV2l0aFBsYWNlaG9sZGVycyxcbiAgICAgIGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjogdGhpcy5wcm9wcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGU/Ll9hcm5Gb3JDbG91ZEFzc2VtYmx5KCksXG4gICAgICBsb29rdXBSb2xlOiBsb29rdXBSb2xlQXJuID8geyBhcm46IGxvb2t1cFJvbGVBcm4gfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmaWxlIGFzc2V0IHRvIHRoZSBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyBhZGRGaWxlQXNzZXQoYXNzZXQ6IEZpbGVBc3NldFNvdXJjZSk6IEZpbGVBc3NldExvY2F0aW9uIHtcbiAgICBjb25zdCB7IGJ1Y2tldE5hbWUsIGFzc3VtZVJvbGVBcm4sIHByZWZpeCwgZGVwZW5kZW5jeVN0YWNrIH0gPSB0aGlzLnN0YWdpbmdTdGFjay5hZGRGaWxlKGFzc2V0KTtcbiAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuYXNzZXRNYW5pZmVzdC5kZWZhdWx0QWRkRmlsZUFzc2V0KHRoaXMuYm91bmRTdGFjaywgYXNzZXQsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuKGJ1Y2tldE5hbWUpLFxuICAgICAgYnVja2V0UHJlZml4OiBwcmVmaXgsXG4gICAgICByb2xlOiBhc3N1bWVSb2xlQXJuID8geyBhc3N1bWVSb2xlQXJuOiB0cmFuc2xhdGVDZm5Ub2tlblRvQXNzZXRUb2tlbihhc3N1bWVSb2xlQXJuKSB9IDogdW5kZWZpbmVkLFxuICAgIH0sIHtcbiAgICAgIGRpc3BsYXlOYW1lOiBhc3NldC5kaXNwbGF5TmFtZSxcbiAgICB9KTtcblxuICAgIGlmIChkZXBlbmRlbmN5U3RhY2spIHtcbiAgICAgIHRoaXMuYm91bmRTdGFjay5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3lTdGFjaywgJ3N0YWNrIGRlcGVuZHMgb24gdGhlIHN0YWdpbmcgc3RhY2sgZm9yIHN0YWdpbmcgcmVzb3VyY2VzJyk7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lTdGFja3MuYWRkKGRlcGVuZGVuY3lTdGFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2xvdWRGb3JtYXRpb25Mb2NhdGlvbkZyb21GaWxlQXNzZXQobG9jYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGRvY2tlciBpbWFnZSBhc3NldCB0byB0aGUgbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2VBc3NldChhc3NldDogRG9ja2VySW1hZ2VBc3NldFNvdXJjZSk6IERvY2tlckltYWdlQXNzZXRMb2NhdGlvbiB7XG4gICAgY29uc3QgeyByZXBvTmFtZSwgYXNzdW1lUm9sZUFybiwgZGVwZW5kZW5jeVN0YWNrIH0gPSB0aGlzLnN0YWdpbmdTdGFjay5hZGREb2NrZXJJbWFnZShhc3NldCk7XG4gICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmFzc2V0TWFuaWZlc3QuZGVmYXVsdEFkZERvY2tlckltYWdlQXNzZXQodGhpcy5ib3VuZFN0YWNrLCBhc3NldCwge1xuICAgICAgcmVwb3NpdG9yeU5hbWU6IHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuKHJlcG9OYW1lKSxcbiAgICAgIHJvbGU6IGFzc3VtZVJvbGVBcm4gPyB7IGFzc3VtZVJvbGVBcm46IHRyYW5zbGF0ZUNmblRva2VuVG9Bc3NldFRva2VuKGFzc3VtZVJvbGVBcm4pIH0gOiB1bmRlZmluZWQsXG4gICAgfSwge1xuICAgICAgZGlzcGxheU5hbWU6IGFzc2V0LmRpc3BsYXlOYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKGRlcGVuZGVuY3lTdGFjaykge1xuICAgICAgdGhpcy5ib3VuZFN0YWNrLmFkZERlcGVuZGVuY3koZGVwZW5kZW5jeVN0YWNrLCAnc3RhY2sgZGVwZW5kcyBvbiB0aGUgc3RhZ2luZyBzdGFjayBmb3Igc3RhZ2luZyByZXNvdXJjZXMnKTtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVN0YWNrcy5hZGQoZGVwZW5kZW5jeVN0YWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jbG91ZEZvcm1hdGlvbkxvY2F0aW9uRnJvbURvY2tlckltYWdlQXNzZXQobG9jYXRpb24pO1xuICB9XG59XG4iXX0=
|
package/lib/bootstrap-roles.js
CHANGED
|
@@ -11,7 +11,7 @@ const app_staging_synthesizer_1 = require("./app-staging-synthesizer");
|
|
|
11
11
|
*/
|
|
12
12
|
class BootstrapRole {
|
|
13
13
|
roleArn;
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.BootstrapRole", version: "2.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.BootstrapRole", version: "2.239.0-alpha.0" };
|
|
15
15
|
/**
|
|
16
16
|
* Use the currently assumed role/credentials
|
|
17
17
|
*/
|
|
@@ -60,7 +60,7 @@ exports.BootstrapRole = BootstrapRole;
|
|
|
60
60
|
* when deploying the App.
|
|
61
61
|
*/
|
|
62
62
|
class DeploymentIdentities {
|
|
63
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DeploymentIdentities", version: "2.
|
|
63
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DeploymentIdentities", version: "2.239.0-alpha.0" };
|
|
64
64
|
/**
|
|
65
65
|
* Use CLI credentials for all deployment identities.
|
|
66
66
|
*/
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as ecr from 'aws-cdk-lib/aws-ecr';
|
|
2
2
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
3
|
-
import {
|
|
3
|
+
import type { DockerImageAssetSource, FileAssetSource, ISynthesisSession, StackProps } from 'aws-cdk-lib/core';
|
|
4
|
+
import { App, Duration, Stack } from 'aws-cdk-lib/core';
|
|
4
5
|
import { Construct } from 'constructs';
|
|
5
|
-
import { BootstrapRole } from './bootstrap-roles';
|
|
6
|
-
import { FileStagingLocation, IStagingResources, IStagingResourcesFactory, ImageStagingLocation } from './staging-stack';
|
|
6
|
+
import type { BootstrapRole } from './bootstrap-roles';
|
|
7
|
+
import type { FileStagingLocation, IStagingResources, IStagingResourcesFactory, ImageStagingLocation } from './staging-stack';
|
|
7
8
|
export declare const DEPLOY_TIME_PREFIX = "deploy-time/";
|
|
8
9
|
/**
|
|
9
10
|
* This is a dummy construct meant to signify that a stack is utilizing
|
|
@@ -23,7 +23,7 @@ exports.DEPLOY_TIME_PREFIX = 'deploy-time/';
|
|
|
23
23
|
* injested in our metrics like every other construct.
|
|
24
24
|
*/
|
|
25
25
|
class UsingAppStagingSynthesizer extends constructs_1.Construct {
|
|
26
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.UsingAppStagingSynthesizer", version: "2.
|
|
26
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.UsingAppStagingSynthesizer", version: "2.239.0-alpha.0" };
|
|
27
27
|
constructor(scope, id) {
|
|
28
28
|
super(scope, id);
|
|
29
29
|
}
|
|
@@ -38,7 +38,7 @@ exports.UsingAppStagingSynthesizer = UsingAppStagingSynthesizer;
|
|
|
38
38
|
*/
|
|
39
39
|
class DefaultStagingStack extends core_1.Stack {
|
|
40
40
|
props;
|
|
41
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DefaultStagingStack", version: "2.
|
|
41
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/app-staging-synthesizer-alpha.DefaultStagingStack", version: "2.239.0-alpha.0" };
|
|
42
42
|
/**
|
|
43
43
|
* Return a factory that will create DefaultStagingStacks
|
|
44
44
|
*/
|
|
@@ -358,4 +358,4 @@ class DefaultStagingStack extends core_1.Stack {
|
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
exports.DefaultStagingStack = DefaultStagingStack;
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsMkNBWTBCO0FBQzFCLDRFQUEwRTtBQUMxRSw0Q0FBNEM7QUFDNUMsMkNBQXVDO0FBSTFCLFFBQUEsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRWpEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLDBCQUEyQixTQUFRLHNCQUFTOztJQUN2RCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2xCOztBQUhILGdFQUlDO0FBMkhEOzs7Ozs7R0FNRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsWUFBSztJQXlGUzs7SUF4RnJEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFtQzs7Ozs7Ozs7OztRQUN2RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU87WUFDTCxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsT0FBTztnQkFDbkMsTUFBTSxHQUFHLEdBQUcsVUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFVBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssQ0FBQyxTQUFTLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3JFLENBQUM7Z0JBRUQsNEVBQTRF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QUN2QyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7S0FDRjs7QUExVkgsa0RBMlZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjciBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQge1xuICBBcHAsXG4gIEFybkZvcm1hdCxcbiAgQm9vdHN0cmFwbGVzc1N5bnRoZXNpemVyLFxuICBEb2NrZXJJbWFnZUFzc2V0U291cmNlLFxuICBEdXJhdGlvbixcbiAgRmlsZUFzc2V0U291cmNlLFxuICBJU3ludGhlc2lzU2Vzc2lvbixcbiAgUmVtb3ZhbFBvbGljeSxcbiAgU3RhY2ssXG4gIFN0YWNrUHJvcHMsXG4gIElOTElORV9DVVNUT01fUkVTT1VSQ0VfQ09OVEVYVCxcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBTdHJpbmdTcGVjaWFsaXplciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnYXdzLWNkay1saWIvY3gtYXBpJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQm9vdHN0cmFwUm9sZSB9IGZyb20gJy4vYm9vdHN0cmFwLXJvbGVzJztcbmltcG9ydCB7IEZpbGVTdGFnaW5nTG9jYXRpb24sIElTdGFnaW5nUmVzb3VyY2VzLCBJU3RhZ2luZ1Jlc291cmNlc0ZhY3RvcnksIEltYWdlU3RhZ2luZ0xvY2F0aW9uIH0gZnJvbSAnLi9zdGFnaW5nLXN0YWNrJztcblxuZXhwb3J0IGNvbnN0IERFUExPWV9USU1FX1BSRUZJWCA9ICdkZXBsb3ktdGltZS8nO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBkdW1teSBjb25zdHJ1Y3QgbWVhbnQgdG8gc2lnbmlmeSB0aGF0IGEgc3RhY2sgaXMgdXRpbGl6aW5nXG4gKiB0aGUgQXBwU3RhZ2luZ1N5bnRoZXNpemVyLiBJdCBkb2VzIG5vdCBkbyBhbnl0aGluZywgYW5kIGlzIG5vdCBtZWFudFxuICogdG8gYmUgY3JlYXRlZCBvbiBpdHMgb3duLiBUaGlzIGNvbnN0cnVjdCB3aWxsIGJlIGEgcGFydCBvZiB0aGVcbiAqIGNvbnN0cnVjdCB0cmVlIG9ubHkgYW5kIG5vdCB0aGUgQ2ZuIHRlbXBsYXRlLiBUaGUgY29uc3RydWN0IHRyZWUgaXNcbiAqIHRoZW4gZW5jb2RlZCBpbiB0aGUgQVdTOjpDREs6Ok1ldGFkYXRhIHJlc291cmNlIG9mIHRoZSBzdGFjayBhbmRcbiAqIGluamVzdGVkIGluIG91ciBtZXRyaWNzIGxpa2UgZXZlcnkgb3RoZXIgY29uc3RydWN0LlxuICovXG5leHBvcnQgY2xhc3MgVXNpbmdBcHBTdGFnaW5nU3ludGhlc2l6ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuXG4vKipcbiAqIFVzZXIgY29uZmlndXJhYmxlIG9wdGlvbnMgdG8gdGhlIERlZmF1bHRTdGFnaW5nU3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHN0YWdpbmcgc3RhY2sgYmVsb25ncyB0by5cbiAgICpcbiAgICogVGhpcyBpZGVudGlmaWVyIHdpbGwgYmUgdXNlZCBpbiB0aGUgbmFtZSBvZiBzdGFnaW5nIHJlc291cmNlc1xuICAgKiBjcmVhdGVkIGZvciB0aGlzIGFwcGxpY2F0aW9uLCBhbmQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgQ0RLIGFwcHMuXG4gICAqXG4gICAqIFRoZSBpZGVudGlmaWVyIHNob3VsZCBpbmNsdWRlIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMgKCctJykgb25seVxuICAgKiBhbmQgaGF2ZSBhIG1heGltdW0gb2YgMjAgY2hhcmFjdGVycy5cbiAgICovXG4gIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IG5hbWUgZm9yIHRoZSBzdGFnaW5nIGJ1Y2tldFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgd2VsbC1rbm93biBuYW1lIHVuaXF1ZSB0byB0aGlzIGFwcC9lbnYuXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nQnVja2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRW5jcnlwdGlvbiB0eXBlIGZvciBzdGFnaW5nIGJ1Y2tldFxuICAgKlxuICAgKiBJbiBmdXR1cmUgdmVyc2lvbnMgb2YgdGhpcyBwYWNrYWdlLCB0aGUgZGVmYXVsdCB3aWxsIGJlIEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRC5cbiAgICpcbiAgICogSW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhpcyBwYWNrYWdlLCB0aGUgZGVmYXVsdCB3YXMgdG8gdXNlIEtNUyBlbmNyeXB0aW9uIGZvciB0aGUgc3RhZ2luZyBidWNrZXQuIEtNUyBrZXlzIGNvc3RcbiAgICogJDEvbW9udGgsIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiB1bmV4cGVjdGVkIGNvc3RzIGZvciB1c2VycyB3aG8gYXJlIG5vdCBhd2FyZSBvZiB0aGlzLiBBcyB3ZSBzdGFiaWxpemUgdGhpcyBtb2R1bGVcbiAgICogd2UgaW50ZW5kIHRvIG1ha2UgdGhlIGRlZmF1bHQgUzMtbWFuYWdlZCBlbmNyeXB0aW9uLCB3aGljaCBpcyBmcmVlLiBIb3dldmVyLCB0aGUgbWlncmF0aW9uIHBhdGggZnJvbSBLTVMgdG8gUzNcbiAgICogbWFuYWdlZCBlbmNyeXB0aW9uIGZvciBleGlzdGluZyBidWNrZXRzIGlzIG5vdCBzdHJhaWdodGZvcndhcmQuIFRoZXJlZm9yZSwgZm9yIG5vdywgdGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogSWYgeW91IGhhdmUgYW4gZXhpc3Rpbmcgc3RhZ2luZyBidWNrZXQgZW5jcnlwdGVkIHdpdGggYSBLTVMga2V5LCB5b3Ugd2lsbCBsaWtlbHkgd2FudCB0byBzZXQgdGhpcyBwcm9wZXJ0eSB0b1xuICAgKiBCdWNrZXRFbmNyeXB0aW9uLktNUy4gSWYgeW91IGFyZSBjcmVhdGluZyBhIG5ldyBzdGFnaW5nIGJ1Y2tldCwgeW91IGNhbiBzZXQgdGhpcyBwcm9wZXJ0eSB0b1xuICAgKiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQgdG8gYXZvaWQgdGhlIGNvc3Qgb2YgYSBLTVMga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2luZ0J1Y2tldEVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIFBhc3MgaW4gYW4gZXhpc3Rpbmcgcm9sZSB0byBiZSB1c2VkIGFzIHRoZSBmaWxlIHB1Ymxpc2hpbmcgcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5ldyByb2xlIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZUFzc2V0UHVibGlzaGluZ1JvbGU/OiBCb290c3RyYXBSb2xlO1xuXG4gIC8qKlxuICAgKiBQYXNzIGluIGFuIGV4aXN0aW5nIHJvbGUgdG8gYmUgdXNlZCBhcyB0aGUgaW1hZ2UgcHVibGlzaGluZyByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFzc2V0UHVibGlzaGluZ1JvbGU/OiBCb290c3RyYXBSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZXRpbWUgZm9yIGRlcGxveSB0aW1lIGZpbGUgYXNzZXRzLlxuICAgKlxuICAgKiBBc3NldHMgdGhhdCBhcmUgb25seSBuZWNlc3NhcnkgYXQgZGVwbG95bWVudCB0aW1lIChmb3IgaW5zdGFuY2UsXG4gICAqIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlcyBhbmQgTGFtYmRhIHNvdXJjZSBjb2RlIGJ1bmRsZXMpIHdpbGwgYmVcbiAgICogYXV0b21hdGljYWxseSBkZWxldGVkIGFmdGVyIHRoaXMgbWFueSBkYXlzLiBBc3NldHMgdGhhdCBtYXkgYmVcbiAgICogcmVhZCBmcm9tIHRoZSBzdGFnaW5nIGJ1Y2tldCBkdXJpbmcgeW91ciBhcHBsaWNhdGlvbidzIHJ1biB0aW1lXG4gICAqIHdpbGwgbm90IGJlIGRlbGV0ZWQuXG4gICAqXG4gICAqIFNldCB0aGlzIHRvIHRoZSBsZW5ndGggb2YgdGltZSB5b3Ugd2lzaCB0byBiZSBhYmxlIHRvIHJvbGwgYmFjayB0b1xuICAgKiBwcmV2aW91cyB2ZXJzaW9ucyBvZiB5b3VyIGFwcGxpY2F0aW9uIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGEgbmV3XG4gICAqIGBjZGsgc3ludGhgIGFuZCByZS11cGxvYWQgb2YgYXNzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLmRheXMoMzApXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lUaW1lRmlsZUFzc2V0TGlmZXRpbWU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGltYWdlIHZlcnNpb25zIHRvIHN0b3JlIGluIGEgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogUHJldmlvdXMgdmVyc2lvbnMgb2YgYW4gaW1hZ2UgY2FuIGJlIHN0b3JlZCBmb3Igcm9sbGJhY2sgcHVycG9zZXMuXG4gICAqIE9uY2UgYSByZXBvc2l0b3J5IGhhcyBtb3JlIHRoYW4gMyBpbWFnZSB2ZXJzaW9ucyBzdG9yZWQsIHRoZSBvbGRlc3RcbiAgICogdmVyc2lvbiB3aWxsIGJlIGRpc2NhcmRlZC4gVGhpcyBhbGxvd3MgZm9yIHNlbnNpYmxlIGdhcmJhZ2UgY29sbGVjdGlvblxuICAgKiB3aGlsZSBtYWludGFpbmluZyBhIGZldyBwcmV2aW91cyB2ZXJzaW9ucyBmb3Igcm9sbGJhY2sgc2NlbmFyaW9zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVwIHRvIDMgdmVyc2lvbnMgc3RvcmVkXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFzc2V0VmVyc2lvbkNvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdXRvIGRlbGV0ZXMgb2JqZWN0cyBpbiB0aGUgc3RhZ2luZyBTMyBidWNrZXQgYW5kIGltYWdlcyBpbiB0aGVcbiAgICogc3RhZ2luZyBFQ1IgcmVwb3NpdG9yaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjdXN0b20gcHJlZml4IHRvIGJlIHVzZWQgYXMgdGhlIHN0YWdpbmcgc3RhY2sgbmFtZSBhbmRcbiAgICogY29uc3RydWN0IElELiBUaGUgcHJlZml4IHdpbGwgYmUgYXBwZW5kZWQgYmVmb3JlIHRoZSBhcHBJZCwgd2hpY2hcbiAgICogaXMgcmVxdWlyZWQgdG8gYmUgcGFydCBvZiB0aGUgc3RhY2sgbmFtZSBhbmQgY29uc3RydWN0IElEIHRvXG4gICAqIGVuc3VyZSB1bmlxdWVuZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnU3RhZ2luZ1N0YWNrJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2luZ1N0YWNrTmFtZVByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IFN0YWdpbmcgU3RhY2sgUHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRTdGFnaW5nU3RhY2tQcm9wcyBleHRlbmRzIERlZmF1bHRTdGFnaW5nU3RhY2tPcHRpb25zLCBTdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGRlcGxveSBhY3Rpb24gcm9sZSwgaWYgZ2l2ZW5cbiAgICpcbiAgICogVGhpcyByb2xlIHdpbGwgbmVlZCBwZXJtaXNzaW9ucyB0byByZWFkIGZyb20gdG8gdGhlIHN0YWdpbmcgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBDTEkgY3JlZGVudGlhbHMgYXJlIGFzc3VtZWQsIG5vIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVhbGlmaWVyIHVzZWQgdG8gc3BlY2lhbGl6ZSBzdHJpbmdzXG4gICAqXG4gICAqIENhbiBiZSB1c2VkIHRvIHNwZWNpZnkgY3VzdG9tIGJvb3RzdHJhcHBlZCByb2xlIG5hbWVzXG4gICAqL1xuICByZWFkb25seSBxdWFsaWZpZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGRlZmF1bHQgU3RhZ2luZyBTdGFjayB0aGF0IGltcGxlbWVudHMgSVN0YWdpbmdSZXNvdXJjZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuICogY29uc3QgZGVmYXVsdFN0YWdpbmdTdGFjayA9IERlZmF1bHRTdGFnaW5nU3RhY2suZmFjdG9yeSh7IGFwcElkOiAnbXktYXBwLWlkJywgc3RhZ2luZ0J1Y2tldEVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIERlZmF1bHRTdGFnaW5nU3RhY2sgZXh0ZW5kcyBTdGFjayBpbXBsZW1lbnRzIElTdGFnaW5nUmVzb3VyY2VzIHtcbiAgLyoqXG4gICAqIFJldHVybiBhIGZhY3RvcnkgdGhhdCB3aWxsIGNyZWF0ZSBEZWZhdWx0U3RhZ2luZ1N0YWNrc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmYWN0b3J5KG9wdGlvbnM6IERlZmF1bHRTdGFnaW5nU3RhY2tPcHRpb25zKTogSVN0YWdpbmdSZXNvdXJjZXNGYWN0b3J5IHtcbiAgICBjb25zdCBhcHBJZCA9IG9wdGlvbnMuYXBwSWQudG9Mb2NhbGVMb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csICctJykuc2xpY2UoMCwgMjApO1xuICAgIHJldHVybiB7XG4gICAgICBvYnRhaW5TdGFnaW5nUmVzb3VyY2VzKHN0YWNrLCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGFwcCA9IEFwcC5vZihzdGFjayk7XG4gICAgICAgIGlmICghQXBwLmlzQXBwKGFwcCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0YWNrICR7c3RhY2suc3RhY2tOYW1lfSBtdXN0IGJlIHBhcnQgb2YgYW4gQXBwYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCZWNhdXNlIHdlIGRvIG5vdCBrZWVwIG1ldHJpY3MgaW4gdGhlIERlZmF1bHRTdGFnaW5nU3RhY2ssIHdlIHdpbGwgaW5qZWN0XG4gICAgICAgIC8vIGEgZHVtbXkgY29uc3RydWN0IGludG8gdGhlIHN0YWNrIHVzaW5nIHRoZSBEZWZhdWx0U3RhZ2luZ1N0YWNrIGluc3RlYWQuXG4gICAgICAgIGlmIChjeGFwaS5BTkFMWVRJQ1NfUkVQT1JUSU5HX0VOQUJMRURfQ09OVEVYVCkge1xuICAgICAgICAgIG5ldyBVc2luZ0FwcFN0YWdpbmdTeW50aGVzaXplcihzdGFjaywgYFVzaW5nQXBwU3RhZ2luZ1N5bnRoZXNpemVyLyR7c3RhY2suc3RhY2tOYW1lfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhY2tQcmVmaXggPSBvcHRpb25zLnN0YWdpbmdTdGFja05hbWVQcmVmaXggPz8gJ1N0YWdpbmdTdGFjayc7XG4gICAgICAgIC8vIFN0YWNrIG5hbWUgZG9lcyBub3QgbmVlZCB0byBjb250YWluIGVudmlyb25tZW50IGJlY2F1c2UgYXBwSWQgaXMgdW5pcXVlIGluc2lkZSBhbiBlbnZcbiAgICAgICAgY29uc3Qgc3RhY2tOYW1lID0gYCR7c3RhY2tQcmVmaXh9LSR7YXBwSWR9YDtcbiAgICAgICAgY29uc3Qgc3RhY2tJZCA9IGAke3N0YWNrTmFtZX0tJHtjb250ZXh0LmVudmlyb25tZW50U3RyaW5nfWA7XG4gICAgICAgIHJldHVybiBuZXcgRGVmYXVsdFN0YWdpbmdTdGFjayhhcHAsIHN0YWNrSWQsIHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIHN0YWNrTmFtZSxcbiAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgIGFjY291bnQ6IHN0YWNrLmFjY291bnQsXG4gICAgICAgICAgICByZWdpb246IHN0YWNrLnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFwcElkLFxuICAgICAgICAgIHF1YWxpZmllcjogY29udGV4dC5xdWFsaWZpZXIsXG4gICAgICAgICAgZGVwbG95Um9sZUFybjogY29udGV4dC5kZXBsb3lSb2xlQXJuLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGFzc2V0IHB1Ymxpc2hpbmcgcm9sZSBuYW1lIGZvciBmaWxlIChTMykgYXNzZXRzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgZmlsZVJvbGVOYW1lKCkge1xuICAgIHJldHVybiBgY2RrLSR7dGhpcy5hcHBJZH0tZmlsZS1yb2xlLSR7dGhpcy5yZWdpb259YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGFzc2V0IHB1Ymxpc2hpbmcgcm9sZSBuYW1lIGZvciBkb2NrZXIgKEVDUikgYXNzZXRzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgaW1hZ2VSb2xlTmFtZSgpIHtcbiAgICByZXR1cm4gYGNkay0ke3RoaXMuYXBwSWR9LWltYWdlLXJvbGUtJHt0aGlzLnJlZ2lvbn1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhcHAtc2NvcGVkLCBldmlyb25tZW50LWtleWVkIHN0YWdpbmcgYnVja2V0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWdpbmdCdWNrZXQ/OiBzMy5CdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBhcHAtc2NvcGVkLCBlbnZpcm9ubWVudC1rZXllZCBlY3IgcmVwb3NpdG9yaWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFnaW5nUmVwb3M6IFJlY29yZDxzdHJpbmcsIGVjci5SZXBvc2l0b3J5PjtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIHRvIGFkZCBkZXBlbmRlbmNpZXMgdG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVwZW5kZW5jeVN0YWNrOiBTdGFjaztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhZ2luZ0J1Y2tldE5hbWU/OiBzdHJpbmc7XG4gIHByaXZhdGUgc3RhZ2luZ0J1Y2tldEVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEZpbGUgcHVibGlzaCByb2xlIEFSTiBpbiBhc3NldCBtYW5pZmVzdCBmb3JtYXRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZWRGaWxlUm9sZT86IEJvb3RzdHJhcFJvbGU7XG4gIHByaXZhdGUgZmlsZVJvbGU/OiBpYW0uSVJvbGU7XG4gIHByaXZhdGUgZmlsZVJvbGVNYW5pZmVzdEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogSW1hZ2UgcHVibGlzaGluZyByb2xlIEFSTiBpbiBhc3NldCBtYW5pZmVzdCBmb3JtYXRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZWRJbWFnZVJvbGU/OiBCb290c3RyYXBSb2xlO1xuICBwcml2YXRlIGltYWdlUm9sZT86IGlhbS5JUm9sZTtcbiAgcHJpdmF0ZSBkaWRJbWFnZVJvbGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbWFnZVJvbGVNYW5pZmVzdEFybj86IHN0cmluZztcbiAgcHJpdmF0ZSBhdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0czogYm9vbGVhbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveVJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IEFwcCwgaWQ6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBwcm9wczogRGVmYXVsdFN0YWdpbmdTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHN5bnRoZXNpemVyOiBuZXcgQm9vdHN0cmFwbGVzc1N5bnRoZXNpemVyKHtcbiAgICAgICAgcXVhbGlmaWVyOiBwcm9wcy5xdWFsaWZpZXIsXG4gICAgICB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgVGhpcyBzdGFjayBpbmNsdWRlcyByZXNvdXJjZXMgbmVlZGVkIHRvIGRlcGxveSB0aGUgQVdTIENESyBhcHAgJHtwcm9wcy5hcHBJZH0gaW50byB0aGlzIGVudmlyb25tZW50YCxcbiAgICAgIGFuYWx5dGljc1JlcG9ydGluZzogZmFsc2UsIC8vIHJlbW92aW5nIEFXUzo6Q0RLOjpNZXRhZGF0YSBjb25zdHJ1Y3Qgc2F2ZXMgfjNLQlxuICAgIH0pO1xuXG4gICAgLy8gcmVtb3ZpbmcgcGF0aCBtZXRhZGF0YSBzYXZlcyB+MktCXG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoY3hhcGkuUEFUSF9NRVRBREFUQV9FTkFCTEVfQ09OVEVYVCwgZmFsc2UpO1xuXG4gICAgLy8gRm9yIGFsbCByZXNvdXJjZXMgdW5kZXIgdGhlIGRlZmF1bHQgc3RhZ2luZyBzdGFjaywgd2Ugd2FudCB0byBpbmxpbmUgY3VzdG9tXG4gICAgLy8gcmVzb3VyY2VzIGJlY2F1c2UgdGhlIHN0YWdpbmcgYnVja2V0IG5lY2Vzc2FyeSBmb3IgY3VzdG9tIHJlc291cmNlIGFzc2V0c1xuICAgIC8vIGRvZXMgbm90IGV4aXN0IHlldC5cbiAgICB0aGlzLm5vZGUuc2V0Q29udGV4dChJTkxJTkVfQ1VTVE9NX1JFU09VUkNFX0NPTlRFWFQsIHRydWUpO1xuICAgIHRoaXMuYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHMgPSBwcm9wcy5hdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0cyA/PyB0cnVlO1xuXG4gICAgdGhpcy5hcHBJZCA9IHRoaXMudmFsaWRhdGVBcHBJZChwcm9wcy5hcHBJZCk7XG4gICAgdGhpcy5kZXBlbmRlbmN5U3RhY2sgPSB0aGlzO1xuXG4gICAgdGhpcy5kZXBsb3lSb2xlQXJuID0gcHJvcHMuZGVwbG95Um9sZUFybjtcbiAgICB0aGlzLnN0YWdpbmdCdWNrZXROYW1lID0gcHJvcHMuc3RhZ2luZ0J1Y2tldE5hbWU7XG5cbiAgICAvLyBGSVhNRTogd2hlbiBzdGFiaWxpemluZyB0aGlzIG1vZHVsZSwgd2Ugc2hvdWxkIG1ha2UgYHN0YWdpbmdCdWNrZXRFbmNyeXB0aW9uYCBvcHRpb25hbCwgZGVmYXVsdGluZyB0byBTM19NQU5BR0VELlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8yODk3OCNpc3N1ZWNvbW1lbnQtMTkzMDAwNzE3NiBmb3IgZGV0YWlscyBvbiB0aGlzIGRlY2lzaW9uLlxuICAgIHRoaXMuc3RhZ2luZ0J1Y2tldEVuY3J5cHRpb24gPSBwcm9wcy5zdGFnaW5nQnVja2V0RW5jcnlwdGlvbjtcblxuICAgIGNvbnN0IHNwZWNpYWxpemVyID0gbmV3IFN0cmluZ1NwZWNpYWxpemVyKHRoaXMsIHByb3BzLnF1YWxpZmllcik7XG4gICAgdGhpcy5wcm92aWRlZEZpbGVSb2xlID0gcHJvcHMuZmlsZUFzc2V0UHVibGlzaGluZ1JvbGU/Ll9zcGVjaWFsaXplKHNwZWNpYWxpemVyKTtcbiAgICB0aGlzLnByb3ZpZGVkSW1hZ2VSb2xlID0gcHJvcHMuaW1hZ2VBc3NldFB1Ymxpc2hpbmdSb2xlPy5fc3BlY2lhbGl6ZShzcGVjaWFsaXplcik7XG4gICAgdGhpcy5zdGFnaW5nUmVwb3MgPSB7fTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVBcHBJZChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZXJyb3JzID0gW107XG4gICAgaWYgKGlkLmxlbmd0aCA+IDIwKSB7XG4gICAgICBlcnJvcnMucHVzaChgYXBwSWQgZXhwZWN0ZWQgbm8gbW9yZSB0aGFuIDIwIGNoYXJhY3RlcnMgYnV0IGdvdCAke2lkLmxlbmd0aH0gY2hhcmFjdGVycy5gKTtcbiAgICB9XG4gICAgaWYgKGlkICE9PSBpZC50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnYXBwSWQgb25seSBhY2NlcHRzIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLicpO1xuICAgIH1cbiAgICBpZiAoIS9eW2EtejAtOS1dKiQvLnRlc3QoaWQpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnYXBwSWQgZXhwZWN0cyBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCBkYXNoZXMgKFxcJy1cXCcpJyk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoW1xuICAgICAgICBgYXBwSWQgJHtpZH0gaGFzIGVycm9yczpgLFxuICAgICAgICAuLi5lcnJvcnMsXG4gICAgICBdLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVGaWxlUm9sZSgpIHtcbiAgICBpZiAodGhpcy5wcm92aWRlZEZpbGVSb2xlKSB7XG4gICAgICAvLyBPdmVycmlkZVxuICAgICAgdGhpcy5maWxlUm9sZU1hbmlmZXN0QXJuID0gdGhpcy5wcm92aWRlZEZpbGVSb2xlLl9hcm5Gb3JDbG91ZEFzc2VtYmx5KCk7XG4gICAgICBjb25zdCBjZm5Bcm4gPSB0aGlzLnByb3ZpZGVkRmlsZVJvbGUuX2FybkZvckNsb3VkRm9ybWF0aW9uKCk7XG4gICAgICB0aGlzLmZpbGVSb2xlID0gY2ZuQXJuID8gaWFtLlJvbGUuZnJvbVJvbGVBcm4odGhpcywgJ0Nka0ZpbGVSb2xlJywgY2ZuQXJuKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlTmFtZSA9IHRoaXMuZmlsZVJvbGVOYW1lO1xuICAgIHRoaXMuZmlsZVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0Nka0ZpbGVSb2xlJywge1xuICAgICAgcm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQWNjb3VudFByaW5jaXBhbCh0aGlzLmFjY291bnQpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5maWxlUm9sZU1hbmlmZXN0QXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHBhcnRpdGlvbjogJyR7QVdTOjpQYXJ0aXRpb259JyxcbiAgICAgIHJlZ2lvbjogJycsIC8vIGlhbSBpcyBnbG9iYWxcbiAgICAgIHNlcnZpY2U6ICdpYW0nLFxuICAgICAgcmVzb3VyY2U6ICdyb2xlJyxcbiAgICAgIHJlc291cmNlTmFtZTogcm9sZU5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVJbWFnZVJvbGUoKSB7XG4gICAgLy8gSXQgbWF5IGVuZCB1cCBzZXR0aW5nIGltYWdlUm9sZSB0byB1bmRlZmluZWQsIGJ1dCBhdCBsZWFzdCB3ZSB0cmllZFxuICAgIGlmICh0aGlzLmRpZEltYWdlUm9sZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpZEltYWdlUm9sZSA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5wcm92aWRlZEltYWdlUm9sZSkge1xuICAgICAgLy8gT3ZlcnJpZGVcbiAgICAgIHRoaXMuaW1hZ2VSb2xlTWFuaWZlc3RBcm4gPSB0aGlzLnByb3ZpZGVkSW1hZ2VSb2xlLl9hcm5Gb3JDbG91ZEFzc2VtYmx5KCk7XG4gICAgICBjb25zdCBjZm5Bcm4gPSB0aGlzLnByb3ZpZGVkSW1hZ2VSb2xlLl9hcm5Gb3JDbG91ZEZvcm1hdGlvbigpO1xuICAgICAgdGhpcy5pbWFnZVJvbGUgPSBjZm5Bcm4gPyBpYW0uUm9sZS5mcm9tUm9sZUFybih0aGlzLCAnQ2RrSW1hZ2VSb2xlJywgY2ZuQXJuKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlTmFtZSA9IHRoaXMuaW1hZ2VSb2xlTmFtZTtcbiAgICB0aGlzLmltYWdlUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnQ2RrSW1hZ2VSb2xlJywge1xuICAgICAgcm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQWNjb3VudFByaW5jaXBhbCh0aGlzLmFjY291bnQpLFxuICAgIH0pO1xuICAgIHRoaXMuaW1hZ2VSb2xlTWFuaWZlc3RBcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgcGFydGl0aW9uOiAnJHtBV1M6OlBhcnRpdGlvbn0nLFxuICAgICAgcmVnaW9uOiAnJywgLy8gaWFtIGlzIGdsb2JhbFxuICAgICAgc2VydmljZTogJ2lhbScsXG4gICAgICByZXNvdXJjZTogJ3JvbGUnLFxuICAgICAgcmVzb3VyY2VOYW1lOiByb2xlTmFtZSxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUJ1Y2tldEtleSgpOiBrbXMuSUtleSB7XG4gICAgcmV0dXJuIG5ldyBrbXMuS2V5KHRoaXMsICdCdWNrZXRLZXknLCB7XG4gICAgICBhbGlhczogYGFsaWFzL2Nkay0ke3RoaXMuYXBwSWR9LXN0YWdpbmdgLFxuICAgICAgYWRtaW5zOiBbbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKHRoaXMuYWNjb3VudCldLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDcmVhdGVCdWNrZXQoKSB7XG4gICAgY29uc3Qgc3RhZ2luZ0J1Y2tldE5hbWUgPSB0aGlzLnN0YWdpbmdCdWNrZXROYW1lID8/IGBjZGstJHt0aGlzLmFwcElkfS1zdGFnaW5nLSR7dGhpcy5hY2NvdW50fS0ke3RoaXMucmVnaW9ufWA7XG4gICAgY29uc3QgYnVja2V0SWQgPSAnQ2RrU3RhZ2luZ0J1Y2tldCc7XG4gICAgY29uc3QgY3JlYXRlZEJ1Y2tldCA9IHRoaXMubm9kZS50cnlGaW5kQ2hpbGQoYnVja2V0SWQpIGFzIHMzLkJ1Y2tldDtcbiAgICBpZiAoY3JlYXRlZEJ1Y2tldCkge1xuICAgICAgcmV0dXJuIHN0YWdpbmdCdWNrZXROYW1lO1xuICAgIH1cblxuICAgIHRoaXMuZW5zdXJlRmlsZVJvbGUoKTtcblxuICAgIGxldCBrZXkgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuc3RhZ2luZ0J1Y2tldEVuY3J5cHRpb24gPT09IHMzLkJ1Y2tldEVuY3J5cHRpb24uS01TKSB7XG4gICAgICBrZXkgPSB0aGlzLmNyZWF0ZUJ1Y2tldEtleSgpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgYnVja2V0IG9uY2UgdGhlIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gY3JlYXRlZFxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgYnVja2V0SWQsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHN0YWdpbmdCdWNrZXROYW1lLFxuICAgICAgLi4uKHRoaXMuYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHMgPyB7XG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICB9IDoge1xuICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIH0pLFxuICAgICAgZW5jcnlwdGlvbjogdGhpcy5zdGFnaW5nQnVja2V0RW5jcnlwdGlvbixcbiAgICAgIGVuY3J5cHRpb25LZXk6IGtleSxcblxuICAgICAgLy8gTWFueSBBV1MgYWNjb3VudCBzYWZldHkgY2hlY2tlcnMgd2lsbCBjb21wbGFpbiB3aGVuIGJ1Y2tldHMgYXJlbid0IHZlcnNpb25lZFxuICAgICAgdmVyc2lvbmVkOiB0cnVlLFxuICAgICAgLy8gTWFueSBBV1MgYWNjb3VudCBzYWZldHkgY2hlY2tlcnMgd2lsbCBjb21wbGFpbiB3aGVuIFNTTCBpc24ndCBlbmZvcmNlZFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZpbGVSb2xlKSB7XG4gICAgICBidWNrZXQuZ3JhbnRSZWFkV3JpdGUodGhpcy5maWxlUm9sZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVwbG95Um9sZUFybikge1xuICAgICAgYnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ3MzOkdldE9iamVjdConLFxuICAgICAgICAgICdzMzpHZXRCdWNrZXQqJyxcbiAgICAgICAgICAnczM6TGlzdConLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtidWNrZXQuYnVja2V0QXJuLCBidWNrZXQuYXJuRm9yT2JqZWN0cygnKicpXSxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQXJuUHJpbmNpcGFsKHRoaXMuZGVwbG95Um9sZUFybildLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8vIE9iamVjdHMgc2hvdWxkIG5ldmVyIGJlIG92ZXJ3cml0dGVuLCBidXQgbGV0J3MgbWFrZSBzdXJlIHdlIGhhdmUgYSBsaWZlY3ljbGUgcG9saWN5XG4gICAgLy8gZm9yIGl0IGFueXdheS5cbiAgICBidWNrZXQuYWRkTGlmZWN5Y2xlUnVsZSh7XG4gICAgICBub25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzY1KSxcbiAgICB9KTtcblxuICAgIGJ1Y2tldC5hZGRMaWZlY3ljbGVSdWxlKHtcbiAgICAgIHByZWZpeDogREVQTE9ZX1RJTUVfUFJFRklYLFxuICAgICAgZXhwaXJhdGlvbjogdGhpcy5wcm9wcy5kZXBsb3lUaW1lRmlsZUFzc2V0TGlmZXRpbWUgPz8gRHVyYXRpb24uZGF5cygzMCksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3RhZ2luZ0J1Y2tldE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgd2VsbC1rbm93biBuYW1lIG9mIHRoZSByZXBvXG4gICAqL1xuICBwcml2YXRlIGdldENyZWF0ZVJlcG8oYXNzZXQ6IERvY2tlckltYWdlQXNzZXRTb3VyY2UpOiBzdHJpbmcge1xuICAgIGlmICghYXNzZXQuYXNzZXROYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2V0cyBzeW50aGVzaXplZCB3aXRoIEFwcFNjb3BlZFN0YWdpbmdTeW50aGVzaXplciBtdXN0IGluY2x1ZGUgYW4gXFwnYXNzZXROYW1lXFwnIGluIHRoZSBhc3NldCBzb3VyY2UgZGVmaW5pdGlvbi4nKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgaW1hZ2UgcHVibGlzaGluZyByb2xlIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICB0aGlzLmVuc3VyZUltYWdlUm9sZSgpO1xuXG4gICAgY29uc3QgcmVwb05hbWUgPSBnZW5lcmF0ZVJlcG9OYW1lKGAke3RoaXMuYXBwSWR9LyR7YXNzZXQuYXNzZXROYW1lfWApO1xuICAgIGlmICh0aGlzLnN0YWdpbmdSZXBvc1thc3NldC5hc3NldE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RhZ2luZ1JlcG9zW2Fzc2V0LmFzc2V0TmFtZV0gPSBuZXcgZWNyLlJlcG9zaXRvcnkodGhpcywgcmVwb05hbWUsIHtcbiAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHJlcG9OYW1lLFxuICAgICAgICBpbWFnZVRhZ011dGFiaWxpdHk6IGVjci5UYWdNdXRhYmlsaXR5LklNTVVUQUJMRSxcbiAgICAgICAgbGlmZWN5Y2xlUnVsZXM6IFt7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdHYXJiYWdlIGNvbGxlY3Qgb2xkIGltYWdlIHZlcnNpb25zJyxcbiAgICAgICAgICBtYXhJbWFnZUNvdW50OiB0aGlzLnByb3BzLmltYWdlQXNzZXRWZXJzaW9uQ291bnQgPz8gMyxcbiAgICAgICAgfV0sXG4gICAgICAgIC4uLih0aGlzLmF1dG9EZWxldGVTdGFnaW5nQXNzZXRzID8ge1xuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgICBlbXB0eU9uRGVsZXRlOiB0cnVlLFxuICAgICAgICB9IDoge1xuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5pbWFnZVJvbGUpIHtcbiAgICAgICAgdGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXS5ncmFudFB1bGxQdXNoKHRoaXMuaW1hZ2VSb2xlKTtcbiAgICAgICAgdGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXS5ncmFudFJlYWQodGhpcy5pbWFnZVJvbGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVwb05hbWU7XG5cbiAgICBmdW5jdGlvbiBnZW5lcmF0ZVJlcG9OYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoJy4nLCAnLScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRGaWxlKGFzc2V0OiBGaWxlQXNzZXRTb3VyY2UpOiBGaWxlU3RhZ2luZ0xvY2F0aW9uIHtcbiAgICAvLyBIYXMgc2lkZSBlZmZlY3RzIHNvIG11c3QgZ28gZmlyc3RcbiAgICBjb25zdCBidWNrZXROYW1lID0gdGhpcy5nZXRDcmVhdGVCdWNrZXQoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBidWNrZXROYW1lLFxuICAgICAgYXNzdW1lUm9sZUFybjogdGhpcy5maWxlUm9sZU1hbmlmZXN0QXJuLFxuICAgICAgcHJlZml4OiBhc3NldC5kZXBsb3lUaW1lID8gREVQTE9ZX1RJTUVfUFJFRklYIDogdW5kZWZpbmVkLFxuICAgICAgZGVwZW5kZW5jeVN0YWNrOiB0aGlzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2UoYXNzZXQ6IERvY2tlckltYWdlQXNzZXRTb3VyY2UpOiBJbWFnZVN0YWdpbmdMb2NhdGlvbiB7XG4gICAgLy8gSGFzIHNpZGUgZWZmZWN0cyBzbyBtdXN0IGdvIGZpcnN0XG4gICAgY29uc3QgcmVwb05hbWUgPSB0aGlzLmdldENyZWF0ZVJlcG8oYXNzZXQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcG9OYW1lLFxuICAgICAgYXNzdW1lUm9sZUFybjogdGhpcy5pbWFnZVJvbGVNYW5pZmVzdEFybixcbiAgICAgIGRlcGVuZGVuY3lTdGFjazogdGhpcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBjbG91ZGZvcm1hdGlvbiB0ZW1wbGF0ZSBpbnRvIGEgY2xvdWQgYXNzZW1ibHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9zeW50aGVzaXplVGVtcGxhdGUoc2Vzc2lvbjogSVN5bnRoZXNpc1Nlc3Npb24sIGxvb2t1cFJvbGVBcm4/OiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBzdXBlci5fc3ludGhlc2l6ZVRlbXBsYXRlKHNlc3Npb24sIGxvb2t1cFJvbGVBcm4pO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IHNlc3Npb24uYXNzZW1ibHk7XG4gICAgY29uc3Qgb3V0UGF0aCA9IHBhdGguam9pbihidWlsZGVyLm91dGRpciwgdGhpcy50ZW1wbGF0ZUZpbGUpO1xuICAgIGNvbnN0IHNpemUgPSBmcy5zdGF0U3luYyhvdXRQYXRoKS5zaXplO1xuICAgIGlmIChzaXplID4gNTEyMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhZ2luZyByZXNvdXJjZSB0ZW1wbGF0ZSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDUxMjAwIGJ5dGVzLCBidXQgZ290ICR7c2l6ZX0gYnl0ZXNgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVmYXVsdC1zdGFnaW5nLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFPekMsMkNBUTBCO0FBQzFCLDRFQUEwRTtBQUMxRSw0Q0FBNEM7QUFDNUMsMkNBQXVDO0FBSTFCLFFBQUEsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRWpEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLDBCQUEyQixTQUFRLHNCQUFTOztJQUN2RCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2xCOztBQUhILGdFQUlDO0FBMkhEOzs7Ozs7R0FNRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsWUFBSztJQXlGUzs7SUF4RnJEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFtQzs7Ozs7Ozs7OztRQUN2RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU87WUFDTCxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsT0FBTztnQkFDbkMsTUFBTSxHQUFHLEdBQUcsVUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFVBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssQ0FBQyxTQUFTLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3JFLENBQUM7Z0JBRUQsNEVBQTRF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QUN2QyxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7S0FDRjs7QUExVkgsa0RBMlZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjciBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgdHlwZSB7XG4gIERvY2tlckltYWdlQXNzZXRTb3VyY2UsXG4gIEZpbGVBc3NldFNvdXJjZSxcbiAgSVN5bnRoZXNpc1Nlc3Npb24sXG4gIFN0YWNrUHJvcHMsXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXBwLFxuICBBcm5Gb3JtYXQsXG4gIEJvb3RzdHJhcGxlc3NTeW50aGVzaXplcixcbiAgRHVyYXRpb24sXG4gIFJlbW92YWxQb2xpY3ksXG4gIFN0YWNrLFxuICBJTkxJTkVfQ1VTVE9NX1JFU09VUkNFX0NPTlRFWFQsXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nU3BlY2lhbGl6ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ2F3cy1jZGstbGliL2N4LWFwaSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwUm9sZSB9IGZyb20gJy4vYm9vdHN0cmFwLXJvbGVzJztcbmltcG9ydCB0eXBlIHsgRmlsZVN0YWdpbmdMb2NhdGlvbiwgSVN0YWdpbmdSZXNvdXJjZXMsIElTdGFnaW5nUmVzb3VyY2VzRmFjdG9yeSwgSW1hZ2VTdGFnaW5nTG9jYXRpb24gfSBmcm9tICcuL3N0YWdpbmctc3RhY2snO1xuXG5leHBvcnQgY29uc3QgREVQTE9ZX1RJTUVfUFJFRklYID0gJ2RlcGxveS10aW1lLyc7XG5cbi8qKlxuICogVGhpcyBpcyBhIGR1bW15IGNvbnN0cnVjdCBtZWFudCB0byBzaWduaWZ5IHRoYXQgYSBzdGFjayBpcyB1dGlsaXppbmdcbiAqIHRoZSBBcHBTdGFnaW5nU3ludGhlc2l6ZXIuIEl0IGRvZXMgbm90IGRvIGFueXRoaW5nLCBhbmQgaXMgbm90IG1lYW50XG4gKiB0byBiZSBjcmVhdGVkIG9uIGl0cyBvd24uIFRoaXMgY29uc3RydWN0IHdpbGwgYmUgYSBwYXJ0IG9mIHRoZVxuICogY29uc3RydWN0IHRyZWUgb25seSBhbmQgbm90IHRoZSBDZm4gdGVtcGxhdGUuIFRoZSBjb25zdHJ1Y3QgdHJlZSBpc1xuICogdGhlbiBlbmNvZGVkIGluIHRoZSBBV1M6OkNESzo6TWV0YWRhdGEgcmVzb3VyY2Ugb2YgdGhlIHN0YWNrIGFuZFxuICogaW5qZXN0ZWQgaW4gb3VyIG1ldHJpY3MgbGlrZSBldmVyeSBvdGhlciBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBVc2luZ0FwcFN0YWdpbmdTeW50aGVzaXplciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG59XG5cbi8qKlxuICogVXNlciBjb25maWd1cmFibGUgb3B0aW9ucyB0byB0aGUgRGVmYXVsdFN0YWdpbmdTdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0U3RhZ2luZ1N0YWNrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgc3RhZ2luZyBzdGFjayBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBUaGlzIGlkZW50aWZpZXIgd2lsbCBiZSB1c2VkIGluIHRoZSBuYW1lIG9mIHN0YWdpbmcgcmVzb3VyY2VzXG4gICAqIGNyZWF0ZWQgZm9yIHRoaXMgYXBwbGljYXRpb24sIGFuZCBzaG91bGQgYmUgdW5pcXVlIGFjcm9zcyBDREsgYXBwcy5cbiAgICpcbiAgICogVGhlIGlkZW50aWZpZXIgc2hvdWxkIGluY2x1ZGUgbG93ZXJjYXNlIGNoYXJhY3RlcnMgYW5kIGRhc2hlcyAoJy0nKSBvbmx5XG4gICAqIGFuZCBoYXZlIGEgbWF4aW11bSBvZiAyMCBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwbGljaXQgbmFtZSBmb3IgdGhlIHN0YWdpbmcgYnVja2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSB3ZWxsLWtub3duIG5hbWUgdW5pcXVlIHRvIHRoaXMgYXBwL2Vudi5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmdCdWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIHR5cGUgZm9yIHN0YWdpbmcgYnVja2V0XG4gICAqXG4gICAqIEluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzIHBhY2thZ2UsIHRoZSBkZWZhdWx0IHdpbGwgYmUgQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELlxuICAgKlxuICAgKiBJbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGlzIHBhY2thZ2UsIHRoZSBkZWZhdWx0IHdhcyB0byB1c2UgS01TIGVuY3J5cHRpb24gZm9yIHRoZSBzdGFnaW5nIGJ1Y2tldC4gS01TIGtleXMgY29zdFxuICAgKiAkMS9tb250aCwgd2hpY2ggY291bGQgcmVzdWx0IGluIHVuZXhwZWN0ZWQgY29zdHMgZm9yIHVzZXJzIHdobyBhcmUgbm90IGF3YXJlIG9mIHRoaXMuIEFzIHdlIHN0YWJpbGl6ZSB0aGlzIG1vZHVsZVxuICAgKiB3ZSBpbnRlbmQgdG8gbWFrZSB0aGUgZGVmYXVsdCBTMy1tYW5hZ2VkIGVuY3J5cHRpb24sIHdoaWNoIGlzIGZyZWUuIEhvd2V2ZXIsIHRoZSBtaWdyYXRpb24gcGF0aCBmcm9tIEtNUyB0byBTM1xuICAgKiBtYW5hZ2VkIGVuY3J5cHRpb24gZm9yIGV4aXN0aW5nIGJ1Y2tldHMgaXMgbm90IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlcmVmb3JlLCBmb3Igbm93LCB0aGlzIHByb3BlcnR5IGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBJZiB5b3UgaGF2ZSBhbiBleGlzdGluZyBzdGFnaW5nIGJ1Y2tldCBlbmNyeXB0ZWQgd2l0aCBhIEtNUyBrZXksIHlvdSB3aWxsIGxpa2VseSB3YW50IHRvIHNldCB0aGlzIHByb3BlcnR5IHRvXG4gICAqIEJ1Y2tldEVuY3J5cHRpb24uS01TLiBJZiB5b3UgYXJlIGNyZWF0aW5nIGEgbmV3IHN0YWdpbmcgYnVja2V0LCB5b3UgY2FuIHNldCB0aGlzIHByb3BlcnR5IHRvXG4gICAqIEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCB0byBhdm9pZCB0aGUgY29zdCBvZiBhIEtNUyBrZXkuXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nQnVja2V0RW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbjtcblxuICAvKipcbiAgICogUGFzcyBpbiBhbiBleGlzdGluZyByb2xlIHRvIGJlIHVzZWQgYXMgdGhlIGZpbGUgcHVibGlzaGluZyByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IHJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBmaWxlQXNzZXRQdWJsaXNoaW5nUm9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIFBhc3MgaW4gYW4gZXhpc3Rpbmcgcm9sZSB0byBiZSB1c2VkIGFzIHRoZSBpbWFnZSBwdWJsaXNoaW5nIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgcm9sZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXNzZXRQdWJsaXNoaW5nUm9sZT86IEJvb3RzdHJhcFJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZldGltZSBmb3IgZGVwbG95IHRpbWUgZmlsZSBhc3NldHMuXG4gICAqXG4gICAqIEFzc2V0cyB0aGF0IGFyZSBvbmx5IG5lY2Vzc2FyeSBhdCBkZXBsb3ltZW50IHRpbWUgKGZvciBpbnN0YW5jZSxcbiAgICogQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVzIGFuZCBMYW1iZGEgc291cmNlIGNvZGUgYnVuZGxlcykgd2lsbCBiZVxuICAgKiBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQgYWZ0ZXIgdGhpcyBtYW55IGRheXMuIEFzc2V0cyB0aGF0IG1heSBiZVxuICAgKiByZWFkIGZyb20gdGhlIHN0YWdpbmcgYnVja2V0IGR1cmluZyB5b3VyIGFwcGxpY2F0aW9uJ3MgcnVuIHRpbWVcbiAgICogd2lsbCBub3QgYmUgZGVsZXRlZC5cbiAgICpcbiAgICogU2V0IHRoaXMgdG8gdGhlIGxlbmd0aCBvZiB0aW1lIHlvdSB3aXNoIHRvIGJlIGFibGUgdG8gcm9sbCBiYWNrIHRvXG4gICAqIHByZXZpb3VzIHZlcnNpb25zIG9mIHlvdXIgYXBwbGljYXRpb24gd2l0aG91dCBoYXZpbmcgdG8gZG8gYSBuZXdcbiAgICogYGNkayBzeW50aGAgYW5kIHJlLXVwbG9hZCBvZiBhc3NldHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uZGF5cygzMClcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveVRpbWVGaWxlQXNzZXRMaWZldGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW1hZ2UgdmVyc2lvbnMgdG8gc3RvcmUgaW4gYSByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBQcmV2aW91cyB2ZXJzaW9ucyBvZiBhbiBpbWFnZSBjYW4gYmUgc3RvcmVkIGZvciByb2xsYmFjayBwdXJwb3Nlcy5cbiAgICogT25jZSBhIHJlcG9zaXRvcnkgaGFzIG1vcmUgdGhhbiAzIGltYWdlIHZlcnNpb25zIHN0b3JlZCwgdGhlIG9sZGVzdFxuICAgKiB2ZXJzaW9uIHdpbGwgYmUgZGlzY2FyZGVkLiBUaGlzIGFsbG93cyBmb3Igc2Vuc2libGUgZ2FyYmFnZSBjb2xsZWN0aW9uXG4gICAqIHdoaWxlIG1haW50YWluaW5nIGEgZmV3IHByZXZpb3VzIHZlcnNpb25zIGZvciByb2xsYmFjayBzY2VuYXJpb3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXAgdG8gMyB2ZXJzaW9ucyBzdG9yZWRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXNzZXRWZXJzaW9uQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF1dG8gZGVsZXRlcyBvYmplY3RzIGluIHRoZSBzdGFnaW5nIFMzIGJ1Y2tldCBhbmQgaW1hZ2VzIGluIHRoZVxuICAgKiBzdGFnaW5nIEVDUiByZXBvc2l0b3JpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9EZWxldGVTdGFnaW5nQXNzZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBhcyB0aGUgc3RhZ2luZyBzdGFjayBuYW1lIGFuZFxuICAgKiBjb25zdHJ1Y3QgSUQuIFRoZSBwcmVmaXggd2lsbCBiZSBhcHBlbmRlZCBiZWZvcmUgdGhlIGFwcElkLCB3aGljaFxuICAgKiBpcyByZXF1aXJlZCB0byBiZSBwYXJ0IG9mIHRoZSBzdGFjayBuYW1lIGFuZCBjb25zdHJ1Y3QgSUQgdG9cbiAgICogZW5zdXJlIHVuaXF1ZW5lc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdTdGFnaW5nU3RhY2snXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nU3RhY2tOYW1lUHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmF1bHQgU3RhZ2luZyBTdGFjayBQcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFN0YWdpbmdTdGFja1Byb3BzIGV4dGVuZHMgRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMsIFN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZGVwbG95IGFjdGlvbiByb2xlLCBpZiBnaXZlblxuICAgKlxuICAgKiBUaGlzIHJvbGUgd2lsbCBuZWVkIHBlcm1pc3Npb25zIHRvIHJlYWQgZnJvbSB0byB0aGUgc3RhZ2luZyByZXNvdXJjZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIENMSSBjcmVkZW50aWFscyBhcmUgYXNzdW1lZCwgbm8gYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcmUgZ3JhbnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveVJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgdXNlZCB0byBzcGVjaWFsaXplIHN0cmluZ3NcbiAgICpcbiAgICogQ2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBjdXN0b20gYm9vdHN0cmFwcGVkIHJvbGUgbmFtZXNcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgZGVmYXVsdCBTdGFnaW5nIFN0YWNrIHRoYXQgaW1wbGVtZW50cyBJU3RhZ2luZ1Jlc291cmNlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgQnVja2V0RW5jcnlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG4gKiBjb25zdCBkZWZhdWx0U3RhZ2luZ1N0YWNrID0gRGVmYXVsdFN0YWdpbmdTdGFjay5mYWN0b3J5KHsgYXBwSWQ6ICdteS1hcHAtaWQnLCBzdGFnaW5nQnVja2V0RW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VEIH0pO1xuICovXG5leHBvcnQgY2xhc3MgRGVmYXVsdFN0YWdpbmdTdGFjayBleHRlbmRzIFN0YWNrIGltcGxlbWVudHMgSVN0YWdpbmdSZXNvdXJjZXMge1xuICAvKipcbiAgICogUmV0dXJuIGEgZmFjdG9yeSB0aGF0IHdpbGwgY3JlYXRlIERlZmF1bHRTdGFnaW5nU3RhY2tzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZhY3Rvcnkob3B0aW9uczogRGVmYXVsdFN0YWdpbmdTdGFja09wdGlvbnMpOiBJU3RhZ2luZ1Jlc291cmNlc0ZhY3Rvcnkge1xuICAgIGNvbnN0IGFwcElkID0gb3B0aW9ucy5hcHBJZC50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywgJy0nKS5zbGljZSgwLCAyMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9idGFpblN0YWdpbmdSZXNvdXJjZXMoc3RhY2ssIGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgYXBwID0gQXBwLm9mKHN0YWNrKTtcbiAgICAgICAgaWYgKCFBcHAuaXNBcHAoYXBwKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgJHtzdGFjay5zdGFja05hbWV9IG11c3QgYmUgcGFydCBvZiBhbiBBcHBgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJlY2F1c2Ugd2UgZG8gbm90IGtlZXAgbWV0cmljcyBpbiB0aGUgRGVmYXVsdFN0YWdpbmdTdGFjaywgd2Ugd2lsbCBpbmplY3RcbiAgICAgICAgLy8gYSBkdW1teSBjb25zdHJ1Y3QgaW50byB0aGUgc3RhY2sgdXNpbmcgdGhlIERlZmF1bHRTdGFnaW5nU3RhY2sgaW5zdGVhZC5cbiAgICAgICAgaWYgKGN4YXBpLkFOQUxZVElDU19SRVBPUlRJTkdfRU5BQkxFRF9DT05URVhUKSB7XG4gICAgICAgICAgbmV3IFVzaW5nQXBwU3RhZ2luZ1N5bnRoZXNpemVyKHN0YWNrLCBgVXNpbmdBcHBTdGFnaW5nU3ludGhlc2l6ZXIvJHtzdGFjay5zdGFja05hbWV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFja1ByZWZpeCA9IG9wdGlvbnMuc3RhZ2luZ1N0YWNrTmFtZVByZWZpeCA/PyAnU3RhZ2luZ1N0YWNrJztcbiAgICAgICAgLy8gU3RhY2sgbmFtZSBkb2VzIG5vdCBuZWVkIHRvIGNvbnRhaW4gZW52aXJvbm1lbnQgYmVjYXVzZSBhcHBJZCBpcyB1bmlxdWUgaW5zaWRlIGFuIGVudlxuICAgICAgICBjb25zdCBzdGFja05hbWUgPSBgJHtzdGFja1ByZWZpeH0tJHthcHBJZH1gO1xuICAgICAgICBjb25zdCBzdGFja0lkID0gYCR7c3RhY2tOYW1lfS0ke2NvbnRleHQuZW52aXJvbm1lbnRTdHJpbmd9YDtcbiAgICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0U3RhZ2luZ1N0YWNrKGFwcCwgc3RhY2tJZCwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgc3RhY2tOYW1lLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgYWNjb3VudDogc3RhY2suYWNjb3VudCxcbiAgICAgICAgICAgIHJlZ2lvbjogc3RhY2sucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgcXVhbGlmaWVyOiBjb250ZXh0LnF1YWxpZmllcixcbiAgICAgICAgICBkZXBsb3lSb2xlQXJuOiBjb250ZXh0LmRlcGxveVJvbGVBcm4sXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgYXNzZXQgcHVibGlzaGluZyByb2xlIG5hbWUgZm9yIGZpbGUgKFMzKSBhc3NldHMuXG4gICAqL1xuICBwcml2YXRlIGdldCBmaWxlUm9sZU5hbWUoKSB7XG4gICAgcmV0dXJuIGBjZGstJHt0aGlzLmFwcElkfS1maWxlLXJvbGUtJHt0aGlzLnJlZ2lvbn1gO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgYXNzZXQgcHVibGlzaGluZyByb2xlIG5hbWUgZm9yIGRvY2tlciAoRUNSKSBhc3NldHMuXG4gICAqL1xuICBwcml2YXRlIGdldCBpbWFnZVJvbGVOYW1lKCkge1xuICAgIHJldHVybiBgY2RrLSR7dGhpcy5hcHBJZH0taW1hZ2Utcm9sZS0ke3RoaXMucmVnaW9ufWA7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFwcC1zY29wZWQsIGV2aXJvbm1lbnQta2V5ZWQgc3RhZ2luZyBidWNrZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIGFwcC1zY29wZWQsIGVudmlyb25tZW50LWtleWVkIGVjciByZXBvc2l0b3JpZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXBwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWdpbmdSZXBvczogUmVjb3JkPHN0cmluZywgZWNyLlJlcG9zaXRvcnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gYWRkIGRlcGVuZGVuY2llcyB0by5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXBlbmRlbmN5U3RhY2s6IFN0YWNrO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFnaW5nQnVja2V0TmFtZT86IHN0cmluZztcbiAgcHJpdmF0ZSBzdGFnaW5nQnVja2V0RW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbjtcblxuICAvKipcbiAgICogRmlsZSBwdWJsaXNoIHJvbGUgQVJOIGluIGFzc2V0IG1hbmlmZXN0IGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlZEZpbGVSb2xlPzogQm9vdHN0cmFwUm9sZTtcbiAgcHJpdmF0ZSBmaWxlUm9sZT86IGlhbS5JUm9sZTtcbiAgcHJpdmF0ZSBmaWxlUm9sZU1hbmlmZXN0QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbWFnZSBwdWJsaXNoaW5nIHJvbGUgQVJOIGluIGFzc2V0IG1hbmlmZXN0IGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlZEltYWdlUm9sZT86IEJvb3RzdHJhcFJvbGU7XG4gIHByaXZhdGUgaW1hZ2VSb2xlPzogaWFtLklSb2xlO1xuICBwcml2YXRlIGRpZEltYWdlUm9sZSA9IGZhbHNlO1xuICBwcml2YXRlIGltYWdlUm9sZU1hbmlmZXN0QXJuPzogc3RyaW5nO1xuICBwcml2YXRlIGF1dG9EZWxldGVTdGFnaW5nQXNzZXRzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95Um9sZUFybj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQXBwLCBpZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBEZWZhdWx0U3RhZ2luZ1N0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3ludGhlc2l6ZXI6IG5ldyBCb290c3RyYXBsZXNzU3ludGhlc2l6ZXIoe1xuICAgICAgICBxdWFsaWZpZXI6IHByb3BzLnF1YWxpZmllcixcbiAgICAgIH0pLFxuICAgICAgZGVzY3JpcHRpb246IGBUaGlzIHN0YWNrIGluY2x1ZGVzIHJlc291cmNlcyBuZWVkZWQgdG8gZGVwbG95IHRoZSBBV1MgQ0RLIGFwcCAke3Byb3BzLmFwcElkfSBpbnRvIHRoaXMgZW52aXJvbm1lbnRgLFxuICAgICAgYW5hbHl0aWNzUmVwb3J0aW5nOiBmYWxzZSwgLy8gcmVtb3ZpbmcgQVdTOjpDREs6Ok1ldGFkYXRhIGNvbnN0cnVjdCBzYXZlcyB+M0tCXG4gICAgfSk7XG5cbiAgICAvLyByZW1vdmluZyBwYXRoIG1ldGFkYXRhIHNhdmVzIH4yS0JcbiAgICB0aGlzLm5vZGUuc2V0Q29udGV4dChjeGFwaS5QQVRIX01FVEFEQVRBX0VOQUJMRV9DT05URVhULCBmYWxzZSk7XG5cbiAgICAvLyBGb3IgYWxsIHJlc291cmNlcyB1bmRlciB0aGUgZGVmYXVsdCBzdGFnaW5nIHN0YWNrLCB3ZSB3YW50IHRvIGlubGluZSBjdXN0b21cbiAgICAvLyByZXNvdXJjZXMgYmVjYXVzZSB0aGUgc3RhZ2luZyBidWNrZXQgbmVjZXNzYXJ5IGZvciBjdXN0b20gcmVzb3VyY2UgYXNzZXRzXG4gICAgLy8gZG9lcyBub3QgZXhpc3QgeWV0LlxuICAgIHRoaXMubm9kZS5zZXRDb250ZXh0KElOTElORV9DVVNUT01fUkVTT1VSQ0VfQ09OVEVYVCwgdHJ1ZSk7XG4gICAgdGhpcy5hdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0cyA9IHByb3BzLmF1dG9EZWxldGVTdGFnaW5nQXNzZXRzID8/IHRydWU7XG5cbiAgICB0aGlzLmFwcElkID0gdGhpcy52YWxpZGF0ZUFwcElkKHByb3BzLmFwcElkKTtcbiAgICB0aGlzLmRlcGVuZGVuY3lTdGFjayA9IHRoaXM7XG5cbiAgICB0aGlzLmRlcGxveVJvbGVBcm4gPSBwcm9wcy5kZXBsb3lSb2xlQXJuO1xuICAgIHRoaXMuc3RhZ2luZ0J1Y2tldE5hbWUgPSBwcm9wcy5zdGFnaW5nQnVja2V0TmFtZTtcblxuICAgIC8vIEZJWE1FOiB3aGVuIHN0YWJpbGl6aW5nIHRoaXMgbW9kdWxlLCB3ZSBzaG91bGQgbWFrZSBgc3RhZ2luZ0J1Y2tldEVuY3J5cHRpb25gIG9wdGlvbmFsLCBkZWZhdWx0aW5nIHRvIFMzX01BTkFHRUQuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzI4OTc4I2lzc3VlY29tbWVudC0xOTMwMDA3MTc2IGZvciBkZXRhaWxzIG9uIHRoaXMgZGVjaXNpb24uXG4gICAgdGhpcy5zdGFnaW5nQnVja2V0RW5jcnlwdGlvbiA9IHByb3BzLnN0YWdpbmdCdWNrZXRFbmNyeXB0aW9uO1xuXG4gICAgY29uc3Qgc3BlY2lhbGl6ZXIgPSBuZXcgU3RyaW5nU3BlY2lhbGl6ZXIodGhpcywgcHJvcHMucXVhbGlmaWVyKTtcbiAgICB0aGlzLnByb3ZpZGVkRmlsZVJvbGUgPSBwcm9wcy5maWxlQXNzZXRQdWJsaXNoaW5nUm9sZT8uX3NwZWNpYWxpemUoc3BlY2lhbGl6ZXIpO1xuICAgIHRoaXMucHJvdmlkZWRJbWFnZVJvbGUgPSBwcm9wcy5pbWFnZUFzc2V0UHVibGlzaGluZ1JvbGU/Ll9zcGVjaWFsaXplKHNwZWNpYWxpemVyKTtcbiAgICB0aGlzLnN0YWdpbmdSZXBvcyA9IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFwcElkKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgICBpZiAoaWQubGVuZ3RoID4gMjApIHtcbiAgICAgIGVycm9ycy5wdXNoKGBhcHBJZCBleHBlY3RlZCBubyBtb3JlIHRoYW4gMjAgY2hhcmFjdGVycyBidXQgZ290ICR7aWQubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgIH1cbiAgICBpZiAoaWQgIT09IGlkLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdhcHBJZCBvbmx5IGFjY2VwdHMgbG93ZXJjYXNlIGNoYXJhY3RlcnMuJyk7XG4gICAgfVxuICAgIGlmICghL15bYS16MC05LV0qJC8udGVzdChpZCkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdhcHBJZCBleHBlY3RzIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIGRhc2hlcyAoXFwnLVxcJyknKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihbXG4gICAgICAgIGBhcHBJZCAke2lkfSBoYXMgZXJyb3JzOmAsXG4gICAgICAgIC4uLmVycm9ycyxcbiAgICAgIF0uam9pbignXFxuJykpO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUZpbGVSb2xlKCkge1xuICAgIGlmICh0aGlzLnByb3ZpZGVkRmlsZVJvbGUpIHtcbiAgICAgIC8vIE92ZXJyaWRlXG4gICAgICB0aGlzLmZpbGVSb2xlTWFuaWZlc3RBcm4gPSB0aGlzLnByb3ZpZGVkRmlsZVJvbGUuX2FybkZvckNsb3VkQXNzZW1ibHkoKTtcbiAgICAgIGNvbnN0IGNmbkFybiA9IHRoaXMucHJvdmlkZWRGaWxlUm9sZS5fYXJuRm9yQ2xvdWRGb3JtYXRpb24oKTtcbiAgICAgIHRoaXMuZmlsZVJvbGUgPSBjZm5Bcm4gPyBpYW0uUm9sZS5mcm9tUm9sZUFybih0aGlzLCAnQ2RrRmlsZVJvbGUnLCBjZm5Bcm4pIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGVOYW1lID0gdGhpcy5maWxlUm9sZU5hbWU7XG4gICAgdGhpcy5maWxlUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnQ2RrRmlsZVJvbGUnLCB7XG4gICAgICByb2xlTmFtZSxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKHRoaXMuYWNjb3VudCksXG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbGVSb2xlTWFuaWZlc3RBcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgcGFydGl0aW9uOiAnJHtBV1M6OlBhcnRpdGlvbn0nLFxuICAgICAgcmVnaW9uOiAnJywgLy8gaWFtIGlzIGdsb2JhbFxuICAgICAgc2VydmljZTogJ2lhbScsXG4gICAgICByZXNvdXJjZTogJ3JvbGUnLFxuICAgICAgcmVzb3VyY2VOYW1lOiByb2xlTmFtZSxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUltYWdlUm9sZSgpIHtcbiAgICAvLyBJdCBtYXkgZW5kIHVwIHNldHRpbmcgaW1hZ2VSb2xlIHRvIHVuZGVmaW5lZCwgYnV0IGF0IGxlYXN0IHdlIHRyaWVkXG4gICAgaWYgKHRoaXMuZGlkSW1hZ2VSb2xlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlkSW1hZ2VSb2xlID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnByb3ZpZGVkSW1hZ2VSb2xlKSB7XG4gICAgICAvLyBPdmVycmlkZVxuICAgICAgdGhpcy5pbWFnZVJvbGVNYW5pZmVzdEFybiA9IHRoaXMucHJvdmlkZWRJbWFnZVJvbGUuX2FybkZvckNsb3VkQXNzZW1ibHkoKTtcbiAgICAgIGNvbnN0IGNmbkFybiA9IHRoaXMucHJvdmlkZWRJbWFnZVJvbGUuX2FybkZvckNsb3VkRm9ybWF0aW9uKCk7XG4gICAgICB0aGlzLmltYWdlUm9sZSA9IGNmbkFybiA/IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHRoaXMsICdDZGtJbWFnZVJvbGUnLCBjZm5Bcm4pIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGVOYW1lID0gdGhpcy5pbWFnZVJvbGVOYW1lO1xuICAgIHRoaXMuaW1hZ2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdDZGtJbWFnZVJvbGUnLCB7XG4gICAgICByb2xlTmFtZSxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKHRoaXMuYWNjb3VudCksXG4gICAgfSk7XG4gICAgdGhpcy5pbWFnZVJvbGVNYW5pZmVzdEFybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBwYXJ0aXRpb246ICcke0FXUzo6UGFydGl0aW9ufScsXG4gICAgICByZWdpb246ICcnLCAvLyBpYW0gaXMgZ2xvYmFsXG4gICAgICBzZXJ2aWNlOiAnaWFtJyxcbiAgICAgIHJlc291cmNlOiAncm9sZScsXG4gICAgICByZXNvdXJjZU5hbWU6IHJvbGVOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQnVja2V0S2V5KCk6IGttcy5JS2V5IHtcbiAgICByZXR1cm4gbmV3IGttcy5LZXkodGhpcywgJ0J1Y2tldEtleScsIHtcbiAgICAgIGFsaWFzOiBgYWxpYXMvY2RrLSR7dGhpcy5hcHBJZH0tc3RhZ2luZ2AsXG4gICAgICBhZG1pbnM6IFtuZXcgaWFtLkFjY291bnRQcmluY2lwYWwodGhpcy5hY2NvdW50KV0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENyZWF0ZUJ1Y2tldCgpIHtcbiAgICBjb25zdCBzdGFnaW5nQnVja2V0TmFtZSA9IHRoaXMuc3RhZ2luZ0J1Y2tldE5hbWUgPz8gYGNkay0ke3RoaXMuYXBwSWR9LXN0YWdpbmctJHt0aGlzLmFjY291bnR9LSR7dGhpcy5yZWdpb259YDtcbiAgICBjb25zdCBidWNrZXRJZCA9ICdDZGtTdGFnaW5nQnVja2V0JztcbiAgICBjb25zdCBjcmVhdGVkQnVja2V0ID0gdGhpcy5ub2RlLnRyeUZpbmRDaGlsZChidWNrZXRJZCkgYXMgczMuQnVja2V0O1xuICAgIGlmIChjcmVhdGVkQnVja2V0KSB7XG4gICAgICByZXR1cm4gc3RhZ2luZ0J1Y2tldE5hbWU7XG4gICAgfVxuXG4gICAgdGhpcy5lbnN1cmVGaWxlUm9sZSgpO1xuXG4gICAgbGV0IGtleSA9IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5zdGFnaW5nQnVja2V0RW5jcnlwdGlvbiA9PT0gczMuQnVja2V0RW5jcnlwdGlvbi5LTVMpIHtcbiAgICAgIGtleSA9IHRoaXMuY3JlYXRlQnVja2V0S2V5KCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBidWNrZXQgb25jZSB0aGUgZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBjcmVhdGVkXG4gICAgY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCBidWNrZXRJZCwge1xuICAgICAgYnVja2V0TmFtZTogc3RhZ2luZ0J1Y2tldE5hbWUsXG4gICAgICAuLi4odGhpcy5hdXRvRGVsZXRlU3RhZ2luZ0Fzc2V0cyA/IHtcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIH0gOiB7XG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgfSksXG4gICAgICBlbmNyeXB0aW9uOiB0aGlzLnN0YWdpbmdCdWNrZXRFbmNyeXB0aW9uLFxuICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuXG4gICAgICAvLyBNYW55IEFXUyBhY2NvdW50IHNhZmV0eSBjaGVja2VycyB3aWxsIGNvbXBsYWluIHdoZW4gYnVja2V0cyBhcmVuJ3QgdmVyc2lvbmVkXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICAvLyBNYW55IEFXUyBhY2NvdW50IHNhZmV0eSBjaGVja2VycyB3aWxsIGNvbXBsYWluIHdoZW4gU1NMIGlzbid0IGVuZm9yY2VkXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZmlsZVJvbGUpIHtcbiAgICAgIGJ1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLmZpbGVSb2xlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXBsb3lSb2xlQXJuKSB7XG4gICAgICBidWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnczM6R2V0T2JqZWN0KicsXG4gICAgICAgICAgJ3MzOkdldEJ1Y2tldConLFxuICAgICAgICAgICdzMzpMaXN0KicsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW2J1Y2tldC5idWNrZXRBcm4sIGJ1Y2tldC5hcm5Gb3JPYmplY3RzKCcqJyldLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5Bcm5QcmluY2lwYWwodGhpcy5kZXBsb3lSb2xlQXJuKV0sXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gT2JqZWN0cyBzaG91bGQgbmV2ZXIgYmUgb3ZlcndyaXR0ZW4sIGJ1dCBsZXQncyBtYWtlIHN1cmUgd2UgaGF2ZSBhIGxpZmVjeWNsZSBwb2xpY3lcbiAgICAvLyBmb3IgaXQgYW55d2F5LlxuICAgIGJ1Y2tldC5hZGRMaWZlY3ljbGVSdWxlKHtcbiAgICAgIG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzNjUpLFxuICAgIH0pO1xuXG4gICAgYnVja2V0LmFkZExpZmVjeWNsZVJ1bGUoe1xuICAgICAgcHJlZml4OiBERVBMT1lfVElNRV9QUkVGSVgsXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLnByb3BzLmRlcGxveVRpbWVGaWxlQXNzZXRMaWZldGltZSA/PyBEdXJhdGlvbi5kYXlzKDMwKSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGFnaW5nQnVja2V0TmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB3ZWxsLWtub3duIG5hbWUgb2YgdGhlIHJlcG9cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3JlYXRlUmVwbyhhc3NldDogRG9ja2VySW1hZ2VBc3NldFNvdXJjZSk6IHN0cmluZyB7XG4gICAgaWYgKCFhc3NldC5hc3NldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXNzZXRzIHN5bnRoZXNpemVkIHdpdGggQXBwU2NvcGVkU3RhZ2luZ1N5bnRoZXNpemVyIG11c3QgaW5jbHVkZSBhbiBcXCdhc3NldE5hbWVcXCcgaW4gdGhlIGFzc2V0IHNvdXJjZSBkZWZpbml0aW9uLicpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBpbWFnZSBwdWJsaXNoaW5nIHJvbGUgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIHRoaXMuZW5zdXJlSW1hZ2VSb2xlKCk7XG5cbiAgICBjb25zdCByZXBvTmFtZSA9IGdlbmVyYXRlUmVwb05hbWUoYCR7dGhpcy5hcHBJZH0vJHthc3NldC5hc3NldE5hbWV9YCk7XG4gICAgaWYgKHRoaXMuc3RhZ2luZ1JlcG9zW2Fzc2V0LmFzc2V0TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdGFnaW5nUmVwb3NbYXNzZXQuYXNzZXROYW1lXSA9IG5ldyBlY3IuUmVwb3NpdG9yeSh0aGlzLCByZXBvTmFtZSwge1xuICAgICAgICByZXBvc2l0b3J5TmFtZTogcmVwb05hbWUsXG4gICAgICAgIGltYWdlVGFnTXV0YWJpbGl0eTogZWNyLlRhZ011dGFiaWxpdHkuSU1NVVRBQkxFLFxuICAgICAgICBsaWZlY3ljbGVSdWxlczogW3tcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dhcmJhZ2UgY29sbGVjdCBvbGQgaW1hZ2UgdmVyc2lvbnMnLFxuICAgICAgICAgIG1heEltYWdlQ291bnQ6IHRoaXMucHJvcHMuaW1hZ2VBc3NldFZlcnNpb25Db3VudCA/PyAzLFxuICAgICAgICB9XSxcbiAgICAgICAgLi4uKHRoaXMuYXV0b0RlbGV0ZVN0YWdpbmdBc3NldHMgPyB7XG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgIGVtcHR5T25EZWxldGU6IHRydWUsXG4gICAgICAgIH0gOiB7XG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLmltYWdlUm9sZSkge1xuICAgICAgICB0aGlzLnN0YWdpbmdSZXBvc1thc3NldC5hc3NldE5hbWVdLmdyYW50UHVsbFB1c2godGhpcy5pbWFnZVJvbGUpO1xuICAgICAgICB0aGlzLnN0YWdpbmdSZXBvc1thc3NldC5hc3NldE5hbWVdLmdyYW50UmVhZCh0aGlzLmltYWdlUm9sZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXBvTmFtZTtcblxuICAgIGZ1bmN0aW9uIGdlbmVyYXRlUmVwb05hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkucmVwbGFjZSgnLicsICctJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEZpbGUoYXNzZXQ6IEZpbGVBc3NldFNvdXJjZSk6IEZpbGVTdGFnaW5nTG9jYXRpb24ge1xuICAgIC8vIEhhcyBzaWRlIGVmZmVjdHMgc28gbXVzdCBnbyBmaXJzdFxuICAgIGNvbnN0IGJ1Y2tldE5hbWUgPSB0aGlzLmdldENyZWF0ZUJ1Y2tldCgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICBhc3N1bWVSb2xlQXJuOiB0aGlzLmZpbGVSb2xlTWFuaWZlc3RBcm4sXG4gICAgICBwcmVmaXg6IGFzc2V0LmRlcGxveVRpbWUgPyBERVBMT1lfVElNRV9QUkVGSVggOiB1bmRlZmluZWQsXG4gICAgICBkZXBlbmRlbmN5U3RhY2s6IHRoaXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREb2NrZXJJbWFnZShhc3NldDogRG9ja2VySW1hZ2VBc3NldFNvdXJjZSk6IEltYWdlU3RhZ2luZ0xvY2F0aW9uIHtcbiAgICAvLyBIYXMgc2lkZSBlZmZlY3RzIHNvIG11c3QgZ28gZmlyc3RcbiAgICBjb25zdCByZXBvTmFtZSA9IHRoaXMuZ2V0Q3JlYXRlUmVwbyhhc3NldCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVwb05hbWUsXG4gICAgICBhc3N1bWVSb2xlQXJuOiB0aGlzLmltYWdlUm9sZU1hbmlmZXN0QXJuLFxuICAgICAgZGVwZW5kZW5jeVN0YWNrOiB0aGlzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgdGhlIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIGludG8gYSBjbG91ZCBhc3NlbWJseS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3N5bnRoZXNpemVUZW1wbGF0ZShzZXNzaW9uOiBJU3ludGhlc2lzU2Vzc2lvbiwgbG9va3VwUm9sZUFybj86IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHN1cGVyLl9zeW50aGVzaXplVGVtcGxhdGUoc2Vzc2lvbiwgbG9va3VwUm9sZUFybik7XG5cbiAgICBjb25zdCBidWlsZGVyID0gc2Vzc2lvbi5hc3NlbWJseTtcbiAgICBjb25zdCBvdXRQYXRoID0gcGF0aC5qb2luKGJ1aWxkZXIub3V0ZGlyLCB0aGlzLnRlbXBsYXRlRmlsZSk7XG4gICAgY29uc3Qgc2l6ZSA9IGZzLnN0YXRTeW5jKG91dFBhdGgpLnNpemU7XG4gICAgaWYgKHNpemUgPiA1MTIwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdGFnaW5nIHJlc291cmNlIHRlbXBsYXRlIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gNTEyMDAgYnl0ZXMsIGJ1dCBnb3QgJHtzaXplfSBieXRlc2ApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Stack } from 'aws-cdk-lib/core';
|
|
2
|
-
import { IStagingResources, IStagingResourcesFactory, ObtainStagingResourcesContext } from './staging-stack';
|
|
1
|
+
import type { Stack } from 'aws-cdk-lib/core';
|
|
2
|
+
import type { IStagingResources, IStagingResourcesFactory, ObtainStagingResourcesContext } from './staging-stack';
|
|
3
3
|
/**
|
|
4
4
|
* Wraps another IStagingResources factory, and caches the result on a per-environment basis.
|
|
5
5
|
*/
|
|
@@ -30,4 +30,4 @@ class PerEnvironmentStagingFactory {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
exports.PerEnvironmentStagingFactory = PerEnvironmentStagingFactory;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyLWVudi1zdGFnaW5nLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwZXItZW52LXN0YWdpbmctZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFHdkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLGlCQUFpQixHQUFHLElBQUksNEJBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBNkIsQ0FBQyxDQUFDO0FBRTFGOztHQUVHO0FBQ0gsTUFBYSw0QkFBNEI7SUFDVjtJQUE3QixZQUE2QixPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtLQUFLO0lBRTVELHNCQUFzQixDQUFDLEtBQVksRUFBRSxPQUFzQztRQUNoRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFFM0MsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QixPQUFPLE1BQU0sQ0FBQztLQUNmO0NBQ0Y7QUFoQkQsb0VBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQXBwU2NvcGVkR2xvYmFsIH0gZnJvbSAnLi9wcml2YXRlL2FwcC1nbG9iYWwnO1xuaW1wb3J0IHR5cGUgeyBJU3RhZ2luZ1Jlc291cmNlcywgSVN0YWdpbmdSZXNvdXJjZXNGYWN0b3J5LCBPYnRhaW5TdGFnaW5nUmVzb3VyY2VzQ29udGV4dCB9IGZyb20gJy4vc3RhZ2luZy1zdGFjayc7XG5cbi8qKlxuICogUGVyLWVudmlyb25tZW50IGNhY2hlXG4gKlxuICogVGhpcyBpcyBhIGdsb2JhbCBiZWNhdXNlIHdlIG1pZ2h0IGhhdmUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3NcbiAqIGluIHRoZSBhcHAsIGJ1dCB3ZSB3YW50IHRvIGNhY2hlIGFjcm9zcyBhbGwgb2YgdGhlbS5cbiAqL1xuY29uc3QgRU5WSVJPTk1FTlRfQ0FDSEUgPSBuZXcgQXBwU2NvcGVkR2xvYmFsKCgpID0+IG5ldyBNYXA8c3RyaW5nLCBJU3RhZ2luZ1Jlc291cmNlcz4oKSk7XG5cbi8qKlxuICogV3JhcHMgYW5vdGhlciBJU3RhZ2luZ1Jlc291cmNlcyBmYWN0b3J5LCBhbmQgY2FjaGVzIHRoZSByZXN1bHQgb24gYSBwZXItZW52aXJvbm1lbnQgYmFzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQZXJFbnZpcm9ubWVudFN0YWdpbmdGYWN0b3J5IGltcGxlbWVudHMgSVN0YWdpbmdSZXNvdXJjZXNGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB3cmFwcGVkOiBJU3RhZ2luZ1Jlc291cmNlc0ZhY3RvcnkpIHsgfVxuXG4gIHB1YmxpYyBvYnRhaW5TdGFnaW5nUmVzb3VyY2VzKHN0YWNrOiBTdGFjaywgY29udGV4dDogT2J0YWluU3RhZ2luZ1Jlc291cmNlc0NvbnRleHQpOiBJU3RhZ2luZ1Jlc291cmNlcyB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBjb250ZXh0LmVudmlyb25tZW50U3RyaW5nO1xuXG4gICAgY29uc3QgY2FjaGUgPSBFTlZJUk9OTUVOVF9DQUNIRS5mb3Ioc3RhY2spO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLndyYXBwZWQub2J0YWluU3RhZ2luZ1Jlc291cmNlcyhzdGFjaywgY29udGV4dCk7XG4gICAgY2FjaGUuc2V0KGNhY2hlS2V5LCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -32,4 +32,4 @@ class AppScopedGlobal {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
exports.AppScopedGlobal = AppScopedGlobal;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWdsb2JhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcC1nbG9iYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBR3ZDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxlQUFlO0lBR0c7SUFGWixHQUFHLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUU3QyxZQUE2QixPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO0tBQzVDO0lBRU0sR0FBRyxDQUFDLEdBQWU7UUFDeEIsTUFBTSxHQUFHLEdBQUcsVUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0NBQ0Y7QUFwQkQsMENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBIb2xkIGFuIEFwcC13aWRlIGdsb2JhbCB2YXJpYWJsZVxuICpcbiAqIFRoaXMgaXMgYSByZXBsYWNlbWVudCBmb3IgYSBgc3RhdGljYCB2YXJpYWJsZSwgYnV0IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIGluIGNhc2UgcGVvcGxlXG4gKiBpbnN0YW50aWF0ZSBtdWx0aXBsZSBBcHBzIGluIHRoZSBzYW1lIHByb2Nlc3Mgc3BhY2UgKGZvciBleGFtcGxlLCBpbiB1bml0IHRlc3RzIG9yXG4gKiBwZW9wbGUgdXNpbmcgYGNsaS1saWJgIGluIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb25zKS5cbiAqXG4gKiBUaGlzIGNsYXNzIGFzc3VtZXMgdGhhdCB0aGUgZ2xvYmFsIHlvdSdyZSBnb2luZyB0byBiZSBzdG9yaW5nIGlzIGEgbXV0YWJsZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBTY29wZWRHbG9iYWw8QT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IG1hcCA9IG5ldyBXZWFrTWFwPEFwcCwgQT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcnk6ICgpID0+IEEpIHtcbiAgfVxuXG4gIHB1YmxpYyBmb3IoY3RyOiBJQ29uc3RydWN0KTogQSB7XG4gICAgY29uc3QgYXBwID0gQXBwLm9mKGN0cik7XG4gICAgaWYgKCFBcHAuaXNBcHAoYXBwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25zdHJ1Y3QgJHtjdHIubm9kZS5wYXRofSBtdXN0IGJlIHBhcnQgb2YgYW4gQXBwYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLm1hcC5nZXQoYXBwKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmZhY3RvcnkoKTtcbiAgICB0aGlzLm1hcC5zZXQoYXBwLCBpbnN0YW5jZSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG59XG4iXX0=
|
package/lib/staging-stack.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DockerImageAssetSource, FileAssetSource, Stack } from 'aws-cdk-lib/core';
|
|
2
|
-
import { IConstruct } from 'constructs';
|
|
1
|
+
import type { DockerImageAssetSource, FileAssetSource, Stack } from 'aws-cdk-lib/core';
|
|
2
|
+
import type { IConstruct } from 'constructs';
|
|
3
3
|
/**
|
|
4
4
|
* Information returned by the Staging Stack for each file asset.
|
|
5
5
|
*/
|
package/lib/staging-stack.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2luZy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWdpbmctc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG9ja2VySW1hZ2VBc3NldFNvdXJjZSwgRmlsZUFzc2V0U291cmNlLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogSW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgdGhlIFN0YWdpbmcgU3RhY2sgZm9yIGVhY2ggZmlsZSBhc3NldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU3RhZ2luZ0xvY2F0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnaW5nIGJ1Y2tldFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHByZWZpeCB0byBhZGQgdG8gdGhlIGtleXNcbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiB0byBhc3N1bWUgdG8gd3JpdGUgZmlsZXMgdG8gdGhpcyBidWNrZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEb24ndCBhc3N1bWUgYSByb2xlXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCBjcmVhdGVzIHRoaXMgYnVja2V0IChsZWFkcyB0byBkZXBlbmRlbmNpZXMgb24gaXQpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRG9uJ3QgYWRkIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeVN0YWNrPzogU3RhY2s7XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgdGhlIFN0YWdpbmcgU3RhY2sgZm9yIGVhY2ggaW1hZ2UgYXNzZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZVN0YWdpbmdMb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhZ2luZyByZXBvc2l0b3J5XG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIHRvIGFzc3VtZSB0byB3cml0ZSBmaWxlcyB0byB0aGlzIHJlcG9zaXRvcnlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEb24ndCBhc3N1bWUgYSByb2xlXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCBjcmVhdGVzIHRoaXMgcmVwb3NpdG9yeSAobGVhZHMgdG8gZGVwZW5kZW5jaWVzIG9uIGl0KVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERvbid0IGFkZCBkZXBlbmRlbmNpZXNcbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lTdGFjaz86IFN0YWNrO1xufVxuXG4vKipcbiAqIFN0YWdpbmcgUmVzb3VyY2UgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdGFnaW5nUmVzb3VyY2VzIGV4dGVuZHMgSUNvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBSZXR1cm4gc3RhZ2luZyByZXNvdXJjZSBpbmZvcm1hdGlvbiBmb3IgYSBmaWxlIGFzc2V0LlxuICAgKi9cbiAgYWRkRmlsZShhc3NldDogRmlsZUFzc2V0U291cmNlKTogRmlsZVN0YWdpbmdMb2NhdGlvbjtcblxuICAvKipcbiAgICogUmV0dXJuIHN0YWdpbmcgcmVzb3VyY2UgaW5mb3JtYXRpb24gZm9yIGEgZG9ja2VyIGFzc2V0LlxuICAgKi9cbiAgYWRkRG9ja2VySW1hZ2UoYXNzZXQ6IERvY2tlckltYWdlQXNzZXRTb3VyY2UpOiBJbWFnZVN0YWdpbmdMb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBTdGFnaW5nIFJlc291cmNlIEZhY3RvcnkgaW50ZXJmYWNlLlxuICpcbiAqIFRoZSBmdW5jdGlvbiBpbmNsdWRlZCBpbiB0aGlzIGNsYXNzIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBzeW50aGVzaXplclxuICogdG8gY3JlYXRlIG9yIHJlZmVyZW5jZSBhbiBJU3RhZ2luZ1Jlc291cmNlcyBjb25zdHJ1Y3QgdGhhdCBoYXMgdGhlIG5lY2Vzc2FyeVxuICogc3RhZ2luZyByZXNvdXJjZXMgZm9yIHRoZSBzdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3RhZ2luZ1Jlc291cmNlc0ZhY3Rvcnkge1xuICAvKipcbiAgICogUmV0dXJuIGFuIG9iamVjdCB0aGF0IHdpbGwgbWFuYWdlIHN0YWdpbmcgcmVzb3VyY2VzIGZvciB0aGUgZ2l2ZW4gc3RhY2tcbiAgICpcbiAgICogVGhpcyBpcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIHRoZSBgQXBwU3RhZ2luZ1N5bnRoZXNpemVyYCBiaW5kcyB0byBhIHNwZWNpZmljXG4gICAqIHN0YWNrLCBhbmQgYWxsb3dzIHNlbGVjdGluZyB3aGVyZSB0aGUgc3RhZ2luZyByZXNvdXJjZXMgZ28uXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBjaG9vc2UgdG8gZWl0aGVyIGNyZWF0ZSBhIG5ldyBjb25zdHJ1Y3QgKHBlcmhhcHMgYSBzdGFjaylcbiAgICogYW5kIHJldHVybiBpdCwgb3IgcmVmZXJlbmNlIGFuIGV4aXN0aW5nIGNvbnN0cnVjdC5cbiAgICpcbiAgICogQHBhcmFtIHN0YWNrIC0gc3RhY2sgdG8gcmV0dXJuIGFuIGFwcHJvcHJpYXRlIElTdGFnaW5nU3RhY2sgZm9yXG4gICAqL1xuICBvYnRhaW5TdGFnaW5nUmVzb3VyY2VzKHN0YWNrOiBTdGFjaywgY29udGV4dDogT2J0YWluU3RhZ2luZ1Jlc291cmNlc0NvbnRleHQpOiBJU3RhZ2luZ1Jlc291cmNlcztcbn1cblxuLyoqXG4gKiBDb250ZXh0IHBhcmFtZXRlcnMgZm9yIHRoZSAnb2J0YWluU3RhZ2luZ1Jlc291cmNlcycgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnRhaW5TdGFnaW5nUmVzb3VyY2VzQ29udGV4dCB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgZW52aXJvbm1lbnQgdGhhdCBpcyBndWFyYW50ZWVkIG5vdCB0byBoYXZlIHRva2VucyBpbiBpdFxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRTdHJpbmc6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZGVwbG95IGFjdGlvbiByb2xlLCBpZiBnaXZlblxuICAgKlxuICAgKiBUaGlzIHJvbGUgd2lsbCBuZWVkIHBlcm1pc3Npb25zIHRvIHJlYWQgZnJvbSB0byB0aGUgc3RhZ2luZyByZXNvdXJjZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVwbG95IHJvbGUgQVJOIGlzIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveVJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgcGFzc2VkIHRvIHRoZSBzeW50aGVzaXplclxuICAgKlxuICAgKiBUaGUgc3RhZ2luZyBzdGFjayBzaG91bGRuJ3QgbmVlZCB0aGlzLCBidXQgaXQgbWlnaHQuXG4gICAqL1xuICByZWFkb25seSBxdWFsaWZpZXI6IHN0cmluZztcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/app-staging-synthesizer-alpha",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.239.0-alpha.0",
|
|
5
5
|
"description": "Cdk synthesizer for with app-scoped staging stack",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -89,16 +89,16 @@
|
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"aws-cdk-lib": "2.
|
|
93
|
-
"@aws-cdk/integ-runner": "^2.
|
|
94
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
95
|
-
"constructs": "^10.
|
|
96
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
97
|
-
"@aws-cdk/pkglint": "2.
|
|
92
|
+
"aws-cdk-lib": "2.239.0",
|
|
93
|
+
"@aws-cdk/integ-runner": "^2.195.0",
|
|
94
|
+
"@aws-cdk/integ-tests-alpha": "2.239.0-alpha.0",
|
|
95
|
+
"constructs": "^10.5.0",
|
|
96
|
+
"@aws-cdk/cdk-build-tools": "2.239.0-alpha.0",
|
|
97
|
+
"@aws-cdk/pkglint": "2.239.0-alpha.0"
|
|
98
98
|
},
|
|
99
99
|
"peerDependencies": {
|
|
100
|
-
"aws-cdk-lib": "^2.
|
|
101
|
-
"constructs": "^10.
|
|
100
|
+
"aws-cdk-lib": "^2.239.0",
|
|
101
|
+
"constructs": "^10.5.0"
|
|
102
102
|
},
|
|
103
103
|
"publishConfig": {
|
|
104
104
|
"tag": "latest"
|