@rio-cloud/cdk-v2-constructs 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -3068,7 +3068,7 @@
3068
3068
  "kind": "interface",
3069
3069
  "locationInModule": {
3070
3070
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
3071
- "line": 96
3071
+ "line": 97
3072
3072
  },
3073
3073
  "name": "AppStackProps",
3074
3074
  "properties": [
@@ -3080,7 +3080,7 @@
3080
3080
  "immutable": true,
3081
3081
  "locationInModule": {
3082
3082
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
3083
- "line": 97
3083
+ "line": 98
3084
3084
  },
3085
3085
  "name": "serviceName",
3086
3086
  "type": {
@@ -3095,7 +3095,7 @@
3095
3095
  "immutable": true,
3096
3096
  "locationInModule": {
3097
3097
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
3098
- "line": 98
3098
+ "line": 99
3099
3099
  },
3100
3100
  "name": "version",
3101
3101
  "type": {
@@ -3436,7 +3436,7 @@
3436
3436
  "kind": "interface",
3437
3437
  "locationInModule": {
3438
3438
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
3439
- "line": 136
3439
+ "line": 138
3440
3440
  },
3441
3441
  "name": "CodeBuildOptions",
3442
3442
  "properties": [
@@ -3448,7 +3448,7 @@
3448
3448
  "immutable": true,
3449
3449
  "locationInModule": {
3450
3450
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
3451
- "line": 138
3451
+ "line": 140
3452
3452
  },
3453
3453
  "name": "buildEnvironment",
3454
3454
  "optional": true,
@@ -3464,7 +3464,7 @@
3464
3464
  "immutable": true,
3465
3465
  "locationInModule": {
3466
3466
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
3467
- "line": 137
3467
+ "line": 139
3468
3468
  },
3469
3469
  "name": "partialBuildSpecPath",
3470
3470
  "optional": true,
@@ -4540,7 +4540,7 @@
4540
4540
  "kind": "interface",
4541
4541
  "locationInModule": {
4542
4542
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
4543
- "line": 86
4543
+ "line": 87
4544
4544
  },
4545
4545
  "methods": [
4546
4546
  {
@@ -4551,7 +4551,7 @@
4551
4551
  },
4552
4552
  "locationInModule": {
4553
4553
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
4554
- "line": 93
4554
+ "line": 94
4555
4555
  },
4556
4556
  "name": "create",
4557
4557
  "parameters": [
@@ -5705,7 +5705,7 @@
5705
5705
  },
5706
5706
  "locationInModule": {
5707
5707
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5708
- "line": 151
5708
+ "line": 153
5709
5709
  },
5710
5710
  "parameters": [
5711
5711
  {
@@ -5731,7 +5731,7 @@
5731
5731
  "kind": "class",
5732
5732
  "locationInModule": {
5733
5733
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5734
- "line": 141
5734
+ "line": 143
5735
5735
  },
5736
5736
  "name": "PipelineStack",
5737
5737
  "symbolId": "src/contributions/team-transport-two/pipeline/pipeline-stack:PipelineStack"
@@ -5749,7 +5749,7 @@
5749
5749
  "kind": "interface",
5750
5750
  "locationInModule": {
5751
5751
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5752
- "line": 26
5752
+ "line": 27
5753
5753
  },
5754
5754
  "name": "PipelineStackProps",
5755
5755
  "properties": [
@@ -5763,7 +5763,7 @@
5763
5763
  "immutable": true,
5764
5764
  "locationInModule": {
5765
5765
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5766
- "line": 43
5766
+ "line": 44
5767
5767
  },
5768
5768
  "name": "appStackFactory",
5769
5769
  "type": {
@@ -5779,7 +5779,7 @@
5779
5779
  "immutable": true,
5780
5780
  "locationInModule": {
5781
5781
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5782
- "line": 48
5782
+ "line": 49
5783
5783
  },
5784
5784
  "name": "pipelineType",
5785
5785
  "type": {
@@ -5796,7 +5796,7 @@
5796
5796
  "immutable": true,
5797
5797
  "locationInModule": {
5798
5798
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5799
- "line": 36
5799
+ "line": 37
5800
5800
  },
5801
5801
  "name": "serviceName",
5802
5802
  "type": {
@@ -5812,7 +5812,7 @@
5812
5812
  "immutable": true,
5813
5813
  "locationInModule": {
5814
5814
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5815
- "line": 62
5815
+ "line": 63
5816
5816
  },
5817
5817
  "name": "codeBuildOptions",
5818
5818
  "optional": true,
@@ -5830,7 +5830,7 @@
5830
5830
  "immutable": true,
5831
5831
  "locationInModule": {
5832
5832
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5833
- "line": 57
5833
+ "line": 58
5834
5834
  },
5835
5835
  "name": "secretsDeployStepProps",
5836
5836
  "optional": true,
@@ -5853,7 +5853,7 @@
5853
5853
  "kind": "interface",
5854
5854
  "locationInModule": {
5855
5855
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5856
- "line": 107
5856
+ "line": 108
5857
5857
  },
5858
5858
  "name": "PipelineStackRioSecretsDeployStepProps",
5859
5859
  "properties": [
@@ -5865,7 +5865,7 @@
5865
5865
  "immutable": true,
5866
5866
  "locationInModule": {
5867
5867
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5868
- "line": 108
5868
+ "line": 109
5869
5869
  },
5870
5870
  "name": "secretsFilePath",
5871
5871
  "type": {
@@ -5884,7 +5884,7 @@
5884
5884
  "kind": "enum",
5885
5885
  "locationInModule": {
5886
5886
  "filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
5887
- "line": 111
5887
+ "line": 112
5888
5888
  },
5889
5889
  "members": [
5890
5890
  {
@@ -5894,6 +5894,12 @@
5894
5894
  "summary": "Self-mutating codepipeline deploying the provided AppStack. Be aware: The provided service won't have access to Kafka."
5895
5895
  },
5896
5896
  "name": "STANDARD_GRADLE"
5897
+ },
5898
+ {
5899
+ "docs": {
5900
+ "stability": "stable"
5901
+ },
5902
+ "name": "STANDARD_GRADLE_KAFKA"
5897
5903
  }
5898
5904
  ],
5899
5905
  "name": "PipelineType",
@@ -6006,7 +6012,7 @@
6006
6012
  "assembly": "@rio-cloud/cdk-v2-constructs",
6007
6013
  "base": "constructs.Construct",
6008
6014
  "docs": {
6009
- "remarks": "Intended for delivery of html documents. It sets some defaults a recommended by AWS and provides basic security header.\nRequires installation of the custom-resource-certificate.",
6015
+ "remarks": "Intended for delivery of html documents. It sets some defaults a recommended by AWS and provides basic security header.",
6010
6016
  "stability": "stable",
6011
6017
  "summary": "A Construct which creates a default cloudfront distribution using a s3 bucket as origin."
6012
6018
  },
@@ -6017,7 +6023,7 @@
6017
6023
  },
6018
6024
  "locationInModule": {
6019
6025
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
6020
- "line": 72
6026
+ "line": 71
6021
6027
  },
6022
6028
  "parameters": [
6023
6029
  {
@@ -6043,7 +6049,7 @@
6043
6049
  "kind": "class",
6044
6050
  "locationInModule": {
6045
6051
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
6046
- "line": 71
6052
+ "line": 70
6047
6053
  },
6048
6054
  "name": "RioCloudfrontDistribution",
6049
6055
  "symbolId": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution:RioCloudfrontDistribution"
@@ -8731,5 +8737,5 @@
8731
8737
  }
8732
8738
  },
8733
8739
  "version": "0.0.0",
8734
- "fingerprint": "iQYXILHKf3VK33lrHZA8J0KQFc1qdI+eVzeBieEtptU="
8740
+ "fingerprint": "/+nX+kiENrJH7JrfqOyu1eF3gdj4bgXjQzWPUwtoK4I="
8735
8741
  }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [4.1.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.0.1&sourceBranch=refs%2Ftags%2Fv4.1.0) (2022-11-23)
6
+
7
+
8
+ ### Features
9
+
10
+ * **contributions:** Remove dependency on custom-resource-certificate and use cdk tools instead ([5ac21a8](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/5ac21a8010f66be1ad992fc1f00115ca3e008c26))
11
+
12
+ ### [4.0.2](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.0.1&sourceBranch=refs%2Ftags%2Fv4.0.2) (2022-11-09)
13
+
5
14
  ### [4.0.1](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv4.0.0&sourceBranch=refs%2Ftags%2Fv4.0.1) (2022-11-07)
6
15
 
7
16
  ## [4.0.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv3.2.0&sourceBranch=refs%2Ftags%2Fv4.0.0) (2022-11-03)
@@ -30,7 +30,6 @@ export declare const createRioDefaultCSP: (additionalScriptSources?: string | un
30
30
  /**
31
31
  * A Construct which creates a default cloudfront distribution using a s3 bucket as origin.
32
32
  * Intended for delivery of html documents. It sets some defaults a recommended by AWS and provides basic security header.
33
- * Requires installation of the custom-resource-certificate.
34
33
  *
35
34
  */
36
35
  export declare class RioCloudfrontDistribution extends Construct {
@@ -37,7 +37,6 @@ exports.createRioDefaultCSP = (additionalScriptSources) => `
37
37
  /**
38
38
  * A Construct which creates a default cloudfront distribution using a s3 bucket as origin.
39
39
  * Intended for delivery of html documents. It sets some defaults a recommended by AWS and provides basic security header.
40
- * Requires installation of the custom-resource-certificate.
41
40
  *
42
41
  */
43
42
  class RioCloudfrontDistribution extends constructs_1.Construct {
@@ -49,15 +48,10 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
49
48
  const domainName = props.subDomain === undefined ? hostedZone.zoneName : subDomain + '.' + hostedZone.zoneName;
50
49
  const defaultContentSecurityPolicy = exports.createRioDefaultCSP();
51
50
  const contentSecurityPolicy = (_d = props.contentSecurityPolicy) !== null && _d !== void 0 ? _d : defaultContentSecurityPolicy;
52
- // Certificate created via Custom Resource due to other region
53
- const certificate = new aws_cdk_lib_1.CustomResource(this, 'Certificate', {
54
- resourceType: 'Custom::Certificate',
55
- serviceToken: aws_cdk_lib_1.Fn.importValue('custom-resource-certificate-function-arn'),
56
- properties: {
57
- DomainName: domainName,
58
- HostedZoneId: hostedZone.hostedZoneId,
59
- Region: 'us-east-1',
60
- },
51
+ const certificate = new acm.DnsValidatedCertificate(this, 'CloudfrontDistributionCertificate', {
52
+ domainName: domainName,
53
+ hostedZone: hostedZone,
54
+ region: 'us-east-1',
61
55
  });
62
56
  const originAccessIdentity = new cloudfront.OriginAccessIdentity(this, 'OriginAccessIdentity', {
63
57
  comment: `AccessIdentity for ${domainName}`,
@@ -129,7 +123,7 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
129
123
  },
130
124
  domainNames: [domainName],
131
125
  priceClass: cloudfront.PriceClass.PRICE_CLASS_100,
132
- certificate: acm.Certificate.fromCertificateArn(this, 'AcmCertificate', certificate.ref),
126
+ certificate: certificate,
133
127
  defaultRootObject: 'index.html',
134
128
  minimumProtocolVersion: cloudfront.SecurityPolicyProtocol.TLS_V1_2_2018,
135
129
  errorResponses: [
@@ -158,11 +152,11 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
158
152
  product: rio_claidometer_1.ClaidometerProduct.CDK_CONTRIBUTION,
159
153
  packageName,
160
154
  feature,
161
- version: '0.0.1',
155
+ version: '0.0.2',
162
156
  });
163
157
  }
164
158
  }
165
159
  exports.RioCloudfrontDistribution = RioCloudfrontDistribution;
166
160
  _a = JSII_RTTI_SYMBOL_1;
167
161
  RioCloudfrontDistribution[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.RioCloudfrontDistribution", version: "0.0.0" };
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvcmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUEwRTtBQUMxRSwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsMkNBQXVDO0FBQ3ZDLDhEQUEyRTtBQUMzRSxnRUFBMkQ7QUFpQzNELE1BQU0sdUJBQXVCLEdBQUcsOENBQThDLENBQUM7QUFDL0Usd0ZBQXdGO0FBQzNFLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyx1QkFBZ0MsRUFBRSxFQUFFLENBQUM7cUJBQ3BELHVCQUF1QjtxQkFDdkIsdUJBQXVCO2tCQUMxQix1QkFBdUI7aUJBQ3hCLHVCQUF1Qjs7b0JBRXBCLHVCQUF1Qjs7VUFFakMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRTttQkFDbkQsdUJBQXVCOztxQkFFckIsdUJBQXVCO3lCQUNuQix1QkFBdUI7MEJBQ3RCLHVCQUF1QjtRQUN6QztLQUNMLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDO0tBQzFCLElBQUksRUFBRSxDQUFDO0FBRVY7Ozs7O0dBS0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLHNCQUFTO0lBQ3RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUM7O1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLFNBQUcsS0FBSyxDQUFDLFVBQVUsbUNBQUksaUNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRixNQUFNLFNBQVMsU0FBRyxLQUFLLENBQUMsU0FBUyxtQ0FBSSxFQUFFLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUUvRyxNQUFNLDRCQUE0QixHQUFHLDJCQUFtQixFQUFFLENBQUM7UUFDM0QsTUFBTSxxQkFBcUIsU0FBRyxLQUFLLENBQUMscUJBQXFCLG1DQUFJLDRCQUE0QixDQUFDO1FBRTFGLDhEQUE4RDtRQUM5RCxNQUFNLFdBQVcsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMxRCxZQUFZLEVBQUUscUJBQXFCO1lBQ25DLFlBQVksRUFBRSxnQkFBRSxDQUFDLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztZQUN4RSxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtnQkFDckMsTUFBTSxFQUFFLFdBQVc7YUFDcEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLG9CQUFvQixHQUFHLElBQUksVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUM3RixPQUFPLEVBQUUsc0JBQXNCLFVBQVUsRUFBRTtTQUM1QyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ25ELFVBQVUsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQ25DLFVBQVUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtZQUMxQyxTQUFTLEVBQUUsSUFBSTtZQUNmLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87WUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixjQUFjLEVBQUU7Z0JBQ2Q7b0JBQ0UsRUFBRSxFQUFFLGdCQUFnQjtvQkFDcEIsVUFBVSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsMkJBQTJCLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUMvQzthQUNGO1lBQ0QsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFO2dCQUNKO29CQUNFLGNBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO29CQUNwQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUM7b0JBQ3JCLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDdEI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxTQUFTLENBQ2QsSUFBSSxHQUFHLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsK0NBQStDLENBQUMsRUFDcEcsR0FBRyxDQUNKLENBQUM7UUFFRixNQUFNLHFCQUFxQixHQUFHLElBQUksVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUNoRyxPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFlBQVksRUFBRTtnQkFDWiw2QkFBNkIsRUFBRSxLQUFLO2dCQUNwQyx5QkFBeUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDaEMseUJBQXlCLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xDLHlCQUF5QixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDaEQsbUJBQW1CLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUMxQyxjQUFjLEVBQUUsSUFBSTthQUNyQjtZQUNELHVCQUF1QixFQUFFO2dCQUN2QixxQkFBcUIsRUFBRTtvQkFDckIscUJBQXFCLEVBQUUscUJBQXFCO29CQUM1QyxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ3RDLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2pGLGNBQWMsRUFBRTtvQkFDZCxjQUFjLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLCtCQUErQjtvQkFDaEYsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsdUJBQXVCLEVBQUU7b0JBQ3ZCLG1CQUFtQixFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDdkMsaUJBQWlCLEVBQUUsSUFBSTtvQkFDdkIsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsYUFBYSxFQUFFO29CQUNiLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsSUFBSTtvQkFDZixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDckUsZUFBZSxFQUFFO2dCQUNmLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNwQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsbUJBQW1CLENBQUMsY0FBYztnQkFDbEUsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtnQkFDdkUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCO2dCQUNyRCxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDekIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsZUFBZTtZQUNqRCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUN4RixpQkFBaUIsRUFBRSxZQUFZO1lBQy9CLHNCQUFzQixFQUFFLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhO1lBQ3ZFLGNBQWMsRUFBRTtnQkFDZDtvQkFDRSxVQUFVLEVBQUUsR0FBRztvQkFDZixrQkFBa0IsRUFBRSxHQUFHO29CQUN2QixnQkFBZ0IsRUFBRSxhQUFhO29CQUMvQixHQUFHLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN6QjtnQkFDRDtvQkFDRSxVQUFVLEVBQUUsR0FBRztvQkFDZixrQkFBa0IsRUFBRSxHQUFHO29CQUN2QixnQkFBZ0IsRUFBRSxhQUFhO29CQUMvQixHQUFHLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN6QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDdkMsVUFBVSxFQUFFLFNBQVM7WUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xGLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDakMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRSxJQUFJLDZCQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNuQyxPQUFPLEVBQUUsb0NBQWtCLENBQUMsZ0JBQWdCO1lBQzVDLFdBQVc7WUFDWCxPQUFPO1lBQ1AsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFuSUgsOERBb0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEN1c3RvbVJlc291cmNlLCBEdXJhdGlvbiwgRm4sIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vLi4vLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBTMyBidWNrZXQgY29udGFpbmluZyB0aGUgZmlsZXMgdG8gc2VydmVcbiAgICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgc3ViZG9tYWluIHdoZXJlIHRoZSBjb250ZW50IHNob3VsZCBiZSBzZXJ2ZWQuIElmIG5vdCBnaXZlbiwgYW4gZW1wdHkgc3RyaW5nLCBpLmUuIG5vIHN1YkRvbWFpbiB3aWxsIGJlIHVzZWQuXG4gICAgICogSW5zdGVhZCwgdGhlIG5hbWUgb2YgdGhlIGhvc3RlZCB6b25lIHdpbGwgYmUgdXNlZCBkaXJlY3RseS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgc3ViRG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBob3N0ZWQgem9uZSBvZiB0aGUgZG9tYWluIHVuZGVyIHdoaWNoIHRoZSBjb250ZW50IHdpbGwgYmUgc2VydmVkLiBJZiBub3QgZ2l2ZW4sIHRoZSBkZWZhdWx0IGhvc3RlZCBab25lXG4gICAgICogcHJvdmlkZWQgYnkgUklPIHNldHVwIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZT86IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAgICogVGhlIGNvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHRvIGJlIHNlbnQgYXMgYSBoZWFkZXIgd2hlbiBkZWxpdmVyaW5nIHRoZSBidWNrZXQgY29udGVudC5cbiAgICAgKiBJZiBub3Qgc2V0LCBhIHJpbyBEZWZhdWx0IHdpbGwgYmUgdXNlZC4gVGhlIGRlZmF1bHQgc2hvdWxkIGNvdmVyIGNvbm5lY3Rpb25zIHRvIHNwbGl0LmlvLCBzZW50cnkgYW5kIGRhdGFkb2csXG4gICAgICogYXMgd2VsbCBhcyBhIGhhc2ggdG8gc3VwcG9ydCBnb29nbGUgdGFnTWFuZ2VyLiBUaGUgbGF0dGVyIG1pZ2h0IG5lZWQgdG8gYmUgYWRhcHRlZCBpZiB5b3UgY2hhbmdlIHRoZSBtaW5pZmljYXRpb24gb2ZcbiAgICAgKiB0aGUgaW5kZXguaHRtbCwgaW4gd2hpY2ggY2FzZSB5b3UgY2FuIHByb3ZpZGUgeW91ciBjc3AgaGVyZS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFNlY3VyaXR5UG9saWN5Pzogc3RyaW5nO1xufVxuXG5jb25zdCBhbHdheXNBbGxvd2VkQ1NQU291cmNlcyA9IFwiJ3NlbGYnIGh0dHBzOi8vKi5yaW8uY2xvdWQgaHR0cHM6Ly9yaW8uY2xvdWRcIjtcbi8vIFRoZSBoYXNoIGluIHNjcmlwdCBzcmMgaXMgZm9yIHRoZSBnb29nbGUgdGFnTWFuYWdlciBzY3JpcHQgaW5jbHVkZWQgaW4gdGhlIGluZGV4Lmh0bWxcbmV4cG9ydCBjb25zdCBjcmVhdGVSaW9EZWZhdWx0Q1NQID0gKGFkZGl0aW9uYWxTY3JpcHRTb3VyY2VzPzogc3RyaW5nKSA9PiBgXG4gICAgICAgZGVmYXVsdC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgY29ubmVjdC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gaHR0cHM6Ly8qLnNlbnRyeS5pbyBodHRwczovL3Nkay5zcGxpdC5pbyBodHRwczovLyouZGF0YWRvZ2hxLmV1IGh0dHBzOi8vKi5icm93c2VyLWludGFrZS1kYXRhZG9naHEuZXU7XG4gICAgICAgZm9udC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gZGF0YTo7XG4gICAgICAgaW1nLXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSB3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20gZGF0YTo7XG4gICAgICAgb2JqZWN0LXNyYyAnbm9uZSc7XG4gICAgICAgc2NyaXB0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbVxuICAgICAgICAnc2hhMjU2LUhEV0FnZlRlTUFndVQ4d0Z3Nys5Mlk3aTRFby82UlVRUXVBM1RXOUp4YkE9J1xuICAgICAgICAke2FkZGl0aW9uYWxTY3JpcHRTb3VyY2VzID8gJyAnICsgYWRkaXRpb25hbFNjcmlwdFNvdXJjZXMgOiAnJ307XG4gICAgICAgc3R5bGUtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9ICd1bnNhZmUtaW5saW5lJztcbiAgICAgICBiYXNlLXVyaSAnc2VsZic7XG4gICAgICAgZm9ybS1hY3Rpb24gJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgZnJhbWUtYW5jZXN0b3JzICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9O1xuICAgICAgIGZyYW1lLXNyYyAnc2VsZicgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgYFxuICAucmVwbGFjZSgvW1xcclxcblxcc10rL2csICcgJylcbiAgLnRyaW0oKTtcblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIGEgZGVmYXVsdCBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbiB1c2luZyBhIHMzIGJ1Y2tldCBhcyBvcmlnaW4uXG4gKiBJbnRlbmRlZCBmb3IgZGVsaXZlcnkgb2YgaHRtbCBkb2N1bWVudHMuIEl0IHNldHMgc29tZSBkZWZhdWx0cyBhIHJlY29tbWVuZGVkIGJ5IEFXUyBhbmQgcHJvdmlkZXMgYmFzaWMgc2VjdXJpdHkgaGVhZGVyLlxuICogUmVxdWlyZXMgaW5zdGFsbGF0aW9uIG9mIHRoZSBjdXN0b20tcmVzb3VyY2UtY2VydGlmaWNhdGUuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IHByb3BzLmhvc3RlZFpvbmUgPz8gUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdEhvc3RlZFpvbmUodGhpcyk7XG4gICAgY29uc3Qgc3ViRG9tYWluID0gcHJvcHMuc3ViRG9tYWluID8/ICcnO1xuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBwcm9wcy5zdWJEb21haW4gPT09IHVuZGVmaW5lZCA/IGhvc3RlZFpvbmUuem9uZU5hbWUgOiBzdWJEb21haW4gKyAnLicgKyBob3N0ZWRab25lLnpvbmVOYW1lO1xuXG4gICAgY29uc3QgZGVmYXVsdENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGNyZWF0ZVJpb0RlZmF1bHRDU1AoKTtcbiAgICBjb25zdCBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSBwcm9wcy5jb250ZW50U2VjdXJpdHlQb2xpY3kgPz8gZGVmYXVsdENvbnRlbnRTZWN1cml0eVBvbGljeTtcblxuICAgIC8vIENlcnRpZmljYXRlIGNyZWF0ZWQgdmlhIEN1c3RvbSBSZXNvdXJjZSBkdWUgdG8gb3RoZXIgcmVnaW9uXG4gICAgY29uc3QgY2VydGlmaWNhdGUgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0NlcnRpZmljYXRlJywge1xuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpDZXJ0aWZpY2F0ZScsXG4gICAgICBzZXJ2aWNlVG9rZW46IEZuLmltcG9ydFZhbHVlKCdjdXN0b20tcmVzb3VyY2UtY2VydGlmaWNhdGUtZnVuY3Rpb24tYXJuJyksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIERvbWFpbk5hbWU6IGRvbWFpbk5hbWUsXG4gICAgICAgIEhvc3RlZFpvbmVJZDogaG9zdGVkWm9uZS5ob3N0ZWRab25lSWQsXG4gICAgICAgIFJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luQWNjZXNzSWRlbnRpdHkgPSBuZXcgY2xvdWRmcm9udC5PcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCAnT3JpZ2luQWNjZXNzSWRlbnRpdHknLCB7XG4gICAgICBjb21tZW50OiBgQWNjZXNzSWRlbnRpdHkgZm9yICR7ZG9tYWluTmFtZX1gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnRnJvbnRFbmRCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5jb250ZW50QnVja2V0TmFtZSxcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnRXhwaXJlc09iamVjdHMnLFxuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoOTApLFxuICAgICAgICAgIG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIGNvcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFsbG93ZWRNZXRob2RzOiBbczMuSHR0cE1ldGhvZHMuR0VUXSxcbiAgICAgICAgICBhbGxvd2VkT3JpZ2luczogWycqJ10sXG4gICAgICAgICAgYWxsb3dlZEhlYWRlcnM6IFsnKiddLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBidWNrZXQuZ3JhbnRSZWFkKFxuICAgICAgbmV3IGlhbS5DYW5vbmljYWxVc2VyUHJpbmNpcGFsKG9yaWdpbkFjY2Vzc0lkZW50aXR5LmNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVMzQ2Fub25pY2FsVXNlcklkKSxcbiAgICAgICcqJyxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHRoaXMsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCB7XG4gICAgICBjb21tZW50OiAnUG9saWN5IGZvciBDbG91ZEZyb250IHJlc3BvbnNlcycsXG4gICAgICBjb3JzQmVoYXZpb3I6IHtcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICBhY2Nlc3NDb250cm9sQWxsb3dIZWFkZXJzOiBbJyonXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93TWV0aG9kczogWydHRVQnXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93T3JpZ2luczogW2hvc3RlZFpvbmUuem9uZU5hbWVdLFxuICAgICAgICBhY2Nlc3NDb250cm9sTWF4QWdlOiBEdXJhdGlvbi5zZWNvbmRzKDYwMCksXG4gICAgICAgIG9yaWdpbk92ZXJyaWRlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yOiB7XG4gICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeToge1xuICAgICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeTogY29udGVudFNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjb250ZW50VHlwZU9wdGlvbnM6IHsgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgZnJhbWVPcHRpb25zOiB7IGZyYW1lT3B0aW9uOiBjbG91ZGZyb250LkhlYWRlcnNGcmFtZU9wdGlvbi5ERU5ZLCBvdmVycmlkZTogdHJ1ZSB9LFxuICAgICAgICByZWZlcnJlclBvbGljeToge1xuICAgICAgICAgIHJlZmVycmVyUG9saWN5OiBjbG91ZGZyb250LkhlYWRlcnNSZWZlcnJlclBvbGljeS5TVFJJQ1RfT1JJR0lOX1dIRU5fQ1JPU1NfT1JJR0lOLFxuICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBzdHJpY3RUcmFuc3BvcnRTZWN1cml0eToge1xuICAgICAgICAgIGFjY2Vzc0NvbnRyb2xNYXhBZ2U6IER1cmF0aW9uLmRheXMoMzY1KSxcbiAgICAgICAgICBpbmNsdWRlU3ViZG9tYWluczogdHJ1ZSxcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgeHNzUHJvdGVjdGlvbjoge1xuICAgICAgICAgIHByb3RlY3Rpb246IHRydWUsXG4gICAgICAgICAgbW9kZUJsb2NrOiB0cnVlLFxuICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbih0aGlzLCAnRGlzdHJpYnV0aW9uJywge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogbmV3IG9yaWdpbnMuUzNPcmlnaW4oYnVja2V0KSxcbiAgICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5LkNPUlNfUzNfT1JJR0lOLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgY2FjaGVQb2xpY3k6IGNsb3VkZnJvbnQuQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeTogcmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBkb21haW5OYW1lczogW2RvbWFpbk5hbWVdLFxuICAgICAgcHJpY2VDbGFzczogY2xvdWRmcm9udC5QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMCxcbiAgICAgIGNlcnRpZmljYXRlOiBhY20uQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsICdBY21DZXJ0aWZpY2F0ZScsIGNlcnRpZmljYXRlLnJlZiksXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogJ2luZGV4Lmh0bWwnLFxuICAgICAgbWluaW11bVByb3RvY29sVmVyc2lvbjogY2xvdWRmcm9udC5TZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTgsXG4gICAgICBlcnJvclJlc3BvbnNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDA0LFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDAzLFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyByb3V0ZTUzLlJlY29yZFNldCh0aGlzLCAnUmVjb3JkU2V0Jywge1xuICAgICAgcmVjb3JkTmFtZTogc3ViRG9tYWluLFxuICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHRhcmdldHMuQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKSxcbiAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICByZWNvcmRUeXBlOiByb3V0ZTUzLlJlY29yZFR5cGUuQSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvcmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFzRDtBQUN0RCwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsMkNBQXVDO0FBQ3ZDLDhEQUEyRTtBQUMzRSxnRUFBMkQ7QUFpQzNELE1BQU0sdUJBQXVCLEdBQUcsOENBQThDLENBQUM7QUFDL0Usd0ZBQXdGO0FBQzNFLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyx1QkFBZ0MsRUFBRSxFQUFFLENBQUM7cUJBQ3BELHVCQUF1QjtxQkFDdkIsdUJBQXVCO2tCQUMxQix1QkFBdUI7aUJBQ3hCLHVCQUF1Qjs7b0JBRXBCLHVCQUF1Qjs7VUFFakMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRTttQkFDbkQsdUJBQXVCOztxQkFFckIsdUJBQXVCO3lCQUNuQix1QkFBdUI7MEJBQ3RCLHVCQUF1QjtRQUN6QztLQUNMLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDO0tBQzFCLElBQUksRUFBRSxDQUFDO0FBRVY7Ozs7R0FJRztBQUNILE1BQWEseUJBQTBCLFNBQVEsc0JBQVM7SUFDdEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQzs7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsU0FBRyxLQUFLLENBQUMsVUFBVSxtQ0FBSSxpQ0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FB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O29CQUNFLFVBQVUsRUFBRSxHQUFHO29CQUNmLGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLGdCQUFnQixFQUFFLGFBQWE7b0JBQy9CLEdBQUcsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN2QyxVQUFVLEVBQUUsU0FBUztZQUNyQixNQUFNLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEYsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25FLElBQUksNkJBQVcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ25DLE9BQU8sRUFBRSxvQ0FBa0IsQ0FBQyxnQkFBZ0I7WUFDNUMsV0FBVztZQUNYLE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQTlISCw4REErSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vLi4vLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBTMyBidWNrZXQgY29udGFpbmluZyB0aGUgZmlsZXMgdG8gc2VydmVcbiAgICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgc3ViZG9tYWluIHdoZXJlIHRoZSBjb250ZW50IHNob3VsZCBiZSBzZXJ2ZWQuIElmIG5vdCBnaXZlbiwgYW4gZW1wdHkgc3RyaW5nLCBpLmUuIG5vIHN1YkRvbWFpbiB3aWxsIGJlIHVzZWQuXG4gICAgICogSW5zdGVhZCwgdGhlIG5hbWUgb2YgdGhlIGhvc3RlZCB6b25lIHdpbGwgYmUgdXNlZCBkaXJlY3RseS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgc3ViRG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBob3N0ZWQgem9uZSBvZiB0aGUgZG9tYWluIHVuZGVyIHdoaWNoIHRoZSBjb250ZW50IHdpbGwgYmUgc2VydmVkLiBJZiBub3QgZ2l2ZW4sIHRoZSBkZWZhdWx0IGhvc3RlZCBab25lXG4gICAgICogcHJvdmlkZWQgYnkgUklPIHNldHVwIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZT86IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAgICogVGhlIGNvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHRvIGJlIHNlbnQgYXMgYSBoZWFkZXIgd2hlbiBkZWxpdmVyaW5nIHRoZSBidWNrZXQgY29udGVudC5cbiAgICAgKiBJZiBub3Qgc2V0LCBhIHJpbyBEZWZhdWx0IHdpbGwgYmUgdXNlZC4gVGhlIGRlZmF1bHQgc2hvdWxkIGNvdmVyIGNvbm5lY3Rpb25zIHRvIHNwbGl0LmlvLCBzZW50cnkgYW5kIGRhdGFkb2csXG4gICAgICogYXMgd2VsbCBhcyBhIGhhc2ggdG8gc3VwcG9ydCBnb29nbGUgdGFnTWFuZ2VyLiBUaGUgbGF0dGVyIG1pZ2h0IG5lZWQgdG8gYmUgYWRhcHRlZCBpZiB5b3UgY2hhbmdlIHRoZSBtaW5pZmljYXRpb24gb2ZcbiAgICAgKiB0aGUgaW5kZXguaHRtbCwgaW4gd2hpY2ggY2FzZSB5b3UgY2FuIHByb3ZpZGUgeW91ciBjc3AgaGVyZS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFNlY3VyaXR5UG9saWN5Pzogc3RyaW5nO1xufVxuXG5jb25zdCBhbHdheXNBbGxvd2VkQ1NQU291cmNlcyA9IFwiJ3NlbGYnIGh0dHBzOi8vKi5yaW8uY2xvdWQgaHR0cHM6Ly9yaW8uY2xvdWRcIjtcbi8vIFRoZSBoYXNoIGluIHNjcmlwdCBzcmMgaXMgZm9yIHRoZSBnb29nbGUgdGFnTWFuYWdlciBzY3JpcHQgaW5jbHVkZWQgaW4gdGhlIGluZGV4Lmh0bWxcbmV4cG9ydCBjb25zdCBjcmVhdGVSaW9EZWZhdWx0Q1NQID0gKGFkZGl0aW9uYWxTY3JpcHRTb3VyY2VzPzogc3RyaW5nKSA9PiBgXG4gICAgICAgZGVmYXVsdC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgY29ubmVjdC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gaHR0cHM6Ly8qLnNlbnRyeS5pbyBodHRwczovL3Nkay5zcGxpdC5pbyBodHRwczovLyouZGF0YWRvZ2hxLmV1IGh0dHBzOi8vKi5icm93c2VyLWludGFrZS1kYXRhZG9naHEuZXU7XG4gICAgICAgZm9udC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gZGF0YTo7XG4gICAgICAgaW1nLXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSB3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20gZGF0YTo7XG4gICAgICAgb2JqZWN0LXNyYyAnbm9uZSc7XG4gICAgICAgc2NyaXB0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbVxuICAgICAgICAnc2hhMjU2LUhEV0FnZlRlTUFndVQ4d0Z3Nys5Mlk3aTRFby82UlVRUXVBM1RXOUp4YkE9J1xuICAgICAgICAke2FkZGl0aW9uYWxTY3JpcHRTb3VyY2VzID8gJyAnICsgYWRkaXRpb25hbFNjcmlwdFNvdXJjZXMgOiAnJ307XG4gICAgICAgc3R5bGUtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9ICd1bnNhZmUtaW5saW5lJztcbiAgICAgICBiYXNlLXVyaSAnc2VsZic7XG4gICAgICAgZm9ybS1hY3Rpb24gJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgZnJhbWUtYW5jZXN0b3JzICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9O1xuICAgICAgIGZyYW1lLXNyYyAnc2VsZicgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgYFxuICAucmVwbGFjZSgvW1xcclxcblxcc10rL2csICcgJylcbiAgLnRyaW0oKTtcblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIGEgZGVmYXVsdCBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbiB1c2luZyBhIHMzIGJ1Y2tldCBhcyBvcmlnaW4uXG4gKiBJbnRlbmRlZCBmb3IgZGVsaXZlcnkgb2YgaHRtbCBkb2N1bWVudHMuIEl0IHNldHMgc29tZSBkZWZhdWx0cyBhIHJlY29tbWVuZGVkIGJ5IEFXUyBhbmQgcHJvdmlkZXMgYmFzaWMgc2VjdXJpdHkgaGVhZGVyLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGhvc3RlZFpvbmUgPSBwcm9wcy5ob3N0ZWRab25lID8/IFJpb0xhbmRpbmdab25lLmdldERlZmF1bHRIb3N0ZWRab25lKHRoaXMpO1xuICAgIGNvbnN0IHN1YkRvbWFpbiA9IHByb3BzLnN1YkRvbWFpbiA/PyAnJztcbiAgICBjb25zdCBkb21haW5OYW1lID0gcHJvcHMuc3ViRG9tYWluID09PSB1bmRlZmluZWQgPyBob3N0ZWRab25lLnpvbmVOYW1lIDogc3ViRG9tYWluICsgJy4nICsgaG9zdGVkWm9uZS56b25lTmFtZTtcblxuICAgIGNvbnN0IGRlZmF1bHRDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBjcmVhdGVSaW9EZWZhdWx0Q1NQKCk7XG4gICAgY29uc3QgY29udGVudFNlY3VyaXR5UG9saWN5ID0gcHJvcHMuY29udGVudFNlY3VyaXR5UG9saWN5ID8/IGRlZmF1bHRDb250ZW50U2VjdXJpdHlQb2xpY3k7XG5cbiAgICBjb25zdCBjZXJ0aWZpY2F0ZSA9IG5ldyBhY20uRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUodGhpcywgJ0Nsb3VkZnJvbnREaXN0cmlidXRpb25DZXJ0aWZpY2F0ZScsIHtcbiAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUsXG4gICAgICBob3N0ZWRab25lOiBob3N0ZWRab25lLFxuICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ09yaWdpbkFjY2Vzc0lkZW50aXR5Jywge1xuICAgICAgY29tbWVudDogYEFjY2Vzc0lkZW50aXR5IGZvciAke2RvbWFpbk5hbWV9YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ0Zyb250RW5kQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogcHJvcHMuY29udGVudEJ1Y2tldE5hbWUsXG4gICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ0V4cGlyZXNPYmplY3RzJyxcbiAgICAgICAgICBleHBpcmF0aW9uOiBEdXJhdGlvbi5kYXlzKDkwKSxcbiAgICAgICAgICBub25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzApLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICBjb3JzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbGxvd2VkTWV0aG9kczogW3MzLkh0dHBNZXRob2RzLkdFVF0sXG4gICAgICAgICAgYWxsb3dlZE9yaWdpbnM6IFsnKiddLFxuICAgICAgICAgIGFsbG93ZWRIZWFkZXJzOiBbJyonXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgYnVja2V0LmdyYW50UmVhZChcbiAgICAgIG5ldyBpYW0uQ2Fub25pY2FsVXNlclByaW5jaXBhbChvcmlnaW5BY2Nlc3NJZGVudGl0eS5jbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlTM0Nhbm9uaWNhbFVzZXJJZCksXG4gICAgICAnKicsXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5Jywge1xuICAgICAgY29tbWVudDogJ1BvbGljeSBmb3IgQ2xvdWRGcm9udCByZXNwb25zZXMnLFxuICAgICAgY29yc0JlaGF2aW9yOiB7XG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93SGVhZGVyczogWycqJ10sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHM6IFsnR0VUJ10sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnM6IFtob3N0ZWRab25lLnpvbmVOYW1lXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uc2Vjb25kcyg2MDApLFxuICAgICAgICBvcmlnaW5PdmVycmlkZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUhlYWRlcnNCZWhhdmlvcjoge1xuICAgICAgICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IHtcbiAgICAgICAgICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IGNvbnRlbnRTZWN1cml0eVBvbGljeSxcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGVudFR5cGVPcHRpb25zOiB7IG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICAgIGZyYW1lT3B0aW9uczogeyBmcmFtZU9wdGlvbjogY2xvdWRmcm9udC5IZWFkZXJzRnJhbWVPcHRpb24uREVOWSwgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHtcbiAgICAgICAgICByZWZlcnJlclBvbGljeTogY2xvdWRmcm9udC5IZWFkZXJzUmVmZXJyZXJQb2xpY3kuU1RSSUNUX09SSUdJTl9XSEVOX0NST1NTX09SSUdJTixcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHk6IHtcbiAgICAgICAgICBhY2Nlc3NDb250cm9sTWF4QWdlOiBEdXJhdGlvbi5kYXlzKDM2NSksXG4gICAgICAgICAgaW5jbHVkZVN1YmRvbWFpbnM6IHRydWUsXG4gICAgICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHhzc1Byb3RlY3Rpb246IHtcbiAgICAgICAgICBwcm90ZWN0aW9uOiB0cnVlLFxuICAgICAgICAgIG1vZGVCbG9jazogdHJ1ZSxcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBkaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24odGhpcywgJ0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG5ldyBvcmlnaW5zLlMzT3JpZ2luKGJ1Y2tldCksXG4gICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeS5DT1JTX1MzX09SSUdJTixcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIGNhY2hlUG9saWN5OiBjbG91ZGZyb250LkNhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k6IHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICB9LFxuICAgICAgZG9tYWluTmFtZXM6IFtkb21haW5OYW1lXSxcbiAgICAgIHByaWNlQ2xhc3M6IGNsb3VkZnJvbnQuUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDAsXG4gICAgICBjZXJ0aWZpY2F0ZTogY2VydGlmaWNhdGUsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogJ2luZGV4Lmh0bWwnLFxuICAgICAgbWluaW11bVByb3RvY29sVmVyc2lvbjogY2xvdWRmcm9udC5TZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTgsXG4gICAgICBlcnJvclJlc3BvbnNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDA0LFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDAzLFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6ICcvaW5kZXguaHRtbCcsXG4gICAgICAgICAgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyByb3V0ZTUzLlJlY29yZFNldCh0aGlzLCAnUmVjb3JkU2V0Jywge1xuICAgICAgcmVjb3JkTmFtZTogc3ViRG9tYWluLFxuICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHRhcmdldHMuQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKSxcbiAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICByZWNvcmRUeXBlOiByb3V0ZTUzLlJlY29yZFR5cGUuQSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjInLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -2,14 +2,12 @@ version: 0.2
2
2
  env:
3
3
  variables:
4
4
  LANG: C.UTF-8
5
- JAVA_HOME: /usr/lib/jvm/java-17-amazon-corretto.x86_64
6
5
  parameter-store:
7
6
  NIST_DATA_MIRROR_URL: /config/nist-data-mirror/url
8
7
  phases:
9
- pre_build:
10
- commands:
11
- - yum install --assumeyes --quiet java-17-amazon-corretto-devel
12
- - alternatives --set java /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java
8
+ install:
9
+ runtime-versions:
10
+ java: corretto17
13
11
  build:
14
12
  commands:
15
13
  # Keep this echo statement for identifying the default buildspec in our test
@@ -4,13 +4,10 @@ env:
4
4
  SERVICE_KEYSTORE_PASSWORD: /config/${SERVICE_NAME}/service-keystore-password
5
5
  LICENSE_BUCKET_NAME: /config/oss-licenses/bucket-name
6
6
  ACCOUNT_NAME: /config/account/name
7
- variables:
8
- JAVA_HOME: /usr/lib/jvm/java-17-amazon-corretto.x86_64
9
7
  phases:
10
- pre_build:
11
- commands:
12
- - yum install --assumeyes --quiet java-17-amazon-corretto-devel
13
- - alternatives --set java /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java
8
+ install:
9
+ runtime-versions:
10
+ java: corretto17
14
11
  build:
15
12
  commands:
16
13
  # Keep this echo statement for identifying the default buildspec in our test
@@ -25,7 +22,7 @@ phases:
25
22
  - set -u; aws s3 cp licenses/licenses.txt s3://${LICENSE_BUCKET_NAME}/reports/${ACCOUNT_NAME}/${SERVICE_NAME}.txt
26
23
 
27
24
  # SELF CERT SIGNING
28
- - keytool -genkey -alias InternalServiceCertificate -keyalg RSA -keystore containerfiles/service-keystore.p12 -validity 3650 -storetype PKCS12 -dname "CN=internal.service.${SERVICE_NAME}.${HOSTED_ZONE_NAME}, OU=Logistics, O=Rio, L=Munich, ST=BY, C=DE" -keypass ${SERVICE_KEYSTORE_PASSWORD} -storepass ${SERVICE_KEYSTORE_PASSWORD}
25
+ - set -u; keytool -genkey -alias InternalServiceCertificate -keyalg RSA -keystore containerfiles/service-keystore.p12 -validity 3650 -storetype PKCS12 -dname "CN=internal.service.${SERVICE_NAME}.${HOSTED_ZONE}, OU=Logistics, O=Rio, L=Munich, ST=BY, C=DE" -keypass ${SERVICE_KEYSTORE_PASSWORD} -storepass ${SERVICE_KEYSTORE_PASSWORD}
29
26
 
30
27
  # DOCKER IMAGE BUILD
31
28
  - ./gradlew jibBuildTar --quiet
@@ -0,0 +1,62 @@
1
+ version: '0.2'
2
+ env:
3
+ parameter-store:
4
+ SERVICE_KEYSTORE_PASSWORD: /config/${SERVICE_NAME}/service-keystore-password
5
+ CREATE_AND_SIGN_CERTIFICATE_SCRIPT_S3_LOCATION: /config/kafka-integration/create-and-sign-certificate-script-s3-location
6
+ LICENSE_BUCKET_NAME: /config/oss-licenses/bucket-name
7
+ ACCOUNT_NAME: /config/account/name
8
+ phases:
9
+ install:
10
+ runtime-versions:
11
+ java: corretto17
12
+ build:
13
+ commands:
14
+ # Keep this echo statement for identifying the default buildspec in our test
15
+ - echo "Using standard gradle build spec..."
16
+
17
+ # BUILD AND TEST
18
+ - ./gradlew clean build
19
+
20
+ # LICENSE CHECKING
21
+ - set -u; aws s3 cp s3://${LICENSE_BUCKET_NAME}/whitelist-gradle.txt licenses/approved_licenses.txt
22
+ - ./gradlew checkLicenses
23
+ - set -u; aws s3 cp licenses/licenses.txt s3://${LICENSE_BUCKET_NAME}/reports/${ACCOUNT_NAME}/${SERVICE_NAME}.txt
24
+
25
+ # SELF CERT SIGNING
26
+ - set -u; keytool -genkey -alias InternalServiceCertificate -keyalg RSA -keystore containerfiles/service-keystore.p12 -validity 3650 -storetype PKCS12 -dname "CN=internal.service.${SERVICE_NAME}.${HOSTED_ZONE}, OU=Logistics, O=Rio, L=Munich, ST=BY, C=DE" -keypass ${SERVICE_KEYSTORE_PASSWORD} -storepass ${SERVICE_KEYSTORE_PASSWORD}
27
+
28
+ # KAFKA CERT
29
+ - set -u; aws s3 cp --quiet s3://${CREATE_AND_SIGN_CERTIFICATE_SCRIPT_S3_LOCATION} create-and-sign-certificate
30
+ - chmod +x create-and-sign-certificate
31
+ - set -u; ./create-and-sign-certificate --keystore-password ${SERVICE_KEYSTORE_PASSWORD} --fqdn ${SERVICE_NAME}.${HOSTED_ZONE}
32
+ - cp /cert/certificate.p12 containerfiles/kafka-keystore.p12
33
+
34
+ # DOCKER IMAGE BUILD
35
+ - ./gradlew jibBuildTar --quiet
36
+
37
+ # npm synth action
38
+ - cd infrastructure
39
+ - npm install npm@8.12.1 --global
40
+ - npm ci
41
+ # mute stdout of cdk synth to not dump the resulting Cfn template in logs
42
+ - npm run cdk synth 1> /dev/null
43
+
44
+ # In pipeline: Error parsing reference: is not a valid repository/tag: invalid reference format.
45
+ # workaround due to https://github.com/aws/aws-cdk/issues/18044',
46
+ - find ./ -type f -name "*DeployApplicationStacks*.assets.json" -print0 | xargs -0 sed --in-place 's|docker load -i asset.|docker load -i ../asset.|g'
47
+
48
+ - cd ..
49
+ reports:
50
+ JunitTestResults:
51
+ files:
52
+ - '**/*'
53
+ base-directory: build/test-results
54
+
55
+ cache:
56
+ paths:
57
+ - /cert/**/*
58
+ - /root/.cache/**/*
59
+ - /root/.gradle/caches/**/*
60
+ - /root/.gradle/wrapper/**/*
61
+ - /root/google-cloud-tools-java/jib/**/*
62
+ - target/jib-cache/**/*
@@ -95,7 +95,8 @@ export declare enum PipelineType {
95
95
  * - build the container image via command "./gradlew jibBuildTar".
96
96
  * <p> This gradle command must be provided by the gradle project.
97
97
  */
98
- STANDARD_GRADLE = "STANDARD_GRADLE"
98
+ STANDARD_GRADLE = "STANDARD_GRADLE",
99
+ STANDARD_GRADLE_KAFKA = "STANDARD_GRADLE_KAFKA"
99
100
  }
100
101
  /**
101
102
  * @param partialBuildSpecPath Path to a custom build-spec file to use for the main and branch pipeline.
@@ -111,6 +112,8 @@ export interface CodeBuildOptions {
111
112
  export declare class PipelineStack extends Stack {
112
113
  private static addLifecycleRuleArtifactBucket;
113
114
  constructor(scope: Construct, id: string, props: PipelineStackProps);
115
+ private resolveDefaultBuildSpec;
116
+ private grantPermissionsForKafkaIntegration;
114
117
  private loadBuildSpecFromFile;
115
118
  private renamePipelineToLowerCase;
116
119
  }