aws-delivlib 13.2.2 → 13.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/cdk.out/{asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a → asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20}/create-release.js +1 -1
  2. package/cdk.out/{asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a → asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20}/package-lock.json +0 -0
  3. package/cdk.out/{asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a → asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20}/package.json +0 -0
  4. package/cdk.out/{asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a → asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20}/publish.sh +0 -0
  5. package/cdk.out/{asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a → asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20}/sign-files.sh +0 -0
  6. package/cdk.out/{asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a → asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20}/with-signing-key.sh +0 -0
  7. package/cdk.out/delivlib-test.assets.json +5 -5
  8. package/cdk.out/delivlib-test.template.json +1 -1
  9. package/cdk.out/manifest.json +43 -43
  10. package/cdk.out/tree.json +1 -1
  11. package/lib/__tests__/publishing.test.d.ts +1 -0
  12. package/lib/__tests__/publishing.test.js +53 -0
  13. package/lib/__tests__/registry-sync/mirror-source.test.js +16 -7
  14. package/lib/publishing/github/create-release.js +1 -1
  15. package/lib/publishing.d.ts +16 -0
  16. package/lib/publishing.js +5 -3
  17. package/lib/publishing.ts +20 -2
  18. package/lib/registry-sync/mirror-source.js +7 -4
  19. package/lib/registry-sync/mirror-source.ts +7 -3
  20. package/package.json +1 -1
@@ -37,7 +37,7 @@ async function read_release_notes() {
37
37
  return undefined;
38
38
  }
39
39
 
40
- return fs.readFile(release_notes_file, 'utf8');
40
+ return readFile(release_notes_file, { encoding: 'utf8' });
41
41
  }
42
42
 
43
43
  async function read_changelog(version) {
@@ -169,15 +169,15 @@
169
169
  }
170
170
  }
171
171
  },
172
- "168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a": {
172
+ "e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20": {
173
173
  "source": {
174
- "path": "asset.168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a",
174
+ "path": "asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20",
175
175
  "packaging": "zip"
176
176
  },
177
177
  "destinations": {
178
178
  "712950704752-us-east-1": {
179
179
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
180
- "objectKey": "168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a.zip",
180
+ "objectKey": "e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20.zip",
181
181
  "region": "us-east-1",
182
182
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
183
183
  }
@@ -239,7 +239,7 @@
239
239
  }
240
240
  }
241
241
  },
242
- "9d3dbcea3df7214662dc468c8f768914f6c671ab0fbf1f3b5bda1381c7b3cf8a": {
242
+ "be29cdaf588178f8ab91cfb4d2bdbc07db6359f76d7a75565e854775e7de94c6": {
243
243
  "source": {
244
244
  "path": "delivlib-test.template.json",
245
245
  "packaging": "file"
@@ -247,7 +247,7 @@
247
247
  "destinations": {
248
248
  "712950704752-us-east-1": {
249
249
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
250
- "objectKey": "9d3dbcea3df7214662dc468c8f768914f6c671ab0fbf1f3b5bda1381c7b3cf8a.json",
250
+ "objectKey": "be29cdaf588178f8ab91cfb4d2bdbc07db6359f76d7a75565e854775e7de94c6.json",
251
251
  "region": "us-east-1",
252
252
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
253
253
  }
@@ -5207,7 +5207,7 @@
5207
5207
  {
5208
5208
  "Name": "SCRIPT_S3_KEY",
5209
5209
  "Type": "PLAINTEXT",
5210
- "Value": "168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a.zip"
5210
+ "Value": "e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20.zip"
5211
5211
  },
5212
5212
  {
5213
5213
  "Name": "BUILD_MANIFEST",
@@ -23,7 +23,7 @@
23
23
  "validateOnSynth": false,
24
24
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-deploy-role-712950704752-us-east-1",
25
25
  "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-cfn-exec-role-712950704752-us-east-1",
26
- "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-712950704752-us-east-1/9d3dbcea3df7214662dc468c8f768914f6c671ab0fbf1f3b5bda1381c7b3cf8a.json",
26
+ "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-712950704752-us-east-1/be29cdaf588178f8ab91cfb4d2bdbc07db6359f76d7a75565e854775e7de94c6.json",
27
27
  "requiresBootstrapStackVersion": 6,
28
28
  "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
29
29
  "additionalDependencies": [
@@ -440,7 +440,7 @@
440
440
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
441
441
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
442
442
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
443
- "PublishToNpmProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:86:15)",
443
+ "PublishToNpmProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:87:15)",
444
444
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
445
445
  "Pipeline.publishToNpm (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:135:14)",
446
446
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:91:18)",
@@ -468,7 +468,7 @@
468
468
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
469
469
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
470
470
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
471
- "PublishToNpmProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:86:15)",
471
+ "PublishToNpmProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:87:15)",
472
472
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
473
473
  "Pipeline.publishToNpm (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:135:14)",
474
474
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:91:18)",
@@ -492,7 +492,7 @@
492
492
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
493
493
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
494
494
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
495
- "PublishToNuGetProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:138:15)",
495
+ "PublishToNuGetProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:140:15)",
496
496
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
497
497
  "Pipeline.publishToNuGet (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:147:14)",
498
498
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:108:18)",
@@ -520,7 +520,7 @@
520
520
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
521
521
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
522
522
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
523
- "PublishToNuGetProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:138:15)",
523
+ "PublishToNuGetProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:140:15)",
524
524
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
525
525
  "Pipeline.publishToNuGet (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:147:14)",
526
526
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:108:18)",
@@ -544,7 +544,7 @@
544
544
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
545
545
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
546
546
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
547
- "PublishToMavenProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:50:15)",
547
+ "PublishToMavenProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:51:15)",
548
548
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
549
549
  "Pipeline.publishToMaven (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:141:14)",
550
550
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:123:18)",
@@ -572,7 +572,7 @@
572
572
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
573
573
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
574
574
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
575
- "PublishToMavenProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:50:15)",
575
+ "PublishToMavenProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:51:15)",
576
576
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
577
577
  "Pipeline.publishToMaven (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:141:14)",
578
578
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:123:18)",
@@ -596,7 +596,7 @@
596
596
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
597
597
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
598
598
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
599
- "PublishToGitHub.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:222:15)",
599
+ "PublishToGitHub.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:224:15)",
600
600
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
601
601
  "Pipeline.publishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:159:14)",
602
602
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:129:18)",
@@ -624,7 +624,7 @@
624
624
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
625
625
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
626
626
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
627
- "PublishToGitHub.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:222:15)",
627
+ "PublishToGitHub.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:224:15)",
628
628
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
629
629
  "Pipeline.publishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:159:14)",
630
630
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:129:18)",
@@ -648,7 +648,7 @@
648
648
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
649
649
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
650
650
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
651
- "PublishDocsToGitHubProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:176:15)",
651
+ "PublishDocsToGitHubProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:178:15)",
652
652
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
653
653
  "Pipeline.publishToGitHubPages (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:153:14)",
654
654
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:134:18)",
@@ -676,7 +676,7 @@
676
676
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
677
677
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
678
678
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
679
- "PublishDocsToGitHubProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:176:15)",
679
+ "PublishDocsToGitHubProject.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:178:15)",
680
680
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
681
681
  "Pipeline.publishToGitHubPages (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:153:14)",
682
682
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:134:18)",
@@ -700,7 +700,7 @@
700
700
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
701
701
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
702
702
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
703
- "PublishToPyPi.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:283:15)",
703
+ "PublishToPyPi.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:285:15)",
704
704
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
705
705
  "Pipeline.publishToPyPI (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:165:14)",
706
706
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:137:18)",
@@ -728,7 +728,7 @@
728
728
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
729
729
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
730
730
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
731
- "PublishToPyPi.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:283:15)",
731
+ "PublishToPyPi.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:285:15)",
732
732
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
733
733
  "Pipeline.publishToPyPI (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:165:14)",
734
734
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:137:18)",
@@ -752,7 +752,7 @@
752
752
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:339:33)",
753
753
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
754
754
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
755
- "PublishToGolang.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:321:15)",
755
+ "PublishToGolang.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:323:15)",
756
756
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
757
757
  "Pipeline.publishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:180:14)",
758
758
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:142:18)",
@@ -780,7 +780,7 @@
780
780
  "Pipeline._attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:343:41)",
781
781
  "Stage.attachActionToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:124:31)",
782
782
  "Stage.addAction (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/private/stage.js:71:33)",
783
- "PublishToGolang.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:321:15)",
783
+ "PublishToGolang.addToPipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:323:15)",
784
784
  "Pipeline.addPublish (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:115:19)",
785
785
  "Pipeline.publishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:180:14)",
786
786
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:142:18)",
@@ -1626,7 +1626,7 @@
1626
1626
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
1627
1627
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
1628
1628
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1629
- "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:68:27)",
1629
+ "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:69:27)",
1630
1630
  "Pipeline.publishToNpm (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:135:25)",
1631
1631
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:91:18)",
1632
1632
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1649,7 +1649,7 @@
1649
1649
  "Project.addToRolePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:60:23)",
1650
1650
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:396:14)",
1651
1651
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1652
- "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:68:27)",
1652
+ "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:69:27)",
1653
1653
  "Pipeline.publishToNpm (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:135:25)",
1654
1654
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:91:18)",
1655
1655
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1669,7 +1669,7 @@
1669
1669
  "trace": [
1670
1670
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
1671
1671
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1672
- "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:68:27)",
1672
+ "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:69:27)",
1673
1673
  "Pipeline.publishToNpm (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:135:25)",
1674
1674
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:91:18)",
1675
1675
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1689,7 +1689,7 @@
1689
1689
  "trace": [
1690
1690
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
1691
1691
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
1692
- "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:68:27)",
1692
+ "new PublishToNpmProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:69:27)",
1693
1693
  "Pipeline.publishToNpm (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:135:25)",
1694
1694
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:91:18)",
1695
1695
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1710,7 +1710,7 @@
1710
1710
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
1711
1711
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
1712
1712
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1713
- "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:117:27)",
1713
+ "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:119:27)",
1714
1714
  "Pipeline.publishToNuGet (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:147:25)",
1715
1715
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:108:18)",
1716
1716
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1733,7 +1733,7 @@
1733
1733
  "Project.addToRolePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:60:23)",
1734
1734
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:396:14)",
1735
1735
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1736
- "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:117:27)",
1736
+ "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:119:27)",
1737
1737
  "Pipeline.publishToNuGet (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:147:25)",
1738
1738
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:108:18)",
1739
1739
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1753,7 +1753,7 @@
1753
1753
  "trace": [
1754
1754
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
1755
1755
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1756
- "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:117:27)",
1756
+ "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:119:27)",
1757
1757
  "Pipeline.publishToNuGet (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:147:25)",
1758
1758
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:108:18)",
1759
1759
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1773,7 +1773,7 @@
1773
1773
  "trace": [
1774
1774
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
1775
1775
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
1776
- "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:117:27)",
1776
+ "new PublishToNuGetProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:119:27)",
1777
1777
  "Pipeline.publishToNuGet (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:147:25)",
1778
1778
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:108:18)",
1779
1779
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1794,7 +1794,7 @@
1794
1794
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
1795
1795
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
1796
1796
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1797
- "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:30:27)",
1797
+ "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:31:27)",
1798
1798
  "Pipeline.publishToMaven (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:141:25)",
1799
1799
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:123:18)",
1800
1800
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1817,7 +1817,7 @@
1817
1817
  "Project.addToRolePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:60:23)",
1818
1818
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:396:14)",
1819
1819
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1820
- "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:30:27)",
1820
+ "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:31:27)",
1821
1821
  "Pipeline.publishToMaven (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:141:25)",
1822
1822
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:123:18)",
1823
1823
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1837,7 +1837,7 @@
1837
1837
  "trace": [
1838
1838
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
1839
1839
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1840
- "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:30:27)",
1840
+ "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:31:27)",
1841
1841
  "Pipeline.publishToMaven (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:141:25)",
1842
1842
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:123:18)",
1843
1843
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1857,7 +1857,7 @@
1857
1857
  "trace": [
1858
1858
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
1859
1859
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
1860
- "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:30:27)",
1860
+ "new PublishToMavenProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:31:27)",
1861
1861
  "Pipeline.publishToMaven (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:141:25)",
1862
1862
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:123:18)",
1863
1863
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1878,7 +1878,7 @@
1878
1878
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
1879
1879
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
1880
1880
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1881
- "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:194:27)",
1881
+ "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:196:27)",
1882
1882
  "Pipeline.publishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:159:25)",
1883
1883
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:129:18)",
1884
1884
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1902,7 +1902,7 @@
1902
1902
  "Project.renderEnvironment (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:819:27)",
1903
1903
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:361:31)",
1904
1904
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1905
- "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:194:27)",
1905
+ "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:196:27)",
1906
1906
  "Pipeline.publishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:159:25)",
1907
1907
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:129:18)",
1908
1908
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1922,7 +1922,7 @@
1922
1922
  "trace": [
1923
1923
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
1924
1924
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1925
- "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:194:27)",
1925
+ "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:196:27)",
1926
1926
  "Pipeline.publishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:159:25)",
1927
1927
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:129:18)",
1928
1928
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1942,7 +1942,7 @@
1942
1942
  "trace": [
1943
1943
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
1944
1944
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
1945
- "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:194:27)",
1945
+ "new PublishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:196:27)",
1946
1946
  "Pipeline.publishToGitHub (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:159:25)",
1947
1947
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:129:18)",
1948
1948
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1963,7 +1963,7 @@
1963
1963
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
1964
1964
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
1965
1965
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1966
- "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:154:27)",
1966
+ "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:156:27)",
1967
1967
  "Pipeline.publishToGitHubPages (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:153:25)",
1968
1968
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:134:18)",
1969
1969
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -1986,7 +1986,7 @@
1986
1986
  "Project.addToRolePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:60:23)",
1987
1987
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:396:14)",
1988
1988
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
1989
- "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:154:27)",
1989
+ "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:156:27)",
1990
1990
  "Pipeline.publishToGitHubPages (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:153:25)",
1991
1991
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:134:18)",
1992
1992
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2006,7 +2006,7 @@
2006
2006
  "trace": [
2007
2007
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
2008
2008
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2009
- "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:154:27)",
2009
+ "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:156:27)",
2010
2010
  "Pipeline.publishToGitHubPages (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:153:25)",
2011
2011
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:134:18)",
2012
2012
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2026,7 +2026,7 @@
2026
2026
  "trace": [
2027
2027
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
2028
2028
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
2029
- "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:154:27)",
2029
+ "new PublishDocsToGitHubProject (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:156:27)",
2030
2030
  "Pipeline.publishToGitHubPages (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:153:25)",
2031
2031
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:134:18)",
2032
2032
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2047,7 +2047,7 @@
2047
2047
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
2048
2048
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
2049
2049
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2050
- "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:267:27)",
2050
+ "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:269:27)",
2051
2051
  "Pipeline.publishToPyPI (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:165:25)",
2052
2052
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:137:18)",
2053
2053
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2070,7 +2070,7 @@
2070
2070
  "Project.addToRolePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:60:23)",
2071
2071
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:396:14)",
2072
2072
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2073
- "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:267:27)",
2073
+ "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:269:27)",
2074
2074
  "Pipeline.publishToPyPI (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:165:25)",
2075
2075
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:137:18)",
2076
2076
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2090,7 +2090,7 @@
2090
2090
  "trace": [
2091
2091
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
2092
2092
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2093
- "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:267:27)",
2093
+ "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:269:27)",
2094
2094
  "Pipeline.publishToPyPI (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:165:25)",
2095
2095
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:137:18)",
2096
2096
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2110,7 +2110,7 @@
2110
2110
  "trace": [
2111
2111
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
2112
2112
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
2113
- "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:267:27)",
2113
+ "new PublishToPyPi (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:269:27)",
2114
2114
  "Pipeline.publishToPyPI (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:165:25)",
2115
2115
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:137:18)",
2116
2116
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2131,7 +2131,7 @@
2131
2131
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:72:22)",
2132
2132
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:311:35)",
2133
2133
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2134
- "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:300:27)",
2134
+ "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:302:27)",
2135
2135
  "Pipeline.publishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:180:25)",
2136
2136
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:142:18)",
2137
2137
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2154,7 +2154,7 @@
2154
2154
  "Project.addToRolePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:60:23)",
2155
2155
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:396:14)",
2156
2156
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2157
- "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:300:27)",
2157
+ "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:302:27)",
2158
2158
  "Pipeline.publishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:180:25)",
2159
2159
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:142:18)",
2160
2160
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2174,7 +2174,7 @@
2174
2174
  "trace": [
2175
2175
  "new Project (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codebuild/lib/project.js:353:26)",
2176
2176
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:45:24)",
2177
- "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:300:27)",
2177
+ "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:302:27)",
2178
2178
  "Pipeline.publishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:180:25)",
2179
2179
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:142:18)",
2180
2180
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
@@ -2194,7 +2194,7 @@
2194
2194
  "trace": [
2195
2195
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:74:23)",
2196
2196
  "new Shellable (/home/runner/work/aws-delivlib/aws-delivlib/lib/shellable.js:81:22)",
2197
- "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:300:27)",
2197
+ "new PublishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/publishing.js:302:27)",
2198
2198
  "Pipeline.publishToGolang (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:180:25)",
2199
2199
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:142:18)",
2200
2200
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:10:1)",
package/cdk.out/tree.json CHANGED
@@ -7148,7 +7148,7 @@
7148
7148
  {
7149
7149
  "name": "SCRIPT_S3_KEY",
7150
7150
  "type": "PLAINTEXT",
7151
- "value": "168799fb36a5c07de842b73d47e38fc33983aadeec36fca33b73cdc9388dce6a.zip"
7151
+ "value": "e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20.zip"
7152
7152
  },
7153
7153
  {
7154
7154
  "name": "BUILD_MANIFEST",
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert_1 = require("@monocdk-experiment/assert");
4
+ const monocdk_1 = require("monocdk");
5
+ const delivlib = require("../../lib");
6
+ describe('with standard pipeline', () => {
7
+ let stack;
8
+ let pipeline;
9
+ beforeEach(() => {
10
+ stack = new monocdk_1.Stack(new monocdk_1.App(), 'TestStack');
11
+ pipeline = new delivlib.Pipeline(stack, 'Pipeline', {
12
+ repo: new delivlib.CodeCommitRepo(new monocdk_1.aws_codecommit.Repository(stack, 'Repo', { repositoryName: 'test' })),
13
+ pipelineName: 'HelloPipeline',
14
+ });
15
+ });
16
+ test('can configure build image for NuGet publishing', () => {
17
+ pipeline.publishToNuGet({
18
+ nugetApiKeySecret: { secretArn: 'arn:aws:secretsmanager:us-east-1:712950704752:secret:delivlib/nuget-fHzSUD' },
19
+ buildImage: monocdk_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('xyz'),
20
+ });
21
+ (0, assert_1.expect)(stack).to((0, assert_1.haveResourceLike)('AWS::CodeBuild::Project', {
22
+ Environment: {
23
+ Image: 'xyz',
24
+ },
25
+ }));
26
+ });
27
+ test('can configure build image for Maven publishing', () => {
28
+ const signingKey = new delivlib.OpenPGPKeyPair(stack, 'CodeSign', {
29
+ email: 'aws-cdk-dev+delivlib@amazon.com',
30
+ encryptionKey: new monocdk_1.aws_kms.Key(stack, 'CodeSign-CMK'),
31
+ expiry: '4y',
32
+ identity: 'aws-cdk-dev',
33
+ keySizeBits: 4096,
34
+ pubKeyParameterName: `/${stack.node.path}/CodeSign.pub`,
35
+ secretName: stack.node.path + '/CodeSign',
36
+ version: 0,
37
+ removalPolicy: delivlib.OpenPGPKeyPairRemovalPolicy.DESTROY_IMMEDIATELY,
38
+ });
39
+ pipeline.publishToMaven({
40
+ mavenLoginSecret: { secretArn: 'arn:aws:secretsmanager:us-east-1:712950704752:secret:delivlib/maven-7ROCWi' },
41
+ mavenEndpoint: 'https://aws.oss.sonatype.org:443/',
42
+ signingKey,
43
+ stagingProfileId: '68a05363083174',
44
+ buildImage: monocdk_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('xyz'),
45
+ });
46
+ (0, assert_1.expect)(stack).to((0, assert_1.haveResourceLike)('AWS::CodeBuild::Project', {
47
+ Environment: {
48
+ Image: 'xyz',
49
+ },
50
+ }));
51
+ });
52
+ });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHVibGlzaGluZy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQW9GO0FBQ3BGLHFDQUtpQjtBQUNqQixzQ0FBc0M7QUFHdEMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxJQUFJLEtBQVksQ0FBQztJQUNqQixJQUFJLFFBQTJCLENBQUM7SUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJLGFBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUNsRCxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksd0JBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZHLFlBQVksRUFBRSxlQUFlO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3RCLGlCQUFpQixFQUFFLEVBQUUsU0FBUyxFQUFFLDRFQUE0RSxFQUFFO1lBQzlHLFVBQVUsRUFBRSx1QkFBUyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7U0FDaEUsQ0FBQyxDQUFDO1FBRUgsSUFBQSxlQUFVLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUEseUJBQWdCLEVBQUMseUJBQXlCLEVBQUU7WUFDL0QsV0FBVyxFQUFFO2dCQUNYLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsaUNBQWlDO1lBQ3hDLGFBQWEsRUFBRSxJQUFJLGlCQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7WUFDakQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsYUFBYTtZQUN2QixXQUFXLEVBQUUsSUFBSztZQUNsQixtQkFBbUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlO1lBQ3ZELFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXO1lBQ3pDLE9BQU8sRUFBRSxDQUFDO1lBQ1YsYUFBYSxFQUFFLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUI7U0FDeEUsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUN0QixnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSw0RUFBNEUsRUFBRTtZQUM3RyxhQUFhLEVBQUUsbUNBQW1DO1lBQ2xELFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsVUFBVSxFQUFFLHVCQUFTLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztTQUNoRSxDQUFDLENBQUM7UUFFSCxJQUFBLGVBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSx5QkFBZ0IsRUFBQyx5QkFBeUIsRUFBRTtZQUMvRCxXQUFXLEVBQUU7Z0JBQ1gsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4cGVjdCBhcyBjZGtfZXhwZWN0LCBoYXZlUmVzb3VyY2VMaWtlIH0gZnJvbSAnQG1vbm9jZGstZXhwZXJpbWVudC9hc3NlcnQnO1xuaW1wb3J0IHtcbiAgQXBwLCBTdGFjayxcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19jb2RlY29tbWl0IGFzIGNvZGVjb21taXQsXG4gIGF3c19rbXMgYXMga21zLFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCAqIGFzIGRlbGl2bGliIGZyb20gJy4uLy4uL2xpYic7XG5cblxuZGVzY3JpYmUoJ3dpdGggc3RhbmRhcmQgcGlwZWxpbmUnLCAoKSA9PiB7XG4gIGxldCBzdGFjazogU3RhY2s7XG4gIGxldCBwaXBlbGluZTogZGVsaXZsaWIuUGlwZWxpbmU7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHN0YWNrID0gbmV3IFN0YWNrKG5ldyBBcHAoKSwgJ1Rlc3RTdGFjaycpO1xuXG4gICAgcGlwZWxpbmUgPSBuZXcgZGVsaXZsaWIuUGlwZWxpbmUoc3RhY2ssICdQaXBlbGluZScsIHtcbiAgICAgIHJlcG86IG5ldyBkZWxpdmxpYi5Db2RlQ29tbWl0UmVwbyhuZXcgY29kZWNvbW1pdC5SZXBvc2l0b3J5KHN0YWNrLCAnUmVwbycsIHsgcmVwb3NpdG9yeU5hbWU6ICd0ZXN0JyB9KSksXG4gICAgICBwaXBlbGluZU5hbWU6ICdIZWxsb1BpcGVsaW5lJyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgdGVzdCgnY2FuIGNvbmZpZ3VyZSBidWlsZCBpbWFnZSBmb3IgTnVHZXQgcHVibGlzaGluZycsICgpID0+IHtcbiAgICBwaXBlbGluZS5wdWJsaXNoVG9OdUdldCh7XG4gICAgICBudWdldEFwaUtleVNlY3JldDogeyBzZWNyZXRBcm46ICdhcm46YXdzOnNlY3JldHNtYW5hZ2VyOnVzLWVhc3QtMTo3MTI5NTA3MDQ3NTI6c2VjcmV0OmRlbGl2bGliL251Z2V0LWZIelNVRCcgfSxcbiAgICAgIGJ1aWxkSW1hZ2U6IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KCd4eXonKSxcbiAgICB9KTtcblxuICAgIGNka19leHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZUxpa2UoJ0FXUzo6Q29kZUJ1aWxkOjpQcm9qZWN0Jywge1xuICAgICAgRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgSW1hZ2U6ICd4eXonLFxuICAgICAgfSxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIHRlc3QoJ2NhbiBjb25maWd1cmUgYnVpbGQgaW1hZ2UgZm9yIE1hdmVuIHB1Ymxpc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2lnbmluZ0tleSA9IG5ldyBkZWxpdmxpYi5PcGVuUEdQS2V5UGFpcihzdGFjaywgJ0NvZGVTaWduJywge1xuICAgICAgZW1haWw6ICdhd3MtY2RrLWRlditkZWxpdmxpYkBhbWF6b24uY29tJyxcbiAgICAgIGVuY3J5cHRpb25LZXk6IG5ldyBrbXMuS2V5KHN0YWNrLCAnQ29kZVNpZ24tQ01LJyksXG4gICAgICBleHBpcnk6ICc0eScsXG4gICAgICBpZGVudGl0eTogJ2F3cy1jZGstZGV2JyxcbiAgICAgIGtleVNpemVCaXRzOiA0XzA5NixcbiAgICAgIHB1YktleVBhcmFtZXRlck5hbWU6IGAvJHtzdGFjay5ub2RlLnBhdGh9L0NvZGVTaWduLnB1YmAsXG4gICAgICBzZWNyZXROYW1lOiBzdGFjay5ub2RlLnBhdGggKyAnL0NvZGVTaWduJyxcbiAgICAgIHZlcnNpb246IDAsXG4gICAgICByZW1vdmFsUG9saWN5OiBkZWxpdmxpYi5PcGVuUEdQS2V5UGFpclJlbW92YWxQb2xpY3kuREVTVFJPWV9JTU1FRElBVEVMWSxcbiAgICB9KTtcblxuICAgIHBpcGVsaW5lLnB1Ymxpc2hUb01hdmVuKHtcbiAgICAgIG1hdmVuTG9naW5TZWNyZXQ6IHsgc2VjcmV0QXJuOiAnYXJuOmF3czpzZWNyZXRzbWFuYWdlcjp1cy1lYXN0LTE6NzEyOTUwNzA0NzUyOnNlY3JldDpkZWxpdmxpYi9tYXZlbi03Uk9DV2knIH0sXG4gICAgICBtYXZlbkVuZHBvaW50OiAnaHR0cHM6Ly9hd3Mub3NzLnNvbmF0eXBlLm9yZzo0NDMvJyxcbiAgICAgIHNpZ25pbmdLZXksXG4gICAgICBzdGFnaW5nUHJvZmlsZUlkOiAnNjhhMDUzNjMwODMxNzQnLFxuICAgICAgYnVpbGRJbWFnZTogY29kZWJ1aWxkLkxpbnV4QnVpbGRJbWFnZS5mcm9tRG9ja2VyUmVnaXN0cnkoJ3h5eicpLFxuICAgIH0pO1xuXG4gICAgY2RrX2V4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlTGlrZSgnQVdTOjpDb2RlQnVpbGQ6OlByb2plY3QnLCB7XG4gICAgICBFbnZpcm9ubWVudDoge1xuICAgICAgICBJbWFnZTogJ3h5eicsXG4gICAgICB9LFxuICAgIH0pKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -78,9 +78,9 @@ describe('RegistryImageSource', () => {
78
78
  // THEN
79
79
  expect(result.repositoryName).toEqual('myrepository');
80
80
  expect(result.tag).toEqual('latest');
81
- const cmds = result.commands;
82
- expect(cmds.shift()).toMatch(/aws s3 cp s3:.* myrepository.zip/);
83
- expect(cmds).toEqual([
81
+ expect(result.commands).toEqual([
82
+ 'rm -rf myrepository.zip myrepository',
83
+ expect.stringMatching(/aws s3 cp s3:.* myrepository.zip/),
84
84
  'unzip myrepository.zip -d myrepository',
85
85
  'docker build --pull -t myregistry/myrepository:latest myrepository',
86
86
  ]);
@@ -98,7 +98,12 @@ describe('RegistryImageSource', () => {
98
98
  // THEN
99
99
  expect(result.repositoryName).toEqual('myrepository');
100
100
  expect(result.tag).toEqual('mytag');
101
- expect(result.commands[2]).toEqual('docker build --pull -t myregistry/myrepository:mytag myrepository');
101
+ expect(result.commands).toEqual([
102
+ 'rm -rf myrepository.zip myrepository',
103
+ expect.stringMatching(/aws s3 cp s3:.* myrepository.zip/),
104
+ 'unzip myrepository.zip -d myrepository',
105
+ 'docker build --pull -t myregistry/myrepository:mytag myrepository',
106
+ ]);
102
107
  });
103
108
  test('syncJob is given permission to s3 asset', () => {
104
109
  // GIVEN
@@ -173,8 +178,12 @@ describe('RegistryImageSource', () => {
173
178
  syncJob,
174
179
  });
175
180
  // THEN
176
- const expected = 'docker build --pull -t myregistry/myrepository:latest --build-arg arg1=val1 --build-arg arg2=val2 myrepository';
177
- expect(result.commands[2]).toEqual(expected);
181
+ expect(result.commands).toEqual([
182
+ 'rm -rf myrepository.zip myrepository',
183
+ expect.stringMatching(/aws s3 cp s3:.* myrepository.zip/),
184
+ 'unzip myrepository.zip -d myrepository',
185
+ 'docker build --pull -t myregistry/myrepository:latest --build-arg arg1=val1 --build-arg arg2=val2 myrepository',
186
+ ]);
178
187
  });
179
188
  test('can bind the same directory twice if they have different build args', () => {
180
189
  // GIVEN
@@ -194,4 +203,4 @@ describe('RegistryImageSource', () => {
194
203
  });
195
204
  });
196
205
  });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWlycm9yLXNvdXJjZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXlDO0FBQ3pDLDZCQUE2QjtBQUM3Qix1REFBdUQ7QUFDdkQscUNBR2lCO0FBQ2pCLDhEQUEwRDtBQUUxRCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQ25DLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDL0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDbkIsUUFBUTtZQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLDRCQUFZLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFN0QsT0FBTztZQUNQLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFdBQVc7YUFDWixDQUFDLENBQUM7WUFFSCxPQUFPO1lBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDOUIsb0NBQW9DO2dCQUNwQyxxRUFBcUU7YUFDdEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUN4QixRQUFRO1lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFLLEVBQUUsQ0FBQztZQUMxQixNQUFNLFdBQVcsR0FB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TyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBRTVDLHVCQUF1QjtRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0Btb25vY2RrLWV4cGVyaW1lbnQvYXNzZXJ0L2plc3QnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGFycmF5V2l0aCB9IGZyb20gJ0Btb25vY2RrLWV4cGVyaW1lbnQvYXNzZXJ0JztcbmltcG9ydCB7XG4gIFN0YWNrLFxuICBhd3NfY29kZWJ1aWxkIGFzIGNvZGVidWlsZCxcbn0gZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBNaXJyb3JTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9saWIvcmVnaXN0cnktc3luYyc7XG5cbmRlc2NyaWJlKCdSZWdpc3RyeUltYWdlU291cmNlJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZnJvbURvY2tlckh1YigpJywgKCkgPT4ge1xuICAgIHRlc3QoJ2RlZmF1bHQnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gJ215cmVnaXN0cnknO1xuICAgICAgY29uc3Qgc291cmNlID0gTWlycm9yU291cmNlLmZyb21Eb2NrZXJIdWIoJ2pzaWkvc3VwZXJjaGFpbicpO1xuXG4gICAgICAvLyBXSEVOXG4gICAgICBjb25zdCByZXN1bHQgPSBzb3VyY2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiBzdGFjayxcbiAgICAgICAgZWNyUmVnaXN0cnksXG4gICAgICB9KTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KHJlc3VsdC5yZXBvc2l0b3J5TmFtZSkudG9FcXVhbCgnanNpaS9zdXBlcmNoYWluJyk7XG4gICAgICBleHBlY3QocmVzdWx0LnRhZykudG9FcXVhbCgnbGF0ZXN0Jyk7XG4gICAgICBleHBlY3QocmVzdWx0LmNvbW1hbmRzKS50b0VxdWFsKFtcbiAgICAgICAgJ2RvY2tlciBwdWxsIGpzaWkvc3VwZXJjaGFpbjpsYXRlc3QnLFxuICAgICAgICAnZG9ja2VyIHRhZyBqc2lpL3N1cGVyY2hhaW46bGF0ZXN0IG15cmVnaXN0cnkvanNpaS9zdXBlcmNoYWluOmxhdGVzdCcsXG4gICAgICBdKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2V4cGxpY2l0IHRhZycsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UgPSBNaXJyb3JTb3VyY2UuZnJvbURvY2tlckh1YignanNpaS9zdXBlcmNoYWluJywgJ215dGFnJyk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5iaW5kKHtcbiAgICAgICAgc2NvcGU6IHN0YWNrLFxuICAgICAgICBlY3JSZWdpc3RyeSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBleHBlY3QocmVzdWx0LnJlcG9zaXRvcnlOYW1lKS50b0VxdWFsKCdqc2lpL3N1cGVyY2hhaW4nKTtcbiAgICAgIGV4cGVjdChyZXN1bHQudGFnKS50b0VxdWFsKCdteXRhZycpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5jb21tYW5kcykudG9FcXVhbChbXG4gICAgICAgICdkb2NrZXIgcHVsbCBqc2lpL3N1cGVyY2hhaW46bXl0YWcnLFxuICAgICAgICAnZG9ja2VyIHRhZyBqc2lpL3N1cGVyY2hhaW46bXl0YWcgbXlyZWdpc3RyeS9qc2lpL3N1cGVyY2hhaW46bXl0YWcnLFxuICAgICAgXSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdvZmZpY2lhbCBpbWFnZScsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UgPSBNaXJyb3JTb3VyY2UuZnJvbURvY2tlckh1Yignc3VwZXJjaGFpbicpO1xuXG4gICAgICAvLyBXSEVOXG4gICAgICBjb25zdCByZXN1bHQgPSBzb3VyY2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiBzdGFjayxcbiAgICAgICAgZWNyUmVnaXN0cnksXG4gICAgICB9KTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KHJlc3VsdC5yZXBvc2l0b3J5TmFtZSkudG9FcXVhbCgnbGlicmFyeS9zdXBlcmNoYWluJyk7XG4gICAgICBleHBlY3QocmVzdWx0LmNvbW1hbmRzKS50b0VxdWFsKFtcbiAgICAgICAgJ2RvY2tlciBwdWxsIGxpYnJhcnkvc3VwZXJjaGFpbjpsYXRlc3QnLFxuICAgICAgICAnZG9ja2VyIHRhZyBsaWJyYXJ5L3N1cGVyY2hhaW46bGF0ZXN0IG15cmVnaXN0cnkvbGlicmFyeS9zdXBlcmNoYWluOmxhdGVzdCcsXG4gICAgICBdKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2ZhaWxzIGlmIGltYWdlIGluY2x1ZGVzIHRhZycsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiBNaXJyb3JTb3VyY2UuZnJvbURvY2tlckh1Yignc3VwZXJjaGFpbjpsYXRlc3QnKSkudG9UaHJvdygvaW1hZ2UgbXVzdCBub3QgaW5jbHVkZSB0YWcvKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Zyb21EaXJlY3RvcnkoKScsICgpID0+IHtcbiAgICB0ZXN0KCdkZWZhdWx0JywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gICAgICBjb25zdCBlY3JSZWdpc3RyeSA9ICdteXJlZ2lzdHJ5JztcbiAgICAgIGNvbnN0IHNvdXJjZSA9IE1pcnJvclNvdXJjZS5mcm9tRGlyZWN0b3J5KHBhdGguam9pbihfX2Rpcm5hbWUsICdkb2NrZXItYXNzZXQnKSwgJ215cmVwb3NpdG9yeScpO1xuXG4gICAgICAvLyBXSEVOXG4gICAgICBjb25zdCByZXN1bHQgPSBzb3VyY2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiBzdGFjayxcbiAgICAgICAgZWNyUmVnaXN0cnksXG4gICAgICB9KTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KHJlc3VsdC5yZXBvc2l0b3J5TmFtZSkudG9FcXVhbCgnbXlyZXBvc2l0b3J5Jyk7XG4gICAgICBleHBlY3QocmVzdWx0LnRhZykudG9FcXVhbCgnbGF0ZXN0Jyk7XG4gICAgICBjb25zdCBjbWRzID0gcmVzdWx0LmNvbW1hbmRzO1xuICAgICAgZXhwZWN0KGNtZHMuc2hpZnQoKSkudG9NYXRjaCgvYXdzIHMzIGNwIHMzOi4qIG15cmVwb3NpdG9yeS56aXAvKTtcbiAgICAgIGV4cGVjdChjbWRzKS50b0VxdWFsKFtcbiAgICAgICAgJ3VuemlwIG15cmVwb3NpdG9yeS56aXAgLWQgbXlyZXBvc2l0b3J5JyxcbiAgICAgICAgJ2RvY2tlciBidWlsZCAtLXB1bGwgLXQgbXlyZWdpc3RyeS9teXJlcG9zaXRvcnk6bGF0ZXN0IG15cmVwb3NpdG9yeScsXG4gICAgICBdKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2V4cGxpY2l0IHRhZycsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UgPSBNaXJyb3JTb3VyY2UuZnJvbURpcmVjdG9yeShwYXRoLmpvaW4oX19kaXJuYW1lLCAnZG9ja2VyLWFzc2V0JyksICdteXJlcG9zaXRvcnknLCAnbXl0YWcnKTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgY29uc3QgcmVzdWx0ID0gc291cmNlLmJpbmQoe1xuICAgICAgICBzY29wZTogc3RhY2ssXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChyZXN1bHQucmVwb3NpdG9yeU5hbWUpLnRvRXF1YWwoJ215cmVwb3NpdG9yeScpO1xuICAgICAgZXhwZWN0KHJlc3VsdC50YWcpLnRvRXF1YWwoJ215dGFnJyk7XG4gICAgICBleHBlY3QocmVzdWx0LmNvbW1hbmRzWzJdKS50b0VxdWFsKCdkb2NrZXIgYnVpbGQgLS1wdWxsIC10IG15cmVnaXN0cnkvbXlyZXBvc2l0b3J5Om15dGFnIG15cmVwb3NpdG9yeScpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnc3luY0pvYiBpcyBnaXZlbiBwZXJtaXNzaW9uIHRvIHMzIGFzc2V0JywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gICAgICBjb25zdCBlY3JSZWdpc3RyeSA9ICdteXJlZ2lzdHJ5JztcbiAgICAgIGNvbnN0IHNvdXJjZSA9IE1pcnJvclNvdXJjZS5mcm9tRGlyZWN0b3J5KHBhdGguam9pbihfX2Rpcm5hbWUsICdkb2NrZXItYXNzZXQnKSwgJ215cmVwb3NpdG9yeScpO1xuICAgICAgY29uc3Qgc3luY0pvYiA9IG5ldyBjb2RlYnVpbGQuUHJvamVjdChzdGFjaywgJ1N5bmNKb2InLCB7XG4gICAgICAgIGJ1aWxkU3BlYzogY29kZWJ1aWxkLkJ1aWxkU3BlYy5mcm9tT2JqZWN0KHt9KSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBXSEVOXG4gICAgICBzb3VyY2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiBzdGFjayxcbiAgICAgICAgZWNyUmVnaXN0cnksXG4gICAgICAgIHN5bmNKb2IsXG4gICAgICB9KTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZUxpa2UoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICAgICAgU3RhdGVtZW50OiBhcnJheVdpdGgoe1xuICAgICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAgICdzMzpHZXRPYmplY3QqJyxcbiAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldConLFxuICAgICAgICAgICAgICAnczM6TGlzdConLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgJ2FybjonLCB7IFJlZjogJ0FXUzo6UGFydGl0aW9uJyB9LCAnOnMzOjo6JyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIFJlZjogJ0Fzc2V0UGFyYW1ldGVyc2U4ZDljYjFjMDEwM2RiZjUwNDMyN2FhY2ZlNmFkYWFhYTA3NDkwMTQyNDZiZjExMTEwYjkwYWNlOWU1ZWUxYzhTM0J1Y2tldEFCQUY5QzBDJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAnYXJuOicsIHsgUmVmOiAnQVdTOjpQYXJ0aXRpb24nIH0sICc6czM6OjonLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgUmVmOiAnQXNzZXRQYXJhbWV0ZXJzZThkOWNiMWMwMTAzZGJmNTA0MzI3YWFjZmU2YWRhYWFhMDc0OTAxNDI0NmJmMTExMTBiOTBhY2U5ZTVlZTFjOFMzQnVja2V0QUJBRjlDMEMnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAnLyonLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnYnVpbGQgYXJncycsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UgPSBNaXJyb3JTb3VyY2UuZnJvbURpcihwYXRoLmpvaW4oX19kaXJuYW1lLCAnZG9ja2VyLWFzc2V0JyksICdteXJlcG9zaXRvcnknLCB7XG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIGFyZzE6ICd2YWwxJyxcbiAgICAgICAgICBhcmcyOiAndmFsMicsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHN5bmNKb2IgPSBuZXcgY29kZWJ1aWxkLlByb2plY3Qoc3RhY2ssICdTeW5jSm9iJywge1xuICAgICAgICBidWlsZFNwZWM6IGNvZGVidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7fSksXG4gICAgICB9KTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgY29uc3QgcmVzdWx0ID0gc291cmNlLmJpbmQoe1xuICAgICAgICBzY29wZTogc3RhY2ssXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgICBzeW5jSm9iLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gJ2RvY2tlciBidWlsZCAtLXB1bGwgLXQgbXlyZWdpc3RyeS9teXJlcG9zaXRvcnk6bGF0ZXN0IC0tYnVpbGQtYXJnIGFyZzE9dmFsMSAtLWJ1aWxkLWFyZyBhcmcyPXZhbDIgbXlyZXBvc2l0b3J5JztcbiAgICAgIGV4cGVjdChyZXN1bHQuY29tbWFuZHNbMl0pLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnY2FuIGJpbmQgdGhlIHNhbWUgZGlyZWN0b3J5IHR3aWNlIGlmIHRoZXkgaGF2ZSBkaWZmZXJlbnQgYnVpbGQgYXJncycsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UxID0gTWlycm9yU291cmNlLmZyb21EaXIocGF0aC5qb2luKF9fZGlybmFtZSwgJ2RvY2tlci1hc3NldCcpLCAnbXlyZXBvc2l0b3J5Jyk7XG4gICAgICBjb25zdCBzb3VyY2UyID0gTWlycm9yU291cmNlLmZyb21EaXIocGF0aC5qb2luKF9fZGlybmFtZSwgJ2RvY2tlci1hc3NldCcpLCAnbXlyZXBvc2l0b3J5Jywge1xuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBhcmcxOiAndmFsMScsXG4gICAgICAgICAgYXJnMjogJ3ZhbDInLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIHNvdXJjZTEuYmluZCh7IHNjb3BlOiBzdGFjaywgZWNyUmVnaXN0cnkgfSk7XG4gICAgICBzb3VyY2UyLmJpbmQoeyBzY29wZTogc3RhY2ssIGVjclJlZ2lzdHJ5IH0pO1xuXG4gICAgICAvLyBUSEVOIC0tIGRpZG4ndCB0aHJvd1xuICAgIH0pO1xuICB9KTtcbn0pOyJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWlycm9yLXNvdXJjZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXlDO0FBQ3pDLDZCQUE2QjtBQUM3Qix1REFBdUQ7QUFDdkQscUNBR2lCO0FBQ2pCLDhEQUEwRDtBQUUxRCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQ25DLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDL0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDbkIsUUFBUTtZQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBSyxFQUFFLENBQUM7WUFDMUIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLDRCQUFZLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFN0QsT0FBTztZQUNQLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFdBQVc7YUFDWixDQUFDLENBQUM7WUFFSCxPQUFPO1lBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDOUIsb0NBQW9DO2dCQUNwQyxxRUFBcUU7YUFDdEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUN4QixRQUFRO1lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFLLEVBQUUsQ0FBQztZQUMxQixNQUFNLFdBQVcsR0FB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RSxNQUFNO2lCQUNiO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTztZQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUU1Qyx1QkFBdUI7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAbW9ub2Nkay1leHBlcmltZW50L2Fzc2VydC9qZXN0JztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBhcnJheVdpdGggfSBmcm9tICdAbW9ub2Nkay1leHBlcmltZW50L2Fzc2VydCc7XG5pbXBvcnQge1xuICBTdGFjayxcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG59IGZyb20gJ21vbm9jZGsnO1xuaW1wb3J0IHsgTWlycm9yU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3JlZ2lzdHJ5LXN5bmMnO1xuXG5kZXNjcmliZSgnUmVnaXN0cnlJbWFnZVNvdXJjZScsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2Zyb21Eb2NrZXJIdWIoKScsICgpID0+IHtcbiAgICB0ZXN0KCdkZWZhdWx0JywgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gICAgICBjb25zdCBlY3JSZWdpc3RyeSA9ICdteXJlZ2lzdHJ5JztcbiAgICAgIGNvbnN0IHNvdXJjZSA9IE1pcnJvclNvdXJjZS5mcm9tRG9ja2VySHViKCdqc2lpL3N1cGVyY2hhaW4nKTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgY29uc3QgcmVzdWx0ID0gc291cmNlLmJpbmQoe1xuICAgICAgICBzY29wZTogc3RhY2ssXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChyZXN1bHQucmVwb3NpdG9yeU5hbWUpLnRvRXF1YWwoJ2pzaWkvc3VwZXJjaGFpbicpO1xuICAgICAgZXhwZWN0KHJlc3VsdC50YWcpLnRvRXF1YWwoJ2xhdGVzdCcpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5jb21tYW5kcykudG9FcXVhbChbXG4gICAgICAgICdkb2NrZXIgcHVsbCBqc2lpL3N1cGVyY2hhaW46bGF0ZXN0JyxcbiAgICAgICAgJ2RvY2tlciB0YWcganNpaS9zdXBlcmNoYWluOmxhdGVzdCBteXJlZ2lzdHJ5L2pzaWkvc3VwZXJjaGFpbjpsYXRlc3QnLFxuICAgICAgXSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdleHBsaWNpdCB0YWcnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gJ215cmVnaXN0cnknO1xuICAgICAgY29uc3Qgc291cmNlID0gTWlycm9yU291cmNlLmZyb21Eb2NrZXJIdWIoJ2pzaWkvc3VwZXJjaGFpbicsICdteXRhZycpO1xuXG4gICAgICAvLyBXSEVOXG4gICAgICBjb25zdCByZXN1bHQgPSBzb3VyY2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiBzdGFjayxcbiAgICAgICAgZWNyUmVnaXN0cnksXG4gICAgICB9KTtcblxuICAgICAgLy8gVEhFTlxuICAgICAgZXhwZWN0KHJlc3VsdC5yZXBvc2l0b3J5TmFtZSkudG9FcXVhbCgnanNpaS9zdXBlcmNoYWluJyk7XG4gICAgICBleHBlY3QocmVzdWx0LnRhZykudG9FcXVhbCgnbXl0YWcnKTtcbiAgICAgIGV4cGVjdChyZXN1bHQuY29tbWFuZHMpLnRvRXF1YWwoW1xuICAgICAgICAnZG9ja2VyIHB1bGwganNpaS9zdXBlcmNoYWluOm15dGFnJyxcbiAgICAgICAgJ2RvY2tlciB0YWcganNpaS9zdXBlcmNoYWluOm15dGFnIG15cmVnaXN0cnkvanNpaS9zdXBlcmNoYWluOm15dGFnJyxcbiAgICAgIF0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnb2ZmaWNpYWwgaW1hZ2UnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gJ215cmVnaXN0cnknO1xuICAgICAgY29uc3Qgc291cmNlID0gTWlycm9yU291cmNlLmZyb21Eb2NrZXJIdWIoJ3N1cGVyY2hhaW4nKTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgY29uc3QgcmVzdWx0ID0gc291cmNlLmJpbmQoe1xuICAgICAgICBzY29wZTogc3RhY2ssXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChyZXN1bHQucmVwb3NpdG9yeU5hbWUpLnRvRXF1YWwoJ2xpYnJhcnkvc3VwZXJjaGFpbicpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5jb21tYW5kcykudG9FcXVhbChbXG4gICAgICAgICdkb2NrZXIgcHVsbCBsaWJyYXJ5L3N1cGVyY2hhaW46bGF0ZXN0JyxcbiAgICAgICAgJ2RvY2tlciB0YWcgbGlicmFyeS9zdXBlcmNoYWluOmxhdGVzdCBteXJlZ2lzdHJ5L2xpYnJhcnkvc3VwZXJjaGFpbjpsYXRlc3QnLFxuICAgICAgXSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdmYWlscyBpZiBpbWFnZSBpbmNsdWRlcyB0YWcnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4gTWlycm9yU291cmNlLmZyb21Eb2NrZXJIdWIoJ3N1cGVyY2hhaW46bGF0ZXN0JykpLnRvVGhyb3coL2ltYWdlIG11c3Qgbm90IGluY2x1ZGUgdGFnLyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tRGlyZWN0b3J5KCknLCAoKSA9PiB7XG4gICAgdGVzdCgnZGVmYXVsdCcsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UgPSBNaXJyb3JTb3VyY2UuZnJvbURpcmVjdG9yeShwYXRoLmpvaW4oX19kaXJuYW1lLCAnZG9ja2VyLWFzc2V0JyksICdteXJlcG9zaXRvcnknKTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgY29uc3QgcmVzdWx0ID0gc291cmNlLmJpbmQoe1xuICAgICAgICBzY29wZTogc3RhY2ssXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChyZXN1bHQucmVwb3NpdG9yeU5hbWUpLnRvRXF1YWwoJ215cmVwb3NpdG9yeScpO1xuICAgICAgZXhwZWN0KHJlc3VsdC50YWcpLnRvRXF1YWwoJ2xhdGVzdCcpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5jb21tYW5kcykudG9FcXVhbChbXG4gICAgICAgICdybSAtcmYgbXlyZXBvc2l0b3J5LnppcCBteXJlcG9zaXRvcnknLFxuICAgICAgICBleHBlY3Quc3RyaW5nTWF0Y2hpbmcoL2F3cyBzMyBjcCBzMzouKiBteXJlcG9zaXRvcnkuemlwLyksXG4gICAgICAgICd1bnppcCBteXJlcG9zaXRvcnkuemlwIC1kIG15cmVwb3NpdG9yeScsXG4gICAgICAgICdkb2NrZXIgYnVpbGQgLS1wdWxsIC10IG15cmVnaXN0cnkvbXlyZXBvc2l0b3J5OmxhdGVzdCBteXJlcG9zaXRvcnknLFxuICAgICAgXSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdleHBsaWNpdCB0YWcnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gJ215cmVnaXN0cnknO1xuICAgICAgY29uc3Qgc291cmNlID0gTWlycm9yU291cmNlLmZyb21EaXJlY3RvcnkocGF0aC5qb2luKF9fZGlybmFtZSwgJ2RvY2tlci1hc3NldCcpLCAnbXlyZXBvc2l0b3J5JywgJ215dGFnJyk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5iaW5kKHtcbiAgICAgICAgc2NvcGU6IHN0YWNrLFxuICAgICAgICBlY3JSZWdpc3RyeSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBleHBlY3QocmVzdWx0LnJlcG9zaXRvcnlOYW1lKS50b0VxdWFsKCdteXJlcG9zaXRvcnknKTtcbiAgICAgIGV4cGVjdChyZXN1bHQudGFnKS50b0VxdWFsKCdteXRhZycpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5jb21tYW5kcykudG9FcXVhbChbXG4gICAgICAgICdybSAtcmYgbXlyZXBvc2l0b3J5LnppcCBteXJlcG9zaXRvcnknLFxuICAgICAgICBleHBlY3Quc3RyaW5nTWF0Y2hpbmcoL2F3cyBzMyBjcCBzMzouKiBteXJlcG9zaXRvcnkuemlwLyksXG4gICAgICAgICd1bnppcCBteXJlcG9zaXRvcnkuemlwIC1kIG15cmVwb3NpdG9yeScsXG4gICAgICAgICdkb2NrZXIgYnVpbGQgLS1wdWxsIC10IG15cmVnaXN0cnkvbXlyZXBvc2l0b3J5Om15dGFnIG15cmVwb3NpdG9yeScsXG4gICAgICBdKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3N5bmNKb2IgaXMgZ2l2ZW4gcGVybWlzc2lvbiB0byBzMyBhc3NldCcsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UgPSBNaXJyb3JTb3VyY2UuZnJvbURpcmVjdG9yeShwYXRoLmpvaW4oX19kaXJuYW1lLCAnZG9ja2VyLWFzc2V0JyksICdteXJlcG9zaXRvcnknKTtcbiAgICAgIGNvbnN0IHN5bmNKb2IgPSBuZXcgY29kZWJ1aWxkLlByb2plY3Qoc3RhY2ssICdTeW5jSm9iJywge1xuICAgICAgICBidWlsZFNwZWM6IGNvZGVidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7fSksXG4gICAgICB9KTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgc291cmNlLmJpbmQoe1xuICAgICAgICBzY29wZTogc3RhY2ssXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgICBzeW5jSm9iLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2VMaWtlKCdBV1M6OklBTTo6UG9saWN5Jywge1xuICAgICAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgICAgIFN0YXRlbWVudDogYXJyYXlXaXRoKHtcbiAgICAgICAgICAgIEFjdGlvbjogW1xuICAgICAgICAgICAgICAnczM6R2V0T2JqZWN0KicsXG4gICAgICAgICAgICAgICdzMzpHZXRCdWNrZXQqJyxcbiAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgICBSZXNvdXJjZTogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICdhcm46JywgeyBSZWY6ICdBV1M6OlBhcnRpdGlvbicgfSwgJzpzMzo6OicsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBSZWY6ICdBc3NldFBhcmFtZXRlcnNlOGQ5Y2IxYzAxMDNkYmY1MDQzMjdhYWNmZTZhZGFhYWEwNzQ5MDE0MjQ2YmYxMTExMGI5MGFjZTllNWVlMWM4UzNCdWNrZXRBQkFGOUMwQycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgJ2FybjonLCB7IFJlZjogJ0FXUzo6UGFydGl0aW9uJyB9LCAnOnMzOjo6JyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIFJlZjogJ0Fzc2V0UGFyYW1ldGVyc2U4ZDljYjFjMDEwM2RiZjUwNDMyN2FhY2ZlNmFkYWFhYTA3NDkwMTQyNDZiZjExMTEwYjkwYWNlOWU1ZWUxYzhTM0J1Y2tldEFCQUY5QzBDJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJy8qJyxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2J1aWxkIGFyZ3MnLCAoKSA9PiB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gJ215cmVnaXN0cnknO1xuICAgICAgY29uc3Qgc291cmNlID0gTWlycm9yU291cmNlLmZyb21EaXIocGF0aC5qb2luKF9fZGlybmFtZSwgJ2RvY2tlci1hc3NldCcpLCAnbXlyZXBvc2l0b3J5Jywge1xuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBhcmcxOiAndmFsMScsXG4gICAgICAgICAgYXJnMjogJ3ZhbDInLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBzeW5jSm9iID0gbmV3IGNvZGVidWlsZC5Qcm9qZWN0KHN0YWNrLCAnU3luY0pvYicsIHtcbiAgICAgICAgYnVpbGRTcGVjOiBjb2RlYnVpbGQuQnVpbGRTcGVjLmZyb21PYmplY3Qoe30pLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5iaW5kKHtcbiAgICAgICAgc2NvcGU6IHN0YWNrLFxuICAgICAgICBlY3JSZWdpc3RyeSxcbiAgICAgICAgc3luY0pvYixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBleHBlY3QocmVzdWx0LmNvbW1hbmRzKS50b0VxdWFsKFtcbiAgICAgICAgJ3JtIC1yZiBteXJlcG9zaXRvcnkuemlwIG15cmVwb3NpdG9yeScsXG4gICAgICAgIGV4cGVjdC5zdHJpbmdNYXRjaGluZygvYXdzIHMzIGNwIHMzOi4qIG15cmVwb3NpdG9yeS56aXAvKSxcbiAgICAgICAgJ3VuemlwIG15cmVwb3NpdG9yeS56aXAgLWQgbXlyZXBvc2l0b3J5JyxcbiAgICAgICAgJ2RvY2tlciBidWlsZCAtLXB1bGwgLXQgbXlyZWdpc3RyeS9teXJlcG9zaXRvcnk6bGF0ZXN0IC0tYnVpbGQtYXJnIGFyZzE9dmFsMSAtLWJ1aWxkLWFyZyBhcmcyPXZhbDIgbXlyZXBvc2l0b3J5JyxcbiAgICAgIF0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnY2FuIGJpbmQgdGhlIHNhbWUgZGlyZWN0b3J5IHR3aWNlIGlmIHRoZXkgaGF2ZSBkaWZmZXJlbnQgYnVpbGQgYXJncycsICgpID0+IHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgZWNyUmVnaXN0cnkgPSAnbXlyZWdpc3RyeSc7XG4gICAgICBjb25zdCBzb3VyY2UxID0gTWlycm9yU291cmNlLmZyb21EaXIocGF0aC5qb2luKF9fZGlybmFtZSwgJ2RvY2tlci1hc3NldCcpLCAnbXlyZXBvc2l0b3J5Jyk7XG4gICAgICBjb25zdCBzb3VyY2UyID0gTWlycm9yU291cmNlLmZyb21EaXIocGF0aC5qb2luKF9fZGlybmFtZSwgJ2RvY2tlci1hc3NldCcpLCAnbXlyZXBvc2l0b3J5Jywge1xuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBhcmcxOiAndmFsMScsXG4gICAgICAgICAgYXJnMjogJ3ZhbDInLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIHNvdXJjZTEuYmluZCh7IHNjb3BlOiBzdGFjaywgZWNyUmVnaXN0cnkgfSk7XG4gICAgICBzb3VyY2UyLmJpbmQoeyBzY29wZTogc3RhY2ssIGVjclJlZ2lzdHJ5IH0pO1xuXG4gICAgICAvLyBUSEVOIC0tIGRpZG4ndCB0aHJvd1xuICAgIH0pO1xuICB9KTtcbn0pOyJdfQ==
@@ -37,7 +37,7 @@ async function read_release_notes() {
37
37
  return undefined;
38
38
  }
39
39
 
40
- return fs.readFile(release_notes_file, 'utf8');
40
+ return readFile(release_notes_file, { encoding: 'utf8' });
41
41
  }
42
42
 
43
43
  async function read_changelog(version) {
@@ -41,6 +41,14 @@ export interface PublishToMavenProjectProps {
41
41
  * @default "https://oss.sonatype.org"
42
42
  */
43
43
  mavenEndpoint?: string;
44
+ /**
45
+ * The build image to do the publishing in
46
+ *
47
+ * Needs to have Maven preinstalled.
48
+ *
49
+ * @default Latest superchain
50
+ */
51
+ readonly buildImage?: cbuild.IBuildImage;
44
52
  }
45
53
  /**
46
54
  * CodeBuild project that will publish all packages in a release bundle to Maven
@@ -104,6 +112,14 @@ export interface PublishToNuGetProjectProps {
104
112
  * @default No signing
105
113
  */
106
114
  codeSign?: ICodeSigningCertificate;
115
+ /**
116
+ * The build image to do the publishing in
117
+ *
118
+ * Needs to have NuGet preinstalled.
119
+ *
120
+ * @default Latest superchain
121
+ */
122
+ readonly buildImage?: cbuild.IBuildImage;
107
123
  }
108
124
  /**
109
125
  * CodeBuild project that will publish all packages in a release bundle to NuGet
package/lib/publishing.js CHANGED
@@ -25,10 +25,11 @@ var NpmAccess;
25
25
  */
26
26
  class PublishToMavenProject extends monocdk_1.Construct {
27
27
  constructor(parent, id, props) {
28
+ var _a;
28
29
  super(parent, id);
29
30
  const forReal = props.dryRun === undefined ? 'false' : (!props.dryRun).toString();
30
31
  const shellable = new shellable_1.Shellable(this, 'Default', {
31
- platform: new shellable_1.LinuxPlatform(monocdk_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
32
+ platform: new shellable_1.LinuxPlatform((_a = props.buildImage) !== null && _a !== void 0 ? _a : monocdk_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
32
33
  scriptDirectory: path.join(__dirname, 'publishing', 'maven'),
33
34
  entrypoint: 'publish.sh',
34
35
  environment: {
@@ -97,6 +98,7 @@ exports.PublishToNpmProject = PublishToNpmProject;
97
98
  */
98
99
  class PublishToNuGetProject extends monocdk_1.Construct {
99
100
  constructor(parent, id, props) {
101
+ var _a;
100
102
  super(parent, id);
101
103
  const environment = {};
102
104
  environment.FOR_REAL = props.dryRun === undefined ? 'false' : (!props.dryRun).toString();
@@ -115,7 +117,7 @@ class PublishToNuGetProject extends monocdk_1.Construct {
115
117
  environment.CODE_SIGNING_PARAMETER_NAME = props.codeSign.principal.parameterName;
116
118
  }
117
119
  const shellable = new shellable_1.Shellable(this, 'Default', {
118
- platform: new shellable_1.LinuxPlatform(monocdk_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
120
+ platform: new shellable_1.LinuxPlatform((_a = props.buildImage) !== null && _a !== void 0 ? _a : monocdk_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
119
121
  scriptDirectory: path.join(__dirname, 'publishing', 'nuget'),
120
122
  entrypoint: 'publish.sh',
121
123
  environment,
@@ -327,4 +329,4 @@ class PublishToGolang extends monocdk_1.Construct {
327
329
  }
328
330
  }
329
331
  exports.PublishToGolang = PublishToGolang;
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLHFDQU9pQjtBQUdqQiw2Q0FBNkM7QUFHN0MsMkNBQXVEO0FBQ3ZELGlDQUFxQztBQUVyQzs7R0FFRztBQUNILElBQVksU0FVWDtBQVZELFdBQVksU0FBUztJQUNuQjs7T0FFRztJQUNILDhCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsc0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVZXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBVXBCO0FBZ0NEOztHQUVHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxtQkFBUztJQUlsRCxZQUFZLE1BQWlCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQzFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsRixNQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMvQyxRQUFRLEVBQUUsSUFBSSx5QkFBYSxDQUFDLHVCQUFNLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDekYsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7WUFDNUQsVUFBVSxFQUFFLFlBQVk7WUFDeEIsV0FBVyxFQUFFO2dCQUNYLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQzFDLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTO2dC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T0FBTyxDQUFDO0lBQ25DLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBdUIsRUFBRSxFQUFVLEVBQUUsT0FBNkI7UUFDckYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLGtDQUFpQixDQUFDLGVBQWUsQ0FBQztZQUNwRCxVQUFVLEVBQUUsRUFBRTtZQUNkLEtBQUssRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksMEJBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDeEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRjtBQXhDRCwwQ0F3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0LCBTdGFjayxcbiAgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQsXG4gIGF3c19jb2RlcGlwZWxpbmUgYXMgY3BpcGVsaW5lLFxuICBhd3NfY29kZXBpcGVsaW5lX2FjdGlvbnMgYXMgY3BpcGVsaW5lX2FjdGlvbnMsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfczMgYXMgczMsXG59IGZyb20gJ21vbm9jZGsnO1xuaW1wb3J0IHsgSUNvZGVTaWduaW5nQ2VydGlmaWNhdGUgfSBmcm9tICcuL2NvZGUtc2lnbmluZyc7XG5pbXBvcnQgeyBPcGVuUEdQS2V5UGFpciB9IGZyb20gJy4vb3Blbi1wZ3Ata2V5LXBhaXInO1xuaW1wb3J0ICogYXMgcGVybWlzc2lvbnMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBBZGRUb1BpcGVsaW5lT3B0aW9ucywgSVB1Ymxpc2hlciB9IGZyb20gJy4vcGlwZWxpbmUnO1xuaW1wb3J0IHsgV3JpdGFibGVHaXRIdWJSZXBvIH0gZnJvbSAnLi9yZXBvJztcbmltcG9ydCB7IExpbnV4UGxhdGZvcm0sIFNoZWxsYWJsZSB9IGZyb20gJy4vc2hlbGxhYmxlJztcbmltcG9ydCB7IG5vVW5kZWZpbmVkIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBUeXBlIG9mIGFjY2VzcyBwZXJtaXNzaW9ucyB0byByZXF1ZXN0IGZyb20gbnBtanMuXG4gKi9cbmV4cG9ydCBlbnVtIE5wbUFjY2VzcyB7XG4gIC8qKlxuICAgKiBObyBhY2Nlc3MgcmVzdHJpY3Rpb24uIE5vdGUgdGhhdCB1bnNjb3BlZCBwYWNrYWdlcyBtdXN0IGFsd2F5cyBiZSBwdWJsaWMuXG4gICAqL1xuICBQVUJMSUMgPSAncHVibGljJyxcblxuICAvKipcbiAgICogTGltaXQgYWNjZXNzIHRvIHdoaXRlbGlzdGVkIG5wbWpzIHVzZXJzLlxuICAgKi9cbiAgUkVTVFJJQ1RFRCA9ICdyZXN0cmljdGVkJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoVG9NYXZlblByb2plY3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2lnbmluZyBrZXkgaXRzZWxmXG4gICAqL1xuICBzaWduaW5nS2V5OiBPcGVuUEdQS2V5UGFpcjtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBzb25hdHlwZSBzdGFnaW5nIHByb2ZpbGUgKGUuZy4gXCI2OGEwNTM2MzA4MzE3NFwiKS5cbiAgICovXG4gIHN0YWdpbmdQcm9maWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIE1hdmVuIGxvZ2luXG4gICAqL1xuICBtYXZlbkxvZ2luU2VjcmV0OiBwZXJtaXNzaW9ucy5FeHRlcm5hbFNlY3JldDtcblxuICAvKipcbiAgICogSWYgdHJ1ZSAoZGVmYXVsdCkgcGVyZm9ybXMgYSBkcnktcnVuIG9ubHkgaW5zdGVhZCBvZiBhY3R1YWxseSBwdWJsaXNoaW5nLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgTWF2ZW4gcHVibGlzaGluZyBlbmRwb2ludCB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZ1wiXG4gICAqL1xuICBtYXZlbkVuZHBvaW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgd2lsbCBwdWJsaXNoIGFsbCBwYWNrYWdlcyBpbiBhIHJlbGVhc2UgYnVuZGxlIHRvIE1hdmVuXG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9NYXZlblByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaFRvTWF2ZW5Qcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGZvclJlYWwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IHNoZWxsYWJsZSA9IG5ldyBTaGVsbGFibGUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBwbGF0Zm9ybTogbmV3IExpbnV4UGxhdGZvcm0oY2J1aWxkLkxpbnV4QnVpbGRJbWFnZS5mcm9tRG9ja2VyUmVnaXN0cnkoJ2pzaWkvc3VwZXJjaGFpbicpKSxcbiAgICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3B1Ymxpc2hpbmcnLCAnbWF2ZW4nKSxcbiAgICAgIGVudHJ5cG9pbnQ6ICdwdWJsaXNoLnNoJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFNUQUdJTkdfUFJPRklMRV9JRDogcHJvcHMuc3RhZ2luZ1Byb2ZpbGVJZCxcbiAgICAgICAgU0lHTklOR19LRVlfQVJOOiBwcm9wcy5zaWduaW5nS2V5LmNyZWRlbnRpYWwuc2VjcmV0QXJuLFxuICAgICAgICBGT1JfUkVBTDogZm9yUmVhbCxcbiAgICAgICAgTUFWRU5fTE9HSU5fU0VDUkVUOiBwcm9wcy5tYXZlbkxvZ2luU2VjcmV0LnNlY3JldEFybixcbiAgICAgICAgTUFWRU5fRU5EUE9JTlQ6IHByb3BzLm1hdmVuRW5kcG9pbnQgfHwgJ2h0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHNoZWxsYWJsZS5yb2xlKSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQocHJvcHMubWF2ZW5Mb2dpblNlY3JldCwgc2hlbGxhYmxlLnJvbGUpO1xuICAgICAgcHJvcHMuc2lnbmluZ0tleS5ncmFudFJlYWQoc2hlbGxhYmxlLnJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHNoZWxsYWJsZS5yb2xlO1xuICAgIHRoaXMucHJvamVjdCA9IHNoZWxsYWJsZS5wcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUGlwZWxpbmUoc3RhZ2U6IGNwaXBlbGluZS5JU3RhZ2UsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFkZFRvUGlwZWxpbmVPcHRpb25zKTogdm9pZCB7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogaWQsXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dEFydGlmYWN0IHx8IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoKSxcbiAgICAgIHJ1bk9yZGVyOiBvcHRpb25zLnJ1bk9yZGVyLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH0pKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hUb05wbVByb2plY3RQcm9wcyB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIG9mIHRoZSBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgTlBNIHRva2VuXG4gICAqL1xuICBucG1Ub2tlblNlY3JldDogcGVybWlzc2lvbnMuRXh0ZXJuYWxTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCAoZGVmYXVsdCkgd2lsbCBvbmx5IHBlcmZvcm0gYSBkcnktcnVuIGJ1dCB3aWxsIG5vdCBhY3R1YWxseSBwdWJsaXNoLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBucG0gZGlzdC10YWcgdG8gdXNlIHdoZW4gcHVibGlzaGluZyBhcnRpZmFjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbnBtIGRlZmF1bHQgYmVoYXZpb3IgKFwibGF0ZXN0XCIgdW5sZXNzIGRpc3QgdGFnIGlzIHNwZWNpZmllZCBpbiBwYWNrYWdlLmpzb24pXG4gICAqL1xuICBkaXN0VGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBucG0gLS1hY2Nlc3MgcHVibGljfHJlc3RyaWN0ZWRcbiAgICpcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpLWNvbW1hbmRzL3B1Ymxpc2gjOn46dGV4dD1UZWxscyUyMHRoZVxuICAgKlxuICAgKiBUZWxscyB0aGUgcmVnaXN0cnkgd2hldGhlciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHB1Ymxpc2hlZCBhcyBwdWJsaWMgb3IgcmVzdHJpY3RlZC5cbiAgICogT25seSBhcHBsaWVzIHRvIHNjb3BlZCBwYWNrYWdlcywgd2hpY2ggZGVmYXVsdCB0byByZXN0cmljdGVkLlxuICAgKiBJZiB5b3UgZG9u4oCZdCBoYXZlIGEgcGFpZCBhY2NvdW50LCB5b3UgbXVzdCBwdWJsaXNoIHdpdGggLS1hY2Nlc3MgcHVibGljIHRvIHB1Ymxpc2ggc2NvcGVkIHBhY2thZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOcG1BY2Nlc3MuUFVCTElDXG4gICAqL1xuICBhY2Nlc3M/OiBOcG1BY2Nlc3M7XG59XG5cbi8qKlxuICogQ29kZUJ1aWxkIHByb2plY3QgdGhhdCB3aWxsIHB1Ymxpc2ggYWxsIHBhY2thZ2VzIGluIGEgcmVsZWFzZSBidW5kbGUgdG8gTlBNXG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9OcG1Qcm9qZWN0IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVB1Ymxpc2hlciB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLlByb2plY3Q7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaXNoVG9OcG1Qcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGZvclJlYWwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IGFjY2VzcyA9IHByb3BzLmFjY2VzcyA/PyBOcG1BY2Nlc3MuUFVCTElDO1xuXG4gICAgY29uc3Qgc2hlbGxhYmxlID0gbmV3IFNoZWxsYWJsZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIHBsYXRmb3JtOiBuZXcgTGludXhQbGF0Zm9ybShjYnVpbGQuTGludXhCdWlsZEltYWdlLlVCVU5UVV8xNF8wNF9OT0RFSlNfMTBfMV8wKSxcbiAgICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3B1Ymxpc2hpbmcnLCAnbnBtJyksXG4gICAgICBlbnRyeXBvaW50OiAncHVibGlzaC5zaCcsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBGT1JfUkVBTDogZm9yUmVhbCxcbiAgICAgICAgTlBNX1RPS0VOX1NFQ1JFVDogcHJvcHMubnBtVG9rZW5TZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICBESVNUVEFHOiBwcm9wcy5kaXN0VGFnIHx8ICcnLFxuICAgICAgICBBQ0NFU1M6IGFjY2VzcyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChwcm9wcy5ucG1Ub2tlblNlY3JldCwgc2hlbGxhYmxlLnJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHNoZWxsYWJsZS5yb2xlO1xuICAgIHRoaXMucHJvamVjdCA9IHNoZWxsYWJsZS5wcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUGlwZWxpbmUoc3RhZ2U6IGNwaXBlbGluZS5JU3RhZ2UsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFkZFRvUGlwZWxpbmVPcHRpb25zKTogdm9pZCB7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogaWQsXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dEFydGlmYWN0IHx8IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoKSxcbiAgICAgIHJ1bk9yZGVyOiBvcHRpb25zLnJ1bk9yZGVyLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH0pKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hUb051R2V0UHJvamVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBTZWNyZXRzTWFuYWdlciBzZWNyZXQgd2hpY2ggc3RvcmVzIHRoZSBOdWdldCBBUEkga2V5LlxuICAgKi9cbiAgbnVnZXRBcGlLZXlTZWNyZXQ6IHBlcm1pc3Npb25zLkV4dGVybmFsU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAgKGRlZmF1bHQpIHdpbGwgb25seSBwZXJmb3JtIGEgZHJ5LXJ1biBidXQgd2lsbCBub3QgYWN0dWFsbHkgcHVibGlzaC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZHJ5UnVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBjb2RlIHNpZ25pbmcgY2VydGlmaWNhdGUgdG8gdXNlIHRvIHNpZ24gYXNzZW1ibGllcy5cbiAgICogQGRlZmF1bHQgTm8gc2lnbmluZ1xuICAgKi9cbiAgY29kZVNpZ24/OiBJQ29kZVNpZ25pbmdDZXJ0aWZpY2F0ZTtcbn1cblxuLyoqXG4gKiBDb2RlQnVpbGQgcHJvamVjdCB0aGF0IHdpbGwgcHVibGlzaCBhbGwgcGFja2FnZXMgaW4gYSByZWxlYXNlIGJ1bmRsZSB0byBOdUdldFxuICovXG5leHBvcnQgY2xhc3MgUHVibGlzaFRvTnVHZXRQcm9qZWN0IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVB1Ymxpc2hlciB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1Ymxpc2hUb051R2V0UHJvamVjdFByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBpZCk7XG5cbiAgICBjb25zdCBlbnZpcm9ubWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHsgfTtcblxuICAgIGVudmlyb25tZW50LkZPUl9SRUFMID0gcHJvcHMuZHJ5UnVuID09PSB1bmRlZmluZWQgPyAnZmFsc2UnIDogKCFwcm9wcy5kcnlSdW4pLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAocHJvcHMubnVnZXRBcGlLZXlTZWNyZXQuYXNzdW1lUm9sZUFybikge1xuICAgICAgZW52aXJvbm1lbnQuTlVHRVRfUk9MRV9BUk4gPSBwcm9wcy5udWdldEFwaUtleVNlY3JldC5hc3N1bWVSb2xlQXJuO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5udWdldEFwaUtleVNlY3JldC5yZWdpb24pIHtcbiAgICAgIGVudmlyb25tZW50Lk5VR0VUX1NFQ1JFVF9SRUdJT04gPSBwcm9wcy5udWdldEFwaUtleVNlY3JldC5yZWdpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudmlyb25tZW50Lk5VR0VUX1NFQ1JFVF9SRUdJT04gPSBTdGFjay5vZih0aGlzKS5yZWdpb247XG4gICAgfVxuXG4gICAgZW52aXJvbm1lbnQuTlVHRVRfU0VDUkVUX0lEID0gcHJvcHMubnVnZXRBcGlLZXlTZWNyZXQuc2VjcmV0QXJuO1xuXG4gICAgaWYgKHByb3BzLmNvZGVTaWduKSB7XG4gICAgICBlbnZpcm9ubWVudC5DT0RFX1NJR05JTkdfU0VDUkVUX0lEID0gcHJvcHMuY29kZVNpZ24uY3JlZGVudGlhbC5zZWNyZXRBcm47XG4gICAgICBlbnZpcm9ubWVudC5DT0RFX1NJR05JTkdfUEFSQU1FVEVSX05BTUUgPSBwcm9wcy5jb2RlU2lnbi5wcmluY2lwYWwucGFyYW1ldGVyTmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCBzaGVsbGFibGUgPSBuZXcgU2hlbGxhYmxlKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgcGxhdGZvcm06IG5ldyBMaW51eFBsYXRmb3JtKGNidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KCdqc2lpL3N1cGVyY2hhaW4nKSksXG4gICAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdwdWJsaXNoaW5nJywgJ251Z2V0JyksXG4gICAgICBlbnRyeXBvaW50OiAncHVibGlzaC5zaCcsXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICB9KTtcblxuICAgIGlmIChzaGVsbGFibGUucm9sZSkge1xuICAgICAgaWYgKHByb3BzLm51Z2V0QXBpS2V5U2VjcmV0LmFzc3VtZVJvbGVBcm4pIHtcbiAgICAgICAgcGVybWlzc2lvbnMuZ3JhbnRBc3N1bWVSb2xlKHByb3BzLm51Z2V0QXBpS2V5U2VjcmV0LmFzc3VtZVJvbGVBcm4sIHNoZWxsYWJsZS5yb2xlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChwcm9wcy5udWdldEFwaUtleVNlY3JldCwgc2hlbGxhYmxlLnJvbGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMuY29kZVNpZ24pIHtcbiAgICAgICAgcHJvcHMuY29kZVNpZ24uZ3JhbnREZWNyeXB0KHNoZWxsYWJsZS5yb2xlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJvbGUgPSBzaGVsbGFibGUucm9sZTtcbiAgICB0aGlzLnByb2plY3QgPSBzaGVsbGFibGUucHJvamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1BpcGVsaW5lKHN0YWdlOiBjcGlwZWxpbmUuSVN0YWdlLCBpZDogc3RyaW5nLCBvcHRpb25zOiBBZGRUb1BpcGVsaW5lT3B0aW9ucyk6IHZvaWQge1xuICAgIHN0YWdlLmFkZEFjdGlvbihuZXcgY3BpcGVsaW5lX2FjdGlvbnMuQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgIGFjdGlvbk5hbWU6IGlkLFxuICAgICAgaW5wdXQ6IG9wdGlvbnMuaW5wdXRBcnRpZmFjdCB8fCBuZXcgY3BpcGVsaW5lLkFydGlmYWN0KCksXG4gICAgICBydW5PcmRlcjogb3B0aW9ucy5ydW5PcmRlcixcbiAgICAgIHByb2plY3Q6IHRoaXMucHJvamVjdCxcbiAgICB9KSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoRG9jc1RvR2l0SHViUHJvamVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IHRvIHB1Ymxpc2ggdG9cbiAgICovXG4gIGdpdGh1YlJlcG86IFdyaXRhYmxlR2l0SHViUmVwbztcblxuICAvKipcbiAgICogSWYgYHRydWVgIChkZWZhdWx0KSB3aWxsIG9ubHkgcGVyZm9ybSBhIGRyeS1ydW4gYnV0IHdpbGwgbm90IGFjdHVhbGx5IHB1Ymxpc2guXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRyeVJ1bj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidWlsZCBtYW5pZmVzdCBKU09OIGZpbGUgKG11c3QgaW5jbHVkZSBcIm5hbWVcIiBhbmQgXCJ2ZXJzaW9uXCIgZmllbGRzKS5cbiAgICogUmVsYXRpdmUgdG8gdGhlIGFydGlmYWN0cyByb290LlxuICAgKiBAZGVmYXVsdCBcIi4vYnVpbGQuanNvblwiXG4gICAqL1xuICBidWlsZE1hbmlmZXN0RmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBQYWdlcyBicmFuY2ggdG8gcHVzaCB0by5cbiAgICogQGRlZmF1bHQgZ2gtcGFnZXNcbiAgICovXG4gIGJyYW5jaD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2RlQnVpbGQgcHJvamVjdCB0aGF0IHdpbGwgcHVibGlzaCBhbGwgcGFja2FnZXMgaW4gYSByZWxlYXNlIGJ1bmRsZSB0byBOdUdldFxuICovXG5leHBvcnQgY2xhc3MgUHVibGlzaERvY3NUb0dpdEh1YlByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaERvY3NUb0dpdEh1YlByb2plY3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgY29uc3QgZm9yUmVhbCA9IHByb3BzLmRyeVJ1biA9PT0gdW5kZWZpbmVkID8gJ2ZhbHNlJyA6ICghcHJvcHMuZHJ5UnVuKS50b1N0cmluZygpO1xuXG4gICAgY29uc3Qgc2hlbGxhYmxlID0gbmV3IFNoZWxsYWJsZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIHBsYXRmb3JtOiBuZXcgTGludXhQbGF0Zm9ybShjYnVpbGQuTGludXhCdWlsZEltYWdlLlVCVU5UVV8xNF8wNF9OT0RFSlNfMTBfMV8wKSxcbiAgICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3B1Ymxpc2hpbmcnLCAnZG9jcycpLFxuICAgICAgZW50cnlwb2ludDogJ3B1Ymxpc2guc2gnLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgLy8gTXVzdCBiZSBTU0ggYmVjYXVzZSB3ZSB1c2UgYW4gU1NIIGtleSB0byBhdXRoZW50aWNhdGVcbiAgICAgICAgR0lUSFVCX1JFUE86IHByb3BzLmdpdGh1YlJlcG8ucmVwb3NpdG9yeVVybFNzaCxcbiAgICAgICAgR0lUSFVCX1BBR0VTX0JSQU5DSDogcHJvcHMuYnJhbmNoIHx8ICdnaC1wYWdlcycsXG4gICAgICAgIFNTSF9LRVlfU0VDUkVUOiBwcm9wcy5naXRodWJSZXBvLnNzaEtleVNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIEZPUl9SRUFMOiBmb3JSZWFsLFxuICAgICAgICBDT01NSVRfVVNFUk5BTUU6IHByb3BzLmdpdGh1YlJlcG8uY29tbWl0VXNlcm5hbWUsXG4gICAgICAgIENPTU1JVF9FTUFJTDogcHJvcHMuZ2l0aHViUmVwby5jb21taXRFbWFpbCxcbiAgICAgICAgQlVJTERfTUFOSUZFU1Q6IHByb3BzLmJ1aWxkTWFuaWZlc3RGaWxlTmFtZSB8fCAnLi9idWlsZC5qc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChwcm9wcy5naXRodWJSZXBvLnNzaEtleVNlY3JldCwgc2hlbGxhYmxlLnJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHNoZWxsYWJsZS5yb2xlO1xuICAgIHRoaXMucHJvamVjdCA9IHNoZWxsYWJsZS5wcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUGlwZWxpbmUoc3RhZ2U6IGNwaXBlbGluZS5JU3RhZ2UsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFkZFRvUGlwZWxpbmVPcHRpb25zKTogdm9pZCB7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogaWQsXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dEFydGlmYWN0IHx8IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoKSxcbiAgICAgIHJ1bk9yZGVyOiBvcHRpb25zLnJ1bk9yZGVyLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH0pKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hUb0dpdEh1YlByb3BzIHtcbiAgLyoqXG4gICAqIElmIGB0cnVlYCAoZGVmYXVsdCkgd2lsbCBvbmx5IHBlcmZvcm0gYSBkcnktcnVuIGJ1dCB3aWxsIG5vdCBhY3R1YWxseSBwdWJsaXNoLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSB0byBjcmVhdGUgYSByZWxlYXNlIGluLlxuICAgKi9cbiAgZ2l0aHViUmVwbzogV3JpdGFibGVHaXRIdWJSZXBvO1xuXG4gIC8qKlxuICAgKiBUaGUgc2lnbmlnbiBrZXkgdG8gdXNlIHRvIGNyZWF0ZSBhIEdQRyBzaWduYXR1cmUgb2YgdGhlIGFydGlmYWN0LlxuICAgKi9cbiAgc2lnbmluZ0tleTogT3BlblBHUEtleVBhaXI7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidWlsZCBtYW5pZmVzdCBKU09OIGZpbGUgKG11c3QgaW5jbHVkZSBcIm5hbWVcIiBhbmQgXCJ2ZXJzaW9uXCIgZmllbGRzKS5cbiAgICogUmVsYXRpdmUgdG8gdGhlIGFydGlmYWN0cyByb290LlxuICAgKiBAZGVmYXVsdCBcIi4vYnVpbGQuanNvblwiXG4gICAqL1xuICBidWlsZE1hbmlmZXN0RmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjaGFuZ2Vsb2cgbWFya2Rvd24gZmlsZSwgdXNlZCB0byBjcmVhdGUgcmVsZWFzZSBub3Rlcy5cbiAgICogUmVsYXRpdmUgdG8gdGhlIGFydGlmYWN0cyByb290LlxuICAgKiBAZGVmYXVsdCBcIi4vQ0hBTkdFTE9HLm1kXCJcbiAgICovXG4gIGNoYW5nZWxvZ0ZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVsZWFzZSBub3RlcyBmaWxlLCBjb250YWluaW5nIHRoZSBjb21wbGV0ZWQgcmVsZWFzZSBub3Rlc1xuICAgKiBmb3IgdGhlIGN1cnJlbnQgcmVsZWFzZS5cbiAgICogUmVsYXRpdmUgdG8gdGhlIGFydGlmYWN0cyByb290LlxuICAgKiBOT1RFIC0gSWYgdGhpcyB2YWx1ZSBpcyBzZXQgYW5kIHBvaW50cyB0byBhIHZhbGlkIGZpbGUsIHRoZSBmaWxlIGluIGl0cyBlbnRpcmV0eVxuICAgKiB3aWxsIGJlIHJlYWQgYW5kIHVzZWQgZm9yIHRoZSByZWxlYXNlIG5vdGVzLiBUaGUgdmFsdWUgb2YgYGNoYW5nZWxvZ0ZpbGVOYW1lYCB3aWxsXG4gICAqIGJlIGlnbm9yZWQuXG4gICAqIEBkZWZhdWx0IFwiLi9SRUxFQVNFX05PVEVTLm1kXCJcbiAgICovXG4gIHJlbGVhc2VOb3Rlc0ZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGlucHV0IGFydGlmYWN0cyB0byBwdWJsaXNoIGJpbmFyaWVzIGZyb20gdG8gR2l0SHViIHJlbGVhc2VcbiAgICovXG4gIGFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cz86IGNwaXBlbGluZS5BcnRpZmFjdFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNpZ24gdGhlIGFkZGl0aW9uYWwgYXJ0aWZhY3RzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHNpZ25BZGRpdGlvbmFsQXJ0aWZhY3RzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFB1Ymxpc2hUb0dpdEh1YiBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElQdWJsaXNoZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLlByb2plY3Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzPzogY3BpcGVsaW5lLkFydGlmYWN0W107XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaXNoVG9HaXRIdWJQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgY29uc3QgZm9yUmVhbCA9IHByb3BzLmRyeVJ1biA9PT0gdW5kZWZpbmVkID8gJ2ZhbHNlJyA6ICghcHJvcHMuZHJ5UnVuKS50b1N0cmluZygpO1xuICAgIHRoaXMuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzID0gcHJvcHMuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzO1xuXG4gICAgLy8gVGhlIHJlbGVhc2Ugbm90ZXMsIGlmIHNldCBhbmQgYSB2YWxpZCBmaWxlLCBvdmVycmlkZXMgYW55IHVzYWdlcyBvZiB0aGUgY2hhbmdlbG9nLlxuICAgIGlmIChwcm9wcy5jaGFuZ2Vsb2dGaWxlTmFtZSAmJiBwcm9wcy5yZWxlYXNlTm90ZXNGaWxlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdib3RoIGByZWxlYXNlTm90ZXNGaWxlTmFtZWAgYW5kIGBjaGFuZ2Vsb2dGaWxlTmFtZWAgY2Fubm90IGJlIHNwZWNpZmllZDsgdXNlIG9uZSBvciB0aGUgb3RoZXInKTtcbiAgICB9XG5cbiAgICBjb25zdCBzaGVsbGFibGUgPSBuZXcgU2hlbGxhYmxlKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgcGxhdGZvcm06IG5ldyBMaW51eFBsYXRmb3JtKGNidWlsZC5MaW51eEJ1aWxkSW1hZ2UuVUJVTlRVXzE0XzA0X05PREVKU18xMF8xXzApLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICdnaXRodWInKSxcbiAgICAgIGVudHJ5cG9pbnQ6ICdwdWJsaXNoLnNoJyxcbiAgICAgIGVudmlyb25tZW50OiBub1VuZGVmaW5lZCh7XG4gICAgICAgIEJVSUxEX01BTklGRVNUOiBwcm9wcy5idWlsZE1hbmlmZXN0RmlsZU5hbWUgfHwgJy4vYnVpbGQuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogcHJvcHMuY2hhbmdlbG9nRmlsZU5hbWUgfHwgJy4vQ0hBTkdFTE9HLm1kJyxcbiAgICAgICAgUkVMRUFTRV9OT1RFUzogcHJvcHMucmVsZWFzZU5vdGVzRmlsZU5hbWUgfHwgJy4vUkVMRUFTRV9OT1RFUy5tZCcsXG4gICAgICAgIFNJR05JTkdfS0VZX0FSTjogcHJvcHMuc2lnbmluZ0tleS5jcmVkZW50aWFsLnNlY3JldEFybixcbiAgICAgICAgR0lUSFVCX09XTkVSOiBwcm9wcy5naXRodWJSZXBvLm93bmVyLFxuICAgICAgICBHSVRIVUJfUkVQTzogcHJvcHMuZ2l0aHViUmVwby5yZXBvLFxuICAgICAgICBGT1JfUkVBTDogZm9yUmVhbCxcbiAgICAgICAgLy8gVHJhbnNtaXQgdGhlIG5hbWVzIG9mIHRoZSBzZWNvbmRhcnkgc291cmNlcyB0byB0aGUgc2hlbGwgc2NyaXB0IChmb3IgZWFzaWVyIGl0ZXJhdGlvbilcbiAgICAgICAgU0VDT05EQVJZX1NPVVJDRV9OQU1FUzogcHJvcHMuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzID8gcHJvcHMuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzLm1hcChhID0+IGEuYXJ0aWZhY3ROYW1lKS5qb2luKCcgJykgOiB1bmRlZmluZWQsXG4gICAgICAgIFNJR05fQURESVRJT05BTF9BUlRJRkFDVFM6IHByb3BzLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cyAmJiBwcm9wcy5zaWduQWRkaXRpb25hbEFydGlmYWN0cyAhPT0gZmFsc2UgPyAndHJ1ZScgOiB1bmRlZmluZWQsXG4gICAgICB9KSxcbiAgICAgIGVudmlyb25tZW50U2VjcmV0czoge1xuICAgICAgICBHSVRIVUJfVE9LRU46IHByb3BzLmdpdGh1YlJlcG8udG9rZW5TZWNyZXRBcm4sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gYWxsb3cgc2NyaXB0IHRvIHJlYWQgdGhlIHNpZ25pbmcga2V5XG4gICAgaWYgKHNoZWxsYWJsZS5yb2xlKSB7XG4gICAgICBwcm9wcy5zaWduaW5nS2V5LmdyYW50UmVhZChzaGVsbGFibGUucm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgZXh0cmFJbnB1dHM6IHRoaXMuYWRkaXRpb25hbElucHV0QXJ0aWZhY3RzLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRvUzNQcm9wcyB7XG4gIGJ1Y2tldDogczMuSUJ1Y2tldDtcblxuICAvKipcbiAgICogTWFrZSBmaWxlcyBwdWJsaWNseSByZWFkYWJsZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgYHRydWVgIChkZWZhdWx0KSB3aWxsIG9ubHkgcGVyZm9ybSBhIGRyeS1ydW4gYnV0IHdpbGwgbm90IGFjdHVhbGx5IHB1Ymxpc2guXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRyeVJ1bj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9TMyBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElQdWJsaXNoZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaXNoVG9TM1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGZvclJlYWwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IHNoZWxsYWJsZSA9IG5ldyBTaGVsbGFibGUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBwbGF0Zm9ybTogbmV3IExpbnV4UGxhdGZvcm0oY2J1aWxkLkxpbnV4QnVpbGRJbWFnZS5VQlVOVFVfMTRfMDRfTk9ERUpTXzhfMTFfMCksXG4gICAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdwdWJsaXNoaW5nJywgJ3MzJyksXG4gICAgICBlbnRyeXBvaW50OiAncHVibGlzaC5zaCcsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBCVUNLRVRfVVJMOiBgczM6Ly8ke3Byb3BzLmJ1Y2tldC5idWNrZXROYW1lfWAsXG4gICAgICAgIENIQU5HRUxPRzogcHJvcHMucHVibGljID8gJ3RydWUnIDogJ2ZhbHNlJyxcbiAgICAgICAgRk9SX1JFQUw6IGZvclJlYWwsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQWxsb3cgc2NyaXB0IHRvIHdyaXRlIHRvIGJ1Y2tldFxuICAgIGlmIChzaGVsbGFibGUucm9sZSkge1xuICAgICAgcHJvcHMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHNoZWxsYWJsZS5yb2xlKTtcbiAgICB9XG5cbiAgICB0aGlzLnJvbGUgPSBzaGVsbGFibGUucm9sZTtcbiAgICB0aGlzLnByb2plY3QgPSBzaGVsbGFibGUucHJvamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1BpcGVsaW5lKHN0YWdlOiBjcGlwZWxpbmUuSVN0YWdlLCBpZDogc3RyaW5nLCBvcHRpb25zOiBBZGRUb1BpcGVsaW5lT3B0aW9ucyk6IHZvaWQge1xuICAgIHN0YWdlLmFkZEFjdGlvbihuZXcgY3BpcGVsaW5lX2FjdGlvbnMuQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgIGFjdGlvbk5hbWU6IGlkLFxuICAgICAgaW5wdXQ6IG9wdGlvbnMuaW5wdXRBcnRpZmFjdCB8fCBuZXcgY3BpcGVsaW5lLkFydGlmYWN0KCksXG4gICAgICBydW5PcmRlcjogb3B0aW9ucy5ydW5PcmRlcixcbiAgICAgIHByb2plY3Q6IHRoaXMucHJvamVjdCxcbiAgICB9KSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoVG9QeVBpUHJvcHMge1xuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIFB5UEkgY3JlZGVudGlhbHMgdW5kZXJcbiAgICogXCJ1c2VybmFtZVwiIGFuZCBcInBhc3N3b3JkXCIga2V5cy5cbiAgICovXG4gIGxvZ2luU2VjcmV0OiBwZXJtaXNzaW9ucy5FeHRlcm5hbFNlY3JldDtcblxuICAvKipcbiAgICogSWYgYHRydWVgIChkZWZhdWx0KSB3aWxsIG9ubHkgcGVyZm9ybSBhIGRyeS1ydW4gYnV0IHdpbGwgbm90IGFjdHVhbGx5IHB1Ymxpc2guXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRyeVJ1bj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9QeVBpIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLlByb2plY3Q7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1Ymxpc2hUb1B5UGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBmb3JSZWFsID0gcHJvcHMuZHJ5UnVuID09PSB1bmRlZmluZWQgPyAnZmFsc2UnIDogKCFwcm9wcy5kcnlSdW4pLnRvU3RyaW5nKCk7XG5cbiAgICBjb25zdCBzaGVsbGFibGUgPSBuZXcgU2hlbGxhYmxlKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgcGxhdGZvcm06IG5ldyBMaW51eFBsYXRmb3JtKGNidWlsZC5MaW51eEJ1aWxkSW1hZ2UuVUJVTlRVXzE0XzA0X1BZVEhPTl8zXzZfNSksXG4gICAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdwdWJsaXNoaW5nJywgJ3B5cGknKSxcbiAgICAgIGVudHJ5cG9pbnQ6ICdwdWJsaXNoLnNoJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIEZPUl9SRUFMOiBmb3JSZWFsLFxuICAgICAgICBQWVBJX0NSRURFTlRJQUxTX1NFQ1JFVF9JRDogcHJvcHMubG9naW5TZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChzaGVsbGFibGUucm9sZSkge1xuICAgICAgcGVybWlzc2lvbnMuZ3JhbnRTZWNyZXRSZWFkKHByb3BzLmxvZ2luU2VjcmV0LCBzaGVsbGFibGUucm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIEdvIHB1Ymxpc2hpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRvR29sYW5nUHJvcHMge1xuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIEdpdEh1YiBwZXJzb25hbCBhY2Nlc3MgdG9rZW5cbiAgICogdXNlZCB0byBwdXNoIHRoZSBnbyBjb2RlIHRvIHRoZSBnaXRodWIgcmVwb3NpdG9yeSBkZWZpbmVkIGJ5IGl0J3MgbmFtZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9naXRodWIvYXV0aGVudGljYXRpbmctdG8tZ2l0aHViL2NyZWF0aW5nLWEtcGVyc29uYWwtYWNjZXNzLXRva2VuXG4gICAqL1xuICByZWFkb25seSBnaXRodWJUb2tlblNlY3JldDogcGVybWlzc2lvbnMuRXh0ZXJuYWxTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIFVzZXJuYW1lIHRvIHBlcmZvcm0gdGhlIGNvbW1pdCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0VXNlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRW1haWwgdG8gcGVyZm9ybSB0aGUgY29tbWl0IHdpdGguXG4gICAqL1xuICByZWFkb25seSBnaXRVc2VyRW1haWw6IHN0cmluZztcblxuICAvKipcbiAgICogU2V0IHRvIFwidHJ1ZVwiIGZvciBhIGRyeSBydW4uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNb2R1bGUgdmVyc2lvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0cyB0byB0aGUgdmFsdWUgaW4gdGhlICd2ZXJzaW9uJyBmaWxlIG9mIHRoZSBtb2R1bGVcbiAgICogZGlyZWN0b3J5LiBGYWlscyBpZiBpdCBkb2Vzbid0IGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHB1c2ggdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibWFpblwiXG4gICAqL1xuICByZWFkb25seSBnaXRCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21taXQgbWVzc2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjaG9yZShyZWxlYXNlKTogJFZFUlNJT05cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0Q29tbWl0TWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQdXNoZXMgYSBkaXJlY3Rvcnkgb2YgZ29sYW5nIG1vZHVsZXMgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFB1Ymxpc2hUb0dvbGFuZyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuUHJvamVjdDtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaFRvR29sYW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZHJ5UnVuID0gcHJvcHMuZHJ5UnVuID8/IGZhbHNlO1xuXG4gICAgY29uc3Qgc2hlbGxhYmxlID0gbmV3IFNoZWxsYWJsZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIHBsYXRmb3JtOiBuZXcgTGludXhQbGF0Zm9ybShjYnVpbGQuTGludXhCdWlsZEltYWdlLlNUQU5EQVJEXzVfMCksXG4gICAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdwdWJsaXNoaW5nJywgJ2dvbGFuZycpLFxuICAgICAgZW50cnlwb2ludDogJ3B1Ymxpc2guc2gnLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgRFJZUlVOOiBkcnlSdW4gPyAndHJ1ZScgOiB1bmRlZmluZWQsXG4gICAgICAgIEdJVEhVQl9UT0tFTl9TRUNSRVQ6IHByb3BzLmdpdGh1YlRva2VuU2VjcmV0LnNlY3JldEFybixcbiAgICAgICAgVkVSU0lPTjogcHJvcHMudmVyc2lvbixcbiAgICAgICAgR0lUX0JSQU5DSDogcHJvcHMuZ2l0QnJhbmNoLFxuICAgICAgICBHSVRfVVNFUl9OQU1FOiBwcm9wcy5naXRVc2VyTmFtZSxcbiAgICAgICAgR0lUX1VTRVJfRU1BSUw6IHByb3BzLmdpdFVzZXJFbWFpbCxcbiAgICAgICAgR0lUX0NPTU1JVF9NRVNTQUdFOiBwcm9wcy5naXRDb21taXRNZXNzYWdlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChzaGVsbGFibGUucm9sZSkge1xuICAgICAgcGVybWlzc2lvbnMuZ3JhbnRTZWNyZXRSZWFkKHByb3BzLmdpdGh1YlRva2VuU2VjcmV0LCBzaGVsbGFibGUucm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG4iXX0=
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLHFDQU9pQjtBQUdqQiw2Q0FBNkM7QUFHN0MsMkNBQXVEO0FBQ3ZELGlDQUFxQztBQUVyQzs7R0FFRztBQUNILElBQVksU0FVWDtBQVZELFdBQVksU0FBUztJQUNuQjs7T0FFRztJQUNILDhCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsc0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVZXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBVXBCO0FBeUNEOztHQUVHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxtQkFBUztJQUlsRCxZQUFZLE1BQWlCLEVBQUUsRUFBVSxFQUFFLEtBQWlDOztRQUMxRSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBUyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDL0MsUUFBUSxFQUFFLElBQUkseUJBQWEsQ0FBQyxNQUFBLEtBQUssQ0FBQyxVQUFVLG1DQUFJLHVCQUFNLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0csZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7WUFDNUQsVUFBVSxFQUFFLFlBQVk7WUFDeEIsV0FBVyxFQUFFO2dCQUNYLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQzFDLGVBQWUsRUFBRSxLQUFLLENBQUMs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QVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBdUIsRUFBRSxFQUFVLEVBQUUsT0FBNkI7UUFDckYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLGtDQUFpQixDQUFDLGVBQWUsQ0FBQztZQUNwRCxVQUFVLEVBQUUsRUFBRTtZQUNkLEtBQUssRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksMEJBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDeEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRjtBQXhDRCwwQ0F3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0LCBTdGFjayxcbiAgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQsXG4gIGF3c19jb2RlcGlwZWxpbmUgYXMgY3BpcGVsaW5lLFxuICBhd3NfY29kZXBpcGVsaW5lX2FjdGlvbnMgYXMgY3BpcGVsaW5lX2FjdGlvbnMsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfczMgYXMgczMsXG59IGZyb20gJ21vbm9jZGsnO1xuaW1wb3J0IHsgSUNvZGVTaWduaW5nQ2VydGlmaWNhdGUgfSBmcm9tICcuL2NvZGUtc2lnbmluZyc7XG5pbXBvcnQgeyBPcGVuUEdQS2V5UGFpciB9IGZyb20gJy4vb3Blbi1wZ3Ata2V5LXBhaXInO1xuaW1wb3J0ICogYXMgcGVybWlzc2lvbnMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBBZGRUb1BpcGVsaW5lT3B0aW9ucywgSVB1Ymxpc2hlciB9IGZyb20gJy4vcGlwZWxpbmUnO1xuaW1wb3J0IHsgV3JpdGFibGVHaXRIdWJSZXBvIH0gZnJvbSAnLi9yZXBvJztcbmltcG9ydCB7IExpbnV4UGxhdGZvcm0sIFNoZWxsYWJsZSB9IGZyb20gJy4vc2hlbGxhYmxlJztcbmltcG9ydCB7IG5vVW5kZWZpbmVkIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBUeXBlIG9mIGFjY2VzcyBwZXJtaXNzaW9ucyB0byByZXF1ZXN0IGZyb20gbnBtanMuXG4gKi9cbmV4cG9ydCBlbnVtIE5wbUFjY2VzcyB7XG4gIC8qKlxuICAgKiBObyBhY2Nlc3MgcmVzdHJpY3Rpb24uIE5vdGUgdGhhdCB1bnNjb3BlZCBwYWNrYWdlcyBtdXN0IGFsd2F5cyBiZSBwdWJsaWMuXG4gICAqL1xuICBQVUJMSUMgPSAncHVibGljJyxcblxuICAvKipcbiAgICogTGltaXQgYWNjZXNzIHRvIHdoaXRlbGlzdGVkIG5wbWpzIHVzZXJzLlxuICAgKi9cbiAgUkVTVFJJQ1RFRCA9ICdyZXN0cmljdGVkJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoVG9NYXZlblByb2plY3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2lnbmluZyBrZXkgaXRzZWxmXG4gICAqL1xuICBzaWduaW5nS2V5OiBPcGVuUEdQS2V5UGFpcjtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBzb25hdHlwZSBzdGFnaW5nIHByb2ZpbGUgKGUuZy4gXCI2OGEwNTM2MzA4MzE3NFwiKS5cbiAgICovXG4gIHN0YWdpbmdQcm9maWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIE1hdmVuIGxvZ2luXG4gICAqL1xuICBtYXZlbkxvZ2luU2VjcmV0OiBwZXJtaXNzaW9ucy5FeHRlcm5hbFNlY3JldDtcblxuICAvKipcbiAgICogSWYgdHJ1ZSAoZGVmYXVsdCkgcGVyZm9ybXMgYSBkcnktcnVuIG9ubHkgaW5zdGVhZCBvZiBhY3R1YWxseSBwdWJsaXNoaW5nLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgTWF2ZW4gcHVibGlzaGluZyBlbmRwb2ludCB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZ1wiXG4gICAqL1xuICBtYXZlbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYnVpbGQgaW1hZ2UgdG8gZG8gdGhlIHB1Ymxpc2hpbmcgaW5cbiAgICpcbiAgICogTmVlZHMgdG8gaGF2ZSBNYXZlbiBwcmVpbnN0YWxsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IExhdGVzdCBzdXBlcmNoYWluXG4gICAqL1xuICByZWFkb25seSBidWlsZEltYWdlPzogY2J1aWxkLklCdWlsZEltYWdlO1xufVxuXG4vKipcbiAqIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgd2lsbCBwdWJsaXNoIGFsbCBwYWNrYWdlcyBpbiBhIHJlbGVhc2UgYnVuZGxlIHRvIE1hdmVuXG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9NYXZlblByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaFRvTWF2ZW5Qcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGZvclJlYWwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IHNoZWxsYWJsZSA9IG5ldyBTaGVsbGFibGUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBwbGF0Zm9ybTogbmV3IExpbnV4UGxhdGZvcm0ocHJvcHMuYnVpbGRJbWFnZSA/PyBjYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21Eb2NrZXJSZWdpc3RyeSgnanNpaS9zdXBlcmNoYWluJykpLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICdtYXZlbicpLFxuICAgICAgZW50cnlwb2ludDogJ3B1Ymxpc2guc2gnLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgU1RBR0lOR19QUk9GSUxFX0lEOiBwcm9wcy5zdGFnaW5nUHJvZmlsZUlkLFxuICAgICAgICBTSUdOSU5HX0tFWV9BUk46IHByb3BzLnNpZ25pbmdLZXkuY3JlZGVudGlhbC5zZWNyZXRBcm4sXG4gICAgICAgIEZPUl9SRUFMOiBmb3JSZWFsLFxuICAgICAgICBNQVZFTl9MT0dJTl9TRUNSRVQ6IHByb3BzLm1hdmVuTG9naW5TZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICBNQVZFTl9FTkRQT0lOVDogcHJvcHMubWF2ZW5FbmRwb2ludCB8fCAnaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChwcm9wcy5tYXZlbkxvZ2luU2VjcmV0LCBzaGVsbGFibGUucm9sZSk7XG4gICAgICBwcm9wcy5zaWduaW5nS2V5LmdyYW50UmVhZChzaGVsbGFibGUucm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRvTnBtUHJvamVjdFByb3BzIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXIgb2YgdGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSBOUE0gdG9rZW5cbiAgICovXG4gIG5wbVRva2VuU2VjcmV0OiBwZXJtaXNzaW9ucy5FeHRlcm5hbFNlY3JldDtcblxuICAvKipcbiAgICogSWYgYHRydWVgIChkZWZhdWx0KSB3aWxsIG9ubHkgcGVyZm9ybSBhIGRyeS1ydW4gYnV0IHdpbGwgbm90IGFjdHVhbGx5IHB1Ymxpc2guXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRyeVJ1bj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIG5wbSBkaXN0LXRhZyB0byB1c2Ugd2hlbiBwdWJsaXNoaW5nIGFydGlmYWN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBucG0gZGVmYXVsdCBiZWhhdmlvciAoXCJsYXRlc3RcIiB1bmxlc3MgZGlzdCB0YWcgaXMgc3BlY2lmaWVkIGluIHBhY2thZ2UuanNvbilcbiAgICovXG4gIGRpc3RUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIG5wbSAtLWFjY2VzcyBwdWJsaWN8cmVzdHJpY3RlZFxuICAgKlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLm5wbWpzLmNvbS9jbGktY29tbWFuZHMvcHVibGlzaCM6fjp0ZXh0PVRlbGxzJTIwdGhlXG4gICAqXG4gICAqIFRlbGxzIHRoZSByZWdpc3RyeSB3aGV0aGVyIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgcHVibGlzaGVkIGFzIHB1YmxpYyBvciByZXN0cmljdGVkLlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gc2NvcGVkIHBhY2thZ2VzLCB3aGljaCBkZWZhdWx0IHRvIHJlc3RyaWN0ZWQuXG4gICAqIElmIHlvdSBkb27igJl0IGhhdmUgYSBwYWlkIGFjY291bnQsIHlvdSBtdXN0IHB1Ymxpc2ggd2l0aCAtLWFjY2VzcyBwdWJsaWMgdG8gcHVibGlzaCBzY29wZWQgcGFja2FnZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5wbUFjY2Vzcy5QVUJMSUNcbiAgICovXG4gIGFjY2Vzcz86IE5wbUFjY2Vzcztcbn1cblxuLyoqXG4gKiBDb2RlQnVpbGQgcHJvamVjdCB0aGF0IHdpbGwgcHVibGlzaCBhbGwgcGFja2FnZXMgaW4gYSByZWxlYXNlIGJ1bmRsZSB0byBOUE1cbiAqL1xuZXhwb3J0IGNsYXNzIFB1Ymxpc2hUb05wbVByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1Ymxpc2hUb05wbVByb2plY3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgY29uc3QgZm9yUmVhbCA9IHByb3BzLmRyeVJ1biA9PT0gdW5kZWZpbmVkID8gJ2ZhbHNlJyA6ICghcHJvcHMuZHJ5UnVuKS50b1N0cmluZygpO1xuXG4gICAgY29uc3QgYWNjZXNzID0gcHJvcHMuYWNjZXNzID8/IE5wbUFjY2Vzcy5QVUJMSUM7XG5cbiAgICBjb25zdCBzaGVsbGFibGUgPSBuZXcgU2hlbGxhYmxlKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgcGxhdGZvcm06IG5ldyBMaW51eFBsYXRmb3JtKGNidWlsZC5MaW51eEJ1aWxkSW1hZ2UuVUJVTlRVXzE0XzA0X05PREVKU18xMF8xXzApLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICducG0nKSxcbiAgICAgIGVudHJ5cG9pbnQ6ICdwdWJsaXNoLnNoJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIEZPUl9SRUFMOiBmb3JSZWFsLFxuICAgICAgICBOUE1fVE9LRU5fU0VDUkVUOiBwcm9wcy5ucG1Ub2tlblNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIERJU1RUQUc6IHByb3BzLmRpc3RUYWcgfHwgJycsXG4gICAgICAgIEFDQ0VTUzogYWNjZXNzLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChzaGVsbGFibGUucm9sZSkge1xuICAgICAgcGVybWlzc2lvbnMuZ3JhbnRTZWNyZXRSZWFkKHByb3BzLm5wbVRva2VuU2VjcmV0LCBzaGVsbGFibGUucm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRvTnVHZXRQcm9qZWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIFNlY3JldHNNYW5hZ2VyIHNlY3JldCB3aGljaCBzdG9yZXMgdGhlIE51Z2V0IEFQSSBrZXkuXG4gICAqL1xuICBudWdldEFwaUtleVNlY3JldDogcGVybWlzc2lvbnMuRXh0ZXJuYWxTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCAoZGVmYXVsdCkgd2lsbCBvbmx5IHBlcmZvcm0gYSBkcnktcnVuIGJ1dCB3aWxsIG5vdCBhY3R1YWxseSBwdWJsaXNoLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGNvZGUgc2lnbmluZyBjZXJ0aWZpY2F0ZSB0byB1c2UgdG8gc2lnbiBhc3NlbWJsaWVzLlxuICAgKiBAZGVmYXVsdCBObyBzaWduaW5nXG4gICAqL1xuICBjb2RlU2lnbj86IElDb2RlU2lnbmluZ0NlcnRpZmljYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgYnVpbGQgaW1hZ2UgdG8gZG8gdGhlIHB1Ymxpc2hpbmcgaW5cbiAgICpcbiAgICogTmVlZHMgdG8gaGF2ZSBOdUdldCBwcmVpbnN0YWxsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IExhdGVzdCBzdXBlcmNoYWluXG4gICAqL1xuICByZWFkb25seSBidWlsZEltYWdlPzogY2J1aWxkLklCdWlsZEltYWdlO1xufVxuXG4vKipcbiAqIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgd2lsbCBwdWJsaXNoIGFsbCBwYWNrYWdlcyBpbiBhIHJlbGVhc2UgYnVuZGxlIHRvIE51R2V0XG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9OdUdldFByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaFRvTnVHZXRQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGVudmlyb25tZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0geyB9O1xuXG4gICAgZW52aXJvbm1lbnQuRk9SX1JFQUwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcblxuICAgIGlmIChwcm9wcy5udWdldEFwaUtleVNlY3JldC5hc3N1bWVSb2xlQXJuKSB7XG4gICAgICBlbnZpcm9ubWVudC5OVUdFVF9ST0xFX0FSTiA9IHByb3BzLm51Z2V0QXBpS2V5U2VjcmV0LmFzc3VtZVJvbGVBcm47XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm51Z2V0QXBpS2V5U2VjcmV0LnJlZ2lvbikge1xuICAgICAgZW52aXJvbm1lbnQuTlVHRVRfU0VDUkVUX1JFR0lPTiA9IHByb3BzLm51Z2V0QXBpS2V5U2VjcmV0LnJlZ2lvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgZW52aXJvbm1lbnQuTlVHRVRfU0VDUkVUX1JFR0lPTiA9IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbjtcbiAgICB9XG5cbiAgICBlbnZpcm9ubWVudC5OVUdFVF9TRUNSRVRfSUQgPSBwcm9wcy5udWdldEFwaUtleVNlY3JldC5zZWNyZXRBcm47XG5cbiAgICBpZiAocHJvcHMuY29kZVNpZ24pIHtcbiAgICAgIGVudmlyb25tZW50LkNPREVfU0lHTklOR19TRUNSRVRfSUQgPSBwcm9wcy5jb2RlU2lnbi5jcmVkZW50aWFsLnNlY3JldEFybjtcbiAgICAgIGVudmlyb25tZW50LkNPREVfU0lHTklOR19QQVJBTUVURVJfTkFNRSA9IHByb3BzLmNvZGVTaWduLnByaW5jaXBhbC5wYXJhbWV0ZXJOYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IHNoZWxsYWJsZSA9IG5ldyBTaGVsbGFibGUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBwbGF0Zm9ybTogbmV3IExpbnV4UGxhdGZvcm0ocHJvcHMuYnVpbGRJbWFnZSA/PyBjYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21Eb2NrZXJSZWdpc3RyeSgnanNpaS9zdXBlcmNoYWluJykpLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICdudWdldCcpLFxuICAgICAgZW50cnlwb2ludDogJ3B1Ymxpc2guc2gnLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgfSk7XG5cbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIGlmIChwcm9wcy5udWdldEFwaUtleVNlY3JldC5hc3N1bWVSb2xlQXJuKSB7XG4gICAgICAgIHBlcm1pc3Npb25zLmdyYW50QXNzdW1lUm9sZShwcm9wcy5udWdldEFwaUtleVNlY3JldC5hc3N1bWVSb2xlQXJuLCBzaGVsbGFibGUucm9sZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQocHJvcHMubnVnZXRBcGlLZXlTZWNyZXQsIHNoZWxsYWJsZS5yb2xlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLmNvZGVTaWduKSB7XG4gICAgICAgIHByb3BzLmNvZGVTaWduLmdyYW50RGVjcnlwdChzaGVsbGFibGUucm9sZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaERvY3NUb0dpdEh1YlByb2plY3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSB0byBwdWJsaXNoIHRvXG4gICAqL1xuICBnaXRodWJSZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCAoZGVmYXVsdCkgd2lsbCBvbmx5IHBlcmZvcm0gYSBkcnktcnVuIGJ1dCB3aWxsIG5vdCBhY3R1YWxseSBwdWJsaXNoLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnVpbGQgbWFuaWZlc3QgSlNPTiBmaWxlIChtdXN0IGluY2x1ZGUgXCJuYW1lXCIgYW5kIFwidmVyc2lvblwiIGZpZWxkcykuXG4gICAqIFJlbGF0aXZlIHRvIHRoZSBhcnRpZmFjdHMgcm9vdC5cbiAgICogQGRlZmF1bHQgXCIuL2J1aWxkLmpzb25cIlxuICAgKi9cbiAgYnVpbGRNYW5pZmVzdEZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgUGFnZXMgYnJhbmNoIHRvIHB1c2ggdG8uXG4gICAqIEBkZWZhdWx0IGdoLXBhZ2VzXG4gICAqL1xuICBicmFuY2g/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29kZUJ1aWxkIHByb2plY3QgdGhhdCB3aWxsIHB1Ymxpc2ggYWxsIHBhY2thZ2VzIGluIGEgcmVsZWFzZSBidW5kbGUgdG8gTnVHZXRcbiAqL1xuZXhwb3J0IGNsYXNzIFB1Ymxpc2hEb2NzVG9HaXRIdWJQcm9qZWN0IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVB1Ymxpc2hlciB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1Ymxpc2hEb2NzVG9HaXRIdWJQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGZvclJlYWwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IHNoZWxsYWJsZSA9IG5ldyBTaGVsbGFibGUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBwbGF0Zm9ybTogbmV3IExpbnV4UGxhdGZvcm0oY2J1aWxkLkxpbnV4QnVpbGRJbWFnZS5VQlVOVFVfMTRfMDRfTk9ERUpTXzEwXzFfMCksXG4gICAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdwdWJsaXNoaW5nJywgJ2RvY3MnKSxcbiAgICAgIGVudHJ5cG9pbnQ6ICdwdWJsaXNoLnNoJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC8vIE11c3QgYmUgU1NIIGJlY2F1c2Ugd2UgdXNlIGFuIFNTSCBrZXkgdG8gYXV0aGVudGljYXRlXG4gICAgICAgIEdJVEhVQl9SRVBPOiBwcm9wcy5naXRodWJSZXBvLnJlcG9zaXRvcnlVcmxTc2gsXG4gICAgICAgIEdJVEhVQl9QQUdFU19CUkFOQ0g6IHByb3BzLmJyYW5jaCB8fCAnZ2gtcGFnZXMnLFxuICAgICAgICBTU0hfS0VZX1NFQ1JFVDogcHJvcHMuZ2l0aHViUmVwby5zc2hLZXlTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICBGT1JfUkVBTDogZm9yUmVhbCxcbiAgICAgICAgQ09NTUlUX1VTRVJOQU1FOiBwcm9wcy5naXRodWJSZXBvLmNvbW1pdFVzZXJuYW1lLFxuICAgICAgICBDT01NSVRfRU1BSUw6IHByb3BzLmdpdGh1YlJlcG8uY29tbWl0RW1haWwsXG4gICAgICAgIEJVSUxEX01BTklGRVNUOiBwcm9wcy5idWlsZE1hbmlmZXN0RmlsZU5hbWUgfHwgJy4vYnVpbGQuanNvbicsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHNoZWxsYWJsZS5yb2xlKSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQocHJvcHMuZ2l0aHViUmVwby5zc2hLZXlTZWNyZXQsIHNoZWxsYWJsZS5yb2xlKTtcbiAgICB9XG5cbiAgICB0aGlzLnJvbGUgPSBzaGVsbGFibGUucm9sZTtcbiAgICB0aGlzLnByb2plY3QgPSBzaGVsbGFibGUucHJvamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1BpcGVsaW5lKHN0YWdlOiBjcGlwZWxpbmUuSVN0YWdlLCBpZDogc3RyaW5nLCBvcHRpb25zOiBBZGRUb1BpcGVsaW5lT3B0aW9ucyk6IHZvaWQge1xuICAgIHN0YWdlLmFkZEFjdGlvbihuZXcgY3BpcGVsaW5lX2FjdGlvbnMuQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgIGFjdGlvbk5hbWU6IGlkLFxuICAgICAgaW5wdXQ6IG9wdGlvbnMuaW5wdXRBcnRpZmFjdCB8fCBuZXcgY3BpcGVsaW5lLkFydGlmYWN0KCksXG4gICAgICBydW5PcmRlcjogb3B0aW9ucy5ydW5PcmRlcixcbiAgICAgIHByb2plY3Q6IHRoaXMucHJvamVjdCxcbiAgICB9KSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoVG9HaXRIdWJQcm9wcyB7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAgKGRlZmF1bHQpIHdpbGwgb25seSBwZXJmb3JtIGEgZHJ5LXJ1biBidXQgd2lsbCBub3QgYWN0dWFsbHkgcHVibGlzaC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZHJ5UnVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgcmVsZWFzZSBpbi5cbiAgICovXG4gIGdpdGh1YlJlcG86IFdyaXRhYmxlR2l0SHViUmVwbztcblxuICAvKipcbiAgICogVGhlIHNpZ25pZ24ga2V5IHRvIHVzZSB0byBjcmVhdGUgYSBHUEcgc2lnbmF0dXJlIG9mIHRoZSBhcnRpZmFjdC5cbiAgICovXG4gIHNpZ25pbmdLZXk6IE9wZW5QR1BLZXlQYWlyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnVpbGQgbWFuaWZlc3QgSlNPTiBmaWxlIChtdXN0IGluY2x1ZGUgXCJuYW1lXCIgYW5kIFwidmVyc2lvblwiIGZpZWxkcykuXG4gICAqIFJlbGF0aXZlIHRvIHRoZSBhcnRpZmFjdHMgcm9vdC5cbiAgICogQGRlZmF1bHQgXCIuL2J1aWxkLmpzb25cIlxuICAgKi9cbiAgYnVpbGRNYW5pZmVzdEZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2hhbmdlbG9nIG1hcmtkb3duIGZpbGUsIHVzZWQgdG8gY3JlYXRlIHJlbGVhc2Ugbm90ZXMuXG4gICAqIFJlbGF0aXZlIHRvIHRoZSBhcnRpZmFjdHMgcm9vdC5cbiAgICogQGRlZmF1bHQgXCIuL0NIQU5HRUxPRy5tZFwiXG4gICAqL1xuICBjaGFuZ2Vsb2dGaWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlbGVhc2Ugbm90ZXMgZmlsZSwgY29udGFpbmluZyB0aGUgY29tcGxldGVkIHJlbGVhc2Ugbm90ZXNcbiAgICogZm9yIHRoZSBjdXJyZW50IHJlbGVhc2UuXG4gICAqIFJlbGF0aXZlIHRvIHRoZSBhcnRpZmFjdHMgcm9vdC5cbiAgICogTk9URSAtIElmIHRoaXMgdmFsdWUgaXMgc2V0IGFuZCBwb2ludHMgdG8gYSB2YWxpZCBmaWxlLCB0aGUgZmlsZSBpbiBpdHMgZW50aXJldHlcbiAgICogd2lsbCBiZSByZWFkIGFuZCB1c2VkIGZvciB0aGUgcmVsZWFzZSBub3Rlcy4gVGhlIHZhbHVlIG9mIGBjaGFuZ2Vsb2dGaWxlTmFtZWAgd2lsbFxuICAgKiBiZSBpZ25vcmVkLlxuICAgKiBAZGVmYXVsdCBcIi4vUkVMRUFTRV9OT1RFUy5tZFwiXG4gICAqL1xuICByZWxlYXNlTm90ZXNGaWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBpbnB1dCBhcnRpZmFjdHMgdG8gcHVibGlzaCBiaW5hcmllcyBmcm9tIHRvIEdpdEh1YiByZWxlYXNlXG4gICAqL1xuICBhZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHM/OiBjcGlwZWxpbmUuQXJ0aWZhY3RbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaWduIHRoZSBhZGRpdGlvbmFsIGFydGlmYWN0c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaWduQWRkaXRpb25hbEFydGlmYWN0cz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9HaXRIdWIgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cz86IGNwaXBlbGluZS5BcnRpZmFjdFtdO1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaFRvR2l0SHViUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIGNvbnN0IGZvclJlYWwgPSBwcm9wcy5kcnlSdW4gPT09IHVuZGVmaW5lZCA/ICdmYWxzZScgOiAoIXByb3BzLmRyeVJ1bikudG9TdHJpbmcoKTtcbiAgICB0aGlzLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cyA9IHByb3BzLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cztcblxuICAgIC8vIFRoZSByZWxlYXNlIG5vdGVzLCBpZiBzZXQgYW5kIGEgdmFsaWQgZmlsZSwgb3ZlcnJpZGVzIGFueSB1c2FnZXMgb2YgdGhlIGNoYW5nZWxvZy5cbiAgICBpZiAocHJvcHMuY2hhbmdlbG9nRmlsZU5hbWUgJiYgcHJvcHMucmVsZWFzZU5vdGVzRmlsZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCBgcmVsZWFzZU5vdGVzRmlsZU5hbWVgIGFuZCBgY2hhbmdlbG9nRmlsZU5hbWVgIGNhbm5vdCBiZSBzcGVjaWZpZWQ7IHVzZSBvbmUgb3IgdGhlIG90aGVyJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hlbGxhYmxlID0gbmV3IFNoZWxsYWJsZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIHBsYXRmb3JtOiBuZXcgTGludXhQbGF0Zm9ybShjYnVpbGQuTGludXhCdWlsZEltYWdlLlVCVU5UVV8xNF8wNF9OT0RFSlNfMTBfMV8wKSxcbiAgICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3B1Ymxpc2hpbmcnLCAnZ2l0aHViJyksXG4gICAgICBlbnRyeXBvaW50OiAncHVibGlzaC5zaCcsXG4gICAgICBlbnZpcm9ubWVudDogbm9VbmRlZmluZWQoe1xuICAgICAgICBCVUlMRF9NQU5JRkVTVDogcHJvcHMuYnVpbGRNYW5pZmVzdEZpbGVOYW1lIHx8ICcuL2J1aWxkLmpzb24nLFxuICAgICAgICBDSEFOR0VMT0c6IHByb3BzLmNoYW5nZWxvZ0ZpbGVOYW1lIHx8ICcuL0NIQU5HRUxPRy5tZCcsXG4gICAgICAgIFJFTEVBU0VfTk9URVM6IHByb3BzLnJlbGVhc2VOb3Rlc0ZpbGVOYW1lIHx8ICcuL1JFTEVBU0VfTk9URVMubWQnLFxuICAgICAgICBTSUdOSU5HX0tFWV9BUk46IHByb3BzLnNpZ25pbmdLZXkuY3JlZGVudGlhbC5zZWNyZXRBcm4sXG4gICAgICAgIEdJVEhVQl9PV05FUjogcHJvcHMuZ2l0aHViUmVwby5vd25lcixcbiAgICAgICAgR0lUSFVCX1JFUE86IHByb3BzLmdpdGh1YlJlcG8ucmVwbyxcbiAgICAgICAgRk9SX1JFQUw6IGZvclJlYWwsXG4gICAgICAgIC8vIFRyYW5zbWl0IHRoZSBuYW1lcyBvZiB0aGUgc2Vjb25kYXJ5IHNvdXJjZXMgdG8gdGhlIHNoZWxsIHNjcmlwdCAoZm9yIGVhc2llciBpdGVyYXRpb24pXG4gICAgICAgIFNFQ09OREFSWV9TT1VSQ0VfTkFNRVM6IHByb3BzLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cyA/IHByb3BzLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cy5tYXAoYSA9PiBhLmFydGlmYWN0TmFtZSkuam9pbignICcpIDogdW5kZWZpbmVkLFxuICAgICAgICBTSUdOX0FERElUSU9OQUxfQVJUSUZBQ1RTOiBwcm9wcy5hZGRpdGlvbmFsSW5wdXRBcnRpZmFjdHMgJiYgcHJvcHMuc2lnbkFkZGl0aW9uYWxBcnRpZmFjdHMgIT09IGZhbHNlID8gJ3RydWUnIDogdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgICBlbnZpcm9ubWVudFNlY3JldHM6IHtcbiAgICAgICAgR0lUSFVCX1RPS0VOOiBwcm9wcy5naXRodWJSZXBvLnRva2VuU2VjcmV0QXJuLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIGFsbG93IHNjcmlwdCB0byByZWFkIHRoZSBzaWduaW5nIGtleVxuICAgIGlmIChzaGVsbGFibGUucm9sZSkge1xuICAgICAgcHJvcHMuc2lnbmluZ0tleS5ncmFudFJlYWQoc2hlbGxhYmxlLnJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHNoZWxsYWJsZS5yb2xlO1xuICAgIHRoaXMucHJvamVjdCA9IHNoZWxsYWJsZS5wcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUGlwZWxpbmUoc3RhZ2U6IGNwaXBlbGluZS5JU3RhZ2UsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFkZFRvUGlwZWxpbmVPcHRpb25zKTogdm9pZCB7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogaWQsXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dEFydGlmYWN0IHx8IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoKSxcbiAgICAgIGV4dHJhSW5wdXRzOiB0aGlzLmFkZGl0aW9uYWxJbnB1dEFydGlmYWN0cyxcbiAgICAgIHJ1bk9yZGVyOiBvcHRpb25zLnJ1bk9yZGVyLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH0pKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hUb1MzUHJvcHMge1xuICBidWNrZXQ6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIE1ha2UgZmlsZXMgcHVibGljbHkgcmVhZGFibGVcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCAoZGVmYXVsdCkgd2lsbCBvbmx5IHBlcmZvcm0gYSBkcnktcnVuIGJ1dCB3aWxsIG5vdCBhY3R1YWxseSBwdWJsaXNoLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUHVibGlzaFRvUzMgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUHVibGlzaGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGlzaFRvUzNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBmb3JSZWFsID0gcHJvcHMuZHJ5UnVuID09PSB1bmRlZmluZWQgPyAnZmFsc2UnIDogKCFwcm9wcy5kcnlSdW4pLnRvU3RyaW5nKCk7XG5cbiAgICBjb25zdCBzaGVsbGFibGUgPSBuZXcgU2hlbGxhYmxlKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgcGxhdGZvcm06IG5ldyBMaW51eFBsYXRmb3JtKGNidWlsZC5MaW51eEJ1aWxkSW1hZ2UuVUJVTlRVXzE0XzA0X05PREVKU184XzExXzApLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICdzMycpLFxuICAgICAgZW50cnlwb2ludDogJ3B1Ymxpc2guc2gnLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgQlVDS0VUX1VSTDogYHMzOi8vJHtwcm9wcy5idWNrZXQuYnVja2V0TmFtZX1gLFxuICAgICAgICBDSEFOR0VMT0c6IHByb3BzLnB1YmxpYyA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgIEZPUl9SRUFMOiBmb3JSZWFsLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEFsbG93IHNjcmlwdCB0byB3cml0ZSB0byBidWNrZXRcbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIHByb3BzLmJ1Y2tldC5ncmFudFJlYWRXcml0ZShzaGVsbGFibGUucm9sZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID0gc2hlbGxhYmxlLnJvbGU7XG4gICAgdGhpcy5wcm9qZWN0ID0gc2hlbGxhYmxlLnByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9QaXBlbGluZShzdGFnZTogY3BpcGVsaW5lLklTdGFnZSwgaWQ6IHN0cmluZywgb3B0aW9uczogQWRkVG9QaXBlbGluZU9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVCdWlsZEFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiBpZCxcbiAgICAgIGlucHV0OiBvcHRpb25zLmlucHV0QXJ0aWZhY3QgfHwgbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgpLFxuICAgICAgcnVuT3JkZXI6IG9wdGlvbnMucnVuT3JkZXIsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaFRvUHlQaVByb3BzIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXIgb2YgdGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSBQeVBJIGNyZWRlbnRpYWxzIHVuZGVyXG4gICAqIFwidXNlcm5hbWVcIiBhbmQgXCJwYXNzd29yZFwiIGtleXMuXG4gICAqL1xuICBsb2dpblNlY3JldDogcGVybWlzc2lvbnMuRXh0ZXJuYWxTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCAoZGVmYXVsdCkgd2lsbCBvbmx5IHBlcmZvcm0gYSBkcnktcnVuIGJ1dCB3aWxsIG5vdCBhY3R1YWxseSBwdWJsaXNoLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkcnlSdW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUHVibGlzaFRvUHlQaSBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNidWlsZC5Qcm9qZWN0O1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaXNoVG9QeVBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZm9yUmVhbCA9IHByb3BzLmRyeVJ1biA9PT0gdW5kZWZpbmVkID8gJ2ZhbHNlJyA6ICghcHJvcHMuZHJ5UnVuKS50b1N0cmluZygpO1xuXG4gICAgY29uc3Qgc2hlbGxhYmxlID0gbmV3IFNoZWxsYWJsZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIHBsYXRmb3JtOiBuZXcgTGludXhQbGF0Zm9ybShjYnVpbGQuTGludXhCdWlsZEltYWdlLlVCVU5UVV8xNF8wNF9QWVRIT05fM182XzUpLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICdweXBpJyksXG4gICAgICBlbnRyeXBvaW50OiAncHVibGlzaC5zaCcsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBGT1JfUkVBTDogZm9yUmVhbCxcbiAgICAgICAgUFlQSV9DUkVERU5USUFMU19TRUNSRVRfSUQ6IHByb3BzLmxvZ2luU2VjcmV0LnNlY3JldEFybixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChwcm9wcy5sb2dpblNlY3JldCwgc2hlbGxhYmxlLnJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHNoZWxsYWJsZS5yb2xlO1xuICAgIHRoaXMucHJvamVjdCA9IHNoZWxsYWJsZS5wcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUGlwZWxpbmUoc3RhZ2U6IGNwaXBlbGluZS5JU3RhZ2UsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFkZFRvUGlwZWxpbmVPcHRpb25zKTogdm9pZCB7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogaWQsXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dEFydGlmYWN0IHx8IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoKSxcbiAgICAgIHJ1bk9yZGVyOiBvcHRpb25zLnJ1bk9yZGVyLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIGZvciBHbyBwdWJsaXNoaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hUb0dvbGFuZ1Byb3BzIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXIgb2YgdGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSBHaXRIdWIgcGVyc29uYWwgYWNjZXNzIHRva2VuXG4gICAqIHVzZWQgdG8gcHVzaCB0aGUgZ28gY29kZSB0byB0aGUgZ2l0aHViIHJlcG9zaXRvcnkgZGVmaW5lZCBieSBpdCdzIG5hbWUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vZ2l0aHViL2F1dGhlbnRpY2F0aW5nLXRvLWdpdGh1Yi9jcmVhdGluZy1hLXBlcnNvbmFsLWFjY2Vzcy10b2tlblxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViVG9rZW5TZWNyZXQ6IHBlcm1pc3Npb25zLkV4dGVybmFsU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBVc2VybmFtZSB0byBwZXJmb3JtIHRoZSBjb21taXQgd2l0aC5cbiAgICovXG4gIHJlYWRvbmx5IGdpdFVzZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtYWlsIHRvIHBlcmZvcm0gdGhlIGNvbW1pdCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0VXNlckVtYWlsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0byBcInRydWVcIiBmb3IgYSBkcnkgcnVuLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZHJ5UnVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTW9kdWxlIHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdHMgdG8gdGhlIHZhbHVlIGluIHRoZSAndmVyc2lvbicgZmlsZSBvZiB0aGUgbW9kdWxlXG4gICAqIGRpcmVjdG9yeS4gRmFpbHMgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byBwdXNoIHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm1haW5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0QnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWl0IG1lc3NhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiY2hvcmUocmVsZWFzZSk6ICRWRVJTSU9OXCJcbiAgICovXG4gIHJlYWRvbmx5IGdpdENvbW1pdE1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVzaGVzIGEgZGlyZWN0b3J5IG9mIGdvbGFuZyBtb2R1bGVzIHRvIGEgR2l0SHViIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJsaXNoVG9Hb2xhbmcgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLlByb2plY3Q7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1Ymxpc2hUb0dvbGFuZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGRyeVJ1biA9IHByb3BzLmRyeVJ1biA/PyBmYWxzZTtcblxuICAgIGNvbnN0IHNoZWxsYWJsZSA9IG5ldyBTaGVsbGFibGUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBwbGF0Zm9ybTogbmV3IExpbnV4UGxhdGZvcm0oY2J1aWxkLkxpbnV4QnVpbGRJbWFnZS5TVEFOREFSRF81XzApLFxuICAgICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHVibGlzaGluZycsICdnb2xhbmcnKSxcbiAgICAgIGVudHJ5cG9pbnQ6ICdwdWJsaXNoLnNoJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIERSWVJVTjogZHJ5UnVuID8gJ3RydWUnIDogdW5kZWZpbmVkLFxuICAgICAgICBHSVRIVUJfVE9LRU5fU0VDUkVUOiBwcm9wcy5naXRodWJUb2tlblNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIFZFUlNJT046IHByb3BzLnZlcnNpb24sXG4gICAgICAgIEdJVF9CUkFOQ0g6IHByb3BzLmdpdEJyYW5jaCxcbiAgICAgICAgR0lUX1VTRVJfTkFNRTogcHJvcHMuZ2l0VXNlck5hbWUsXG4gICAgICAgIEdJVF9VU0VSX0VNQUlMOiBwcm9wcy5naXRVc2VyRW1haWwsXG4gICAgICAgIEdJVF9DT01NSVRfTUVTU0FHRTogcHJvcHMuZ2l0Q29tbWl0TWVzc2FnZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoc2hlbGxhYmxlLnJvbGUpIHtcbiAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZChwcm9wcy5naXRodWJUb2tlblNlY3JldCwgc2hlbGxhYmxlLnJvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9IHNoZWxsYWJsZS5yb2xlO1xuICAgIHRoaXMucHJvamVjdCA9IHNoZWxsYWJsZS5wcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUGlwZWxpbmUoc3RhZ2U6IGNwaXBlbGluZS5JU3RhZ2UsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFkZFRvUGlwZWxpbmVPcHRpb25zKTogdm9pZCB7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQnVpbGRBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogaWQsXG4gICAgICBpbnB1dDogb3B0aW9ucy5pbnB1dEFydGlmYWN0IHx8IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoKSxcbiAgICAgIHJ1bk9yZGVyOiBvcHRpb25zLnJ1bk9yZGVyLFxuICAgICAgcHJvamVjdDogdGhpcy5wcm9qZWN0LFxuICAgIH0pKTtcbiAgfVxufVxuIl19
package/lib/publishing.ts CHANGED
@@ -58,6 +58,15 @@ export interface PublishToMavenProjectProps {
58
58
  * @default "https://oss.sonatype.org"
59
59
  */
60
60
  mavenEndpoint?: string;
61
+
62
+ /**
63
+ * The build image to do the publishing in
64
+ *
65
+ * Needs to have Maven preinstalled.
66
+ *
67
+ * @default Latest superchain
68
+ */
69
+ readonly buildImage?: cbuild.IBuildImage;
61
70
  }
62
71
 
63
72
  /**
@@ -73,7 +82,7 @@ export class PublishToMavenProject extends Construct implements IPublisher {
73
82
  const forReal = props.dryRun === undefined ? 'false' : (!props.dryRun).toString();
74
83
 
75
84
  const shellable = new Shellable(this, 'Default', {
76
- platform: new LinuxPlatform(cbuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
85
+ platform: new LinuxPlatform(props.buildImage ?? cbuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
77
86
  scriptDirectory: path.join(__dirname, 'publishing', 'maven'),
78
87
  entrypoint: 'publish.sh',
79
88
  environment: {
@@ -198,6 +207,15 @@ export interface PublishToNuGetProjectProps {
198
207
  * @default No signing
199
208
  */
200
209
  codeSign?: ICodeSigningCertificate;
210
+
211
+ /**
212
+ * The build image to do the publishing in
213
+ *
214
+ * Needs to have NuGet preinstalled.
215
+ *
216
+ * @default Latest superchain
217
+ */
218
+ readonly buildImage?: cbuild.IBuildImage;
201
219
  }
202
220
 
203
221
  /**
@@ -232,7 +250,7 @@ export class PublishToNuGetProject extends Construct implements IPublisher {
232
250
  }
233
251
 
234
252
  const shellable = new Shellable(this, 'Default', {
235
- platform: new LinuxPlatform(cbuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
253
+ platform: new LinuxPlatform(props.buildImage ?? cbuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain')),
236
254
  scriptDirectory: path.join(__dirname, 'publishing', 'nuget'),
237
255
  entrypoint: 'publish.sh',
238
256
  environment,
@@ -74,11 +74,14 @@ class MirrorSource {
74
74
  if (opts.buildArgs) {
75
75
  Object.entries(opts.buildArgs).forEach(([k, v]) => cmdFlags.push('--build-arg', `${k}=${v}`));
76
76
  }
77
+ const zipFile = `${this.repositoryName}.zip`;
78
+ const tmpDir = this.repositoryName;
77
79
  return {
78
80
  commands: [
79
- `aws s3 cp ${asset.s3ObjectUrl} ${this.repositoryName}.zip`,
80
- `unzip ${this.repositoryName}.zip -d ${this.repositoryName}`,
81
- `docker build ${cmdFlags.join(' ')} ${this.repositoryName}`,
81
+ `rm -rf ${zipFile} ${tmpDir}`,
82
+ `aws s3 cp ${asset.s3ObjectUrl} ${zipFile}`,
83
+ `unzip ${zipFile} -d ${tmpDir}`,
84
+ `docker build ${cmdFlags.join(' ')} ${tmpDir}`,
82
85
  ],
83
86
  repositoryName: this.repositoryName,
84
87
  tag: this.tag,
@@ -89,4 +92,4 @@ class MirrorSource {
89
92
  }
90
93
  }
91
94
  exports.MirrorSource = MirrorSource;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1pcnJvci1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBSWlCO0FBcURqQjs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFvRmhDLFlBQXVDLGNBQXNCLEVBQXFCLEdBQVcsRUFBcUIsU0FBa0I7UUFBN0YsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFBcUIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFxQixjQUFTLEdBQVQsU0FBUyxDQUFTO0lBQ3BJLENBQUM7SUFuRkQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxNQUFjLFFBQVE7UUFDL0QsTUFBTSxxQkFBc0IsU0FBUSxZQUFZO1lBQzlDO2dCQUNFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2lCQUMvQztnQkFDRCwrREFBK0Q7Z0JBQy9ELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQztnQkFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVNLElBQUksQ0FBQyxPQUFnQztnQkFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoRixPQUFPO29CQUNMLFFBQVEsRUFBRTt3QkFDUixlQUFlLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDaEQsY0FBYyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFO3FCQUMvRDtvQkFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBaUIsRUFBRSxjQUFzQixFQUFFLEdBQVk7UUFDakYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLEVBQUUsY0FBc0IsRUFBRSxPQUFxQyxFQUFFO1FBQ3RHLE1BQU0scUJBQXNCLFNBQVEsWUFBWTtZQUM5Qzs7Z0JBQ0UsS0FBSyxDQUFDLGNBQWMsRUFBRSxNQUFBLElBQUksQ0FBQyxHQUFHLG1DQUFJLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBRU0sSUFBSSxDQUFDLE9BQWdDOztnQkFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSx1QkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGVBQWUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQUEsSUFBSSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBVSxFQUFFLENBQUMsQ0FBQztnQkFDbkosSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDbEM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoRixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUVqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQy9GO2dCQUVELE9BQU87b0JBQ0wsUUFBUSxFQUFFO3dCQUNSLGFBQWEsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxNQUFNO3dCQUMzRCxTQUFTLElBQUksQ0FBQyxjQUFjLFdBQVcsSUFBSSxDQUFDLGNBQWMsRUFBRTt3QkFDNUQsZ0JBQWdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtxQkFDNUQ7b0JBQ0QsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO29CQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7aUJBQ2QsQ0FBQztZQUNKLENBQUM7U0FDRjtRQUNELE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Q0FTRjtBQTNGRCxvQ0EyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25zdHJ1Y3QsXG4gIGF3c19jb2RlYnVpbGQgYXMgY29kZWJ1aWxkLFxuICBhd3NfczNfYXNzZXRzIGFzIHMzQXNzZXRzLFxufSBmcm9tICdtb25vY2RrJztcblxuZXhwb3J0IGludGVyZmFjZSBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IEVDUiByZWdpc3RyeVxuICAgKi9cbiAgcmVhZG9ubHkgZWNyUmVnaXN0cnk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzY29wZSB0byBhdHRhY2ggYW55IGNvbnN0cnVjdHMgdGhhdCBtYXkgYWxzbyBiZSBuZWVkZWQuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUJ1aWxkIHByb2plY3QgdGhhdCB3aWxsIHJ1biB0aGUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gRG9ja2VySHViIGFuZCBFQ1IuXG4gICAqIEBkZWZhdWx0IC0gZWl0aGVyIG5vIHN5bmMgam9iIGlzIHByZXNlbnQgb3IgaXQncyBub3QgZGVmaW5lZCB5ZXQuXG4gICAqL1xuICByZWFkb25seSBzeW5jSm9iPzogY29kZWJ1aWxkLklQcm9qZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pcnJvclNvdXJjZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZHMgdG8gcnVuIHRvIHJldHJpZXZlIHRoZSBkb2NrZXIgaW1hZ2UuXG4gICAqIGUuZy4gWydkb2NrZXIgcHVsbCA8aW1hZ2UtaWQ+J11cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRhcmdldCBFQ1IgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgdG8gYmUgdXNlIGZvciB0aGUgdGFyZ2V0IEVDUiBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG4vKiogQWRkaXRpb25hbCBvcHRpb25zIHdoZW4gY29uZmlndXJpbmcgYSBNaXJyb3IgU291cmNlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlycm9yU291cmNlRGlyZWN0b3J5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUYWcgb2YgdGhlIGJ1aWx0IGltYWdlLlxuICAgKiBAZGVmYXVsdCAnbGF0ZXN0J1xuICAgKi9cbiAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmdzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYnVpbGQgYXJncyBhcmUgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBidWlsZEFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFNvdXJjZSBvZiB0aGUgaW1hZ2UuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNaXJyb3JTb3VyY2Uge1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYW4gaW1hZ2UgZnJvbSBEb2NrZXJIdWIuXG4gICAqXG4gICAqIEBwYXJhbSBpbWFnZSBlLmcganNpaS9zdXBlcmNoYWluXG4gICAqIEBwYXJhbSB0YWcgb3B0aW9uYWwsIGRlZmF1bHRzIHRvICdsYXRlc3QnXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Eb2NrZXJIdWIoaW1hZ2U6IHN0cmluZywgdGFnOiBzdHJpbmcgPSAnbGF0ZXN0Jyk6IE1pcnJvclNvdXJjZSB7XG4gICAgY2xhc3MgRG9ja2VySHViTWlycm9yU291cmNlIGV4dGVuZHMgTWlycm9yU291cmNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaW1hZ2UuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW1hZ2UgbXVzdCBub3QgaW5jbHVkZSB0YWcnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzaW11bGF0ZXMgRG9ja2VySHViIGJ5IHBlcmZpeGluZyBsaWJyYXJ5LyB0byBvZmZpY2lhbCBpbWFnZXNcbiAgICAgICAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSBpbWFnZS5pbmNsdWRlcygnLycpID8gaW1hZ2UgOiBgbGlicmFyeS8ke2ltYWdlfWA7XG4gICAgICAgIHN1cGVyKHJlcG9zaXRvcnlOYW1lLCB0YWcsIHVuZGVmaW5lZCk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBiaW5kKG9wdGlvbnM6IE1pcnJvclNvdXJjZUJpbmRPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGVjckltYWdlVXJpID0gYCR7b3B0aW9ucy5lY3JSZWdpc3RyeX0vJHt0aGlzLnJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgIGBkb2NrZXIgcHVsbCAke3RoaXMucmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YCxcbiAgICAgICAgICAgIGBkb2NrZXIgdGFnICR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ30gJHtlY3JJbWFnZVVyaX1gLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHRoaXMucmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgdGFnOiB0aGlzLnRhZyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERvY2tlckh1Yk1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21EaXIoKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB0YWc/OiBzdHJpbmcpOiBNaXJyb3JTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmZyb21EaXIoZGlyZWN0b3J5LCByZXBvc2l0b3J5TmFtZSwgeyB0YWcgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgUGF0aCB0byBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgRG9ja2VyZmlsZS5cbiAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFJlcG9zaXRvcnkgbmFtZSBvZiB0aGUgYnVpbHQgaW1hZ2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21EaXIoZGlyZWN0b3J5OiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIG9wdHM6IE1pcnJvclNvdXJjZURpcmVjdG9yeU9wdGlvbnMgPSB7fSk6IE1pcnJvclNvdXJjZSB7XG4gICAgY2xhc3MgRGlyZWN0b3J5TWlycm9yU291cmNlIGV4dGVuZHMgTWlycm9yU291cmNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihyZXBvc2l0b3J5TmFtZSwgb3B0cy50YWcgPz8gJ2xhdGVzdCcsIGRpcmVjdG9yeSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBiaW5kKG9wdGlvbnM6IE1pcnJvclNvdXJjZUJpbmRPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGFzc2V0ID0gbmV3IHMzQXNzZXRzLkFzc2V0KG9wdGlvbnMuc2NvcGUsIGBCdWlsZENvbnRleHQke3RoaXMuZGlyZWN0b3J5fSR7SlNPTi5zdHJpbmdpZnkob3B0cy5idWlsZEFyZ3MgPz8ge30pfWAsIHsgcGF0aDogdGhpcy5kaXJlY3RvcnkhIH0pO1xuICAgICAgICBpZiAob3B0aW9ucy5zeW5jSm9iKSB7XG4gICAgICAgICAgYXNzZXQuZ3JhbnRSZWFkKG9wdGlvbnMuc3luY0pvYik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWNySW1hZ2VVcmkgPSBgJHtvcHRpb25zLmVjclJlZ2lzdHJ5fS8ke3RoaXMucmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YDtcbiAgICAgICAgY29uc3QgY21kRmxhZ3MgPSBbXTtcbiAgICAgICAgY21kRmxhZ3MucHVzaCgnLS1wdWxsJyk7XG4gICAgICAgIGNtZEZsYWdzLnB1c2goJy10JywgZWNySW1hZ2VVcmkpO1xuXG4gICAgICAgIGlmIChvcHRzLmJ1aWxkQXJncykge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdHMuYnVpbGRBcmdzKS5mb3JFYWNoKChbaywgdl0pID0+IGNtZEZsYWdzLnB1c2goJy0tYnVpbGQtYXJnJywgYCR7a309JHt2fWApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgIGBhd3MgczMgY3AgJHthc3NldC5zM09iamVjdFVybH0gJHt0aGlzLnJlcG9zaXRvcnlOYW1lfS56aXBgLFxuICAgICAgICAgICAgYHVuemlwICR7dGhpcy5yZXBvc2l0b3J5TmFtZX0uemlwIC1kICR7dGhpcy5yZXBvc2l0b3J5TmFtZX1gLFxuICAgICAgICAgICAgYGRvY2tlciBidWlsZCAke2NtZEZsYWdzLmpvaW4oJyAnKX0gJHt0aGlzLnJlcG9zaXRvcnlOYW1lfWAsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICB0YWc6IHRoaXMudGFnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERpcmVjdG9yeU1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgcHJvdGVjdGVkIHJlYWRvbmx5IHRhZzogc3RyaW5nLCBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlyZWN0b3J5Pzogc3RyaW5nKSB7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGUgc291cmNlIHdpdGggdGhlIEVjck1pcnJvciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyk6IE1pcnJvclNvdXJjZUNvbmZpZztcbn1cbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1pcnJvci1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBSWlCO0FBcURqQjs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUF3RmhDLFlBQXVDLGNBQXNCLEVBQXFCLEdBQVcsRUFBcUIsU0FBa0I7UUFBN0YsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFBcUIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFxQixjQUFTLEdBQVQsU0FBUyxDQUFTO0lBQ3BJLENBQUM7SUF2RkQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxNQUFjLFFBQVE7UUFDL0QsTUFBTSxxQkFBc0IsU0FBUSxZQUFZO1lBQzlDO2dCQUNFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2lCQUMvQztnQkFDRCwrREFBK0Q7Z0JBQy9ELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQztnQkFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVNLElBQUksQ0FBQyxPQUFnQztnQkFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoRixPQUFPO29CQUNMLFFBQVEsRUFBRTt3QkFDUixlQUFlLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDaEQsY0FBYyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFO3FCQUMvRDtvQkFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBaUIsRUFBRSxjQUFzQixFQUFFLEdBQVk7UUFDakYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLEVBQUUsY0FBc0IsRUFBRSxPQUFxQyxFQUFFO1FBQ3RHLE1BQU0scUJBQXNCLFNBQVEsWUFBWTtZQUM5Qzs7Z0JBQ0UsS0FBSyxDQUFDLGNBQWMsRUFBRSxNQUFBLElBQUksQ0FBQyxHQUFHLG1DQUFJLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBRU0sSUFBSSxDQUFDLE9BQWdDOztnQkFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSx1QkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGVBQWUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQUEsSUFBSSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBVSxFQUFFLENBQUMsQ0FBQztnQkFDbkosSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDbEM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoRixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUVqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQy9GO2dCQUVELE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsTUFBTSxDQUFDO2dCQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUVuQyxPQUFPO29CQUNMLFFBQVEsRUFBRTt3QkFDUixVQUFVLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQzdCLGFBQWEsS0FBSyxDQUFDLFdBQVcsSUFBSSxPQUFPLEVBQUU7d0JBQzNDLFNBQVMsT0FBTyxPQUFPLE1BQU0sRUFBRTt3QkFDL0IsZ0JBQWdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxFQUFFO3FCQUMvQztvQkFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDckMsQ0FBQztDQVNGO0FBL0ZELG9DQStGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnN0cnVjdCxcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19zM19hc3NldHMgYXMgczNBc3NldHMsXG59IGZyb20gJ21vbm9jZGsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pcnJvclNvdXJjZUJpbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgRUNSIHJlZ2lzdHJ5XG4gICAqL1xuICByZWFkb25seSBlY3JSZWdpc3RyeTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNjb3BlIHRvIGF0dGFjaCBhbnkgY29uc3RydWN0cyB0aGF0IG1heSBhbHNvIGJlIG5lZWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBDb2RlQnVpbGQgcHJvamVjdCB0aGF0IHdpbGwgcnVuIHRoZSBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBEb2NrZXJIdWIgYW5kIEVDUi5cbiAgICogQGRlZmF1bHQgLSBlaXRoZXIgbm8gc3luYyBqb2IgaXMgcHJlc2VudCBvciBpdCdzIG5vdCBkZWZpbmVkIHlldC5cbiAgICovXG4gIHJlYWRvbmx5IHN5bmNKb2I/OiBjb2RlYnVpbGQuSVByb2plY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlycm9yU291cmNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kcyB0byBydW4gdG8gcmV0cmlldmUgdGhlIGRvY2tlciBpbWFnZS5cbiAgICogZS5nLiBbJ2RvY2tlciBwdWxsIDxpbWFnZS1pZD4nXVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFyZ2V0IEVDUiByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhZyB0byBiZSB1c2UgZm9yIHRoZSB0YXJnZXQgRUNSIGltYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFnOiBzdHJpbmc7XG59XG5cbi8qKiBBZGRpdGlvbmFsIG9wdGlvbnMgd2hlbiBjb25maWd1cmluZyBhIE1pcnJvciBTb3VyY2UgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeSAqL1xuZXhwb3J0IGludGVyZmFjZSBNaXJyb3JTb3VyY2VEaXJlY3RvcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRhZyBvZiB0aGUgYnVpbHQgaW1hZ2UuXG4gICAqIEBkZWZhdWx0ICdsYXRlc3QnXG4gICAqL1xuICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogU291cmNlIG9mIHRoZSBpbWFnZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1pcnJvclNvdXJjZSB7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBhbiBpbWFnZSBmcm9tIERvY2tlckh1Yi5cbiAgICpcbiAgICogQHBhcmFtIGltYWdlIGUuZyBqc2lpL3N1cGVyY2hhaW5cbiAgICogQHBhcmFtIHRhZyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gJ2xhdGVzdCdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURvY2tlckh1YihpbWFnZTogc3RyaW5nLCB0YWc6IHN0cmluZyA9ICdsYXRlc3QnKTogTWlycm9yU291cmNlIHtcbiAgICBjbGFzcyBEb2NrZXJIdWJNaXJyb3JTb3VyY2UgZXh0ZW5kcyBNaXJyb3JTb3VyY2Uge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmIChpbWFnZS5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbWFnZSBtdXN0IG5vdCBpbmNsdWRlIHRhZycpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNpbXVsYXRlcyBEb2NrZXJIdWIgYnkgcGVyZml4aW5nIGxpYnJhcnkvIHRvIG9mZmljaWFsIGltYWdlc1xuICAgICAgICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGltYWdlLmluY2x1ZGVzKCcvJykgPyBpbWFnZSA6IGBsaWJyYXJ5LyR7aW1hZ2V9YDtcbiAgICAgICAgc3VwZXIocmVwb3NpdG9yeU5hbWUsIHRhZywgdW5kZWZpbmVkKTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIGJpbmQob3B0aW9uczogTWlycm9yU291cmNlQmluZE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZWNySW1hZ2VVcmkgPSBgJHtvcHRpb25zLmVjclJlZ2lzdHJ5fS8ke3RoaXMucmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgYGRvY2tlciBwdWxsICR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ31gLFxuICAgICAgICAgICAgYGRvY2tlciB0YWcgJHt0aGlzLnJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfSAke2VjckltYWdlVXJpfWAsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICB0YWc6IHRoaXMudGFnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgRG9ja2VySHViTWlycm9yU291cmNlKCk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbURpcigpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21EaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIHRhZz86IHN0cmluZyk6IE1pcnJvclNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbURpcihkaXJlY3RvcnksIHJlcG9zaXRvcnlOYW1lLCB7IHRhZyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYW4gaW1hZ2UgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeSBQYXRoIHRvIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBEb2NrZXJmaWxlLlxuICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgUmVwb3NpdG9yeSBuYW1lIG9mIHRoZSBidWlsdCBpbWFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURpcihkaXJlY3Rvcnk6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgb3B0czogTWlycm9yU291cmNlRGlyZWN0b3J5T3B0aW9ucyA9IHt9KTogTWlycm9yU291cmNlIHtcbiAgICBjbGFzcyBEaXJlY3RvcnlNaXJyb3JTb3VyY2UgZXh0ZW5kcyBNaXJyb3JTb3VyY2Uge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHJlcG9zaXRvcnlOYW1lLCBvcHRzLnRhZyA/PyAnbGF0ZXN0JywgZGlyZWN0b3J5KTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIGJpbmQob3B0aW9uczogTWlycm9yU291cmNlQmluZE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgczNBc3NldHMuQXNzZXQob3B0aW9ucy5zY29wZSwgYEJ1aWxkQ29udGV4dCR7dGhpcy5kaXJlY3Rvcnl9JHtKU09OLnN0cmluZ2lmeShvcHRzLmJ1aWxkQXJncyA/PyB7fSl9YCwgeyBwYXRoOiB0aGlzLmRpcmVjdG9yeSEgfSk7XG4gICAgICAgIGlmIChvcHRpb25zLnN5bmNKb2IpIHtcbiAgICAgICAgICBhc3NldC5ncmFudFJlYWQob3B0aW9ucy5zeW5jSm9iKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlY3JJbWFnZVVyaSA9IGAke29wdGlvbnMuZWNyUmVnaXN0cnl9LyR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ31gO1xuICAgICAgICBjb25zdCBjbWRGbGFncyA9IFtdO1xuICAgICAgICBjbWRGbGFncy5wdXNoKCctLXB1bGwnKTtcbiAgICAgICAgY21kRmxhZ3MucHVzaCgnLXQnLCBlY3JJbWFnZVVyaSk7XG5cbiAgICAgICAgaWYgKG9wdHMuYnVpbGRBcmdzKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0cy5idWlsZEFyZ3MpLmZvckVhY2goKFtrLCB2XSkgPT4gY21kRmxhZ3MucHVzaCgnLS1idWlsZC1hcmcnLCBgJHtrfT0ke3Z9YCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgemlwRmlsZSA9IGAke3RoaXMucmVwb3NpdG9yeU5hbWV9LnppcGA7XG4gICAgICAgIGNvbnN0IHRtcERpciA9IHRoaXMucmVwb3NpdG9yeU5hbWU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgYHJtIC1yZiAke3ppcEZpbGV9ICR7dG1wRGlyfWAsXG4gICAgICAgICAgICBgYXdzIHMzIGNwICR7YXNzZXQuczNPYmplY3RVcmx9ICR7emlwRmlsZX1gLFxuICAgICAgICAgICAgYHVuemlwICR7emlwRmlsZX0gLWQgJHt0bXBEaXJ9YCxcbiAgICAgICAgICAgIGBkb2NrZXIgYnVpbGQgJHtjbWRGbGFncy5qb2luKCcgJyl9ICR7dG1wRGlyfWAsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICB0YWc6IHRoaXMudGFnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERpcmVjdG9yeU1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgcHJvdGVjdGVkIHJlYWRvbmx5IHRhZzogc3RyaW5nLCBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlyZWN0b3J5Pzogc3RyaW5nKSB7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGUgc291cmNlIHdpdGggdGhlIEVjck1pcnJvciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyk6IE1pcnJvclNvdXJjZUNvbmZpZztcbn1cbiJdfQ==
@@ -128,11 +128,15 @@ export abstract class MirrorSource {
128
128
  Object.entries(opts.buildArgs).forEach(([k, v]) => cmdFlags.push('--build-arg', `${k}=${v}`));
129
129
  }
130
130
 
131
+ const zipFile = `${this.repositoryName}.zip`;
132
+ const tmpDir = this.repositoryName;
133
+
131
134
  return {
132
135
  commands: [
133
- `aws s3 cp ${asset.s3ObjectUrl} ${this.repositoryName}.zip`,
134
- `unzip ${this.repositoryName}.zip -d ${this.repositoryName}`,
135
- `docker build ${cmdFlags.join(' ')} ${this.repositoryName}`,
136
+ `rm -rf ${zipFile} ${tmpDir}`,
137
+ `aws s3 cp ${asset.s3ObjectUrl} ${zipFile}`,
138
+ `unzip ${zipFile} -d ${tmpDir}`,
139
+ `docker build ${cmdFlags.join(' ')} ${tmpDir}`,
136
140
  ],
137
141
  repositoryName: this.repositoryName,
138
142
  tag: this.tag,
package/package.json CHANGED
@@ -78,7 +78,7 @@
78
78
  ],
79
79
  "main": "lib/index.js",
80
80
  "license": "Apache-2.0",
81
- "version": "13.2.2",
81
+ "version": "13.3.3",
82
82
  "jest": {
83
83
  "testMatch": [
84
84
  "**/lib/__tests__/**/?(*.)+(spec|test).js?(x)"