cdk-common 2.0.389 → 2.0.391
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 +9 -3
- package/API.md +5 -0
- package/lib/main.js +1 -1
- package/lib/managed-policies.d.ts +1 -0
- package/lib/managed-policies.js +2 -1
- package/node_modules/@aws-cdk/assert/package.json +8 -8
- package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +82 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +5 -1
- package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -1
- package/node_modules/@aws-cdk/cfnspec/package.json +3 -3
- package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +7854 -1647
- package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +1 -0
- package/node_modules/@aws-cdk/cfnspec/spec/specification.json +331 -6
- package/node_modules/@aws-cdk/cloudformation-diff/package.json +4 -4
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/assert",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.62.1",
|
|
4
4
|
"description": "An assertion library for use with CDK Apps",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -34,21 +34,21 @@
|
|
|
34
34
|
},
|
|
35
35
|
"license": "Apache-2.0",
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@aws-cdk/assert-internal": "2.
|
|
38
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
39
|
-
"@aws-cdk/pkglint": "2.
|
|
37
|
+
"@aws-cdk/assert-internal": "2.62.1",
|
|
38
|
+
"@aws-cdk/cdk-build-tools": "2.62.1",
|
|
39
|
+
"@aws-cdk/pkglint": "2.62.1",
|
|
40
40
|
"@types/jest": "^27.5.2",
|
|
41
|
-
"aws-cdk-lib": "2.
|
|
42
|
-
"aws-cdk-migration": "2.
|
|
41
|
+
"aws-cdk-lib": "2.62.1",
|
|
42
|
+
"aws-cdk-migration": "2.62.1",
|
|
43
43
|
"constructs": "^10.0.0",
|
|
44
44
|
"jest": "^27.3.1",
|
|
45
45
|
"ts-jest": "^27.1.5"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@aws-cdk/cloudformation-diff": "2.
|
|
48
|
+
"@aws-cdk/cloudformation-diff": "2.62.1"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"aws-cdk-lib": "^2.
|
|
51
|
+
"aws-cdk-lib": "^2.62.1",
|
|
52
52
|
"constructs": "^10.0.0",
|
|
53
53
|
"jest": ">=26.6.3"
|
|
54
54
|
},
|
|
@@ -1,3 +1,85 @@
|
|
|
1
|
+
|
|
2
|
+
# Serverless Application Model (SAM) Resource Specification v2016-10-31
|
|
3
|
+
|
|
4
|
+
## New Resource Types
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Attribute Changes
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Property Changes
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Property Type Changes
|
|
14
|
+
|
|
15
|
+
* AWS::Serverless::Function.HttpApiEvent (__added__)
|
|
16
|
+
* AWS::Serverless::Function.HttpApiFunctionAuth (__added__)
|
|
17
|
+
* AWS::Serverless::Function.RouteSettings (__added__)
|
|
18
|
+
* AWS::Serverless::Function.EventSource Properties.Types (__changed__)
|
|
19
|
+
* Added HttpApiEvent
|
|
20
|
+
|
|
21
|
+
# CloudFormation Resource Specification v108.0.0
|
|
22
|
+
|
|
23
|
+
## New Resource Types
|
|
24
|
+
|
|
25
|
+
* AWS::KendraRanking::ExecutionPlan
|
|
26
|
+
|
|
27
|
+
## Attribute Changes
|
|
28
|
+
|
|
29
|
+
* AWS::RDS::DBInstance CertificateDetails.CAIdentifier (__added__)
|
|
30
|
+
* AWS::RDS::DBInstance CertificateDetails.ValidTill (__added__)
|
|
31
|
+
* AWS::SecretsManager::Secret Id (__added__)
|
|
32
|
+
|
|
33
|
+
## Property Changes
|
|
34
|
+
|
|
35
|
+
* AWS::BillingConductor::PricingRule Operation (__added__)
|
|
36
|
+
* AWS::BillingConductor::PricingRule UsageType (__added__)
|
|
37
|
+
* AWS::CE::AnomalySubscription ThresholdExpression (__added__)
|
|
38
|
+
* AWS::CE::AnomalySubscription Threshold.Required (__changed__)
|
|
39
|
+
* Old: true
|
|
40
|
+
* New: false
|
|
41
|
+
* AWS::CloudWatch::MetricStream IncludeLinkedAccountsMetrics (__added__)
|
|
42
|
+
* AWS::EKS::Addon PreserveOnDelete (__added__)
|
|
43
|
+
* AWS::FMS::Policy PolicyDescription (__added__)
|
|
44
|
+
* AWS::FMS::Policy ResourceSetIds (__added__)
|
|
45
|
+
* AWS::FMS::Policy ResourceType.Required (__changed__)
|
|
46
|
+
* Old: true
|
|
47
|
+
* New: false
|
|
48
|
+
* AWS::RDS::DBInstance CertificateDetails (__added__)
|
|
49
|
+
* AWS::RDS::DBInstance CertificateRotationRestart (__added__)
|
|
50
|
+
* AWS::SecretsManager::Secret ReplicaRegions.DuplicatesAllowed (__added__)
|
|
51
|
+
* AWS::SecretsManager::Secret Tags.DuplicatesAllowed (__added__)
|
|
52
|
+
|
|
53
|
+
## Property Type Changes
|
|
54
|
+
|
|
55
|
+
* AWS::RDS::DBInstance.CertificateDetails (__added__)
|
|
56
|
+
* AWS::Transfer::Workflow.DecryptStepDetails (__added__)
|
|
57
|
+
* AWS::Transfer::Workflow.EfsInputFileLocation (__added__)
|
|
58
|
+
* AWS::Transfer::Workflow.S3FileLocation (__added__)
|
|
59
|
+
* AWS::Transfer::Workflow.CopyStepDetails DestinationFileLocation.Type (__changed__)
|
|
60
|
+
* Old: InputFileLocation
|
|
61
|
+
* New: S3FileLocation
|
|
62
|
+
* AWS::Transfer::Workflow.InputFileLocation EfsFileLocation (__added__)
|
|
63
|
+
* AWS::Transfer::Workflow.WorkflowStep DecryptStepDetails (__added__)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# Serverless Application Model (SAM) Resource Specification v2016-10-31
|
|
68
|
+
|
|
69
|
+
## New Resource Types
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## Attribute Changes
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Property Changes
|
|
76
|
+
|
|
77
|
+
* AWS::Serverless::Api DisableExecuteApiEndpoint (__added__)
|
|
78
|
+
|
|
79
|
+
## Property Type Changes
|
|
80
|
+
|
|
81
|
+
* AWS::Serverless::Function.KinesisEvent FunctionResponseTypes (__added__)
|
|
82
|
+
|
|
1
83
|
# CloudFormation Resource Specification v107.0.0
|
|
2
84
|
|
|
3
85
|
## New Resource Types
|
|
@@ -201,6 +201,10 @@ async function main() {
|
|
|
201
201
|
if (Array.isArray(update)) {
|
|
202
202
|
changes.push(`* ${namespace} ${prefix} (__changed__)`);
|
|
203
203
|
for (const entry of update) {
|
|
204
|
+
if (entry.length === 1 && entry[0] === ' ') {
|
|
205
|
+
// This means that this element of the array is unchanged
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
204
208
|
if (entry.length !== 2) {
|
|
205
209
|
throw new Error(`Unexpected array diff entry: ${JSON.stringify(entry)}`);
|
|
206
210
|
}
|
|
@@ -233,4 +237,4 @@ main().catch(e => {
|
|
|
233
237
|
process.stderr.write('\n');
|
|
234
238
|
process.exit(1);
|
|
235
239
|
});
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FB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QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IGpzb25EaWZmID0gcmVxdWlyZSgnanNvbi1kaWZmJykuZGlmZjtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZnVuY3Rpb24gbGluZShmbXQ6IHN0cmluZyA9ICcnLCAuLi5wYXJhbTogYW55W10pIHtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUodXRpbC5mb3JtYXQoZm10LCAuLi5wYXJhbSkpO1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRpdGxlID0gcHJvY2Vzcy5hcmd2WzJdO1xuICBjb25zdCBvbGRTcGVjRmlsZSA9IHByb2Nlc3MuYXJndlszXTtcbiAgY29uc3QgbmV3U3BlY0ZpbGUgPSBwcm9jZXNzLmFyZ3ZbNF07XG5cbiAgY29uc3QgbmV3U3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG5ld1NwZWNGaWxlKTtcbiAgY29uc3Qgb2xkU3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG9sZFNwZWNGaWxlKTtcblxuICBjb25zdCBvdXQgPSBqc29uRGlmZihvbGRTcGVjLCBuZXdTcGVjKTtcblxuICAvLyBIZXJlJ3MgdGhlIG1hZ2ljIG91dHB1dCBmb3JtYXQgb2YgdGhpcyB0aGluZ1xuICAvLyBJZiBhIGtleSBlbmRzIGluIF9fYWRkZWQsIGl0IGdvdCBhZGRlZCwgYW5kIHRoZSB2YWx1ZVxuICAvLyAgIGlzIHRoZSBuZXcgdmFsdWUuXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19kZWxldGVkLCBpdCBnb3QgZGVsZXRlZCwgYW5kIHRoZSB2YWx1ZVxuICAvLyAgIGlzIHRoZSBvbGQgdmFsdWUuXG4gIC8vIElmIGEgdmFsdWUgZ290IGNoYW5nZWQsIHRoZSB2YWx1ZSBvYmplY3Qgd2lsbCBsb29rIGxpa2U6XG4gIC8vICAgeyBfX29sZDogLi4uLCBfX25ldzogLi4uIH1cblxuICBpZiAoIW91dCkge1xuICAgIHJldHVybjsgLy8gbm8gZGlmZlxuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VUeXBlQWRkaXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHJlc291cmNlVHlwZURlbGV0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBhdHRyaWJ1dGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgY29uc3QgcHJvcGVydHlDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgY29uc3QgcHJvcGVydHlUeXBlQ2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlJlc291cmNlVHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlSZXNvdXJjZVR5cGVVcGRhdGUoa2V5LCBvdXQuUmVzb3VyY2VUeXBlc1trZXldKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG91dC5Qcm9wZXJ0eVR5cGVzIHx8IHt9KSkge1xuICAgIGNsYXNzaWZ5UHJvcGVydHlUeXBlVXBkYXRlKGtleSwgb3V0LlByb3BlcnR5VHlwZXNba2V5XSk7XG4gIH1cblxuICBsaW5lKGAjICR7dGl0bGV9IHYke25ld1NwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbn1gKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIE5ldyBSZXNvdXJjZSBUeXBlcycpO1xuICBsaW5lKCk7XG4gIHJlc291cmNlVHlwZUFkZGl0aW9ucy5mb3JFYWNoKHR5cGUgPT4gbGluZShgKiAke3R5cGV9YCkpO1xuICBsaW5lKCk7XG5cbiAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5zaXplID4gMCkge1xuICAgIGxpbmUoJyMjIFJlbW92ZWQgUmVzb3VyY2UgVHlwZXMnKTtcbiAgICBsaW5lKCk7XG4gICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gICAgbGluZSgpO1xuICB9XG5cbiAgbGluZSgnIyMgQXR0cmlidXRlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBhdHRyaWJ1dGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIFByb3BlcnR5IENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgVHlwZSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgcHJvcGVydHlUeXBlQ2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG5cbiAgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZVR5cGVVcGRhdGUocmVzb3VyY2VUeXBlOiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHJlc291cmNlVHlwZSk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICByZXNvdXJjZVR5cGVBZGRpdGlvbnMuYWRkKGFkZGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHJlc291cmNlVHlwZSk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZURlbGV0aW9ucy5hZGQoZGVsZXRlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHVzaERvd25Db21wbGV0ZUNoYW5nZXModXBkYXRlKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHVwZGF0ZSkpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgJ1Byb3BlcnRpZXMnOlxuICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyh1cGRhdGUuUHJvcGVydGllcykpIHtcbiAgICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIHByb3AsIHVwZGF0ZS5Qcm9wZXJ0aWVzW3Byb3BdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgIHByb3BlcnR5Q2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0F0dHJpYnV0ZXMnOlxuICAgICAgICAgIGZvciAoY29uc3QgYXR0ciBvZiBPYmplY3Qua2V5cyh1cGRhdGUuQXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGF0dHIsIHVwZGF0ZS5BdHRyaWJ1dGVzW2F0dHJdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEb2N1bWVudGF0aW9uJzpcbiAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBrZXksIHVwZGF0ZS5Eb2N1bWVudGF0aW9uKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdXBkYXRlIHRvICR7cmVzb3VyY2VUeXBlfTogJHtrZXl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUocHJvcGVydHlUeXBlOiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHByb3BlcnR5VHlwZSk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBhZGRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZUFkZGl0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHthZGRlZH0gKF9fYWRkZWRfXylgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHByb3BlcnR5VHlwZSk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGRlbGV0ZWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGlmIChyZXNvdXJjZVR5cGVEZWxldGlvbnMuaGFzKHJlc291cmNlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuOyAvLyBza2lwcGluZyBwcm9wZXJ0eSBmb3IgYWRkZWQgcmVzb3VyY2UgdHlwZXNcbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGAqICR7ZGVsZXRlZH0gKF9fcmVtb3ZlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyh1cGRhdGUpLmxlbmd0aCAhPT0gMSAmJiBPYmplY3Qua2V5cyh1cGRhdGUpWzBdID09PSAnUHJvcGVydGllcycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCB1cGRhdGUgdG8gYSByZXNvdXJjZSB0eXBlLiBFeHBlY3Rpbmcgb25seSBcIlByb3BlcnRpZXNcIiB0byBjaGFuZ2U6ICcgKyBwcm9wZXJ0eVR5cGUpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyh1cGRhdGUuUHJvcGVydGllcyA/PyB7fSkpIHtcbiAgICAgIGRlc2NyaWJlQ2hhbmdlcyhwcm9wZXJ0eVR5cGUsIHByb3AsIHVwZGF0ZS5Qcm9wZXJ0aWVzW3Byb3BdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1c2ggZG93biBtYXNzIGNoYW5nZXMgdG8gYXR0cmlidXRlcyBvciBwcm9wZXJ0aWVzIHRvIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEFuIGV4YW1wbGUgd2lsbCBleHBsYWluIHRoaXMgYmVzdC4gSlNPTi1kaWZmIHdpbGwgbWFrZSB0aGUgc21hbGxlc3QgZGlmZiwgc28gaWYgdGhlcmVcbiAgICogYXJlIG5ldyBwcm9wZXJ0aWVzIGl0IHdpbGwgcmVwb3J0OlxuICAgKlxuICAgKiBcIlByb3BlcnRpZXNfX2FkZGVkXCI6IHtcbiAgICogICAgXCJQcm9wZXJ0eTFcIjogeyAuLi4gfSxcbiAgICogICAgXCJQcm9wZXJ0eTJcIjogeyAuLi4gfSxcbiAgICogfVxuICAgKlxuICAgKiBCdXQgd2Ugd2FudCB0byBzZWUgdGhpcyBhczpcbiAgICpcbiAgICogXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICogICAgXCJQcm9wZXJ0eTFfX2FkZGVkXCI6IHsgLi4uIH0sXG4gICAqICAgIFwiUHJvcGVydHkyX19hZGRlZFwiOiB7IC4uLiB9LFxuICAgKiB9XG4gICAqXG4gICAqIFNhbWUgKGJ1dCBpbiByZXZlcnNlKSBmb3IgZGVsZXRpb25zLlxuICAgKi9cbiAgZnVuY3Rpb24gcHVzaERvd25Db21wbGV0ZUNoYW5nZXModXBkYXRlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pikge1xuICAgIGZvciAoY29uc3QgW2NhdGVnb3J5LCBlbnRyaWVzXSBvZiBPYmplY3QuZW50cmllcyh1cGRhdGUpKSB7XG4gICAgICBjb25zdCBhZGRlZEtleSA9IGlzQWRkZWQoY2F0ZWdvcnkpO1xuICAgICAgaWYgKGFkZGVkS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVbY2F0ZWdvcnldO1xuICAgICAgICB1cGRhdGVbYWRkZWRLZXldID0gc3VmZml4S2V5cygnX19hZGRlZCcsIGVudHJpZXMpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWxldGVkS2V5ID0gaXNEZWxldGVkKGNhdGVnb3J5KTtcbiAgICAgIGlmIChkZWxldGVkS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVbY2F0ZWdvcnldO1xuICAgICAgICB1cGRhdGVbZGVsZXRlZEtleV0gPSBzdWZmaXhLZXlzKCdfX2RlbGV0ZWQnLCBlbnRyaWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc0RlbGV0ZWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNTdWZmaXgoa2V5LCAnX19kZWxldGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc0FkZGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fYWRkZWQnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3VmZml4KGtleTogc3RyaW5nLCBzdWZmaXg6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0ga2V5LmluZGV4T2Yoc3VmZml4KTtcbiAgICByZXR1cm4gaW5kZXggPT09IC0xID8gdW5kZWZpbmVkIDoga2V5LnNsaWNlKDAsIGluZGV4KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN1ZmZpeEtleXMoc3VmZml4OiBzdHJpbmcsIHhzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgICByZXRba2V5ICsgc3VmZml4XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVDaGFuZ2VzKG5hbWVzcGFjZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcmVmaXgpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcmVmaXgpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7ZGVsZXRlZH0gKF9fZGVsZXRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZih1cGRhdGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGNoYW5nZSBmb3IgJHtuYW1lc3BhY2V9LiR7cHJlZml4fSAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCdfX29sZCcgaW4gdXBkYXRlICYmICdfX25ldycgaW4gdXBkYXRlKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBPbGQ6ICR7dXBkYXRlLl9fb2xkfWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogTmV3OiAke3VwZGF0ZS5fX25ld31gKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHVwZGF0ZSkpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdXBkYXRlKSB7XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChlbnRyeVswXSkge1xuICAgICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgICAgY2hhbmdlcy5wdXNoKGAgICogQWRkZWQgJHtlbnRyeVsxXX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgYXdrd2FyZCBoYXBwZW5lZDogJHtlbnRyeVsxXX0gd2FzIGRlbGV0ZWQgZnJvbSAke25hbWVzcGFjZX0gJHtwcmVmaXh9IWApO1xuICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgIC8vIFRoaXMgZW50cnkgaXMgXCJjb250ZXh0XCJcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlLCBgJHtwcmVmaXh9LiR7a2V5fWAsIHVwZGF0ZVtrZXldKSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShlLnN0YWNrKTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ1xcbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxDQUFDLFVBQVU7S0FDbkI7SUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUM3QyxNQUFNLGVBQWUsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQzVDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUVoRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUN0RCwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDdEQsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUN6RDtJQUVELElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQzVELElBQUksRUFBRSxDQUFDO0lBRVAsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDOUIsSUFBSSxFQUFFLENBQUM7SUFDUCxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsSUFBSSxFQUFFLENBQUM7SUFFUCxJQUFJLHFCQUFxQixDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDbEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDbEMsSUFBSSxFQUFFLENBQUM7UUFDUCxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxFQUFFLENBQUM7S0FDUjtJQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzdCLElBQUksRUFBRSxDQUFDO0lBQ1AsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxFQUFFLENBQUM7SUFFUCxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM1QixJQUFJLEVBQUUsQ0FBQztJQUNQLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLEVBQUUsQ0FBQztJQUVQLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pDLElBQUksRUFBRSxDQUFDO0lBQ1AsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUMsU0FBUywwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLE1BQVc7UUFDbkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxFQUFFO1lBQ1QscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sRUFBRTtZQUNYLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1I7UUFFRCx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckMsUUFBUSxHQUFHLEVBQUU7Z0JBQ1gsS0FBSyxZQUFZO29CQUNmLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ2pELGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzVFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQy9CLENBQUMsQ0FBQyxDQUFDO3FCQUNKO29CQUNELE1BQU07Z0JBQ1IsS0FBSyxZQUFZO29CQUNmLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ2pELGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzVFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDaEMsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLGVBQWU7b0JBQ2xCLGVBQWUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3hFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDaEMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDUjtvQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixZQUFZLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQzthQUNuRTtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVMsMEJBQTBCLENBQUMsWUFBb0IsRUFBRSxNQUFXO1FBQ25FLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzNDLE9BQU8sQ0FBQyw2Q0FBNkM7YUFDdEQ7WUFFRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ25ELE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzNDLE9BQU8sQ0FBQyw2Q0FBNkM7YUFDdEQ7WUFFRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLEVBQUU7WUFDL0UsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUNqSDtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZELGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzVFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxNQUEyQztRQUMxRSxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO1lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksVUFBVSxFQUFFO2dCQUNkLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVMsU0FBUyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTLE9BQU8sQ0FBQyxHQUFXO1FBQzFCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQWM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsTUFBYyxFQUFFLEVBQXVCO1FBQ3pELE1BQU0sR0FBRyxHQUF3QixFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDN0MsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxTQUFTLGVBQWUsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxNQUFXO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLGdCQUFnQixDQUFDLENBQUM7WUFDeEQsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzRjtRQUVELElBQUksT0FBTyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDekMsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxNQUFNLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtvQkFDMUMseURBQXlEO29CQUN6RCxTQUFTO2lCQUNWO2dCQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRTtnQkFDRCxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDaEIsS0FBSyxHQUFHO3dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN0QyxNQUFNO29CQUNSLEtBQUssR0FBRzt3QkFDTixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixTQUFTLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDdEcsS0FBSyxHQUFHO3dCQUNOLDBCQUEwQjt3QkFDMUIsTUFBTTtvQkFDUjt3QkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDNUU7YUFDRjtTQUNGO2FBQU07WUFDTCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IGpzb25EaWZmID0gcmVxdWlyZSgnanNvbi1kaWZmJykuZGlmZjtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZnVuY3Rpb24gbGluZShmbXQ6IHN0cmluZyA9ICcnLCAuLi5wYXJhbTogYW55W10pIHtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUodXRpbC5mb3JtYXQoZm10LCAuLi5wYXJhbSkpO1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRpdGxlID0gcHJvY2Vzcy5hcmd2WzJdO1xuICBjb25zdCBvbGRTcGVjRmlsZSA9IHByb2Nlc3MuYXJndlszXTtcbiAgY29uc3QgbmV3U3BlY0ZpbGUgPSBwcm9jZXNzLmFyZ3ZbNF07XG5cbiAgY29uc3QgbmV3U3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG5ld1NwZWNGaWxlKTtcbiAgY29uc3Qgb2xkU3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG9sZFNwZWNGaWxlKTtcblxuICBjb25zdCBvdXQgPSBqc29uRGlmZihvbGRTcGVjLCBuZXdTcGVjKTtcblxuICAvLyBIZXJlJ3MgdGhlIG1hZ2ljIG91dHB1dCBmb3JtYXQgb2YgdGhpcyB0aGluZ1xuICAvLyBJZiBhIGtleSBlbmRzIGluIF9fYWRkZWQsIGl0IGdvdCBhZGRlZCwgYW5kIHRoZSB2YWx1ZVxuICAvLyAgIGlzIHRoZSBuZXcgdmFsdWUuXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19kZWxldGVkLCBpdCBnb3QgZGVsZXRlZCwgYW5kIHRoZSB2YWx1ZVxuICAvLyAgIGlzIHRoZSBvbGQgdmFsdWUuXG4gIC8vIElmIGEgdmFsdWUgZ290IGNoYW5nZWQsIHRoZSB2YWx1ZSBvYmplY3Qgd2lsbCBsb29rIGxpa2U6XG4gIC8vICAgeyBfX29sZDogLi4uLCBfX25ldzogLi4uIH1cblxuICBpZiAoIW91dCkge1xuICAgIHJldHVybjsgLy8gbm8gZGlmZlxuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VUeXBlQWRkaXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHJlc291cmNlVHlwZURlbGV0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBhdHRyaWJ1dGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgY29uc3QgcHJvcGVydHlDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgY29uc3QgcHJvcGVydHlUeXBlQ2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlJlc291cmNlVHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlSZXNvdXJjZVR5cGVVcGRhdGUoa2V5LCBvdXQuUmVzb3VyY2VUeXBlc1trZXldKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG91dC5Qcm9wZXJ0eVR5cGVzIHx8IHt9KSkge1xuICAgIGNsYXNzaWZ5UHJvcGVydHlUeXBlVXBkYXRlKGtleSwgb3V0LlByb3BlcnR5VHlwZXNba2V5XSk7XG4gIH1cblxuICBsaW5lKGAjICR7dGl0bGV9IHYke25ld1NwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbn1gKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIE5ldyBSZXNvdXJjZSBUeXBlcycpO1xuICBsaW5lKCk7XG4gIHJlc291cmNlVHlwZUFkZGl0aW9ucy5mb3JFYWNoKHR5cGUgPT4gbGluZShgKiAke3R5cGV9YCkpO1xuICBsaW5lKCk7XG5cbiAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5zaXplID4gMCkge1xuICAgIGxpbmUoJyMjIFJlbW92ZWQgUmVzb3VyY2UgVHlwZXMnKTtcbiAgICBsaW5lKCk7XG4gICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gICAgbGluZSgpO1xuICB9XG5cbiAgbGluZSgnIyMgQXR0cmlidXRlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBhdHRyaWJ1dGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIFByb3BlcnR5IENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgVHlwZSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgcHJvcGVydHlUeXBlQ2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG5cbiAgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZVR5cGVVcGRhdGUocmVzb3VyY2VUeXBlOiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHJlc291cmNlVHlwZSk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICByZXNvdXJjZVR5cGVBZGRpdGlvbnMuYWRkKGFkZGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHJlc291cmNlVHlwZSk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZURlbGV0aW9ucy5hZGQoZGVsZXRlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHVzaERvd25Db21wbGV0ZUNoYW5nZXModXBkYXRlKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHVwZGF0ZSkpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgJ1Byb3BlcnRpZXMnOlxuICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyh1cGRhdGUuUHJvcGVydGllcykpIHtcbiAgICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIHByb3AsIHVwZGF0ZS5Qcm9wZXJ0aWVzW3Byb3BdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgIHByb3BlcnR5Q2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0F0dHJpYnV0ZXMnOlxuICAgICAgICAgIGZvciAoY29uc3QgYXR0ciBvZiBPYmplY3Qua2V5cyh1cGRhdGUuQXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGF0dHIsIHVwZGF0ZS5BdHRyaWJ1dGVzW2F0dHJdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEb2N1bWVudGF0aW9uJzpcbiAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBrZXksIHVwZGF0ZS5Eb2N1bWVudGF0aW9uKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdXBkYXRlIHRvICR7cmVzb3VyY2VUeXBlfTogJHtrZXl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUocHJvcGVydHlUeXBlOiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHByb3BlcnR5VHlwZSk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBhZGRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZUFkZGl0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHthZGRlZH0gKF9fYWRkZWRfXylgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHByb3BlcnR5VHlwZSk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGRlbGV0ZWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGlmIChyZXNvdXJjZVR5cGVEZWxldGlvbnMuaGFzKHJlc291cmNlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuOyAvLyBza2lwcGluZyBwcm9wZXJ0eSBmb3IgYWRkZWQgcmVzb3VyY2UgdHlwZXNcbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGAqICR7ZGVsZXRlZH0gKF9fcmVtb3ZlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyh1cGRhdGUpLmxlbmd0aCAhPT0gMSAmJiBPYmplY3Qua2V5cyh1cGRhdGUpWzBdID09PSAnUHJvcGVydGllcycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCB1cGRhdGUgdG8gYSByZXNvdXJjZSB0eXBlLiBFeHBlY3Rpbmcgb25seSBcIlByb3BlcnRpZXNcIiB0byBjaGFuZ2U6ICcgKyBwcm9wZXJ0eVR5cGUpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyh1cGRhdGUuUHJvcGVydGllcyA/PyB7fSkpIHtcbiAgICAgIGRlc2NyaWJlQ2hhbmdlcyhwcm9wZXJ0eVR5cGUsIHByb3AsIHVwZGF0ZS5Qcm9wZXJ0aWVzW3Byb3BdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1c2ggZG93biBtYXNzIGNoYW5nZXMgdG8gYXR0cmlidXRlcyBvciBwcm9wZXJ0aWVzIHRvIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEFuIGV4YW1wbGUgd2lsbCBleHBsYWluIHRoaXMgYmVzdC4gSlNPTi1kaWZmIHdpbGwgbWFrZSB0aGUgc21hbGxlc3QgZGlmZiwgc28gaWYgdGhlcmVcbiAgICogYXJlIG5ldyBwcm9wZXJ0aWVzIGl0IHdpbGwgcmVwb3J0OlxuICAgKlxuICAgKiBcIlByb3BlcnRpZXNfX2FkZGVkXCI6IHtcbiAgICogICAgXCJQcm9wZXJ0eTFcIjogeyAuLi4gfSxcbiAgICogICAgXCJQcm9wZXJ0eTJcIjogeyAuLi4gfSxcbiAgICogfVxuICAgKlxuICAgKiBCdXQgd2Ugd2FudCB0byBzZWUgdGhpcyBhczpcbiAgICpcbiAgICogXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICogICAgXCJQcm9wZXJ0eTFfX2FkZGVkXCI6IHsgLi4uIH0sXG4gICAqICAgIFwiUHJvcGVydHkyX19hZGRlZFwiOiB7IC4uLiB9LFxuICAgKiB9XG4gICAqXG4gICAqIFNhbWUgKGJ1dCBpbiByZXZlcnNlKSBmb3IgZGVsZXRpb25zLlxuICAgKi9cbiAgZnVuY3Rpb24gcHVzaERvd25Db21wbGV0ZUNoYW5nZXModXBkYXRlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pikge1xuICAgIGZvciAoY29uc3QgW2NhdGVnb3J5LCBlbnRyaWVzXSBvZiBPYmplY3QuZW50cmllcyh1cGRhdGUpKSB7XG4gICAgICBjb25zdCBhZGRlZEtleSA9IGlzQWRkZWQoY2F0ZWdvcnkpO1xuICAgICAgaWYgKGFkZGVkS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVbY2F0ZWdvcnldO1xuICAgICAgICB1cGRhdGVbYWRkZWRLZXldID0gc3VmZml4S2V5cygnX19hZGRlZCcsIGVudHJpZXMpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWxldGVkS2V5ID0gaXNEZWxldGVkKGNhdGVnb3J5KTtcbiAgICAgIGlmIChkZWxldGVkS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVbY2F0ZWdvcnldO1xuICAgICAgICB1cGRhdGVbZGVsZXRlZEtleV0gPSBzdWZmaXhLZXlzKCdfX2RlbGV0ZWQnLCBlbnRyaWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc0RlbGV0ZWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNTdWZmaXgoa2V5LCAnX19kZWxldGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc0FkZGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fYWRkZWQnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3VmZml4KGtleTogc3RyaW5nLCBzdWZmaXg6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0ga2V5LmluZGV4T2Yoc3VmZml4KTtcbiAgICByZXR1cm4gaW5kZXggPT09IC0xID8gdW5kZWZpbmVkIDoga2V5LnNsaWNlKDAsIGluZGV4KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN1ZmZpeEtleXMoc3VmZml4OiBzdHJpbmcsIHhzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgICByZXRba2V5ICsgc3VmZml4XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVDaGFuZ2VzKG5hbWVzcGFjZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcmVmaXgpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcmVmaXgpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7ZGVsZXRlZH0gKF9fZGVsZXRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZih1cGRhdGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGNoYW5nZSBmb3IgJHtuYW1lc3BhY2V9LiR7cHJlZml4fSAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCdfX29sZCcgaW4gdXBkYXRlICYmICdfX25ldycgaW4gdXBkYXRlKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBPbGQ6ICR7dXBkYXRlLl9fb2xkfWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogTmV3OiAke3VwZGF0ZS5fX25ld31gKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHVwZGF0ZSkpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdXBkYXRlKSB7XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggPT09IDEgJiYgZW50cnlbMF0gPT09ICcgJykge1xuICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGlzIGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIHVuY2hhbmdlZFxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChlbnRyeVswXSkge1xuICAgICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgICAgY2hhbmdlcy5wdXNoKGAgICogQWRkZWQgJHtlbnRyeVsxXX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgYXdrd2FyZCBoYXBwZW5lZDogJHtlbnRyeVsxXX0gd2FzIGRlbGV0ZWQgZnJvbSAke25hbWVzcGFjZX0gJHtwcmVmaXh9IWApO1xuICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgLy8gVGhpcyBlbnRyeSBpcyBcImNvbnRleHRcIlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBhcnJheSBkaWZmIGVudHJ5OiAke0pTT04uc3RyaW5naWZ5KGVudHJ5KX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh1cGRhdGUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGRlc2NyaWJlQ2hhbmdlcyhuYW1lc3BhY2UsIGAke3ByZWZpeH0uJHtrZXl9YCwgdXBkYXRlW2tleV0pKSB7XG4gICAgICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGUuc3RhY2spO1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZSgnXFxuJyk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
108.0.0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/cfnspec",
|
|
3
3
|
"description": "The CloudFormation resource specification used by @aws-cdk packages",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.62.1",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "cdk-build && /bin/bash build-tools/update.sh",
|
|
7
7
|
"update-metrics": "/bin/bash build-tools/update-metrics.sh",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"main": "lib/index.js",
|
|
31
31
|
"types": "lib/index.d.ts",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
34
|
-
"@aws-cdk/pkglint": "2.
|
|
33
|
+
"@aws-cdk/cdk-build-tools": "2.62.1",
|
|
34
|
+
"@aws-cdk/pkglint": "2.62.1",
|
|
35
35
|
"@types/fs-extra": "^8.1.2",
|
|
36
36
|
"@types/jest": "^27.5.2",
|
|
37
37
|
"@types/md5": "^2.3.2",
|