@cdktn/provider-project 0.9.3 → 0.9.5
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 +22 -22
- package/lib/cdktf-config.js +2 -2
- package/lib/deprecate-packages.js +12 -1
- package/lib/index.js +34 -2
- package/lib/provider-upgrade.js +13 -1
- package/package.json +3 -2
package/.jsii
CHANGED
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
},
|
|
127
127
|
"locationInModule": {
|
|
128
128
|
"filename": "src/index.ts",
|
|
129
|
-
"line":
|
|
129
|
+
"line": 187
|
|
130
130
|
},
|
|
131
131
|
"parameters": [
|
|
132
132
|
{
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"kind": "class",
|
|
141
141
|
"locationInModule": {
|
|
142
142
|
"filename": "src/index.ts",
|
|
143
|
-
"line":
|
|
143
|
+
"line": 186
|
|
144
144
|
},
|
|
145
145
|
"name": "CdktnProviderProject",
|
|
146
146
|
"symbolId": "src/index:CdktnProviderProject"
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"kind": "interface",
|
|
159
159
|
"locationInModule": {
|
|
160
160
|
"filename": "src/index.ts",
|
|
161
|
-
"line":
|
|
161
|
+
"line": 66
|
|
162
162
|
},
|
|
163
163
|
"name": "CdktnProviderProjectOptions",
|
|
164
164
|
"properties": [
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"immutable": true,
|
|
171
171
|
"locationInModule": {
|
|
172
172
|
"filename": "src/index.ts",
|
|
173
|
-
"line":
|
|
173
|
+
"line": 92
|
|
174
174
|
},
|
|
175
175
|
"name": "cdktnVersion",
|
|
176
176
|
"type": {
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
"immutable": true,
|
|
186
186
|
"locationInModule": {
|
|
187
187
|
"filename": "src/index.ts",
|
|
188
|
-
"line":
|
|
188
|
+
"line": 97
|
|
189
189
|
},
|
|
190
190
|
"name": "constructsVersion",
|
|
191
191
|
"type": {
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"immutable": true,
|
|
201
201
|
"locationInModule": {
|
|
202
202
|
"filename": "src/index.ts",
|
|
203
|
-
"line":
|
|
203
|
+
"line": 91
|
|
204
204
|
},
|
|
205
205
|
"name": "terraformProvider",
|
|
206
206
|
"type": {
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"immutable": true,
|
|
217
217
|
"locationInModule": {
|
|
218
218
|
"filename": "src/index.ts",
|
|
219
|
-
"line":
|
|
219
|
+
"line": 96
|
|
220
220
|
},
|
|
221
221
|
"name": "cdktfVersion",
|
|
222
222
|
"optional": true,
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
"immutable": true,
|
|
235
235
|
"locationInModule": {
|
|
236
236
|
"filename": "src/index.ts",
|
|
237
|
-
"line":
|
|
237
|
+
"line": 124
|
|
238
238
|
},
|
|
239
239
|
"name": "creationYear",
|
|
240
240
|
"optional": true,
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
"immutable": true,
|
|
253
253
|
"locationInModule": {
|
|
254
254
|
"filename": "src/index.ts",
|
|
255
|
-
"line":
|
|
255
|
+
"line": 134
|
|
256
256
|
},
|
|
257
257
|
"name": "deprecationDate",
|
|
258
258
|
"optional": true,
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
"immutable": true,
|
|
269
269
|
"locationInModule": {
|
|
270
270
|
"filename": "src/index.ts",
|
|
271
|
-
"line":
|
|
271
|
+
"line": 98
|
|
272
272
|
},
|
|
273
273
|
"name": "forceMajorVersion",
|
|
274
274
|
"optional": true,
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
"immutable": true,
|
|
287
287
|
"locationInModule": {
|
|
288
288
|
"filename": "src/index.ts",
|
|
289
|
-
"line":
|
|
289
|
+
"line": 107
|
|
290
290
|
},
|
|
291
291
|
"name": "githubNamespace",
|
|
292
292
|
"optional": true,
|
|
@@ -304,7 +304,7 @@
|
|
|
304
304
|
"immutable": true,
|
|
305
305
|
"locationInModule": {
|
|
306
306
|
"filename": "src/index.ts",
|
|
307
|
-
"line":
|
|
307
|
+
"line": 129
|
|
308
308
|
},
|
|
309
309
|
"name": "isDeprecated",
|
|
310
310
|
"optional": true,
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
"immutable": true,
|
|
322
322
|
"locationInModule": {
|
|
323
323
|
"filename": "src/index.ts",
|
|
324
|
-
"line":
|
|
324
|
+
"line": 138
|
|
325
325
|
},
|
|
326
326
|
"name": "licensee",
|
|
327
327
|
"optional": true,
|
|
@@ -338,7 +338,7 @@
|
|
|
338
338
|
"immutable": true,
|
|
339
339
|
"locationInModule": {
|
|
340
340
|
"filename": "src/index.ts",
|
|
341
|
-
"line":
|
|
341
|
+
"line": 119
|
|
342
342
|
},
|
|
343
343
|
"name": "mavenGroupId",
|
|
344
344
|
"optional": true,
|
|
@@ -355,7 +355,7 @@
|
|
|
355
355
|
"immutable": true,
|
|
356
356
|
"locationInModule": {
|
|
357
357
|
"filename": "src/index.ts",
|
|
358
|
-
"line":
|
|
358
|
+
"line": 115
|
|
359
359
|
},
|
|
360
360
|
"name": "mavenOrg",
|
|
361
361
|
"optional": true,
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
"immutable": true,
|
|
373
373
|
"locationInModule": {
|
|
374
374
|
"filename": "src/index.ts",
|
|
375
|
-
"line":
|
|
375
|
+
"line": 102
|
|
376
376
|
},
|
|
377
377
|
"name": "namespace",
|
|
378
378
|
"optional": true,
|
|
@@ -391,7 +391,7 @@
|
|
|
391
391
|
"immutable": true,
|
|
392
392
|
"locationInModule": {
|
|
393
393
|
"filename": "src/index.ts",
|
|
394
|
-
"line":
|
|
394
|
+
"line": 90
|
|
395
395
|
},
|
|
396
396
|
"name": "nodeHeapSizeMb",
|
|
397
397
|
"optional": true,
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
"immutable": true,
|
|
409
409
|
"locationInModule": {
|
|
410
410
|
"filename": "src/index.ts",
|
|
411
|
-
"line":
|
|
411
|
+
"line": 111
|
|
412
412
|
},
|
|
413
413
|
"name": "nugetOrg",
|
|
414
414
|
"optional": true,
|
|
@@ -428,7 +428,7 @@
|
|
|
428
428
|
"immutable": true,
|
|
429
429
|
"locationInModule": {
|
|
430
430
|
"filename": "src/index.ts",
|
|
431
|
-
"line":
|
|
431
|
+
"line": 153
|
|
432
432
|
},
|
|
433
433
|
"name": "pypiTrustedPublishing",
|
|
434
434
|
"optional": true,
|
|
@@ -444,7 +444,7 @@
|
|
|
444
444
|
"immutable": true,
|
|
445
445
|
"locationInModule": {
|
|
446
446
|
"filename": "src/index.ts",
|
|
447
|
-
"line":
|
|
447
|
+
"line": 67
|
|
448
448
|
},
|
|
449
449
|
"name": "useCustomGithubRunner",
|
|
450
450
|
"optional": true,
|
|
@@ -456,6 +456,6 @@
|
|
|
456
456
|
"symbolId": "src/index:CdktnProviderProjectOptions"
|
|
457
457
|
}
|
|
458
458
|
},
|
|
459
|
-
"version": "0.9.
|
|
460
|
-
"fingerprint": "
|
|
459
|
+
"version": "0.9.5",
|
|
460
|
+
"fingerprint": "B7TS2J9nB9DbVa/IHWmw3vj+eGbRB9itfPdDS6DzDBk="
|
|
461
461
|
}
|
package/lib/cdktf-config.js
CHANGED
|
@@ -60,7 +60,7 @@ class CdktfConfig {
|
|
|
60
60
|
project.addDevDeps(`typescript@${typescriptVersion}`);
|
|
61
61
|
}
|
|
62
62
|
const fetchTask = project.addTask("fetch", {
|
|
63
|
-
exec: `
|
|
63
|
+
exec: `rm -rf ./src && cdktn get && cp -R .gen/providers/${providerName} ./src && cp .gen/versions.json ./src/version.json`,
|
|
64
64
|
env: {
|
|
65
65
|
CHECKPOINT_DISABLE: "1",
|
|
66
66
|
},
|
|
@@ -166,4 +166,4 @@ class CdktfConfig {
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
exports.CdktfConfig = CdktfConfig;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdGYtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nka3RmLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQ0FBNkI7QUFDN0IsdUNBQW9EO0FBQ3BELG1DQUF1QztBQUV2QyxxQ0FBc0M7QUFFdEMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBMEJyQyxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUF3QixFQUFFLE9BQTJCO1FBQy9ELE1BQU0sRUFDSixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUMxQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUVwRCxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFFdEQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztR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QUFrQixFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTtZQUNuQyxHQUFHLE9BQU87WUFDViwwQkFBMEIsRUFBRSxxQkFBcUI7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0pELGtDQTJKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCBleGlzdHNTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBKc29uRmlsZSwgY2RrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcbmltcG9ydCB7IFJlYWRtZUZpbGUgfSBmcm9tIFwiLi9yZWFkbWVcIjtcblxuY29uc3QgQ0RLVEZfSlNPTl9GSUxFID0gXCJjZGt0Zi5qc29uXCI7XG5cbmludGVyZmFjZSBDZGt0ZkNvbmZpZ09wdGlvbnMge1xuICB0ZXJyYWZvcm1Qcm92aWRlcjogc3RyaW5nO1xuICBwcm92aWRlck5hbWU6IHN0cmluZztcbiAgZnFwcm92aWRlck5hbWU6IHN0cmluZztcbiAgcHJvdmlkZXJWZXJzaW9uOiBzdHJpbmc7XG4gIGNka3RuVmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RzVmVyc2lvbjogc3RyaW5nO1xuICBwYWNrYWdlSW5mbzogUGFja2FnZUluZm87XG4gIGdpdGh1Yk5hbWVzcGFjZTogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBwcmVidWlsdCBwcm92aWRlciBpcyBkZXByZWNhdGVkLlxuICAgKiBJZiB0cnVlLCBubyBuZXcgdmVyc2lvbnMgd2lsbCBiZSBwdWJsaXNoZWQuXG4gICAqL1xuICBpc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkYXRlIHdoZW4gdGhlIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCxcbiAgICogdG8gYmUgdXNlZCBpbiB0aGUgUkVBRE1FIHRleHQuIElmIG5vIGRhdGUgaXMgcHJvdmlkZWQsIHRoZW4gdGhlXG4gICAqIGRhdGUgb2YgdGhlIGJ1aWxkIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgZGVwcmVjYXRpb25EYXRlPzogc3RyaW5nO1xuICBqc2lpVmVyc2lvbj86IHN0cmluZztcbiAgdHlwZXNjcmlwdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDZGt0ZkNvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGNkay5Kc2lpUHJvamVjdCwgb3B0aW9uczogQ2RrdGZDb25maWdPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBqc2lpVmVyc2lvbixcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgY2RrdG5WZXJzaW9uID0gb3B0aW9ucy5jZGt0blZlcnNpb247XG4gICAgY29uc3QgY29uc3RydWN0c1ZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdHNWZXJzaW9uO1xuXG4gICAgcHJvamVjdC5hZGRQZWVyRGVwcyhgY2RrdG5AJHtjZGt0blZlcnNpb259YCk7XG4gICAgcHJvamVjdC5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdHNWZXJzaW9ufWApO1xuXG4gICAgcHJvamVjdC5hZGREZXZEZXBzKGBjZGt0bkAke2Nka3RuVmVyc2lvbn1gKTtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGNka3RuLWNsaUAke2Nka3RuVmVyc2lvbn1gKTtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RzVmVyc2lvbn1gKTtcblxuICAgIGlmIChqc2lpVmVyc2lvbikge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGBqc2lpQCR7anNpaVZlcnNpb259YCk7XG4gICAgfVxuICAgIGlmICh0eXBlc2NyaXB0VmVyc2lvbikge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGB0eXBlc2NyaXB0QCR7dHlwZXNjcmlwdFZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiZmV0Y2hcIiwge1xuICAgICAgZXhlYzogYG1rZGlyIC1wIHNyYyAmJiBybSAtcmYgLi9zcmMvKiAmJiBjZGt0biBnZXQgJiYgY3AgLVIgLmdlbi9wcm92aWRlcnMvJHtwcm92aWRlck5hbWV9LyogLi9zcmMvICYmIGNwIC5nZW4vdmVyc2lvbnMuanNvbiAuL3NyYy92ZXJzaW9uLmpzb25gLFxuICAgICAgZW52OiB7XG4gICAgICAgIENIRUNLUE9JTlRfRElTQUJMRTogXCIxXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIC8vIGV4ZWN1dGUgcHJvamVuIGFmdGVyIGZldGNoIHRvIGVuc3VyZSB0aGF0IHVwZGF0ZXMgdG8gdmVyc2lvbi5qc29uIGFyZSBwaWNrZWQgdXAgaW4gcGFja2FnZS5qc29uXG4gICAgZmV0Y2hUYXNrLnNwYXduKHByb2plY3QudGFza3MudHJ5RmluZChcImRlZmF1bHRcIikhKTtcblxuICAgIHByb2plY3Quc2V0U2NyaXB0KFxuICAgICAgXCJjb21taXRcIixcbiAgICAgICdnaXQgYWRkIC1BICYmIGdpdCBjb21taXQgLWFtIFwiVXBkYXRlIHByb3ZpZGVyXCIgfHwgZWNobyBcIk5vIGNoYW5nZXMgdG8gY29tbWl0XCInXG4gICAgKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcXVvdGVzXG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcInNob3VsZC1yZWxlYXNlXCIsXG4gICAgICBgISBnaXQgZGlmZiAtLWV4aXQtY29kZSB2JChjYXQgdmVyc2lvbi5qc29uIHwganEgLXIgJy52ZXJzaW9uJykgLi9zcmMgLi9wYWNrYWdlLmpzb25gXG4gICAgKTtcbiAgICBwcm9qZWN0LnNldFNjcmlwdChcbiAgICAgIFwicHJlYnVtcFwiLFxuICAgICAgXCJwbnBtIHJ1biBmZXRjaCAmJiBwbnBtIHJ1biBjb21waWxlICYmIHBucG0gcnVuIGNvbW1pdCAmJiBwbnBtIHJ1biBzaG91bGQtcmVsZWFzZVwiXG4gICAgKTtcbiAgICBwcm9qZWN0LnNldFNjcmlwdChcImNvbXBpbGVcIiwgXCJqc2lpIC0tc2lsZW5jZS13YXJuaW5ncz1yZXNlcnZlZC13b3JkXCIpO1xuXG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcImJ1aWxkLXByb3ZpZGVyXCIsXG4gICAgICBcInBucG0gcnVuIGZldGNoICYmIHBucG0gcnVuIGNvbXBpbGUgJiYgcG5wbSBydW4gZG9jZ2VuXCJcbiAgICApO1xuICAgIHByb2plY3Quc2V0U2NyaXB0KFwidGVzdFwiLCBcImplc3QgLS1wYXNzV2l0aE5vVGVzdHNcIik7XG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyBwdWJsaXNoQ29uZmlnOiB7IGFjY2VzczogXCJwdWJsaWNcIiB9IH0pO1xuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIFwic3RhbmRhcmQtdmVyc2lvblwiOiB7XG4gICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJmZWF0XCIsXG4gICAgICAgICAgICBzZWN0aW9uOiBcIkZlYXR1cmVzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImZpeFwiLFxuICAgICAgICAgICAgc2VjdGlvbjogXCJCdWcgRml4ZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2hvcmVcIixcbiAgICAgICAgICAgIHNlY3Rpb246IFwiVXBkYXRlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJkb2NzXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0eWxlXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInJlZmFjdG9yXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInBlcmZcIixcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGVzdFwiLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gc2V0IHByb3ZpZGVyIG5hbWUgYW5kIHZlcnNpb24gZnJvbSB2ZXJzaW9uLmpzb24gKGlmIGl0IGV4aXN0cyB5ZXQpXG4gICAgY29uc3QgdmVyc2lvbkZpbGUgPSBwYXRoLnJlc29sdmUocHJvamVjdC5vdXRkaXIsIFwic3JjL3ZlcnNpb24uanNvblwiKTtcblxuICAgIGxldCBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSA9IFwiPHVua25vd24+XCI7XG4gICAgbGV0IGFjdHVhbFByb3ZpZGVyVmVyc2lvbiA9IFwiPHVua25vd24+XCI7XG4gICAgaWYgKGV4aXN0c1N5bmModmVyc2lvbkZpbGUpKSB7XG4gICAgICBjb25zdCBtYXAgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyh2ZXJzaW9uRmlsZSwgXCJ1dGY4XCIpKTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhtYXApLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJ2ZXJzaW9uLmpzb24gbXVzdCBoYXZlIGV4YWN0bHkgb25lIGVudHJ5LiBzcGVjaWZ5aW5nIG11bHRpcGxlIHByb3ZpZGVycyBpcyBub3Qgc3VwcG9ydGVkXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFtmcXBuLCB2ZXJzaW9uXSA9IE9iamVjdC5lbnRyaWVzKG1hcClbMF07XG4gICAgICBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSA9IGZxcG47XG4gICAgICBhY3R1YWxQcm92aWRlclZlcnNpb24gPSB2ZXJzaW9uIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlck1ldGFkYXRhID0ge1xuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgbmFtZTogZnVsbHlRdWFsaWZpZWRQcm92aWRlck5hbWUsXG4gICAgICAgIHZlcnNpb246IGFjdHVhbFByb3ZpZGVyVmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIGNka3RmOiBwcm92aWRlck1ldGFkYXRhLFxuICAgICAgY2RrdG46IHByb3ZpZGVyTWV0YWRhdGEsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvamVjdC5ucG1pZ25vcmUpIHtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoQ0RLVEZfSlNPTl9GSUxFKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCIuZ2VuXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm1cIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiY2RrdGYuanNvblwiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJBUEkubWRcIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiZG9jc1wiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJzY3JpcHRzXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi5wcm9qZW5yYy5qc1wiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCIuY29weXdyaXRlLmhjbFwiKTtcbiAgICB9XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi5nZW5cIik7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm1cIik7XG4gICAgLy8gcG5wbSB1c2VzIHBucG0tbG9jay55YW1sOyBwcm9qZW4gaGFuZGxlcyBpdHMgZ2l0aWdub3JlIGF1dG9tYXRpY2FsbHlcblxuICAgIG5ldyBKc29uRmlsZShwcm9qZWN0LCBDREtURl9KU09OX0ZJTEUsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJlY2hvIG5vb3BcIixcbiAgICAgICAgc2VuZENyYXNoUmVwb3J0czogZmFsc2UsXG4gICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW3RlcnJhZm9ybVByb3ZpZGVyXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgUmVhZG1lRmlsZShwcm9qZWN0LCBcIlJFQURNRS5tZFwiLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdW5kZXJseWluZ1RlcnJhZm9ybVZlcnNpb246IGFjdHVhbFByb3ZpZGVyVmVyc2lvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdGYtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nka3RmLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQ0FBNkI7QUFDN0IsdUNBQW9EO0FBQ3BELG1DQUF1QztBQUV2QyxxQ0FBc0M7QUFFdEMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBMEJyQyxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUF3QixFQUFFLE9BQTJCO1FBQy9ELE1BQU0sRUFDSixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUMxQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUVwRCxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFFdEQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztR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QUFrQixFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTtZQUNuQyxHQUFHLE9BQU87WUFDViwwQkFBMEIsRUFBRSxxQkFBcUI7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0pELGtDQTJKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCBleGlzdHNTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBKc29uRmlsZSwgY2RrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcbmltcG9ydCB7IFJlYWRtZUZpbGUgfSBmcm9tIFwiLi9yZWFkbWVcIjtcblxuY29uc3QgQ0RLVEZfSlNPTl9GSUxFID0gXCJjZGt0Zi5qc29uXCI7XG5cbmludGVyZmFjZSBDZGt0ZkNvbmZpZ09wdGlvbnMge1xuICB0ZXJyYWZvcm1Qcm92aWRlcjogc3RyaW5nO1xuICBwcm92aWRlck5hbWU6IHN0cmluZztcbiAgZnFwcm92aWRlck5hbWU6IHN0cmluZztcbiAgcHJvdmlkZXJWZXJzaW9uOiBzdHJpbmc7XG4gIGNka3RuVmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RzVmVyc2lvbjogc3RyaW5nO1xuICBwYWNrYWdlSW5mbzogUGFja2FnZUluZm87XG4gIGdpdGh1Yk5hbWVzcGFjZTogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBwcmVidWlsdCBwcm92aWRlciBpcyBkZXByZWNhdGVkLlxuICAgKiBJZiB0cnVlLCBubyBuZXcgdmVyc2lvbnMgd2lsbCBiZSBwdWJsaXNoZWQuXG4gICAqL1xuICBpc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkYXRlIHdoZW4gdGhlIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCxcbiAgICogdG8gYmUgdXNlZCBpbiB0aGUgUkVBRE1FIHRleHQuIElmIG5vIGRhdGUgaXMgcHJvdmlkZWQsIHRoZW4gdGhlXG4gICAqIGRhdGUgb2YgdGhlIGJ1aWxkIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgZGVwcmVjYXRpb25EYXRlPzogc3RyaW5nO1xuICBqc2lpVmVyc2lvbj86IHN0cmluZztcbiAgdHlwZXNjcmlwdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDZGt0ZkNvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGNkay5Kc2lpUHJvamVjdCwgb3B0aW9uczogQ2RrdGZDb25maWdPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBqc2lpVmVyc2lvbixcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgY2RrdG5WZXJzaW9uID0gb3B0aW9ucy5jZGt0blZlcnNpb247XG4gICAgY29uc3QgY29uc3RydWN0c1ZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdHNWZXJzaW9uO1xuXG4gICAgcHJvamVjdC5hZGRQZWVyRGVwcyhgY2RrdG5AJHtjZGt0blZlcnNpb259YCk7XG4gICAgcHJvamVjdC5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdHNWZXJzaW9ufWApO1xuXG4gICAgcHJvamVjdC5hZGREZXZEZXBzKGBjZGt0bkAke2Nka3RuVmVyc2lvbn1gKTtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGNka3RuLWNsaUAke2Nka3RuVmVyc2lvbn1gKTtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RzVmVyc2lvbn1gKTtcblxuICAgIGlmIChqc2lpVmVyc2lvbikge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGBqc2lpQCR7anNpaVZlcnNpb259YCk7XG4gICAgfVxuICAgIGlmICh0eXBlc2NyaXB0VmVyc2lvbikge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGB0eXBlc2NyaXB0QCR7dHlwZXNjcmlwdFZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiZmV0Y2hcIiwge1xuICAgICAgZXhlYzogYHJtIC1yZiAuL3NyYyAmJiBjZGt0biBnZXQgJiYgY3AgLVIgLmdlbi9wcm92aWRlcnMvJHtwcm92aWRlck5hbWV9IC4vc3JjICYmIGNwIC5nZW4vdmVyc2lvbnMuanNvbiAuL3NyYy92ZXJzaW9uLmpzb25gLFxuICAgICAgZW52OiB7XG4gICAgICAgIENIRUNLUE9JTlRfRElTQUJMRTogXCIxXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIC8vIGV4ZWN1dGUgcHJvamVuIGFmdGVyIGZldGNoIHRvIGVuc3VyZSB0aGF0IHVwZGF0ZXMgdG8gdmVyc2lvbi5qc29uIGFyZSBwaWNrZWQgdXAgaW4gcGFja2FnZS5qc29uXG4gICAgZmV0Y2hUYXNrLnNwYXduKHByb2plY3QudGFza3MudHJ5RmluZChcImRlZmF1bHRcIikhKTtcblxuICAgIHByb2plY3Quc2V0U2NyaXB0KFxuICAgICAgXCJjb21taXRcIixcbiAgICAgICdnaXQgYWRkIC1BICYmIGdpdCBjb21taXQgLWFtIFwiVXBkYXRlIHByb3ZpZGVyXCIgfHwgZWNobyBcIk5vIGNoYW5nZXMgdG8gY29tbWl0XCInXG4gICAgKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcXVvdGVzXG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcInNob3VsZC1yZWxlYXNlXCIsXG4gICAgICBgISBnaXQgZGlmZiAtLWV4aXQtY29kZSB2JChjYXQgdmVyc2lvbi5qc29uIHwganEgLXIgJy52ZXJzaW9uJykgLi9zcmMgLi9wYWNrYWdlLmpzb25gXG4gICAgKTtcbiAgICBwcm9qZWN0LnNldFNjcmlwdChcbiAgICAgIFwicHJlYnVtcFwiLFxuICAgICAgXCJwbnBtIHJ1biBmZXRjaCAmJiBwbnBtIHJ1biBjb21waWxlICYmIHBucG0gcnVuIGNvbW1pdCAmJiBwbnBtIHJ1biBzaG91bGQtcmVsZWFzZVwiXG4gICAgKTtcbiAgICBwcm9qZWN0LnNldFNjcmlwdChcImNvbXBpbGVcIiwgXCJqc2lpIC0tc2lsZW5jZS13YXJuaW5ncz1yZXNlcnZlZC13b3JkXCIpO1xuXG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcImJ1aWxkLXByb3ZpZGVyXCIsXG4gICAgICBcInBucG0gcnVuIGZldGNoICYmIHBucG0gcnVuIGNvbXBpbGUgJiYgcG5wbSBydW4gZG9jZ2VuXCJcbiAgICApO1xuICAgIHByb2plY3Quc2V0U2NyaXB0KFwidGVzdFwiLCBcImplc3QgLS1wYXNzV2l0aE5vVGVzdHNcIik7XG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyBwdWJsaXNoQ29uZmlnOiB7IGFjY2VzczogXCJwdWJsaWNcIiB9IH0pO1xuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIFwic3RhbmRhcmQtdmVyc2lvblwiOiB7XG4gICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJmZWF0XCIsXG4gICAgICAgICAgICBzZWN0aW9uOiBcIkZlYXR1cmVzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImZpeFwiLFxuICAgICAgICAgICAgc2VjdGlvbjogXCJCdWcgRml4ZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2hvcmVcIixcbiAgICAgICAgICAgIHNlY3Rpb246IFwiVXBkYXRlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJkb2NzXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0eWxlXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInJlZmFjdG9yXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInBlcmZcIixcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGVzdFwiLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gc2V0IHByb3ZpZGVyIG5hbWUgYW5kIHZlcnNpb24gZnJvbSB2ZXJzaW9uLmpzb24gKGlmIGl0IGV4aXN0cyB5ZXQpXG4gICAgY29uc3QgdmVyc2lvbkZpbGUgPSBwYXRoLnJlc29sdmUocHJvamVjdC5vdXRkaXIsIFwic3JjL3ZlcnNpb24uanNvblwiKTtcblxuICAgIGxldCBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSA9IFwiPHVua25vd24+XCI7XG4gICAgbGV0IGFjdHVhbFByb3ZpZGVyVmVyc2lvbiA9IFwiPHVua25vd24+XCI7XG4gICAgaWYgKGV4aXN0c1N5bmModmVyc2lvbkZpbGUpKSB7XG4gICAgICBjb25zdCBtYXAgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyh2ZXJzaW9uRmlsZSwgXCJ1dGY4XCIpKTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhtYXApLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJ2ZXJzaW9uLmpzb24gbXVzdCBoYXZlIGV4YWN0bHkgb25lIGVudHJ5LiBzcGVjaWZ5aW5nIG11bHRpcGxlIHByb3ZpZGVycyBpcyBub3Qgc3VwcG9ydGVkXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFtmcXBuLCB2ZXJzaW9uXSA9IE9iamVjdC5lbnRyaWVzKG1hcClbMF07XG4gICAgICBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSA9IGZxcG47XG4gICAgICBhY3R1YWxQcm92aWRlclZlcnNpb24gPSB2ZXJzaW9uIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlck1ldGFkYXRhID0ge1xuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgbmFtZTogZnVsbHlRdWFsaWZpZWRQcm92aWRlck5hbWUsXG4gICAgICAgIHZlcnNpb246IGFjdHVhbFByb3ZpZGVyVmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIGNka3RmOiBwcm92aWRlck1ldGFkYXRhLFxuICAgICAgY2RrdG46IHByb3ZpZGVyTWV0YWRhdGEsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvamVjdC5ucG1pZ25vcmUpIHtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoQ0RLVEZfSlNPTl9GSUxFKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCIuZ2VuXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm1cIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiY2RrdGYuanNvblwiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJBUEkubWRcIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiZG9jc1wiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJzY3JpcHRzXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi5wcm9qZW5yYy5qc1wiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCIuY29weXdyaXRlLmhjbFwiKTtcbiAgICB9XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi5nZW5cIik7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm1cIik7XG4gICAgLy8gcG5wbSB1c2VzIHBucG0tbG9jay55YW1sOyBwcm9qZW4gaGFuZGxlcyBpdHMgZ2l0aWdub3JlIGF1dG9tYXRpY2FsbHlcblxuICAgIG5ldyBKc29uRmlsZShwcm9qZWN0LCBDREtURl9KU09OX0ZJTEUsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJlY2hvIG5vb3BcIixcbiAgICAgICAgc2VuZENyYXNoUmVwb3J0czogZmFsc2UsXG4gICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW3RlcnJhZm9ybVByb3ZpZGVyXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgUmVhZG1lRmlsZShwcm9qZWN0LCBcIlJFQURNRS5tZFwiLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdW5kZXJseWluZ1RlcnJhZm9ybVZlcnNpb246IGFjdHVhbFByb3ZpZGVyVmVyc2lvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -43,6 +43,17 @@ class DeprecatePackages {
|
|
|
43
43
|
name: "Checkout",
|
|
44
44
|
uses: "actions/checkout",
|
|
45
45
|
},
|
|
46
|
+
// Hand-built workflow, so projen does not inject its own "Setup pnpm"
|
|
47
|
+
// step -- see the same note in provider-upgrade.ts. This job only runs
|
|
48
|
+
// for deprecated providers, so the missing step was latent rather than
|
|
49
|
+
// breaking daily, but it would have failed the same way.
|
|
50
|
+
{
|
|
51
|
+
name: "Setup pnpm",
|
|
52
|
+
uses: "pnpm/action-setup",
|
|
53
|
+
with: {
|
|
54
|
+
version: project.package.pnpmVersion,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
46
57
|
{
|
|
47
58
|
name: "Setup Node.js",
|
|
48
59
|
uses: "actions/setup-node",
|
|
@@ -89,4 +100,4 @@ class DeprecatePackages {
|
|
|
89
100
|
}
|
|
90
101
|
}
|
|
91
102
|
exports.DeprecatePackages = DeprecatePackages;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlLXBhY2thZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcHJlY2F0ZS1wYWNrYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBMkU7QUFTM0UsTUFBYSxpQkFBaUI7SUFDNUIsWUFBWSxPQUFvQixFQUFFLE9BQWlDO1FBQ2pFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUU1RCxNQUFNLHdCQUF3QixHQUFHO1lBQy9CLDJHQUEyRyxZQUFZLFdBQVc7WUFDbEksMEVBQTBFO1NBQzNFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osaURBQWlEO1FBQ2pELE1BQU0sdUJBQXVCLEdBQUc7WUFDOUIseUdBQXlHLFlBQVksR0FBRztZQUN4SCwySEFBMkg7WUFDM0gsMEdBQTBHO1lBQzFHLGtDQUFrQyxZQUFZLHNFQUFzRTtZQUNwSCxtSUFBbUk7WUFDbkksRUFBRTtTQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWQsTUFBTSxlQUFlLEdBQVk7WUFDL0IsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxHQUFHLEVBQUUsNEZBQTRGLHVCQUF1QixJQUFJO1NBQzdILENBQUM7UUFDRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDdEIsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxxREFBcUQ7Z0JBQzNELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztnQkFDakMsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUsa0JBQWtCO3FCQUN6QjtvQkFDRCxzRUFBc0U7b0JBQ3RFLHVFQUF1RTtvQkFDdkUsdUVBQXVFO29CQUN2RSx5REFBeUQ7b0JBQ3pEO3dCQUNFLElBQUksRUFBRSxZQUFZO3dCQUNsQixJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixJQUFJLEVBQUU7NEJBQ0osT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVzt5QkFDckM7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLElBQUksRUFBRSxvQkFBb0I7d0JBQzFCLElBQUksRUFBRTs0QkFDSixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7eUJBQ3ZDO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxTQUFTO3dCQUNmLEdBQUcsRUFBRSxnQ0FBZ0M7cUJBQ3RDO29CQUNEO3dCQUNFLElBQUksRUFBRSwwQkFBMEI7d0JBQ2hDLEVBQUUsRUFBRSxjQUFjO3dCQUNsQixHQUFHLEVBQUU7NEJBQ0gsNkVBQTZFOzRCQUM3RSxxQ0FBcUMsRUFBRSx1QkFBdUI7NEJBQzlELHVEQUF1RDt5QkFDeEQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3FCQUNiO29CQUNEO3dCQUNFLElBQUksRUFBRSw4QkFBOEI7d0JBQ3BDLEVBQUUsRUFBRSx3R0FBd0c7d0JBQzVHLEdBQUcsRUFBRTs0QkFDSCxrREFBa0Q7NEJBQ2xELGlCQUFpQixXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyx3QkFBd0IsR0FBRzt5QkFDdEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNaLEdBQUcsRUFBRTs0QkFDSCxZQUFZLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXOzRCQUN6QyxTQUFTLEVBQ1AsY0FBYztnQ0FDZCxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLFdBQVcsS0FBSzt5QkFDeEQ7cUJBQ0Y7b0JBQ0QscUhBQXFIO29CQUNySCwrRkFBK0Y7b0JBQy9GLDRIQUE0SDtvQkFDNUgsc0VBQXNFO2lCQUN2RTtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpHRCw4Q0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IEpzaWlQcm9qZWN0IH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXByZWNhdGVQYWNrYWdlc09wdGlvbnMge1xuICBwcm92aWRlck5hbWU6IHN0cmluZztcbiAgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvO1xuICBpc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVQYWNrYWdlcyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEpzaWlQcm9qZWN0LCBvcHRpb25zOiBEZXByZWNhdGVQYWNrYWdlc09wdGlvbnMpIHtcbiAgICBjb25zdCB7IHByb3ZpZGVyTmFtZSwgcGFja2FnZUluZm8sIGlzRGVwcmVjYXRlZCB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGRlcHJlY2F0aW9uTWVzc2FnZUZvck5QTSA9IFtcbiAgICAgIGBTZWUgaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL3Byb3ZpZGVycyNpbXBvcnQtcHJvdmlkZXJzIGZvciBkZXRhaWxzIG9uIGhvdyB0byBjb250aW51ZSB0byB1c2UgdGhlICR7cHJvdmlkZXJOYW1lfSBwcm92aWRlcmAsXG4gICAgICBgaW4geW91ciBDREsgVGVycmFpbiAoY2RrdG4pIHByb2plY3RzIGJ5IGdlbmVyYXRpbmcgdGhlIGJpbmRpbmdzIGxvY2FsbHkuYCxcbiAgICBdLmpvaW4oXCIgXCIpO1xuICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2dvbGFuZy9nby9pc3N1ZXMvNDAzNTdcbiAgICBjb25zdCBkZXByZWNhdGlvbk1lc3NhZ2VGb3JHbyA9IFtcbiAgICAgIGAvLyBEZXByZWNhdGVkOiBUaGUgQ0RLIFRlcnJhaW4gVGVhbSBpcyBubyBsb25nZXIgcHVibGlzaGluZyBuZXcgdmVyc2lvbnMgb2YgdGhlIHByZWJ1aWx0IHByb3ZpZGVyIGZvciAke3Byb3ZpZGVyTmFtZX0uYCxcbiAgICAgIGAvLyBQcmV2aW91c2x5LXB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIHdpbGwgc3RpbGwgY29udGludWUgdG8gYmUgYXZhaWxhYmxlIGFzIGluc3RhbGxhYmxlIEdvIG1vZHVsZXMsYCxcbiAgICAgIGAvLyBidXQgdGhlc2Ugd2lsbCBub3QgYmUgY29tcGF0aWJsZSB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIENESyBUZXJyYWluIGFuZCBhcmUgbm90IGVsaWdpYmxlIGZvciBzdXBwb3J0LmAsXG4gICAgICBgLy8gWW91IGNhbiBjb250aW51ZSB0byB1c2UgdGhlICR7cHJvdmlkZXJOYW1lfSBwcm92aWRlciBpbiB5b3VyIENESyBUZXJyYWluIHByb2plY3RzIHdpdGggbmV3ZXIgdmVyc2lvbnMgb2YgY2RrdG4sYCxcbiAgICAgIGAvLyBidXQgeW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSB0aGUgYmluZGluZ3MgbG9jYWxseS4gU2VlIGh0dHBzOi8vY2RrdG4uaW8vZG9jcy9jb25jZXB0cy9wcm92aWRlcnMjaW1wb3J0LXByb3ZpZGVycyBmb3IgZGV0YWlscy5gLFxuICAgICAgYGAsXG4gICAgXS5qb2luKFwiXFxcXG5cIik7XG5cbiAgICBjb25zdCBkZXByZWNhdGlvblN0ZXA6IEpvYlN0ZXAgPSB7XG4gICAgICBuYW1lOiBcIk1hcmsgdGhlIEdvIG1vZHVsZSBhcyBkZXByZWNhdGVkXCIsXG4gICAgICBydW46IGBmaW5kICcucmVwby9kaXN0L2dvJyAtbWluZGVwdGggMiAtbWF4ZGVwdGggNCAtdHlwZSBmIC1uYW1lICdnby5tb2QnIHwgeGFyZ3Mgc2VkIC1pICcxc3xefCR7ZGVwcmVjYXRpb25NZXNzYWdlRm9yR299fCdgLFxuICAgIH07XG4gICAgaWYgKGlzRGVwcmVjYXRlZCkge1xuICAgICAgcGFja2FnZUluZm8ucHVibGlzaFRvR28/LnByZVB1Ymxpc2hTdGVwcz8uc3BsaWNlKC0xLCAwLCBkZXByZWNhdGlvblN0ZXApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VXb3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpO1xuICAgIGlmICghcmVsZWFzZVdvcmtmbG93KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCByZWxlYXNlIHdvcmtmbG93LCBhYm9ydGluZ1wiKTtcbiAgICB9XG5cbiAgICByZWxlYXNlV29ya2Zsb3cuYWRkSm9icyh7XG4gICAgICBkZXByZWNhdGU6IHtcbiAgICAgICAgbmFtZTogXCJEZXByZWNhdGUgdGhlIHBhY2thZ2UgaW4gcGFja2FnZSBtYW5hZ2VycyBpZiBuZWVkZWRcIixcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBuZWVkczogW1wicmVsZWFzZVwiLCBcInJlbGVhc2VfbnBtXCJdLFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gSGFuZC1idWlsdCB3b3JrZmxvdywgc28gcHJvamVuIGRvZXMgbm90IGluamVjdCBpdHMgb3duIFwiU2V0dXAgcG5wbVwiXG4gICAgICAgICAgLy8gc3RlcCAtLSBzZWUgdGhlIHNhbWUgbm90ZSBpbiBwcm92aWRlci11cGdyYWRlLnRzLiBUaGlzIGpvYiBvbmx5IHJ1bnNcbiAgICAgICAgICAvLyBmb3IgZGVwcmVjYXRlZCBwcm92aWRlcnMsIHNvIHRoZSBtaXNzaW5nIHN0ZXAgd2FzIGxhdGVudCByYXRoZXIgdGhhblxuICAgICAgICAgIC8vIGJyZWFraW5nIGRhaWx5LCBidXQgaXQgd291bGQgaGF2ZSBmYWlsZWQgdGhlIHNhbWUgd2F5LlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2V0dXAgcG5wbVwiLFxuICAgICAgICAgICAgdXNlczogXCJwbnBtL2FjdGlvbi1zZXR1cFwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICB2ZXJzaW9uOiBwcm9qZWN0LnBhY2thZ2UucG5wbVZlcnNpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlLmpzXCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvc2V0dXAtbm9kZVwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBcIm5vZGUtdmVyc2lvblwiOiBwcm9qZWN0Lm1pbk5vZGVWZXJzaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5zdGFsbFwiLFxuICAgICAgICAgICAgcnVuOiBcInBucG0gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDaGVjayBkZXByZWNhdGlvbiBzdGF0dXNcIixcbiAgICAgICAgICAgIGlkOiBcImNoZWNrX3N0YXR1c1wiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgIGBJU19ERVBSRUNBVEVEPSQoY2F0IHBhY2thZ2UuanNvbiB8IGpxICcoLmNka3RuIC8vIC5jZGt0ZikuaXNEZXByZWNhdGVkJyAtcilgLFxuICAgICAgICAgICAgICBgZWNobyBcImlzX2RlcHJlY2F0ZWQ9JElTX0RFUFJFQ0FURURcImAsIC8vIGZvciBlYXNpZXIgZGVidWdnaW5nXG4gICAgICAgICAgICAgIGBlY2hvIFwiaXNfZGVwcmVjYXRlZD0kSVNfREVQUkVDQVRFRFwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRGVwcmVjYXRlIHRoZSBwYWNrYWdlIG9uIE5QTVwiLFxuICAgICAgICAgICAgaWY6IFwic3RlcHMuY2hlY2tfc3RhdHVzLm91dHB1dHMuaXNfZGVwcmVjYXRlZCA9PSAndHJ1ZScgfHwgc3RlcHMuY2hlY2tfc3RhdHVzLm91dHB1dHMuaXNfZGVwcmVjYXRlZCA9PSB0cnVlXCIsXG4gICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgJ25wbSBzZXQgXCIvLyROUE1fUkVHSVNUUlkvOl9hdXRoVG9rZW49JE5QTV9UT0tFTlwiJyxcbiAgICAgICAgICAgICAgYG5wbSBkZXByZWNhdGUgJHtwYWNrYWdlSW5mby5ucG0ubmFtZX0gXCIke2RlcHJlY2F0aW9uTWVzc2FnZUZvck5QTX1cImAsXG4gICAgICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgTlBNX1JFR0lTVFJZOiBwcm9qZWN0LnBhY2thZ2UubnBtUmVnaXN0cnksXG4gICAgICAgICAgICAgIE5QTV9UT0tFTjpcbiAgICAgICAgICAgICAgICBcIiR7eyBzZWNyZXRzLlwiICtcbiAgICAgICAgICAgICAgICBgJHtwcm9qZWN0LnBhY2thZ2UubnBtVG9rZW5TZWNyZXQgPz8gXCJOUE1fVE9LRU5cIn0gfX1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIFVuZm9ydHVuYXRlbHksIFB5UGkgaGFzIG5vIG1lY2hhbmlzbSB0byBtYXJrIGEgcGFja2FnZSBhcyBkZXByZWNhdGVkOiBodHRwczovL2dpdGh1Yi5jb20vcHlwaS93YXJlaG91c2UvaXNzdWVzLzM0NVxuICAgICAgICAgIC8vIE1hdmVuIGFsc28gbmV2ZXIgbW92ZWQgcGFzdCB0aGUgcHJvcG9zYWwgc3RhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9wNGVtL2FydGlmYWN0LWRlcHJlY2F0aW9uXG4gICAgICAgICAgLy8gTnVHZXQgc3VwcG9ydHMgZGVwcmVjYXRpb24sIGJ1dCBvbmx5IHZpYSB0aGUgd2ViIFVJOiBodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvbnVnZXQvbnVnZXQtb3JnL2RlcHJlY2F0ZS1wYWNrYWdlc1xuICAgICAgICAgIC8vIEdvIGRlcHJlY2F0aW9uIGlzIGhhbmRsZWQgaW4gdGhlIFwiUHVibGlzaCB0byBHb1wiIHN0ZXAgKHNlZSBsaW5lIDM3KVxuICAgICAgICBdLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/index.js
CHANGED
|
@@ -25,6 +25,32 @@ const should_release_1 = require("./scripts/should-release");
|
|
|
25
25
|
const random_cron_1 = require("./util/random-cron");
|
|
26
26
|
// ensure new projects start with 1.0.0 so that every following breaking change leads to an increased major version
|
|
27
27
|
const MIN_MAJOR_VERSION = 1;
|
|
28
|
+
/**
|
|
29
|
+
* First-party packages that are exempt from the dependency-upgrade cooldown.
|
|
30
|
+
*
|
|
31
|
+
* The `cooldown: 4` below reaches the generated upgrade task as
|
|
32
|
+
* `pnpm update --config.minimum-release-age=5760`, which gates *every* package
|
|
33
|
+
* -- including the ones we publish ourselves. That is backwards for those: a
|
|
34
|
+
* fix released here cannot reach the fleet for four days, which is exactly the
|
|
35
|
+
* window in which we need it to move. The cooldown exists to give a compromised
|
|
36
|
+
* third-party release time to be flagged; for packages published from repos we
|
|
37
|
+
* own, with trusted publishing and an audit gate on their own releases, it buys
|
|
38
|
+
* nothing that we do not already control.
|
|
39
|
+
*
|
|
40
|
+
* `cdktn` and `cdktn-cli` are here for the same reason: a provider repo has to
|
|
41
|
+
* be able to rebuild against a freshly released CDKTN, especially after a major
|
|
42
|
+
* one. They are also version-pinned together by `CdktfConfig`, so excluding one
|
|
43
|
+
* without the other would only half-apply.
|
|
44
|
+
*
|
|
45
|
+
* pnpm honours this from `pnpm-workspace.yaml` even though `minimumReleaseAge`
|
|
46
|
+
* itself arrives on the command line; it matches on package name and applies to
|
|
47
|
+
* every version of that package. Everything not listed here stays gated.
|
|
48
|
+
*/
|
|
49
|
+
const MINIMUM_RELEASE_AGE_EXCLUDE = [
|
|
50
|
+
"@cdktn/provider-project",
|
|
51
|
+
"cdktn",
|
|
52
|
+
"cdktn-cli",
|
|
53
|
+
];
|
|
28
54
|
const getMavenName = (providerName) => {
|
|
29
55
|
return ["null", "random"].includes(providerName)
|
|
30
56
|
? `${providerName}_provider`
|
|
@@ -53,7 +79,7 @@ const githubActionPinnedVersions = {
|
|
|
53
79
|
"pnpm/action-setup": "fc06bc1257f339d1d5d8b3a19a8cae5388b55320", // v5
|
|
54
80
|
};
|
|
55
81
|
class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
56
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.9.
|
|
82
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.9.5" };
|
|
57
83
|
constructor(options) {
|
|
58
84
|
const cdktnVersion = options.cdktnVersion ?? options.cdktfVersion;
|
|
59
85
|
assert(cdktnVersion, "Either cdktnVersion or cdktfVersion must be provided");
|
|
@@ -213,10 +239,16 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
|
213
239
|
// ^1.1.7. Dev tooling only; never shipped.
|
|
214
240
|
ignoreGhsas: ["GHSA-mh99-v99m-4gvg"],
|
|
215
241
|
},
|
|
242
|
+
// Let first-party releases skip the `cooldown` below -- see the note on
|
|
243
|
+
// the constant. Third-party deps are unaffected.
|
|
244
|
+
minimumReleaseAgeExclude: MINIMUM_RELEASE_AGE_EXCLUDE,
|
|
216
245
|
},
|
|
217
246
|
},
|
|
218
247
|
depsUpgrade: !isDeprecated,
|
|
219
248
|
depsUpgradeOptions: {
|
|
249
|
+
// Skip versions published in the last 4 days, so a compromised release has
|
|
250
|
+
// time to be flagged before an auto-merging upgrade PR pulls it in. Waived
|
|
251
|
+
// for the packages in MINIMUM_RELEASE_AGE_EXCLUDE.
|
|
220
252
|
cooldown: 4,
|
|
221
253
|
workflowOptions: {
|
|
222
254
|
labels: ["automerge", "auto-approve", "dependencies"],
|
|
@@ -602,4 +634,4 @@ function prettyAssertEqual(subject, expected, message) {
|
|
|
602
634
|
throw new Error(`${message ?? "Assertion failed"}: expected ${JSON.stringify(expected)} but got ${JSON.stringify(subject)}`);
|
|
603
635
|
}
|
|
604
636
|
}
|
|
605
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBEQUEwRDtBQUMxRCxpQ0FBa0M7QUFDbEMsNkNBQXlDO0FBQ3pDLG1DQU9nQjtBQUVoQixzREFJK0I7QUFDL0IscURBQWdEO0FBQ2hELGlEQUE2QztBQUM3QywrRUFBeUU7QUFDekUsMkNBQXdDO0FBQ3hDLGlEQUE2QztBQUM3QywyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELDZDQUEwQztBQUMxQyw2REFBeUQ7QUFDekQsbURBQStDO0FBQy9DLG1EQUErQztBQUMvQywrQ0FBMkM7QUFFM0MseURBQXFEO0FBQ3JELHFFQUEwRTtBQUMxRSw2REFBbUU7QUFDbkUsb0RBQWtFO0FBRWxFLG1IQUFtSDtBQUNuSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQTRGNUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFvQixFQUFVLEVBQUU7SUFDcEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxHQUFHLFlBQVksV0FBVztRQUM1QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRztJQUNqQyxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLDJCQUEyQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDbEYsdUJBQXVCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM5RSxzQkFBc0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQzdFLGtCQUFrQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDekUsb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUMzRSxvQkFBb0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFT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O0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxPQUFVLEVBQUUsUUFBVyxFQUFFLE9BQWdCO0lBQ3JFLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxPQUFPLElBQUksa0JBQWtCLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FDMUQsUUFBUSxDQUNULFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN2QyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcbmltcG9ydCB7IHBhc2NhbENhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT2JqZWN0RmlsZSxcbiAgVGV4dEZpbGUsXG4gIGNkayxcbiAgZ2l0aHViLFxuICBKc29uUGF0Y2gsXG59IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQge1xuICBOb2RlUGFja2FnZU1hbmFnZXIsXG4gIFBucG1Xb3Jrc3BhY2VZYW1sU2NoZW1hTm9kZUxpbmtlcixcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBBbGVydE9wZW5QcnMgfSBmcm9tIFwiLi9hbGVydC1vcGVuLXByc1wiO1xuaW1wb3J0IHsgQXV0b0FwcHJvdmUgfSBmcm9tIFwiLi9hdXRvLWFwcHJvdmVcIjtcbmltcG9ydCB7IEF1dG9DbG9zZUNvbW11bml0eUlzc3VlcyB9IGZyb20gXCIuL2F1dG8tY2xvc2UtY29tbXVuaXR5LWlzc3Vlc1wiO1xuaW1wb3J0IHsgQXV0b21lcmdlIH0gZnJvbSBcIi4vYXV0b21lcmdlXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuaW1wb3J0IHsgQ29weXJpZ2h0SGVhZGVycyB9IGZyb20gXCIuL2NvcHlyaWdodC1oZWFkZXJzXCI7XG5pbXBvcnQgeyBDdXN0b21pemVkTGljZW5zZSB9IGZyb20gXCIuL2N1c3RvbWl6ZWQtbGljZW5zZVwiO1xuaW1wb3J0IHsgRGVwZW5kYWJvdCB9IGZyb20gXCIuL2RlcGVuZGFib3RcIjtcbmltcG9ydCB7IERlcHJlY2F0ZVBhY2thZ2VzIH0gZnJvbSBcIi4vZGVwcmVjYXRlLXBhY2thZ2VzXCI7XG5pbXBvcnQgeyBGb3JjZVJlbGVhc2UgfSBmcm9tIFwiLi9mb3JjZS1yZWxlYXNlXCI7XG5pbXBvcnQgeyBHaXRodWJJc3N1ZXMgfSBmcm9tIFwiLi9naXRodWItaXNzdWVzXCI7XG5pbXBvcnQgeyBMb2NrSXNzdWVzIH0gZnJvbSBcIi4vbG9jay1pc3N1ZXNcIjtcbmltcG9ydCB7IFBhY2thZ2VJbmZvIH0gZnJvbSBcIi4vcGFja2FnZS1pbmZvXCI7XG5pbXBvcnQgeyBQcm92aWRlclVwZ3JhZGUgfSBmcm9tIFwiLi9wcm92aWRlci11cGdyYWRlXCI7XG5pbXBvcnQgeyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZSB9IGZyb20gXCIuL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzXCI7XG5pbXBvcnQgeyBTaG91bGRSZWxlYXNlU2NyaXB0RmlsZSB9IGZyb20gXCIuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2VcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tQ3JvbiwgU2NoZWR1bGUgfSBmcm9tIFwiLi91dGlsL3JhbmRvbS1jcm9uXCI7XG5cbi8vIGVuc3VyZSBuZXcgcHJvamVjdHMgc3RhcnQgd2l0aCAxLjAuMCBzbyB0aGF0IGV2ZXJ5IGZvbGxvd2luZyBicmVha2luZyBjaGFuZ2UgbGVhZHMgdG8gYW4gaW5jcmVhc2VkIG1ham9yIHZlcnNpb25cbmNvbnN0IE1JTl9NQUpPUl9WRVJTSU9OID0gMTtcblxuZXhwb3J0IGludGVyZmFjZSBDZGt0blByb3ZpZGVyUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgdXNlQ3VzdG9tR2l0aHViUnVubmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFY4IGhlYXAgY2VpbGluZyBpbiBNaUIsIHdyaXR0ZW4gYXMgYC0tbWF4LW9sZC1zcGFjZS1zaXplYCBpbnRvIHRoZSBnbG9iYWxcbiAgICogYE5PREVfT1BUSU9OU2AgaW4gYC5wcm9qZW4vdGFza3MuanNvbmAuXG4gICAqXG4gICAqIE11c3QgYmUgYSBwb3NpdGl2ZSBzYWZlIGludGVnZXIuIE5vZGUgcmVmdXNlcyB0byBzdGFydCBvbiBhIG1hbGZvcm1lZFxuICAgKiB2YWx1ZSAoYC0tbWF4LW9sZC1zcGFjZS1zaXplPTEuNWAgYW5kIGA9TmFOYCBhcmUgYm90aCByZWplY3RlZCBiZWZvcmUgYW55XG4gICAqIHNjcmlwdCBydW5zKSwgYW5kIGAwYCByZXN0b3JlcyBWOCdzIG93biBkZWZhdWx0IHJhdGhlciB0aGFuIGFwcGx5aW5nIGFcbiAgICogY2VpbGluZyAtLSBzbyBhbiBpbnZhbGlkIHZhbHVlIGhlcmUgd291bGQgYnJlYWsgZXZlcnkgdGFzayBpbiB0aGVcbiAgICogZ2VuZXJhdGVkIHJlcG8sIGZhciBmcm9tIHRoaXMgY2FsbCBzaXRlLiBJdCBpcyB2YWxpZGF0ZWQgYXQgc3ludGggdGltZS5cbiAgICpcbiAgICogTGVhdmUgdW5zZXQgdG8gdGFrZSB0aGUgZGVmYXVsdCBmb3IgdGhlIHJ1bm5lciBjbGFzczpcbiAgICogYERFRkFVTFRfSEVBUF9NQl9DVVNUT01fUlVOTkVSYCAoMjg2NzIsIG9uIDMyR0IgY3VzdG9tIHJ1bm5lcnMpIG9yXG4gICAqIGBERUZBVUxUX0hFQVBfTUJfSE9TVEVEX1JVTk5FUmAgKDY2NTYsIG9uIDdHQiBHaXRIdWItaG9zdGVkIHJ1bm5lcnMpLlxuICAgKlxuICAgKiBTZXQgaXQgb25seSBmb3IgYSBwcm92aWRlciB0aGF0IHN0aWxsIE9PTXMgb24gdGhhdCBkZWZhdWx0LlxuICAgKiBgLS1tYXgtb2xkLXNwYWNlLXNpemVgIGlzIGEgKmNlaWxpbmcqLCBub3QgYSByZXNlcnZhdGlvbjogbG93ZXJpbmcgaXRcbiAgICogY2Fubm90IHNsb3cgZG93biBwcm92aWRlcnMgdGhhdCBuZXZlciBhcHByb2FjaCBpdCwgaXQgb25seSBtYWtlcyBWOFxuICAgKiBjb2xsZWN0IGhhcmRlciBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGtlcm5lbCBPT00ta2lsbCB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBERUZBVUxUX0hFQVBfTUJfQ1VTVE9NX1JVTk5FUiBpZiBgdXNlQ3VzdG9tR2l0aHViUnVubmVyYCxcbiAgICogb3RoZXJ3aXNlIERFRkFVTFRfSEVBUF9NQl9IT1NURURfUlVOTkVSXG4gICAqL1xuICByZWFkb25seSBub2RlSGVhcFNpemVNYj86IG51bWJlcjtcbiAgcmVhZG9ubHkgdGVycmFmb3JtUHJvdmlkZXI6IHN0cmluZztcbiAgcmVhZG9ubHkgY2RrdG5WZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGNka3RuVmVyc2lvbmAgaW5zdGVhZC4gVGhpcyBhbGlhcyBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgZm9yY2VNYWpvclZlcnNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG4taW9cIlxuICAgKiBwcmV2aW91c2x5IHdhcyBcImNka3RmXCIuIFVzZWQgZm9yIEdpdEh1YiBvcmcgbmFtZSBhbmQgcGFja2FnZSBzY29waW5nXG4gICAqL1xuICByZWFkb25seSBnaXRodWJOYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcIklvLkNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG51Z2V0T3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0blwiXG4gICAqL1xuICByZWFkb25seSBtYXZlbk9yZz86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiaW8uJHttYXZlbk9yZ31cIlxuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5Hcm91cElkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHllYXIgb2YgdGhlIGNyZWF0aW9uIG9mIHRoZSByZXBvc2l0b3J5LCBmb3IgY29weXJpZ2h0IHB1cnBvc2VzLlxuICAgKiBXaWxsIGZhbGwgYmFjayB0byB0aGUgY3VycmVudCB5ZWFyIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGlvblllYXI/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIGlzIGRlcHJlY2F0ZWQuXG4gICAqIElmIHRydWUsIG5vIG5ldyB2ZXJzaW9ucyB3aWxsIGJlIHB1Ymxpc2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzRGVwcmVjYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkYXRlIHdoZW4gdGhlIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCwgdG8gYmUgdXNlZCBpbiB0aGUgUkVBRE1FIHRleHQuXG4gICAqIElmIG5vIGRhdGUgaXMgcHJvdmlkZWQsIHRoZW4gdGhlIGRhdGUgb2YgdGhlIGJ1aWxkIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwcmVjYXRpb25EYXRlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJIYXNoaUNvcnAsIEluYy5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVc2UgdHJ1c3RlZCBwdWJsaXNoaW5nIGZvciBwdWJsaXNoaW5nIHRvIHB5cGkub3JnXG4gICAqIE5lZWRzIHRvIGJlIHByZS1jb25maWd1cmVkIG9uIFB5UEkgdG8gd29yay5cbiAgICpcbiAgICogVGhlIGByZWxlYXNlX3B5cGlgIGpvYiBrZWVwcyB3aGF0ZXZlciBydW5uZXIgdGhlIHByb2plY3QgaXMgY29uZmlndXJlZCBmb3IuXG4gICAqIFB5UEksIHVubGlrZSBucG0sIGRvZXMgbm90IHJlc3RyaWN0IHRydXN0ZWQgcHVibGlzaGluZyB0byBHaXRIdWItaG9zdGVkXG4gICAqIHJ1bm5lcnMgLS0gdHJ1c3QgaXMgYm91bmQgdG8gdGhlIHdvcmtmbG93IHJlZiwgYW5kIHRoZSBPSURDIHRva2VuIGlzIG1pbnRlZFxuICAgKiBmcm9tIEFDVElPTlNfSURfVE9LRU5fUkVRVUVTVF9VUkwsIHdoaWNoIGlzIGF2YWlsYWJsZSBvbiBhbnkgcnVubmVyIHdpdGhcbiAgICogYGlkLXRva2VuOiB3cml0ZWAuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnB5cGkub3JnL3RydXN0ZWQtcHVibGlzaGVycy9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHlwaVRydXN0ZWRQdWJsaXNoaW5nPzogYm9vbGVhbjtcbn1cblxuY29uc3QgZ2V0TWF2ZW5OYW1lID0gKHByb3ZpZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIFtcIm51bGxcIiwgXCJyYW5kb21cIl0uaW5jbHVkZXMocHJvdmlkZXJOYW1lKVxuICAgID8gYCR7cHJvdmlkZXJOYW1lfV9wcm92aWRlcmBcbiAgICA6IHByb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG59O1xuXG5jb25zdCBnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyA9IHtcbiAgXCJhY3Rpb25zL2NoZWNrb3V0XCI6IFwiZGUwZmFjMmU0NTAwZGFiZTAwMDllNjcyMTRmZjVmNTQ0N2NlODNkZFwiLCAvLyB2Ni4wLjJcbiAgXCJhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0XCI6IFwiM2U1ZjQ1YjJjZmI5MTcyMDU0YjQwODdhNDBlOGUwYjVhNTQ2MWU3Y1wiLCAvLyB2OC4wLjFcbiAgXCJhY3Rpb25zL2dpdGh1Yi1zY3JpcHRcIjogXCJlZDU5NzQxMWQ4ZjkyNDA3M2Y5OGRmYzVjNjVhMjNhMjMyNWYzNGNkXCIsIC8vIHY4LjAuMFxuICBcImFjdGlvbnMvc2V0dXAtZG90bmV0XCI6IFwiYzJmYTA5ZjRiZGU1ZWJiOWQxNzc3Y2YyODI2MmEzZWIzZGIzY2VkN1wiLCAvLyB2NS4yLjBcbiAgXCJhY3Rpb25zL3NldHVwLWdvXCI6IFwiNGEzNjAxMTIxZGQwMWQxNjI2YTFlMjNlMzcyMTFlMzI1NGMxYzA2Y1wiLCAvLyB2Ni40LjBcbiAgXCJhY3Rpb25zL3NldHVwLWphdmFcIjogXCJiZTY2NmMyZmNkMjdlYzgwOTcwM2RlYzUwZTUwOGMyZmRjN2Y2NjU0XCIsIC8vIHY1LjIuMFxuICBcImFjdGlvbnMvc2V0dXAtbm9kZVwiOiBcIjQ4YjU1YTAxMWJkYTlmNWQ2YWViNGMyZDljNzM2MmU4ZGFlNDA0MWVcIiwgLy8gdjYuNC4wXG4gIFwiYWN0aW9ucy9zZXR1cC1weXRob25cIjogXCJhMzA5ZmY4YjQyNmI1OGVjMGUyYTQ1ZjBmODY5ZDQ2ODg5ZDAyNDA1XCIsIC8vIHY2LjIuMFxuICBcImFjdGlvbnMvc3RhbGVcIjogXCJiNWQ0MWQ0ZTFkNWRjZWVhMTBlNzEwNDc4NmI3MzYyNGMxOGExOTBmXCIsIC8vIHYxMC4yLjBcbiAgXCJhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdFwiOiBcIjA0M2ZiNDZkMWE5M2M3N2FhZTY1NmU3YzFjNjRhODc1ZDFmYzZhMGFcIiwgLy8gdjcuMC4xXG4gIFwiYW1hbm5uL2FjdGlvbi1zZW1hbnRpYy1wdWxsLXJlcXVlc3RcIjpcbiAgICBcIjQ4ZjI1NjI4NGJkNDZjZGFhYjEwNDhjMzcyMTM2MGU4MDgzMzVkNTBcIiwgLy8gdjYuMS4xXG4gIFwiZGVzc2FudC9sb2NrLXRocmVhZHNcIjogXCI3MjY2YTdjZTVjMWRmMDFiMWM2ZGI4NWJmOGNkODZjNzM3ZGFkYmU3XCIsIC8vIHY2LjAuMFxuICBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIjogXCIzMjYzOGRhMmQ0ZTgxZDU2YTA3NjRhYTE1NDc4ODJmYzRkMjA5NjM2XCIsIC8vIHYxLjEuM1xuICBcImhhc2hpY29ycC9zZXR1cC10ZXJyYWZvcm1cIjogXCI1ZThkYmYzYzZkOWRlYWY0MTkzY2E3YThmYjIzZjJhYzgzYmI2Yzg1XCIsIC8vIHY0LjAuMFxuICBcImltam9obmJvL2lzc3VlLWJvdFwiOiBcIjMxODhjNmNlMDYyNDkyMDY3MDlkM2IxZjI3NGQwZDRjNWE1MjE2MDFcIiwgLy8gdjMuNC41XG4gIFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdFwiOiBcIjVmNjk3OGZhZjA4OWQ0ZDIwYjAwYzc3NjY5ODlkMDc2YmIyZmM3ZjFcIiwgLy8gdjguMS4xXG4gIFwic2xhY2thcGkvc2xhY2stZ2l0aHViLWFjdGlvblwiOiBcIjQ1YTg4Yjk1ODFiZmFiMjU2NmRjODgxZTJjZDY2ZDMzNGU2MjFlMmNcIiwgLy8gdjMuMC4zXG4gIFwiYWN0aW9ucy9jcmVhdGUtZ2l0aHViLWFwcC10b2tlblwiOiBcIjI5ODI0ZTY5ZjU0NjEyMTMzZTc2ZjdlYWFjNzI2ZWVmNmM4NzViYWZcIiwgLy8gdjIuMi4xXG4gIC8vIHByb2plbiBlbWl0cyB0aGlzIHVucGlubmVkIGFzIGBwbnBtL2FjdGlvbi1zZXR1cEB2NWAgb25jZSBwYWNrYWdlTWFuYWdlciBpcyBwbnBtXG4gIFwicG5wbS9hY3Rpb24tc2V0dXBcIjogXCJmYzA2YmMxMjU3ZjMzOWQxZDVkOGIzYTE5YThjYWU1Mzg4YjU1MzIwXCIsIC8vIHY1XG59O1xuXG5leHBvcnQgY2xhc3MgQ2RrdG5Qcm92aWRlclByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGt0blByb3ZpZGVyUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBjZGt0blZlcnNpb24gPSBvcHRpb25zLmNka3RuVmVyc2lvbiA/PyBvcHRpb25zLmNka3RmVmVyc2lvbjtcbiAgICBhc3NlcnQoXG4gICAgICBjZGt0blZlcnNpb24sXG4gICAgICBcIkVpdGhlciBjZGt0blZlcnNpb24gb3IgY2RrdGZWZXJzaW9uIG11c3QgYmUgcHJvdmlkZWRcIlxuICAgICk7XG5cbiAgICBjb25zdCB7XG4gICAgICB0ZXJyYWZvcm1Qcm92aWRlcixcbiAgICAgIHdvcmtmbG93Q29udGFpbmVySW1hZ2UsXG4gICAgICBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICAgIG1pbk5vZGVWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIGlzRGVwcmVjYXRlZCxcbiAgICAgIGRlcHJlY2F0aW9uRGF0ZSxcbiAgICAgIC8vIFRPRE86IENvbmZpcm0gZGVmYXVsdCBBdXRob3IgTmFtZVxuICAgICAgYXV0aG9yTmFtZSA9IFwiQ0RLIFRlcnJhaW4gTWFpbnRhaW5lcnNcIixcbiAgICAgIGF1dGhvckFkZHJlc3MgPSBcImh0dHBzOi8vY2RrdG4uaW9cIixcbiAgICAgIG5hbWVzcGFjZSA9IFwiY2RrdG5cIixcbiAgICAgIGdpdGh1Yk5hbWVzcGFjZSA9IFwiY2RrdG4taW9cIixcbiAgICAgIG51Z2V0T3JnID0gXCJJby5DZGt0blwiLFxuICAgICAgbWF2ZW5PcmcgPSBcImNka3RuXCIsXG4gICAgICBucG1UcnVzdGVkUHVibGlzaGluZyxcbiAgICAgIHB5cGlUcnVzdGVkUHVibGlzaGluZyxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IFtmcXByb3ZpZGVyTmFtZSwgcHJvdmlkZXJWZXJzaW9uXSA9IHRlcnJhZm9ybVByb3ZpZGVyLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBmcXByb3ZpZGVyTmFtZS5zcGxpdChcIi9cIikucG9wKCk7XG4gICAgYXNzZXJ0KHByb3ZpZGVyTmFtZSwgYCR7dGVycmFmb3JtUHJvdmlkZXJ9IGRvZXNuJ3Qgc2VlbSB0byBiZSB2YWxpZGApO1xuICAgIGFzc2VydChcbiAgICAgICFwcm92aWRlck5hbWUuZW5kc1dpdGgoXCItZ29cIiksXG4gICAgICBcInByb3ZpZGVyTmFtZSBtYXkgbm90IGVuZCB3aXRoICctZ28nIGFzIHRoaXMgY2FuIGNvbmZsaWN0IHdpdGggcmVwb3MgZm9yIGdvIHBhY2thZ2VzXCJcbiAgICApO1xuXG4gICAgY29uc3QgbnVnZXROYW1lID0gYCR7bnVnZXRPcmd9LlByb3ZpZGVycy4ke3Bhc2NhbENhc2UocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IG1hdmVuR3JvdXBJZCA9IG9wdGlvbnMubWF2ZW5Hcm91cElkID8/IGBpby4ke21hdmVuT3JnfWA7XG4gICAgY29uc3QgbWF2ZW5OYW1lID0gYCR7bWF2ZW5Hcm91cElkfS5wcm92aWRlcnMuJHtnZXRNYXZlbk5hbWUocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBgJHtnaXRodWJOYW1lc3BhY2V9LyR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgLy0vZyxcbiAgICAgIFwiXCJcbiAgICApfWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeVVybCA9IGBnaXRodWIuY29tLyR7cmVwb3NpdG9yeX1gO1xuXG4gICAgY29uc3QgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvID0ge1xuICAgICAgbnBtOiB7XG4gICAgICAgIG5hbWU6IGBAJHtuYW1lc3BhY2V9L3Byb3ZpZGVyLSR7cHJvdmlkZXJOYW1lfWAsXG4gICAgICB9LFxuICAgICAgcHl0aG9uOiB7XG4gICAgICAgIC8vIGRpc3ROYW1lOiBgJHtnaXRodWJOYW1lc3BhY2V9LSR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBkaXN0TmFtZTogYCR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIil9YCxcbiAgICAgICAgLy8gbW9kdWxlOiBgJHtnaXRodWJOYW1lc3BhY2V9XyR7bmFtZXNwYWNlfV9wcm92aWRlcl8ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBtb2R1bGU6IGAke25hbWVzcGFjZX1fcHJvdmlkZXJfJHtwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpfWAsXG4gICAgICAgIHRydXN0ZWRQdWJsaXNoaW5nOiBweXBpVHJ1c3RlZFB1Ymxpc2hpbmcgPz8gZmFsc2UsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvTnVnZXQ6IHtcbiAgICAgICAgZG90TmV0TmFtZXNwYWNlOiBudWdldE5hbWUsXG4gICAgICAgIHBhY2thZ2VJZDogbnVnZXROYW1lLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiB7XG4gICAgICAgIGphdmFQYWNrYWdlOiBtYXZlbk5hbWUsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogbWF2ZW5Hcm91cElkLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IGAke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWV9YCxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9Hbzoge1xuICAgICAgICBtb2R1bGVOYW1lOiBgJHtyZXBvc2l0b3J5VXJsfS1nb2AsXG4gICAgICAgIGdpdFVzZXJFbWFpbDogXCJnaXRodWItdGVhbS1jZGstdGVycmFpbkBjZGt0bi5pb1wiLFxuICAgICAgICBnaXRVc2VyTmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBwcm92aWRlck5hbWUucmVwbGFjZSgvLS9nLCBcIlwiKSxcbiAgICAgICAgLy8gSW4gb3JkZXIgdG8gdXNlIHRoZSBjb3B5d3JpdGUgYWN0aW9uLCB3ZSBuZWVkIHRvIHJlYnVpbGQgdGhlIGZ1bGwgcHJlLXB1Ymxpc2ggc3RlcHMgd29ya2Zsb3cgdW5mb3J0dW5hdGVseVxuICAgICAgICAvLyBJZiBzb21lb25lIGtub3dzIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIG11dGF0aW9uIHdpdGggbWluaW1hbCBjdXN0b20gY29kZSwgcGxlYXNlIGRvIHNvXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBwYXRoOiBcIi5yZXBvXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsIERlcGVuZGVuY2llc1wiLFxuICAgICAgICAgICAgcnVuOiBcImNkIC5yZXBvICYmIHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkV4dHJhY3QgYnVpbGQgYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJ0YXIgLS1zdHJpcC1jb21wb25lbnRzPTEgLXh6dmYgZGlzdC9qcy8qLnRneiAtQyAucmVwb1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5XCIsXG4gICAgICAgICAgICBydW46IFwibXYgZGlzdCBkaXN0Lm9sZFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDcmVhdGUgZ28gYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwbyAmJiBucHggcHJvamVuIHBhY2thZ2U6Z29cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IGNvcHl3cml0ZSBoY2wgZmlsZVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvLy5jb3B5d3JpdGUuaGNsIC5yZXBvL2Rpc3QvZ28vLmNvcHl3cml0ZS5oY2xcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwby9kaXN0L2dvICYmIGNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBjb3B5d3JpdGUgaGNsIGZpbGVcIixcbiAgICAgICAgICAgIHJ1bjogXCJybSAtZiAucmVwby9kaXN0L2dvLy5jb3B5d3JpdGUuaGNsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBzb21lIHRleHQgZnJvbSB0aGUgUkVBRE1FIHRoYXQgZG9lc24ndCBhcHBseSB0byBHb1wiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgIFwic2VkIC1pICdzLyMgQ0RLVE4gcHJlYnVpbHQgYmluZGluZ3MgZm9yLyMgQ0RLVE4gR28gYmluZGluZ3MgZm9yLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80OTUxMTk0OVxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgICAgIGBzZWQgLWkgLWUgJy8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJBdmFpbGFibGVcIn0gUGFja2FnZXMvLC8jIyMgR28vIWInIC1lICcvIyMjIEdvLyFkO3A7IHMvIyMjIEdvLyMjIEdvIFBhY2thZ2UvJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIHNlZCAtZSBpcyBibGFjayBtYWdpYyBhbmQgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGUgc3RyaW5nIHJlcGxhY2UgZG9lc24ndCB3b3JrIHNvIGxldCdzIHRyeSBpdCBhZ2FpbjpcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgICAgICBgc2VkIC1pICdzLyMjIyBHby8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJHb1wifSBQYWNrYWdlLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnL0FQSS50eXBlc2NyaXB0Lm1kLywvWW91IGNhbiBhbHNvIHZpc2l0IGEgaG9zdGVkIHZlcnNpb24vIWInIC1lICdkJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICAgIGBzZWQgLWkgJ3N8RmluZCBhdXRvLWdlbmVyYXRlZCBkb2NzIGZvciB0aGlzIHByb3ZpZGVyIGhlcmU6fEZpbmQgYXV0by1nZW5lcmF0ZWQgZG9jcyBmb3IgdGhpcyBwcm92aWRlciBbaGVyZV0oaHR0cHM6Ly8ke3JlcG9zaXRvcnlVcmx9L2Jsb2IvbWFpbi9kb2NzL0FQSS5nby5tZCkufCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnLyMjIyBQcm92aWRlciBWZXJzaW9uLywvVGhlIHByb3ZpZGVyIHZlcnNpb24gY2FuIGJlIGFkanVzdGVkLyFiJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IHRoZSBSRUFETUUgZmlsZSB0byB0aGUgcGFyZW50IGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWQgLnJlcG8vZGlzdC9nby9SRUFETUUubWRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29sbGVjdCBnbyBBcnRpZmFjdFwiLFxuICAgICAgICAgICAgcnVuOiBcIm12IC5yZXBvL2Rpc3QgZGlzdFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JrZmxvd1J1bnNPbiA9IG9wdGlvbnMudXNlQ3VzdG9tR2l0aHViUnVubmVyXG4gICAgICA/IFtcImRlcG90LXVidW50dS0yNC4wNC04XCJdIC8vIDggY29yZSwgMzIgR0JcbiAgICAgIDogW1widWJ1bnR1LWxhdGVzdFwiXTsgLy8gNyBHQlxuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGF1dGhvckFkZHJlc3MsXG4gICAgICBhdXRob3JOYW1lLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgd29ya2Zsb3dSdW5zT24sXG4gICAgICBsaWNlbnNlZDogZmFsc2UsIC8vIHdlIGRvIHN1cHBseSBvdXIgb3duIGxpY2Vuc2UgZmlsZSB3aXRoIGEgY3VzdG9tIGhlYWRlclxuICAgICAgcmVsZWFzZVRvTnBtOiB0cnVlLFxuICAgICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc6IG5wbVRydXN0ZWRQdWJsaXNoaW5nID8/IGZhbHNlLFxuICAgICAgbmFtZTogcGFja2FnZUluZm8ubnBtLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYFByZWJ1aWx0ICR7cHJvdmlkZXJOYW1lfSBQcm92aWRlciBmb3IgQ0RLIFRlcnJhaW4gKGNka3RuKWAsXG4gICAgICBrZXl3b3JkczogW1xuICAgICAgICBcImNka3RuXCIsXG4gICAgICAgIFwiY2RrLXRlcnJhaW5cIixcbiAgICAgICAgXCJjZGt0ZlwiLFxuICAgICAgICBcInRlcnJhZm9ybVwiLFxuICAgICAgICBcIm9wZW50b2Z1XCIsXG4gICAgICAgIFwiY2RrXCIsXG4gICAgICAgIFwicHJvdmlkZXJcIixcbiAgICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgXSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgamVzdDogZmFsc2UsXG4gICAgICBhdXRob3JPcmdhbml6YXRpb246IHRydWUsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogXCJtYWluXCIsXG4gICAgICByZXBvc2l0b3J5OiBgaHR0cHM6Ly9naXRodWIuY29tLyR7cmVwb3NpdG9yeX0uZ2l0YCxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG4gICAgICAvLyBQcm92aWRlciByZXBvcyBydW4ganNpaS1wYWNtYWsgb3ZlciBidW5kbGVkIGRlcHMgZXhhY3RseSBhcyB0aGlzIHByb2plY3RcbiAgICAgIC8vIGRvZXMsIHNvIHRoZXkgbmVlZCB0aGUgaG9pc3RlZCBsaW5rZXIgdG9vIC0tIHNlZSB0aGUgbm90ZSBpbiAucHJvamVucmMudHMuXG4gICAgICAvLyBJdCBtdXN0IGJlIGluIHBucG0td29ya3NwYWNlLnlhbWwsIG5vdCAubnBtcmMsIG9yIHBucG0gMTEgaWdub3JlcyBpdC5cbiAgICAgIHBucG1PcHRpb25zOiB7XG4gICAgICAgIHdvcmtzcGFjZVlhbWxPcHRpb25zOiB7XG4gICAgICAgICAgbm9kZUxpbmtlcjogUG5wbVdvcmtzcGFjZVlhbWxTY2hlbWFOb2RlTGlua2VyLkhPSVNURUQsXG4gICAgICAgICAgYXVkaXRDb25maWc6IHtcbiAgICAgICAgICAgIC8vIFNhbWUgZmxhdC1yYW5nZSBhcnRpZmFjdCB0aGlzIHByb2plY3QgaWdub3JlcyBmb3IgaXRzZWxmOlxuICAgICAgICAgICAgLy8gR0hTQS1taDk5LXY5OW0tNGd2ZyBkZWNsYXJlcyBhZmZlY3RlZCBcIjw9NS4wLjdcIiwgd2hpY2ggbmFpdmVseSBtYXRjaGVzXG4gICAgICAgICAgICAvLyB0aGUgMS54IGxpbmUuIFByb3ZpZGVyIHJlcG9zIHJlYWNoIGJyYWNlLWV4cGFuc2lvbkAxIHZpYVxuICAgICAgICAgICAgLy8gY2RrdG4tY2xpID4gQGNka3RuL2hjbDJjZGsgPiBnbG9iID4gbWluaW1hdGNoQDMsIGFuZCB0aGVyZSBpcyBubyBmaXhlZFxuICAgICAgICAgICAgLy8gMS54IHRvIG1vdmUgdG8gLS0gZm9yY2luZyA1LjAuOCB3b3VsZCBicmVhayBtaW5pbWF0Y2hAMywgd2hpY2ggcmVxdWlyZXNcbiAgICAgICAgICAgIC8vIF4xLjEuNy4gRGV2IHRvb2xpbmcgb25seTsgbmV2ZXIgc2hpcHBlZC5cbiAgICAgICAgICAgIGlnbm9yZUdoc2FzOiBbXCJHSFNBLW1oOTktdjk5bS00Z3ZnXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVwc1VwZ3JhZGU6ICFpc0RlcHJlY2F0ZWQsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgY29vbGRvd246IDQsXG4gICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsczogW1wiYXV0b21lcmdlXCIsIFwiYXV0by1hcHByb3ZlXCIsIFwiZGVwZW5kZW5jaWVzXCJdLFxuICAgICAgICAgIHNjaGVkdWxlOiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUuV0VFS0xZLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGF1ZGl0RGVwczogIWlzRGVwcmVjYXRlZCxcbiAgICAgIGF1ZGl0RGVwc09wdGlvbnM6IHtcbiAgICAgICAgbGV2ZWw6IFwiaGlnaFwiLFxuICAgICAgICBydW5PbjogXCJidWlsZFwiLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb1B5cGk6IHBhY2thZ2VJbmZvLnB5dGhvbixcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiBwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldCxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbixcbiAgICAgIHB1Ymxpc2hUb0dvOiBwYWNrYWdlSW5mby5wdWJsaXNoVG9HbyxcbiAgICAgIHJlbGVhc2VGYWlsdXJlSXNzdWU6IHRydWUsXG4gICAgICBwZWVyRGVwZW5kZW5jeU9wdGlvbnM6IHtcbiAgICAgICAgcGlubmVkRGV2RGVwZW5kZW5jeTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgd29ya2Zsb3dHaXRJZGVudGl0eToge1xuICAgICAgICBuYW1lOiBcInRlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgICAgZW1haWw6IFwiZ2l0aHViLXRlYW0tY2RrLXRlcnJhaW5AY2RrdG4uaW9cIixcbiAgICAgIH0sXG4gICAgICBtaW5NYWpvclZlcnNpb246IE1JTl9NQUpPUl9WRVJTSU9OLFxuICAgICAgc3RhbGU6IHRydWUsXG4gICAgICBzdGFsZU9wdGlvbnM6IHtcbiAgICAgICAgaXNzdWVzOiB7XG4gICAgICAgICAgc3RhbGVMYWJlbDogXCJzdGFsZVwiLFxuICAgICAgICAgIGRheXNCZWZvcmVTdGFsZTogNDUsXG4gICAgICAgICAgc3RhbGVNZXNzYWdlOlxuICAgICAgICAgICAgXCI0NSBkYXlzIGhhdmUgcGFzc2VkIHNpbmNlIHRoaXMgaXNzdWUgd2FzIG9wZW5lZCwgYW5kIEkgYXNzdW1lIG90aGVyIHB1Ymxpc2hlcyBoYXZlIHN1Y2NlZWRlZCBpbiB0aGUgbWVhbnRpbWUuIFwiICtcbiAgICAgICAgICAgIFwiSWYgbm8gb25lIHJlbW92ZXMgdGhlIGBzdGFsZWAgbGFiZWwgb3IgY29tbWVudHMsIEknbSBnb2luZyB0byBhdXRvLWNsb3NlIHRoaXMgaXNzdWUgaW4gMTQgZGF5cy5cIixcbiAgICAgICAgICBkYXlzQmVmb3JlQ2xvc2U6IDE0LFxuICAgICAgICAgIGNsb3NlTWVzc2FnZTpcbiAgICAgICAgICAgIFwiMiBtb250aHMgaGF2ZSBwYXNzZWQsIHNvIEknbSBjbG9zaW5nIHRoaXMgaXNzdWUgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IG90aGVyIHB1Ymxpc2hlcyBoYXZlIHN1Y2NlZWRlZCBpbiB0aGUgbWVhbnRpbWUuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxSZXF1ZXN0OiB7XG4gICAgICAgICAgc3RhbGVMYWJlbDogXCJzdGFsZVwiLFxuICAgICAgICAgIGRheXNCZWZvcmVTdGFsZTogMSxcbiAgICAgICAgICBzdGFsZU1lc3NhZ2U6IGBDbG9zaW5nIHRoaXMgUFIsIGlmIGl0IGhhcyBub3QgbWVyZ2VkIHRoZXJlIGlzIG1vc3QgbGlrZWx5IGEgQ0kgb3IgQ0RLVE4gaXNzdWUgcHJldmVudGluZyBpdCBmcm9tIG1lcmdpbmcuIElmIHRoaXMgaGFzIGJlZW4gYSBtYW51YWwgUFIsIHBsZWFzZSByZW9wZW4gaXQgYW5kIGFkZCB0aGUgXFxgbm8tYXV0by1jbG9zZVxcYCBsYWJlbCB0byBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcgYWdhaW4uYCxcbiAgICAgICAgICBkYXlzQmVmb3JlQ2xvc2U6IDAsXG4gICAgICAgICAgZXhlbXB0TGFiZWxzOiBbXCJuby1hdXRvLWNsb3NlXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGU6IGZhbHNlLFxuICAgICAgZG9jZ2VuOiBmYWxzZSxcbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKCksXG4gICAgICAgIC8vIHByb2plbiA+PTAuMTAwIG1vdmVkIHRoZSBgbWVyZ2lmeWAgcHJvamVjdCBvcHRpb24gdW5kZXIgZ2l0aHViT3B0aW9uc1xuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICBcImRvdC1wcm9wQF41LjIuMFwiLFxuICAgICAgLy8gXjEuMS4wIGNvdWxkIG5ldmVyIGxlYXZlIHRoZSAxLnggbGluZSwgd2hpY2ggZHJhZ3MgaW4gYW4gb2xkXG4gICAgICAvLyBAYWN0aW9ucy9odHRwLWNsaWVudCBhbmQgd2l0aCBpdCB1bmRpY2kgPDYuMjQuMCAtLSB0aHJlZSBoaWdoIGFkdmlzb3JpZXNcbiAgICAgIC8vIChHSFNBLXZybTYtOHZwdi1xdjhxLCBHSFNBLXY5cDktaGZqMi1oY3c4LCBhbmQgdGhlIDw2LjI3LjAgZnJhZ21lbnQtY291bnRcbiAgICAgIC8vIERvUykuIDMueCBkZXBlbmRzIG9uIEBhY3Rpb25zL2h0dHAtY2xpZW50IF40IC0+IHVuZGljaSBeNi4yMy4wLCByZXNvbHZpbmdcbiAgICAgIC8vIHRvIDYuMjguMC4gTk9URTogMy54IGlzIEVTTS1vbmx5LCBzbyBjaGVjay1mb3ItdXBncmFkZXMuanMgbG9hZHMgaXQgd2l0aCBhXG4gICAgICAvLyBkeW5hbWljIGltcG9ydCByYXRoZXIgdGhhbiBgcmVxdWlyZWAuXG4gICAgICBcIkBhY3Rpb25zL2NvcmVAXjMuMC4wXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NvcmVcIixcbiAgICAgIFwiQGFjdGlvbi12YWxpZGF0b3IvY2xpXCJcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBtZW1vcnkgaXMgN0dCOiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlc1xuICAgIC8vIEN1c3RvbSBSdW5uZXJzIHdlIHVzZSBoYXZlIDMyR0Igb2YgbWVtb3J5LlxuICAgIC8vXG4gICAgLy8gVGhlIGN1c3RvbS1ydW5uZXIgY2VpbGluZyB1c2VkIHRvIGJlIDMxNzQ0ICgzMUdCIG9mIDMyR0IsIH45NyUgb2YgUkFNKS5cbiAgICAvLyBUaGF0IGxlYXZlcyBub3RoaW5nIGZvciB0aGUga2VybmVsLCB0aGUgcnVubmVyIGFnZW50LCBvciB0aGUgR28gdG9vbGNoYWluXG4gICAgLy8gdGhhdCBqc2lpLXBhY21hayBzaGVsbHMgb3V0IHRvLCBzbyBhIHBhY21hayBydW4gdGhhdCBsZWdpdGltYXRlbHkgd2FudHMgYVxuICAgIC8vIGxvdCBvZiBoZWFwIGdldHMgT09NLWtpbGxlZCBieSB0aGUga2VybmVsIGluc3RlYWQgb2YgYmVpbmcgdG9sZCB0byBjb2xsZWN0LlxuICAgIC8vIFRoZSBzaWduYXR1cmUgaXMgZGlzdGluY3RpdmU6IHRoZSBzdGVwIHNpdHMgaW5fcHJvZ3Jlc3Mgd2l0aCBhIG51bGxcbiAgICAvLyBjb21wbGV0ZWRBdCAoa2lsbGVkIHByb2Nlc3MsIG5vdCBhIG5vbi16ZXJvIGV4aXQpIGFuZCB0aGUgam9iIGJ1cm5zIH4xMi0xM21cbiAgICAvLyBpbnN0ZWFkIG9mIHRoZSB+NG0gYSBoZWFsdGh5IHJ1biB0YWtlcy4gU2VlIGNka3RuLXByb3ZpZGVyLXByb2plY3QjMzQuXG4gICAgLy9cbiAgICAvLyAyODY3MiAoMjhHQikga2VlcHMgNEdCIG9mIGhlYWRyb29tLiBUaGlzIGlzIGEgY2VpbGluZywgbm90IGEgcmVzZXJ2YXRpb24gLS1cbiAgICAvLyBwcm92aWRlcnMgdGhhdCBuZXZlciBhcHByb2FjaCBpdCBhcmUgdW5hZmZlY3RlZC5cbiAgICBjb25zdCBERUZBVUxUX0hFQVBfTUJfQ1VTVE9NX1JVTk5FUiA9IDI4NjcyO1xuICAgIGNvbnN0IERFRkFVTFRfSEVBUF9NQl9IT1NURURfUlVOTkVSID0gNjY1NjsgLy8gNi41R0Igb2YgN0dCXG5cbiAgICAvLyBgbm9kZUhlYXBTaXplTWJgIGlzIHB1YmxpYyBBUEkgYW5kLCB2aWEganNpaSwgcmVhY2hhYmxlIGZyb20gUHl0aG9uLCBHbyxcbiAgICAvLyBKYXZhIGFuZCAuTkVUIHdoZXJlIGBudW1iZXJgIGlzIGV2ZW4gbG9vc2VyIHRoYW4gVHlwZVNjcmlwdCdzLiBOb2RlXG4gICAgLy8gcmVmdXNlcyB0byBzdGFydCBvbiBhIG1hbGZvcm1lZCBjZWlsaW5nIC0tIGAtLW1heC1vbGQtc3BhY2Utc2l6ZT0xLjVgXG4gICAgLy8gYW5kIGA9TmFOYCBhcmUgYm90aCByZWplY3RlZCBiZWZvcmUgYW55IHNjcmlwdCBydW5zIC0tIGFuZCBgMGAgc2lsZW50bHlcbiAgICAvLyByZXN0b3JlcyBWOCdzIGRlZmF1bHQgaW5zdGVhZCBvZiBhcHBseWluZyBhIGxpbWl0LiBJbnRlcnBvbGF0aW5nIGFuXG4gICAgLy8gdW5jaGVja2VkIHZhbHVlIHdvdWxkIHRoZXJlZm9yZSBicmVhayBldmVyeSB0YXNrIGluIHRoZSBnZW5lcmF0ZWQgcmVwbyxcbiAgICAvLyBzdXJmYWNpbmcgYXMgYW4gaW5zY3J1dGFibGUgc3RhcnR1cCBmYWlsdXJlIGluIENJIHJhdGhlciB0aGFuIGhlcmUuXG4gICAgYXNzZXJ0KFxuICAgICAgb3B0aW9ucy5ub2RlSGVhcFNpemVNYiA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIChOdW1iZXIuaXNTYWZlSW50ZWdlcihvcHRpb25zLm5vZGVIZWFwU2l6ZU1iKSAmJlxuICAgICAgICAgIG9wdGlvbnMubm9kZUhlYXBTaXplTWIgPiAwKSxcbiAgICAgIGBub2RlSGVhcFNpemVNYiBtdXN0IGJlIGEgcG9zaXRpdmUgc2FmZSBpbnRlZ2VyIChNaUIpLCBnb3QgJHtvcHRpb25zLm5vZGVIZWFwU2l6ZU1ifWBcbiAgICApO1xuXG4gICAgY29uc3QgbWF4T2xkU3BhY2VTaXplID0gU3RyaW5nKFxuICAgICAgb3B0aW9ucy5ub2RlSGVhcFNpemVNYiA/P1xuICAgICAgICAob3B0aW9ucy51c2VDdXN0b21HaXRodWJSdW5uZXJcbiAgICAgICAgICA/IERFRkFVTFRfSEVBUF9NQl9DVVNUT01fUlVOTkVSXG4gICAgICAgICAgOiBERUZBVUxUX0hFQVBfTUJfSE9TVEVEX1JVTk5FUilcbiAgICApO1xuXG4gICAgLy8gR29sYW5nIG5lZWRzIG1vcmUgbWVtb3J5IHRvIGJ1aWxkXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiTk9ERV9PUFRJT05TXCIsXG4gICAgICBgLS1tYXgtb2xkLXNwYWNlLXNpemU9JHttYXhPbGRTcGFjZVNpemV9YFxuICAgICk7XG5cbiAgICB0aGlzLnRhc2tzLmFkZEVudmlyb25tZW50KFwiQ0hFQ0tQT0lOVF9ESVNBQkxFXCIsIFwiMVwiKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVGFzayA9IHRoaXMuYWRkVGFzayhcInZhbGlkYXRlLXdvcmtmbG93c1wiLCB7XG4gICAgICBleGVjOiBgZmluZCAuLy5naXRodWIvd29ya2Zsb3dzIC10eXBlIGYgLW5hbWUgXCIqLnltbFwiIC1wcmludDAgfCB4YXJncyAtMCAtbiAxIG5weCBhY3Rpb24tdmFsaWRhdG9yYCxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVRhc2suZGVzY3JpcHRpb24gPVxuICAgICAgXCJMaW50IHRoZSBZQU1MIGZpbGVzIGdlbmVyYXRlZCBieSBQcm9qZW4gdG8gZGVmaW5lIEdpdEh1YiBBY3Rpb25zIGFuZCBXb3JrZmxvd3MsIGNoZWNraW5nIHRoZW0gYWdhaW5zdCBwdWJsaXNoZWQgSlNPTiBzY2hlbWFzXCI7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odmFsaWRhdGVUYXNrKTtcblxuICAgIHRoaXMucGFja2FnZS5hZGRQYWNrYWdlUmVzb2x1dGlvbnMoXCJAdHlwZXMveWFyZ3NAMTcuMC4xM1wiKTtcblxuICAgIGNvbnN0IHNldFNhZmVEaXJlY3RvcnkgPSB7XG4gICAgICBuYW1lOiBcIlNldCBnaXQgY29uZmlnIHNhZmUuZGlyZWN0b3J5XCIsXG4gICAgICBydW46IFwiZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLWFkZCBzYWZlLmRpcmVjdG9yeSAkKHB3ZClcIixcbiAgICB9O1xuXG4gICAgKCh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXSkucHVzaChcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuICAgICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5zcGxpY2UoXG4gICAgICAxLFxuICAgICAgMCxcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuXG4gICAgLy8gYWx3YXlzIHB1Ymxpc2ggYSBuZXcgR2l0SHViIHJlbGVhc2UsIGV2ZW4gd2hlbiBwdWJsaXNoaW5nIHRvIGEgcGFydGljdWxhciBwYWNrYWdlIG1hbmFnZXIgZmFpbHNcbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFwiXG4gICAgKTtcbiAgICByZWxlYXNlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwiam9icy5yZWxlYXNlX2dpdGh1Yi5uZWVkc1wiLCBcInJlbGVhc2VcIik7XG5cbiAgICAvLyBUcnVzdGVkIHB1Ymxpc2hpbmcgcmVxdWlyZXMgbnBtID49MTEuNS4xIHdoaWNoIHNoaXBzIHdpdGggTm9kZSAyNFxuICAgIGlmIChucG1UcnVzdGVkUHVibGlzaGluZykge1xuICAgICAgdGhpcy5naXRodWJcbiAgICAgICAgPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpXG4gICAgICAgID8uZmlsZT8ucGF0Y2goXG4gICAgICAgICAgSnNvblBhdGNoLnJlcGxhY2UoXG4gICAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfbnBtL3N0ZXBzLzAvd2l0aC9ub2RlLXZlcnNpb25cIixcbiAgICAgICAgICAgIFwiMjQueFwiXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAvLyBOUE0gT0lEQyBkb2Vzbid0IHN1cHBvcnQgc2VsZi1ob3N0ZWQgcnVubmVycyB5ZXRcbiAgICAgIHRoaXMuZ2l0aHViXG4gICAgICAgID8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKVxuICAgICAgICA/LmZpbGU/LnBhdGNoKFxuICAgICAgICAgIEpzb25QYXRjaC5yZXBsYWNlKFwiL2pvYnMvcmVsZWFzZV9ucG0vcnVucy1vblwiLCBcInVidW50dS1sYXRlc3RcIilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBOT1RFOiByZWxlYXNlX3B5cGkgZGVsaWJlcmF0ZWx5IHN0YXlzIG9uIHdoYXRldmVyIHJ1bm5lciB0aGUgcHJvamVjdCBpc1xuICAgIC8vIGNvbmZpZ3VyZWQgZm9yLiBVbmxpa2UgbnBtLCBQeVBJIHBsYWNlcyBubyByZXN0cmljdGlvbiBvbiB0aGUgcnVubmVyXG4gICAgLy8gZW52aXJvbm1lbnQ6IHB1YmxpYi1weXBpIG1pbnRzIGl0cyB0b2tlbiB3aXRoIGBweXRob24zIC1tIGlkIHB5cGlgIGFnYWluc3RcbiAgICAvLyBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVVJMLCB3aGljaCBHaXRIdWIgaW5qZWN0cyBvbiBhbnkgcnVubmVyIGdpdmVuXG4gICAgLy8gYGlkLXRva2VuOiB3cml0ZWAsIGFuZCBQeVBJJ3MgdHJ1c3QgaXMgYm91bmQgdG8gdGhlIHdvcmtmbG93IHJlZiwgbm90IHRoZVxuICAgIC8vIHJ1bm5lci4gRm9yY2luZyB0aGlzIGpvYiBvbnRvIGEgaG9zdGVkIHJ1bm5lciB3b3VsZCBhbHNvIHN0cmFuZCBpdCB3aXRoIHRoZVxuICAgIC8vIDI4R0IgTk9ERV9PUFRJT05TIGhlYXAgY2VpbGluZyB0aGF0IHVzZUN1c3RvbUdpdGh1YlJ1bm5lciB3cml0ZXMgaW50b1xuICAgIC8vIC5wcm9qZW4vdGFza3MuanNvbiwgb24gYSBib3ggd2l0aCBmYXIgbGVzcyBSQU0gdGhhbiB0aGF0IC0tIGFuZCB1bmxpa2VcbiAgICAvLyBwYWNrYWdlOmpzLCBwYWNrYWdlOnB5dGhvbiBpcyBhIHJlYWwganNpaS1wYWNtYWsgdHJhbnNwaWxlLlxuXG4gICAgLy8gZW5zdXJlIHdlIGRvbid0IGZhaWwgaWYgdGhlIHJlbGVhc2UgZmlsZSBpcyBub3QgcHJlc2VudFxuICAgIGNvbnN0IGNoZWNrRXhpc3RpbmdUYWdTdGVwID0gKFxuICAgICAgdGhpcy5yZWxlYXNlIGFzIGFueVxuICAgICkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzLnJlbGVhc2Uuc3RlcHMuZmluZChcbiAgICAgIChzOiBvYmplY3QpID0+IFwiaWRcIiBpbiBzICYmIHMuaWQgPT09IFwiY2hlY2tfdGFnX2V4aXN0c1wiXG4gICAgKTtcbiAgICBjb25zdCBvbGRFeGlzdGluZ1RhZ1J1bjogc3RyaW5nID0gY2hlY2tFeGlzdGluZ1RhZ1N0ZXAucnVuO1xuICAgIHByZXR0eUFzc2VydEVxdWFsKFxuICAgICAgb2xkRXhpc3RpbmdUYWdSdW4uc3BsaXQoXCJcXG5cIilbMF0sXG4gICAgICBcIlRBRz0kKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KVwiLFxuICAgICAgXCJyZWxlYXNlIHN0ZXAgY2hhbmdlZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgKTtcbiAgICBjaGVja0V4aXN0aW5nVGFnU3RlcC5ydW4gPSBgaWYgWyAhIC1mIGRpc3QvcmVsZWFzZXRhZy50eHQgXTsgdGhlbiAoZWNobyBcImV4aXN0cz10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQpICYmIGV4aXQgMDsgZmlcXG4ke29sZEV4aXN0aW5nVGFnUnVufWA7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgeyB1cGdyYWRlLCBwciB9ID0gKHRoaXMudXBncmFkZVdvcmtmbG93IGFzIGFueSkud29ya2Zsb3dzWzBdLmpvYnM7XG4gICAgICB1cGdyYWRlLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICAgIHByLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICB9XG5cbiAgICAvLyByZWxlYXNlOiBHbyDigJQgcGF0Y2ggdGhlIHJlbGVhc2Ugd29ya2Zsb3cncyBHbyBwdWJsaXNoIHRvIHVzZSBhIEdpdEh1YlxuICAgIC8vIEFwcCBpbnN0YWxsYXRpb24gdG9rZW4uXG4gICAgY29uc3QgcGF0Y2hHb1B1Ymxpc2hUb1VzZUFwcFRva2VuID0gKHdvcmtmbG93RmlsZT86IE9iamVjdEZpbGUpID0+IHtcbiAgICAgIGlmICghd29ya2Zsb3dGaWxlKSByZXR1cm47XG4gICAgICBjb25zdCBnb1B1Ymxpc2hUb2tlbiA9IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHtcbiAgICAgICAgYXBwSWRTZWNyZXQ6IFwiUFJPSkVOX0FQUF9JRFwiLFxuICAgICAgICBwcml2YXRlS2V5U2VjcmV0OiBcIlBST0pFTl9BUFBfUFJJVkFURV9LRVlcIixcbiAgICAgICAgb3duZXI6IFwiJHt7IGdpdGh1Yi5yZXBvc2l0b3J5X293bmVyIH19XCIsXG4gICAgICAgIHJlcG9zaXRvcmllczogW1xuICAgICAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lPy5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuQXBwUGVybWlzc2lvbi5XUklURSB9LFxuICAgICAgfSk7XG4gICAgICB3b3JrZmxvd0ZpbGUucGF0Y2goXG4gICAgICAgIEpzb25QYXRjaC5hZGQoXG4gICAgICAgICAgXCIvam9icy9yZWxlYXNlX2dvbGFuZy9zdGVwcy8xNlwiLFxuICAgICAgICAgIGdvUHVibGlzaFRva2VuLnNldHVwU3RlcHNbMF1cbiAgICAgICAgKSxcbiAgICAgICAgSnNvblBhdGNoLmFkZChcbiAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfZ29sYW5nL3N0ZXBzLzE3L2Vudi9HSVRIVUJfVE9LRU5cIixcbiAgICAgICAgICAvLyBHaXRIdWIgQXBwIGluc3RhbGxhdGlvbiB0b2tlbnMgKGdoc18qKSByZXF1aXJlIHRoZSBgeC1hY2Nlc3MtdG9rZW5gXG4gICAgICAgICAgLy8gdXNlcm5hbWUgd2hlbiB1c2VkIGluIEhUVFBTIGdpdCBVUkxzLiBwdWJsaWIgcmVuZGVycyB0aGlzIGVudiB2YXJcbiAgICAgICAgICAvLyB2ZXJiYXRpbSBpbnRvIGBodHRwczovLyR7R0lUSFVCX1RPS0VOfUBnaXRodWIuY29tLy4uLmAsIHNvIHdpdGhvdXRcbiAgICAgICAgICAvLyB0aGUgcHJlZml4IHRoZSBwdXNoIDQwMXMgYW5kIGZhbGxzIGJhY2sgdG8gYSBUVFkgcGFzc3dvcmQgcHJvbXB0LlxuICAgICAgICAgIGB4LWFjY2Vzcy10b2tlbjoke2dvUHVibGlzaFRva2VuLnRva2VuUmVmfWBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIHBhdGNoR29QdWJsaXNoVG9Vc2VBcHBUb2tlbihyZWxlYXNlV29ya2Zsb3cpO1xuICAgIH1cblxuICAgIC8vIEZpeCBtYXZlbiBpc3N1ZSAoaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvcHVibGliL3B1bGwvNzc3KVxuICAgIC8vXG4gICAgLy8gVGhlIHB1Ymxpc2ggam9icyBkb24ndCBleGlzdCB1bnRpbCBSZWxlYXNlIHN5bnRoZXNpemVzLCBhbmQgdGhlIHN0ZXAncyBpbmRleFxuICAgIC8vIHdpdGhpbiByZWxlYXNlX21hdmVuIHNoaWZ0cyB3aGVuZXZlciB0aGUgam9iIGdhaW5zIGEgc3RlcCAtLSBzd2l0Y2hpbmcgdGhlXG4gICAgLy8gcGFja2FnZSBtYW5hZ2VyIHRvIHBucG0gaW5zZXJ0cyBhIFwiU2V0dXAgcG5wbVwiIHN0ZXAsIHdoaWNoIHNpbGVudGx5IG1vdmVkIHRoZVxuICAgIC8vIG9sZCBoYXJkY29kZWQgL3N0ZXBzLzEwLyBvbnRvIGEgc3RlcCB3aXRoIG5vIGVudiBhdCBhbGwuIFJlc29sdmUgdGhlIHN0ZXAgYnlcbiAgICAvLyB3aGF0IGl0IHJ1bnMsIGluIHByZVN5bnRoZXNpemUsIHNvIG5laXRoZXIgcHJvYmxlbSBjYW4gcmVjdXIuXG4gICAgbmV3IE1hdmVuT3B0c1BhdGNoKHRoaXMpO1xuXG4gICAgdGhpcy5waW5HaXRodWJBY3Rpb25WZXJzaW9ucyhnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyk7XG5cbiAgICBuZXcgQ2RrdGZDb25maWcodGhpcywge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIHByb3ZpZGVyVmVyc2lvbixcbiAgICAgIGNka3RuVmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIHBhY2thZ2VJbmZvLFxuICAgICAgZ2l0aHViTmFtZXNwYWNlLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgICAgaXNEZXByZWNhdGVkOiAhIWlzRGVwcmVjYXRlZCxcbiAgICB9KTtcbiAgICBuZXcgQ3VzdG9taXplZExpY2Vuc2UodGhpcywgb3B0aW9ucy5jcmVhdGlvblllYXIsIG9wdGlvbnMubGljZW5zZWUpO1xuICAgIG5ldyBHaXRodWJJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9BcHByb3ZlKHRoaXMpO1xuICAgIG5ldyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9tZXJnZSh0aGlzKTtcbiAgICBuZXcgTG9ja0lzc3Vlcyh0aGlzKTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBjb25zdCB1cGdyYWRlU2NyaXB0ID0gbmV3IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlKHRoaXMsIHtcbiAgICAgICAgcHJvdmlkZXJWZXJzaW9uLFxuICAgICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IFByb3ZpZGVyVXBncmFkZSh0aGlzLCB7XG4gICAgICAgIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiB1cGdyYWRlU2NyaXB0LnBhdGgsXG4gICAgICAgIHdvcmtmbG93UnVuc09uLFxuICAgICAgICBub2RlSGVhcFNpemU6IG1heE9sZFNwYWNlU2l6ZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IEFsZXJ0T3BlblBycyh0aGlzLCB7XG4gICAgICAgIHNsYWNrV2ViaG9va1VybDogXCIke3sgc2VjcmV0cy5BTEVSVF9QUlNfU0xBQ0tfV0VCSE9PS19VUkwgfX1cIixcbiAgICAgICAgcmVwb3NpdG9yeSxcbiAgICAgIH0pO1xuICAgICAgbmV3IERlcGVuZGFib3QodGhpcyk7XG4gICAgfVxuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIFwiLmdpdGh1Yi9DT0RFT1dORVJTXCIsIHtcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIFwiIyBUaGVzZSBvd25lcnMgd2lsbCBiZSB0aGUgZGVmYXVsdCBvd25lcnMgZm9yIGV2ZXJ5dGhpbmcgaW4gXCIsXG4gICAgICAgIFwiIyB0aGUgcmVwby4gVW5sZXNzIGEgbGF0ZXIgbWF0Y2ggdGFrZXMgcHJlY2VkZW5jZSwgXCIsXG4gICAgICAgIFwiIyB0aGV5IHdpbGwgYmUgcmVxdWVzdGVkIGZvciByZXZpZXcgd2hlbiBzb21lb25lIG9wZW5zIGEgXCIsXG4gICAgICAgIFwiIyBwdWxsIHJlcXVlc3QuXCIsXG4gICAgICAgIFwiKiAgICAgICBAY2RrdG4taW8vdGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBuZXcgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUodGhpcywge30pO1xuXG4gICAgICBjb25zdCByZWxlYXNlVGFzayA9IHRoaXMudGFza3MudHJ5RmluZChcInJlbGVhc2VcIikhO1xuICAgICAgdGhpcy5yZW1vdmVUYXNrKFwicmVsZWFzZVwiKTtcbiAgICAgIHRoaXMuYWRkVGFzayhcInJlbGVhc2VcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcmVsZWFzZVRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgIHN0ZXBzOiByZWxlYXNlVGFzay5zdGVwcyxcbiAgICAgICAgZW52OiAocmVsZWFzZVRhc2sgYXMgYW55KS5fZW52LFxuICAgICAgICBjb25kaXRpb246IFwibm9kZSAuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2UuanNcIixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1yZWxlYXNlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHJlbGVhc2VUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdGVwczogcmVsZWFzZVRhc2suc3RlcHMsXG4gICAgICAgIGVudjogKHJlbGVhc2VUYXNrIGFzIGFueSkuX2VudixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZWxlYXNlSm9iU3RlcHM6IGFueVtdID0gKFxuICAgICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKSBhcyBhbnlcbiAgICAgICkuam9icy5yZWxlYXNlLnN0ZXBzO1xuICAgICAgY29uc3QgZ2l0UmVtb3RlSm9iID0gcmVsZWFzZUpvYlN0ZXBzLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gXCJnaXRfcmVtb3RlXCIpO1xuICAgICAgYXNzZXJ0KFxuICAgICAgICBnaXRSZW1vdGVKb2IsXG4gICAgICAgIFwiZ2l0X3JlbW90ZSBzdGVwIG5vdCBmb3VuZCBpbiByZWxlYXNlIHdvcmtmbG93LCBwbGVhc2UgY2hlY2sgaWYgdGhlIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICAgICk7XG4gICAgICAvLyBXZSB3cmFwIHdoYXRldmVyIHByb2plbiBnZW5lcmF0ZWQgaW4gYSBzaG91bGQtcmVsZWFzZSBndWFyZCByYXRoZXIgdGhhblxuICAgICAgLy8gcmV3cml0aW5nIGl0LCBzbyBhc3NlcnQgb25seSB0aGUgdHdvIHByb3BlcnRpZXMgdGhlIHdyYXBwaW5nIGFjdHVhbGx5XG4gICAgICAvLyBkZXBlbmRzIG9uLiBQaW5uaW5nIHRvIHByb2plbidzIGV4YWN0IHdvcmRpbmcgYnJva2UgdGhlIHdob2xlIGZsZWV0XG4gICAgICAvLyBvbmNlIGFscmVhZHk6IHByb2plbiAwLjEwMSBjaGFuZ2VkIGAke3sgZ2l0aHViLnJlZiB9fWAgdG8gYFwiJEdJVEhVQl9SRUZcImBcbiAgICAgIC8vIGFuZCBldmVyeSBwcm92aWRlciByZXBvJ3MgdXBncmFkZS1tYWluIHN0YXJ0ZWQgZmFpbGluZyBhdCBzeW50aC5cbiAgICAgIGFzc2VydChcbiAgICAgICAgdHlwZW9mIGdpdFJlbW90ZUpvYi5ydW4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICBnaXRSZW1vdGVKb2IucnVuLmluY2x1ZGVzKFwiZ2l0IGxzLXJlbW90ZVwiKSAmJlxuICAgICAgICAgIGdpdFJlbW90ZUpvYi5ydW4uaW5jbHVkZXMoXCJsYXRlc3RfY29tbWl0PVwiKSxcbiAgICAgICAgYGdpdF9yZW1vdGUgc3RlcCBubyBsb25nZXIgc2V0cyBsYXRlc3RfY29tbWl0IGZyb20gZ2l0IGxzLXJlbW90ZSwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzISBHb3Q6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZ2l0UmVtb3RlSm9iLnJ1blxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgICAvLyBGb2xkICpldmVyeSogbGluZTogcHJvamVuIGVtaXRzIHR3byB0b2RheSwgYnV0IFN0cmluZyNyZXBsYWNlIHdpdGggYVxuICAgICAgLy8gc3RyaW5nIHBhdHRlcm4gb25seSBmb2xkcyB0aGUgZmlyc3QgaWYgdGhhdCBldmVyIGdyb3dzLlxuICAgICAgY29uc3QgcHJldmlvdXNDb21tYW5kID0gZ2l0UmVtb3RlSm9iLnJ1bi5zcGxpdChcIlxcblwiKS5qb2luKFwiICYmIFwiKTtcblxuICAgICAgY29uc3QgY2FuY2VsQ29tbWFuZCA9XG4gICAgICAgICdlY2hvIFwibGF0ZXN0X2NvbW1pdD1yZWxlYXNlX2NhbmNlbGxlZFwiID4+ICRHSVRIVUJfT1VUUFVUJzsgLy8gdGhpcyBjYW5jZWxzIHRoZSByZWxlYXNlIHZpYSBhIG5vbi1tYXRjaGluZyBTSEE7XG4gICAgICBnaXRSZW1vdGVKb2IucnVuID0gYG5vZGUgLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlLmpzICYmICgke3ByZXZpb3VzQ29tbWFuZH0pIHx8ICR7Y2FuY2VsQ29tbWFuZH1gO1xuICAgICAgZ2l0UmVtb3RlSm9iLm5hbWUgKz1cbiAgICAgICAgXCIgb3IgY2FuY2VsIHZpYSBmYWtpbmcgYSBTSEEgaWYgcmVsZWFzZSB3YXMgY2FuY2VsbGVkXCI7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhbGVXb3JrZmxvdyA9IHRoaXMudHJ5RmluZE9iamVjdEZpbGUoXCIuZ2l0aHViL3dvcmtmbG93cy9zdGFsZS55bWxcIik7XG4gICAgc3RhbGVXb3JrZmxvdz8uYWRkT3ZlcnJpZGUoXCJvbi5zY2hlZHVsZVwiLCBbXG4gICAgICB7XG4gICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7IHByb2plY3Q6IHRoaXMsIG1heEhvdXI6IDQsIGhvdXJPZmZzZXQ6IDEgfSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgdXBncmFkZVdvcmtmbG93ID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZShcbiAgICAgIFwiLmdpdGh1Yi93b3JrZmxvd3MvdXBncmFkZS1tYWluLnltbFwiXG4gICAgKTtcbiAgICB1cGdyYWRlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwib24uc2NoZWR1bGVcIiwgW1xuICAgICAge1xuICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oe1xuICAgICAgICAgIHByb2plY3Q6IHRoaXMsXG4gICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICBob3VyT2Zmc2V0OiAxLFxuICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5XZWVrbHksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIC8vIFN1Ym1vZHVsZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb25cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiQVBJLm1kXCIpOyAvLyBpZ25vcmUgdGhlIG9sZCBmaWxlLCB3ZSBub3cgZ2VuZXJhdGUgaXQgaW4gdGhlIGRvY3MgZm9sZGVyXG4gICAgdGhpcy5hZGREZXZEZXBzKFwianNpaS1kb2NnZW5AXjEwLjIuM1wiKTtcbiAgICBpZiAoanNpaVZlcnNpb24pIHtcbiAgICAgIC8vIE5PVEU6IHRoZSBiZWxvdyBpcyBtYWtpbmcgYSBicm9hZCBhc3N1bXB0aW9uIHRoYXQgeW91J3JlIHBhc3NpbmcgYSByYW5nZSBsaWtlIFwifjUuMy4wXCIgdG8ganNpaVZlcnNpb25cbiAgICAgIC8vIElmIHlvdSB1c2UgdGhhdCBmaWVsZCB0byBwYXNzIGEgdmVyeSBzcGVjaWZpYyB2ZXJzaW9uIChlLmcuIFwiNS4zLjExXCIpIHRoZW4gdGhpcyBtaWdodCBicmVha1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFAJHtqc2lpVmVyc2lvbn1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLmFkZFRhc2soXCJkb2NnZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHByb2plY3RcIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBbXG4gICAgICAgICAgICBcInJtIC1yZiBkb2NzXCIsXG4gICAgICAgICAgICBcInJtIC1mIEFQSS5tZFwiLFxuICAgICAgICAgICAgXCJta2RpciBkb2NzXCIsXG4gICAgICAgICAgICBcImpzaWktZG9jZ2VuIC0tc3BsaXQtYnktc3VibW9kdWxlIC1sIHR5cGVzY3JpcHQgLWwgcHl0aG9uIC1sIGphdmEgLWwgY3NoYXJwIC1sIGdvXCIsXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBuaWNlIHdheSB0byB0ZWxsIGpzaWktZG9jZ2VuIHRvIGdlbmVyYXRlIGRvY3MgaW50byBhIGZvbGRlciBzbyBJIHdlbnQgdGhpcyByb3V0ZVxuICAgICAgICAgICAgXCJtdiAqLioubWQgZG9jc1wiLFxuICAgICAgICAgICAgLy8gU29tZSBwYXJ0IG9mIHRoZSBkb2N1bWVudGF0aW9uIGFyZSB0b28gbG9uZywgd2UgbmVlZCB0byB0cnVuY2F0ZSB0aGVtIHRvIH4xME1CXG4gICAgICAgICAgICBcImNkIGRvY3NcIixcbiAgICAgICAgICAgIFwibHMgLi8gfCB4YXJncyBzZWQgLWkgJzE1MDAwMCwkIGQnICQxXCIsXG4gICAgICAgICAgXS5qb2luKFwiICYmIFwiKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24oZG9jZ2VuKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5pbmNsdWRlKGAvZG9jcy8qLm1kYCk7XG4gICAgdGhpcy5hbm5vdGF0ZUdlbmVyYXRlZChgL2RvY3MvKi5tZGApO1xuXG4gICAgLy8gU2V0dGluZyB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gc28gdGhlIGdvbGFuZyBkb2NzIGhhdmUgdGhlIGNvcnJlY3QgdmVyc2lvblxuICAgIGNvbnN0IHVuY29uZGl0aW9uYWxCdW1wID0gdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1idW1wXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gdG8gdGhlIGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiQ2xlYXIgdGhlIGNoYW5nZWxvZyBzbyB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHB1Ymxpc2hlZCB0d2ljZVwiLFxuICAgICAgICAgIGV4ZWM6IFwicm0gLWYgJENIQU5HRUxPR1wiLFxuICAgICAgICB9LFxuICAgICAgICAvLyBwcm9qZW4gMC4xMDEgcmVtb3ZlZCB0aGUgY29tYmluZWQgYHJlbGVhc2UvYnVtcC12ZXJzaW9uYCBidWlsdGluIGFuZCBzcGxpdFxuICAgICAgICAvLyBpdCBpbnRvIHJlc29sdmUtbGF0ZXN0LXRhZyAtPiBzdWdnZXN0LXZlcnNpb24tYnVtcCAtPiBhcHBseS12ZXJzaW9uLWJ1bXAsXG4gICAgICAgIC8vIGhhbmRpbmcgcmVzdWx0cyBmb3J3YXJkIHZpYSBzdGVwIGBvdXRwdXRFbnZgIGNhcHR1cmVzLiBhcHBseSBvbiBpdHMgb3duXG4gICAgICAgIC8vIHRocm93cyBcIm5laXRoZXIgQlVNUF9UWVBFIG5vciBTVUdHRVNURURfQlVNUCBpcyBzZXRcIiwgc28gYWxsIHRocmVlIGFyZVxuICAgICAgICAvLyBuZWVkZWQuIE1pcnJvcnMgcHJvamVuJ3Mgb3duIGJ1bXAgdGFzayAobGliL3ZlcnNpb24uanM6MTI4LTE0NCkuXG4gICAgICAgIHsgYnVpbHRpbjogXCJyZWxlYXNlL3Jlc29sdmUtbGF0ZXN0LXRhZ1wiLCBvdXRwdXRFbnY6IFwiTEFURVNUX1RBR1wiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBidWlsdGluOiBcInJlbGVhc2Uvc3VnZ2VzdC12ZXJzaW9uLWJ1bXBcIixcbiAgICAgICAgICBvdXRwdXRFbnY6IFwiU1VHR0VTVEVEX0JVTVBcIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBidWlsdGluOiBcInJlbGVhc2UvYXBwbHktdmVyc2lvbi1idW1wXCIgfSxcbiAgICAgIF0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgT1VURklMRTogXCJwYWNrYWdlLmpzb25cIixcbiAgICAgICAgQ0hBTkdFTE9HOiBcImRpc3QvY2hhbmdlbG9nLm1kXCIsXG4gICAgICAgIEJVTVBGSUxFOiBcImRpc3QvdmVyc2lvbi50eHRcIixcbiAgICAgICAgUkVMRUFTRVRBRzogXCJkaXN0L3JlbGVhc2V0YWcudHh0XCIsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogXCJcIixcbiAgICAgICAgTUlOX01BSk9SOiBTdHJpbmcoTUlOX01BSk9SX1ZFUlNJT04pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLnNwYXduKHVuY29uZGl0aW9uYWxCdW1wKTtcbiAgICAvLyBUbyBidW1wIGNvcnJlY3RseSB3ZSBuZWVkIHRvIGhhdmUgdGhlIGNvbXBsZXRlbHkgY2xvbmVkIHJlcG9cbiAgICAodGhpcy5idWlsZFdvcmtmbG93IGFzIGFueSkud29ya2Zsb3cuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwiam9icy5idWlsZC5zdGVwcy4wLndpdGguZmV0Y2gtZGVwdGhcIixcbiAgICAgIDBcbiAgICApO1xuICAgIC8vIFVuZG8gdGhlIGNoYW5nZXMgYWZ0ZXIgY29tcGlsYXRpb25cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3c/LmFkZFBvc3RCdWlsZFN0ZXBzKHtcbiAgICAgIG5hbWU6IFwiUmV2ZXJ0IHBhY2thZ2UuanNvbiB2ZXJzaW9uIGJ1bXBcIixcbiAgICAgIHJ1bjogXCJnaXQgY2hlY2tvdXQgcGFja2FnZS5qc29uXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgQ29weXJpZ2h0SGVhZGVycyh0aGlzKTtcbiAgICBuZXcgRGVwcmVjYXRlUGFja2FnZXModGhpcywge1xuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgcGFja2FnZUluZm8sXG4gICAgICBpc0RlcHJlY2F0ZWQ6ICEhaXNEZXByZWNhdGVkLFxuICAgIH0pO1xuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICAvLyBGb2xkcyB0aGUgbWFudWFsIGZvcmNlLXJlbGVhc2UgYmVoYXZpb3VyIGludG8gcmVsZWFzZS55bWwgYmVoaW5kIGFcbiAgICAgIC8vIHdvcmtmbG93X2Rpc3BhdGNoIHRyaWdnZXIsIHNvIG5wbS9QeVBJIE9JREMgdHJ1c3RzIGEgc2luZ2xlIHdvcmtmbG93LlxuICAgICAgbmV3IEZvcmNlUmVsZWFzZSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBpbkdpdGh1YkFjdGlvblZlcnNpb25zKHBpbm5lZFZlcnNpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgLy8gVXNlIHBpbm5lZCB2ZXJzaW9ucyBvZiBnaXRodWIgYWN0aW9uc1xuICAgIE9iamVjdC5lbnRyaWVzKHBpbm5lZFZlcnNpb25zKS5mb3JFYWNoKChbbmFtZSwgc2hhXSkgPT4ge1xuICAgICAgdGhpcy5naXRodWI/LmFjdGlvbnMuc2V0KG5hbWUsIGAke25hbWV9QCR7c2hhfWApO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogU2V0cyBNQVZFTl9PUFRTIG9uIHRoZSBtYXZlbiBwdWJsaXNoIHN0ZXAgYW5kIGRyb3BzIHRoZSB1bnVzZWRcbiAqIE1BVkVOX1NUQUdJTkdfUFJPRklMRV9JRCwgcmVzb2x2aW5nIHRoZSBzdGVwIGJ5IHRoZSBjb21tYW5kIGl0IHJ1bnMuXG4gKlxuICogUnVucyBpbiBwcmVTeW50aGVzaXplIGJlY2F1c2UgdGhlIHB1Ymxpc2ggam9icyBhcmUgYWRkZWQgYnkgUmVsZWFzZSBkdXJpbmdcbiAqIHN5bnRoZXNpcywgc28gdGhlIGpvYiBkb2VzIG5vdCBleGlzdCB5ZXQgYXQgY29uc3RydWN0aW9uIHRpbWUuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9wdWJsaWIvcHVsbC83NzdcbiAqL1xuY2xhc3MgTWF2ZW5PcHRzUGF0Y2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCB3b3JrZmxvdyA9IGdpdGh1Yi5HaXRIdWIub2YodGhpcy5wcm9qZWN0KT8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKTtcbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdIHwgdW5kZWZpbmVkID0gKHdvcmtmbG93IGFzIGFueSk/LmpvYnM/LnJlbGVhc2VfbWF2ZW5cbiAgICAgID8uc3RlcHM7XG4gICAgYXNzZXJ0KFxuICAgICAgc3RlcHMsXG4gICAgICBcInJlbGVhc2VfbWF2ZW4gam9iIG5vdCBmb3VuZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSBNQVZFTl9PUFRTIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICApO1xuICAgIGNvbnN0IHN0ZXAgPSBzdGVwcy5maW5kKChzKSA9PiBzLnJ1bj8uaW5jbHVkZXMoXCJwdWJsaWItbWF2ZW5cIikpO1xuICAgIGFzc2VydChcbiAgICAgIHN0ZXA/LmVudixcbiAgICAgIFwibm8gcHVibGliLW1hdmVuIHN0ZXAgd2l0aCBhbiBlbnYgYmxvY2sgaW4gcmVsZWFzZV9tYXZlbiwgcGxlYXNlIGNoZWNrIGlmIHRoZSBNQVZFTl9PUFRTIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICApO1xuICAgIC8vIE11dGF0ZSB0aGUgc3RlcCBkaXJlY3RseSByYXRoZXIgdGhhbiBKc29uUGF0Y2gtaW5nIHRoZSByZW5kZXJlZCBmaWxlOiB0aGVcbiAgICAvLyBwdWJsaXNoZXIgcHJlcGVuZHMgdG9vbC1zZXR1cCBzdGVwcyBhdCByZW5kZXIgdGltZSwgc28gaW4tbWVtb3J5IGluZGljZXMgZG9cbiAgICAvLyBub3QgbWF0Y2ggcmVuZGVyZWQgb25lcywgYW5kIGEgSlNPTiBQb2ludGVyIHdvdWxkIGhhdmUgdG8gZW5jb2RlIHRoYXQgb2Zmc2V0LlxuICAgIC8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MDE1Mzk2Mi9uZXh1cy1zdGFnaW5nLW1hdmVuLXBsdWdpbi1tYXZlbi1kZXBsb3ktZmFpbGVkLWFuLWFwaS1pbmNvbXBhdGliaWxpdHktd2FzLWVuY29cbiAgICBzdGVwLmVudi5NQVZFTl9PUFRTID1cbiAgICAgIFwiLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEudXRpbD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS5sYW5nLnJlZmxlY3Q9QUxMLVVOTkFNRUQgLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEudGV4dD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmRlc2t0b3AvamF2YS5hd3QuZm9udD1BTEwtVU5OQU1FRFwiO1xuICAgIC8vIFRoaXMgaXMgbm8gbG9uZ2VyIHVzZWQuXG4gICAgZGVsZXRlIHN0ZXAuZW52Lk1BVkVOX1NUQUdJTkdfUFJPRklMRV9JRDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmV0dHlBc3NlcnRFcXVhbDxUPihzdWJqZWN0OiBULCBleHBlY3RlZDogVCwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQge1xuICBpZiAoc3ViamVjdCAhPT0gZXhwZWN0ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHttZXNzYWdlID8/IFwiQXNzZXJ0aW9uIGZhaWxlZFwifTogZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgZXhwZWN0ZWRcbiAgICAgICl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShzdWJqZWN0KX1gXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
637
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBEQUEwRDtBQUMxRCxpQ0FBa0M7QUFDbEMsNkNBQXlDO0FBQ3pDLG1DQU9nQjtBQUVoQixzREFJK0I7QUFDL0IscURBQWdEO0FBQ2hELGlEQUE2QztBQUM3QywrRUFBeUU7QUFDekUsMkNBQXdDO0FBQ3hDLGlEQUE2QztBQUM3QywyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELDZDQUEwQztBQUMxQyw2REFBeUQ7QUFDekQsbURBQStDO0FBQy9DLG1EQUErQztBQUMvQywrQ0FBMkM7QUFFM0MseURBQXFEO0FBQ3JELHFFQUEwRTtBQUMxRSw2REFBbUU7QUFDbkUsb0RBQWtFO0FBRWxFLG1IQUFtSDtBQUNuSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUU1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLDJCQUEyQixHQUFHO0lBQ2xDLHlCQUF5QjtJQUN6QixPQUFPO0lBQ1AsV0FBVztDQUNaLENBQUM7QUE0RkYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFvQixFQUFVLEVBQUU7SUFDcEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxHQUFHLFlBQVksV0FBVztRQUM1QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRztJQUNqQyxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLDJCQUEyQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDbEYsdUJBQXVCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM5RSxzQkFBc0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQzdFLGtC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Q1QsaUhBQWlILENBQ2xILENBQUM7UUFDRiw0RUFBNEU7UUFDNUUsOEVBQThFO1FBQzlFLGdGQUFnRjtRQUNoRixrSUFBa0k7UUFDbEksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVO1lBQ2pCLGdNQUFnTSxDQUFDO1FBQ25NLDBCQUEwQjtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxPQUFVLEVBQUUsUUFBVyxFQUFFLE9BQWdCO0lBQ3JFLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxPQUFPLElBQUksa0JBQWtCLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FDMUQsUUFBUSxDQUNULFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN2QyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcbmltcG9ydCB7IHBhc2NhbENhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT2JqZWN0RmlsZSxcbiAgVGV4dEZpbGUsXG4gIGNkayxcbiAgZ2l0aHViLFxuICBKc29uUGF0Y2gsXG59IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQge1xuICBOb2RlUGFja2FnZU1hbmFnZXIsXG4gIFBucG1Xb3Jrc3BhY2VZYW1sU2NoZW1hTm9kZUxpbmtlcixcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBBbGVydE9wZW5QcnMgfSBmcm9tIFwiLi9hbGVydC1vcGVuLXByc1wiO1xuaW1wb3J0IHsgQXV0b0FwcHJvdmUgfSBmcm9tIFwiLi9hdXRvLWFwcHJvdmVcIjtcbmltcG9ydCB7IEF1dG9DbG9zZUNvbW11bml0eUlzc3VlcyB9IGZyb20gXCIuL2F1dG8tY2xvc2UtY29tbXVuaXR5LWlzc3Vlc1wiO1xuaW1wb3J0IHsgQXV0b21lcmdlIH0gZnJvbSBcIi4vYXV0b21lcmdlXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuaW1wb3J0IHsgQ29weXJpZ2h0SGVhZGVycyB9IGZyb20gXCIuL2NvcHlyaWdodC1oZWFkZXJzXCI7XG5pbXBvcnQgeyBDdXN0b21pemVkTGljZW5zZSB9IGZyb20gXCIuL2N1c3RvbWl6ZWQtbGljZW5zZVwiO1xuaW1wb3J0IHsgRGVwZW5kYWJvdCB9IGZyb20gXCIuL2RlcGVuZGFib3RcIjtcbmltcG9ydCB7IERlcHJlY2F0ZVBhY2thZ2VzIH0gZnJvbSBcIi4vZGVwcmVjYXRlLXBhY2thZ2VzXCI7XG5pbXBvcnQgeyBGb3JjZVJlbGVhc2UgfSBmcm9tIFwiLi9mb3JjZS1yZWxlYXNlXCI7XG5pbXBvcnQgeyBHaXRodWJJc3N1ZXMgfSBmcm9tIFwiLi9naXRodWItaXNzdWVzXCI7XG5pbXBvcnQgeyBMb2NrSXNzdWVzIH0gZnJvbSBcIi4vbG9jay1pc3N1ZXNcIjtcbmltcG9ydCB7IFBhY2thZ2VJbmZvIH0gZnJvbSBcIi4vcGFja2FnZS1pbmZvXCI7XG5pbXBvcnQgeyBQcm92aWRlclVwZ3JhZGUgfSBmcm9tIFwiLi9wcm92aWRlci11cGdyYWRlXCI7XG5pbXBvcnQgeyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZSB9IGZyb20gXCIuL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzXCI7XG5pbXBvcnQgeyBTaG91bGRSZWxlYXNlU2NyaXB0RmlsZSB9IGZyb20gXCIuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2VcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tQ3JvbiwgU2NoZWR1bGUgfSBmcm9tIFwiLi91dGlsL3JhbmRvbS1jcm9uXCI7XG5cbi8vIGVuc3VyZSBuZXcgcHJvamVjdHMgc3RhcnQgd2l0aCAxLjAuMCBzbyB0aGF0IGV2ZXJ5IGZvbGxvd2luZyBicmVha2luZyBjaGFuZ2UgbGVhZHMgdG8gYW4gaW5jcmVhc2VkIG1ham9yIHZlcnNpb25cbmNvbnN0IE1JTl9NQUpPUl9WRVJTSU9OID0gMTtcblxuLyoqXG4gKiBGaXJzdC1wYXJ0eSBwYWNrYWdlcyB0aGF0IGFyZSBleGVtcHQgZnJvbSB0aGUgZGVwZW5kZW5jeS11cGdyYWRlIGNvb2xkb3duLlxuICpcbiAqIFRoZSBgY29vbGRvd246IDRgIGJlbG93IHJlYWNoZXMgdGhlIGdlbmVyYXRlZCB1cGdyYWRlIHRhc2sgYXNcbiAqIGBwbnBtIHVwZGF0ZSAtLWNvbmZpZy5taW5pbXVtLXJlbGVhc2UtYWdlPTU3NjBgLCB3aGljaCBnYXRlcyAqZXZlcnkqIHBhY2thZ2VcbiAqIC0tIGluY2x1ZGluZyB0aGUgb25lcyB3ZSBwdWJsaXNoIG91cnNlbHZlcy4gVGhhdCBpcyBiYWNrd2FyZHMgZm9yIHRob3NlOiBhXG4gKiBmaXggcmVsZWFzZWQgaGVyZSBjYW5ub3QgcmVhY2ggdGhlIGZsZWV0IGZvciBmb3VyIGRheXMsIHdoaWNoIGlzIGV4YWN0bHkgdGhlXG4gKiB3aW5kb3cgaW4gd2hpY2ggd2UgbmVlZCBpdCB0byBtb3ZlLiBUaGUgY29vbGRvd24gZXhpc3RzIHRvIGdpdmUgYSBjb21wcm9taXNlZFxuICogdGhpcmQtcGFydHkgcmVsZWFzZSB0aW1lIHRvIGJlIGZsYWdnZWQ7IGZvciBwYWNrYWdlcyBwdWJsaXNoZWQgZnJvbSByZXBvcyB3ZVxuICogb3duLCB3aXRoIHRydXN0ZWQgcHVibGlzaGluZyBhbmQgYW4gYXVkaXQgZ2F0ZSBvbiB0aGVpciBvd24gcmVsZWFzZXMsIGl0IGJ1eXNcbiAqIG5vdGhpbmcgdGhhdCB3ZSBkbyBub3QgYWxyZWFkeSBjb250cm9sLlxuICpcbiAqIGBjZGt0bmAgYW5kIGBjZGt0bi1jbGlgIGFyZSBoZXJlIGZvciB0aGUgc2FtZSByZWFzb246IGEgcHJvdmlkZXIgcmVwbyBoYXMgdG9cbiAqIGJlIGFibGUgdG8gcmVidWlsZCBhZ2FpbnN0IGEgZnJlc2hseSByZWxlYXNlZCBDREtUTiwgZXNwZWNpYWxseSBhZnRlciBhIG1ham9yXG4gKiBvbmUuIFRoZXkgYXJlIGFsc28gdmVyc2lvbi1waW5uZWQgdG9nZXRoZXIgYnkgYENka3RmQ29uZmlnYCwgc28gZXhjbHVkaW5nIG9uZVxuICogd2l0aG91dCB0aGUgb3RoZXIgd291bGQgb25seSBoYWxmLWFwcGx5LlxuICpcbiAqIHBucG0gaG9ub3VycyB0aGlzIGZyb20gYHBucG0td29ya3NwYWNlLnlhbWxgIGV2ZW4gdGhvdWdoIGBtaW5pbXVtUmVsZWFzZUFnZWBcbiAqIGl0c2VsZiBhcnJpdmVzIG9uIHRoZSBjb21tYW5kIGxpbmU7IGl0IG1hdGNoZXMgb24gcGFja2FnZSBuYW1lIGFuZCBhcHBsaWVzIHRvXG4gKiBldmVyeSB2ZXJzaW9uIG9mIHRoYXQgcGFja2FnZS4gRXZlcnl0aGluZyBub3QgbGlzdGVkIGhlcmUgc3RheXMgZ2F0ZWQuXG4gKi9cbmNvbnN0IE1JTklNVU1fUkVMRUFTRV9BR0VfRVhDTFVERSA9IFtcbiAgXCJAY2RrdG4vcHJvdmlkZXItcHJvamVjdFwiLFxuICBcImNka3RuXCIsXG4gIFwiY2RrdG4tY2xpXCIsXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIENka3RuUHJvdmlkZXJQcm9qZWN0T3B0aW9ucyBleHRlbmRzIGNkay5Kc2lpUHJvamVjdE9wdGlvbnMge1xuICByZWFkb25seSB1c2VDdXN0b21HaXRodWJSdW5uZXI/OiBib29sZWFuO1xuICAvKipcbiAgICogVjggaGVhcCBjZWlsaW5nIGluIE1pQiwgd3JpdHRlbiBhcyBgLS1tYXgtb2xkLXNwYWNlLXNpemVgIGludG8gdGhlIGdsb2JhbFxuICAgKiBgTk9ERV9PUFRJT05TYCBpbiBgLnByb2plbi90YXNrcy5qc29uYC5cbiAgICpcbiAgICogTXVzdCBiZSBhIHBvc2l0aXZlIHNhZmUgaW50ZWdlci4gTm9kZSByZWZ1c2VzIHRvIHN0YXJ0IG9uIGEgbWFsZm9ybWVkXG4gICAqIHZhbHVlIChgLS1tYXgtb2xkLXNwYWNlLXNpemU9MS41YCBhbmQgYD1OYU5gIGFyZSBib3RoIHJlamVjdGVkIGJlZm9yZSBhbnlcbiAgICogc2NyaXB0IHJ1bnMpLCBhbmQgYDBgIHJlc3RvcmVzIFY4J3Mgb3duIGRlZmF1bHQgcmF0aGVyIHRoYW4gYXBwbHlpbmcgYVxuICAgKiBjZWlsaW5nIC0tIHNvIGFuIGludmFsaWQgdmFsdWUgaGVyZSB3b3VsZCBicmVhayBldmVyeSB0YXNrIGluIHRoZVxuICAgKiBnZW5lcmF0ZWQgcmVwbywgZmFyIGZyb20gdGhpcyBjYWxsIHNpdGUuIEl0IGlzIHZhbGlkYXRlZCBhdCBzeW50aCB0aW1lLlxuICAgKlxuICAgKiBMZWF2ZSB1bnNldCB0byB0YWtlIHRoZSBkZWZhdWx0IGZvciB0aGUgcnVubmVyIGNsYXNzOlxuICAgKiBgREVGQVVMVF9IRUFQX01CX0NVU1RPTV9SVU5ORVJgICgyODY3Miwgb24gMzJHQiBjdXN0b20gcnVubmVycykgb3JcbiAgICogYERFRkFVTFRfSEVBUF9NQl9IT1NURURfUlVOTkVSYCAoNjY1Niwgb24gN0dCIEdpdEh1Yi1ob3N0ZWQgcnVubmVycykuXG4gICAqXG4gICAqIFNldCBpdCBvbmx5IGZvciBhIHByb3ZpZGVyIHRoYXQgc3RpbGwgT09NcyBvbiB0aGF0IGRlZmF1bHQuXG4gICAqIGAtLW1heC1vbGQtc3BhY2Utc2l6ZWAgaXMgYSAqY2VpbGluZyosIG5vdCBhIHJlc2VydmF0aW9uOiBsb3dlcmluZyBpdFxuICAgKiBjYW5ub3Qgc2xvdyBkb3duIHByb3ZpZGVycyB0aGF0IG5ldmVyIGFwcHJvYWNoIGl0LCBpdCBvbmx5IG1ha2VzIFY4XG4gICAqIGNvbGxlY3QgaGFyZGVyIGluc3RlYWQgb2YgbGV0dGluZyB0aGUga2VybmVsIE9PTS1raWxsIHRoZSBwcm9jZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERFRkFVTFRfSEVBUF9NQl9DVVNUT01fUlVOTkVSIGlmIGB1c2VDdXN0b21HaXRodWJSdW5uZXJgLFxuICAgKiBvdGhlcndpc2UgREVGQVVMVF9IRUFQX01CX0hPU1RFRF9SVU5ORVJcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVIZWFwU2l6ZU1iPzogbnVtYmVyO1xuICByZWFkb25seSB0ZXJyYWZvcm1Qcm92aWRlcjogc3RyaW5nO1xuICByZWFkb25seSBjZGt0blZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgY2RrdG5WZXJzaW9uYCBpbnN0ZWFkLiBUaGlzIGFsaWFzIGlzIHByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBjb25zdHJ1Y3RzVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBmb3JjZU1ham9yVmVyc2lvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0bi1pb1wiXG4gICAqIHByZXZpb3VzbHkgd2FzIFwiY2RrdGZcIi4gVXNlZCBmb3IgR2l0SHViIG9yZyBuYW1lIGFuZCBwYWNrYWdlIHNjb3BpbmdcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yk5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiSW8uQ2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbnVnZXRPcmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuT3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJpby4ke21hdmVuT3JnfVwiXG4gICAqL1xuICByZWFkb25seSBtYXZlbkdyb3VwSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgeWVhciBvZiB0aGUgY3JlYXRpb24gb2YgdGhlIHJlcG9zaXRvcnksIGZvciBjb3B5cmlnaHQgcHVycG9zZXMuXG4gICAqIFdpbGwgZmFsbCBiYWNrIHRvIHRoZSBjdXJyZW50IHllYXIgaWYgbm90IHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0aW9uWWVhcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgcHJlYnVpbHQgcHJvdmlkZXIgaXMgZGVwcmVjYXRlZC5cbiAgICogSWYgdHJ1ZSwgbm8gbmV3IHZlcnNpb25zIHdpbGwgYmUgcHVibGlzaGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZXByZWNhdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGRhdGUgd2hlbiB0aGUgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBkZXByZWNhdGVkLCB0byBiZSB1c2VkIGluIHRoZSBSRUFETUUgdGV4dC5cbiAgICogSWYgbm8gZGF0ZSBpcyBwcm92aWRlZCwgdGhlbiB0aGUgZGF0ZSBvZiB0aGUgYnVpbGQgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBkZXByZWNhdGlvbkRhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcIkhhc2hpQ29ycCwgSW5jLlwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZSB0cnVzdGVkIHB1Ymxpc2hpbmcgZm9yIHB1Ymxpc2hpbmcgdG8gcHlwaS5vcmdcbiAgICogTmVlZHMgdG8gYmUgcHJlLWNvbmZpZ3VyZWQgb24gUHlQSSB0byB3b3JrLlxuICAgKlxuICAgKiBUaGUgYHJlbGVhc2VfcHlwaWAgam9iIGtlZXBzIHdoYXRldmVyIHJ1bm5lciB0aGUgcHJvamVjdCBpcyBjb25maWd1cmVkIGZvci5cbiAgICogUHlQSSwgdW5saWtlIG5wbSwgZG9lcyBub3QgcmVzdHJpY3QgdHJ1c3RlZCBwdWJsaXNoaW5nIHRvIEdpdEh1Yi1ob3N0ZWRcbiAgICogcnVubmVycyAtLSB0cnVzdCBpcyBib3VuZCB0byB0aGUgd29ya2Zsb3cgcmVmLCBhbmQgdGhlIE9JREMgdG9rZW4gaXMgbWludGVkXG4gICAqIGZyb20gQUNUSU9OU19JRF9UT0tFTl9SRVFVRVNUX1VSTCwgd2hpY2ggaXMgYXZhaWxhYmxlIG9uIGFueSBydW5uZXIgd2l0aFxuICAgKiBgaWQtdG9rZW46IHdyaXRlYC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MucHlwaS5vcmcvdHJ1c3RlZC1wdWJsaXNoZXJzL1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBweXBpVHJ1c3RlZFB1Ymxpc2hpbmc/OiBib29sZWFuO1xufVxuXG5jb25zdCBnZXRNYXZlbk5hbWUgPSAocHJvdmlkZXJOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gW1wibnVsbFwiLCBcInJhbmRvbVwiXS5pbmNsdWRlcyhwcm92aWRlck5hbWUpXG4gICAgPyBgJHtwcm92aWRlck5hbWV9X3Byb3ZpZGVyYFxuICAgIDogcHJvdmlkZXJOYW1lLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKTtcbn07XG5cbmNvbnN0IGdpdGh1YkFjdGlvblBpbm5lZFZlcnNpb25zID0ge1xuICBcImFjdGlvbnMvY2hlY2tvdXRcIjogXCJkZTBmYWMyZTQ1MDBkYWJlMDAwOWU2NzIxNGZmNWY1NDQ3Y2U4M2RkXCIsIC8vIHY2LjAuMlxuICBcImFjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RcIjogXCIzZTVmNDViMmNmYjkxNzIwNTRiNDA4N2E0MGU4ZTBiNWE1NDYxZTdjXCIsIC8vIHY4LjAuMVxuICBcImFjdGlvbnMvZ2l0aHViLXNjcmlwdFwiOiBcImVkNTk3NDExZDhmOTI0MDczZjk4ZGZjNWM2NWEyM2EyMzI1ZjM0Y2RcIiwgLy8gdjguMC4wXG4gIFwiYWN0aW9ucy9zZXR1cC1kb3RuZXRcIjogXCJjMmZhMDlmNGJkZTVlYmI5ZDE3NzdjZjI4MjYyYTNlYjNkYjNjZWQ3XCIsIC8vIHY1LjIuMFxuICBcImFjdGlvbnMvc2V0dXAtZ29cIjogXCI0YTM2MDExMjFkZDAxZDE2MjZhMWUyM2UzNzIxMWUzMjU0YzFjMDZjXCIsIC8vIHY2LjQuMFxuICBcImFjdGlvbnMvc2V0dXAtamF2YVwiOiBcImJlNjY2YzJmY2QyN2VjODA5NzAzZGVjNTBlNTA4YzJmZGM3ZjY2NTRcIiwgLy8gdjUuMi4wXG4gIFwiYWN0aW9ucy9zZXR1cC1ub2RlXCI6IFwiNDhiNTVhMDExYmRhOWY1ZDZhZWI0YzJkOWM3MzYyZThkYWU0MDQxZVwiLCAvLyB2Ni40LjBcbiAgXCJhY3Rpb25zL3NldHVwLXB5dGhvblwiOiBcImEzMDlmZjhiNDI2YjU4ZWMwZTJhNDVmMGY4NjlkNDY4ODlkMDI0MDVcIiwgLy8gdjYuMi4wXG4gIFwiYWN0aW9ucy9zdGFsZVwiOiBcImI1ZDQxZDRlMWQ1ZGNlZWExMGU3MTA0Nzg2YjczNjI0YzE4YTE5MGZcIiwgLy8gdjEwLjIuMFxuICBcImFjdGlvbnMvdXBsb2FkLWFydGlmYWN0XCI6IFwiMDQzZmI0NmQxYTkzYzc3YWFlNjU2ZTdjMWM2NGE4NzVkMWZjNmEwYVwiLCAvLyB2Ny4wLjFcbiAgXCJhbWFubm4vYWN0aW9uLXNlbWFudGljLXB1bGwtcmVxdWVzdFwiOlxuICAgIFwiNDhmMjU2Mjg0YmQ0NmNkYWFiMTA0OGMzNzIxMzYwZTgwODMzNWQ1MFwiLCAvLyB2Ni4xLjFcbiAgXCJkZXNzYW50L2xvY2stdGhyZWFkc1wiOiBcIjcyNjZhN2NlNWMxZGYwMWIxYzZkYjg1YmY4Y2Q4NmM3MzdkYWRiZTdcIiwgLy8gdjYuMC4wXG4gIFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiOiBcIjMyNjM4ZGEyZDRlODFkNTZhMDc2NGFhMTU0Nzg4MmZjNGQyMDk2MzZcIiwgLy8gdjEuMS4zXG4gIFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiOiBcIjVlOGRiZjNjNmQ5ZGVhZjQxOTNjYTdhOGZiMjNmMmFjODNiYjZjODVcIiwgLy8gdjQuMC4wXG4gIFwiaW1qb2huYm8vaXNzdWUtYm90XCI6IFwiMzE4OGM2Y2UwNjI0OTIwNjcwOWQzYjFmMjc0ZDBkNGM1YTUyMTYwMVwiLCAvLyB2My40LjVcbiAgXCJwZXRlci1ldmFucy9jcmVhdGUtcHVsbC1yZXF1ZXN0XCI6IFwiNWY2OTc4ZmFmMDg5ZDRkMjBiMDBjNzc2Njk4OWQwNzZiYjJmYzdmMVwiLCAvLyB2OC4xLjFcbiAgXCJzbGFja2FwaS9zbGFjay1naXRodWItYWN0aW9uXCI6IFwiNDVhODhiOTU4MWJmYWIyNTY2ZGM4ODFlMmNkNjZkMzM0ZTYyMWUyY1wiLCAvLyB2My4wLjNcbiAgXCJhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuXCI6IFwiMjk4MjRlNjlmNTQ2MTIxMzNlNzZmN2VhYWM3MjZlZWY2Yzg3NWJhZlwiLCAvLyB2Mi4yLjFcbiAgLy8gcHJvamVuIGVtaXRzIHRoaXMgdW5waW5uZWQgYXMgYHBucG0vYWN0aW9uLXNldHVwQHY1YCBvbmNlIHBhY2thZ2VNYW5hZ2VyIGlzIHBucG1cbiAgXCJwbnBtL2FjdGlvbi1zZXR1cFwiOiBcImZjMDZiYzEyNTdmMzM5ZDFkNWQ4YjNhMTlhOGNhZTUzODhiNTUzMjBcIiwgLy8gdjVcbn07XG5cbmV4cG9ydCBjbGFzcyBDZGt0blByb3ZpZGVyUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka3RuUHJvdmlkZXJQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IGNka3RuVmVyc2lvbiA9IG9wdGlvbnMuY2RrdG5WZXJzaW9uID8/IG9wdGlvbnMuY2RrdGZWZXJzaW9uO1xuICAgIGFzc2VydChcbiAgICAgIGNka3RuVmVyc2lvbixcbiAgICAgIFwiRWl0aGVyIGNka3RuVmVyc2lvbiBvciBjZGt0ZlZlcnNpb24gbXVzdCBiZSBwcm92aWRlZFwiXG4gICAgKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIHRlcnJhZm9ybVByb3ZpZGVyLFxuICAgICAgd29ya2Zsb3dDb250YWluZXJJbWFnZSxcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICBqc2lpVmVyc2lvbixcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgICAgLy8gVE9ETzogQ29uZmlybSBkZWZhdWx0IEF1dGhvciBOYW1lXG4gICAgICBhdXRob3JOYW1lID0gXCJDREsgVGVycmFpbiBNYWludGFpbmVyc1wiLFxuICAgICAgYXV0aG9yQWRkcmVzcyA9IFwiaHR0cHM6Ly9jZGt0bi5pb1wiLFxuICAgICAgbmFtZXNwYWNlID0gXCJjZGt0blwiLFxuICAgICAgZ2l0aHViTmFtZXNwYWNlID0gXCJjZGt0bi1pb1wiLFxuICAgICAgbnVnZXRPcmcgPSBcIklvLkNka3RuXCIsXG4gICAgICBtYXZlbk9yZyA9IFwiY2RrdG5cIixcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nLFxuICAgICAgcHlwaVRydXN0ZWRQdWJsaXNoaW5nLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgW2ZxcHJvdmlkZXJOYW1lLCBwcm92aWRlclZlcnNpb25dID0gdGVycmFmb3JtUHJvdmlkZXIuc3BsaXQoXCJAXCIpO1xuICAgIGNvbnN0IHByb3ZpZGVyTmFtZSA9IGZxcHJvdmlkZXJOYW1lLnNwbGl0KFwiL1wiKS5wb3AoKTtcbiAgICBhc3NlcnQocHJvdmlkZXJOYW1lLCBgJHt0ZXJyYWZvcm1Qcm92aWRlcn0gZG9lc24ndCBzZWVtIHRvIGJlIHZhbGlkYCk7XG4gICAgYXNzZXJ0KFxuICAgICAgIXByb3ZpZGVyTmFtZS5lbmRzV2l0aChcIi1nb1wiKSxcbiAgICAgIFwicHJvdmlkZXJOYW1lIG1heSBub3QgZW5kIHdpdGggJy1nbycgYXMgdGhpcyBjYW4gY29uZmxpY3Qgd2l0aCByZXBvcyBmb3IgZ28gcGFja2FnZXNcIlxuICAgICk7XG5cbiAgICBjb25zdCBudWdldE5hbWUgPSBgJHtudWdldE9yZ30uUHJvdmlkZXJzLiR7cGFzY2FsQ2FzZShwcm92aWRlck5hbWUpfWA7XG4gICAgY29uc3QgbWF2ZW5Hcm91cElkID0gb3B0aW9ucy5tYXZlbkdyb3VwSWQgPz8gYGlvLiR7bWF2ZW5Pcmd9YDtcbiAgICBjb25zdCBtYXZlbk5hbWUgPSBgJHttYXZlbkdyb3VwSWR9LnByb3ZpZGVycy4ke2dldE1hdmVuTmFtZShwcm92aWRlck5hbWUpfWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IGAke2dpdGh1Yk5hbWVzcGFjZX0vJHtuYW1lc3BhY2V9LXByb3ZpZGVyLSR7cHJvdmlkZXJOYW1lLnJlcGxhY2UoXG4gICAgICAvLS9nLFxuICAgICAgXCJcIlxuICAgICl9YDtcbiAgICBjb25zdCByZXBvc2l0b3J5VXJsID0gYGdpdGh1Yi5jb20vJHtyZXBvc2l0b3J5fWA7XG5cbiAgICBjb25zdCBwYWNrYWdlSW5mbzogUGFja2FnZUluZm8gPSB7XG4gICAgICBucG06IHtcbiAgICAgICAgbmFtZTogYEAke25hbWVzcGFjZX0vcHJvdmlkZXItJHtwcm92aWRlck5hbWV9YCxcbiAgICAgIH0sXG4gICAgICBweXRob246IHtcbiAgICAgICAgLy8gZGlzdE5hbWU6IGAke2dpdGh1Yk5hbWVzcGFjZX0tJHtuYW1lc3BhY2V9LXByb3ZpZGVyLSR7cHJvdmlkZXJOYW1lLnJlcGxhY2UoXG4gICAgICAgIGRpc3ROYW1lOiBgJHtuYW1lc3BhY2V9LXByb3ZpZGVyLSR7cHJvdmlkZXJOYW1lLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKX1gLFxuICAgICAgICAvLyBtb2R1bGU6IGAke2dpdGh1Yk5hbWVzcGFjZX1fJHtuYW1lc3BhY2V9X3Byb3ZpZGVyXyR7cHJvdmlkZXJOYW1lLnJlcGxhY2UoXG4gICAgICAgIG1vZHVsZTogYCR7bmFtZXNwYWNlfV9wcm92aWRlcl8ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIil9YCxcbiAgICAgICAgdHJ1c3RlZFB1Ymxpc2hpbmc6IHB5cGlUcnVzdGVkUHVibGlzaGluZyA/PyBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9OdWdldDoge1xuICAgICAgICBkb3ROZXROYW1lc3BhY2U6IG51Z2V0TmFtZSxcbiAgICAgICAgcGFja2FnZUlkOiBudWdldE5hbWUsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvTWF2ZW46IHtcbiAgICAgICAgamF2YVBhY2thZ2U6IG1hdmVuTmFtZSxcbiAgICAgICAgbWF2ZW5Hcm91cElkOiBtYXZlbkdyb3VwSWQsXG4gICAgICAgIG1hdmVuQXJ0aWZhY3RJZDogYCR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZX1gLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb0dvOiB7XG4gICAgICAgIG1vZHVsZU5hbWU6IGAke3JlcG9zaXRvcnlVcmx9LWdvYCxcbiAgICAgICAgZ2l0VXNlckVtYWlsOiBcImdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICAgIGdpdFVzZXJOYW1lOiBcInRlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgICAgcGFja2FnZU5hbWU6IHByb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2csIFwiXCIpLFxuICAgICAgICAvLyBJbiBvcmRlciB0byB1c2UgdGhlIGNvcHl3cml0ZSBhY3Rpb24sIHdlIG5lZWQgdG8gcmVidWlsZCB0aGUgZnVsbCBwcmUtcHVibGlzaCBzdGVwcyB3b3JrZmxvdyB1bmZvcnR1bmF0ZWx5XG4gICAgICAgIC8vIElmIHNvbWVvbmUga25vd3MgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMgbXV0YXRpb24gd2l0aCBtaW5pbWFsIGN1c3RvbSBjb2RlLCBwbGVhc2UgZG8gc29cbiAgICAgICAgcHJlUHVibGlzaFN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDaGVja291dFwiLFxuICAgICAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0XCIsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIHBhdGg6IFwiLnJlcG9cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkluc3RhbGwgRGVwZW5kZW5jaWVzXCIsXG4gICAgICAgICAgICBydW46IFwiY2QgLnJlcG8gJiYgeWFybiBpbnN0YWxsIC0tY2hlY2stZmlsZXMgLS1mcm96ZW4tbG9ja2ZpbGVcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiRXh0cmFjdCBidWlsZCBhcnRpZmFjdFwiLFxuICAgICAgICAgICAgcnVuOiBcInRhciAtLXN0cmlwLWNvbXBvbmVudHM9MSAteHp2ZiBkaXN0L2pzLyoudGd6IC1DIC5yZXBvXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIk1vdmUgYnVpbGQgYXJ0aWZhY3Qgb3V0IG9mIHRoZSB3YXlcIixcbiAgICAgICAgICAgIHJ1bjogXCJtdiBkaXN0IGRpc3Qub2xkXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNyZWF0ZSBnbyBhcnRpZmFjdFwiLFxuICAgICAgICAgICAgcnVuOiBcImNkIC5yZXBvICYmIG5weCBwcm9qZW4gcGFja2FnZTpnb1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJTZXR1cCBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtY29weXdyaXRlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNvcHkgY29weXdyaXRlIGhjbCBmaWxlXCIsXG4gICAgICAgICAgICBydW46IFwiY3AgLnJlcG8vLmNvcHl3cml0ZS5oY2wgLnJlcG8vZGlzdC9nby8uY29weXdyaXRlLmhjbFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJBZGQgaGVhZGVycyB1c2luZyBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICAgICAgcnVuOiBcImNkIC5yZXBvL2Rpc3QvZ28gJiYgY29weXdyaXRlIGhlYWRlcnNcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVtb3ZlIGNvcHl3cml0ZSBoY2wgZmlsZVwiLFxuICAgICAgICAgICAgcnVuOiBcInJtIC1mIC5yZXBvL2Rpc3QvZ28vLmNvcHl3cml0ZS5oY2xcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiUmVtb3ZlIHNvbWUgdGV4dCBmcm9tIHRoZSBSRUFETUUgdGhhdCBkb2Vzbid0IGFwcGx5IHRvIEdvXCIsXG4gICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgXCJzZWQgLWkgJ3MvIyBDREtUTiBwcmVidWlsdCBiaW5kaW5ncyBmb3IvIyBDREtUTiBHbyBiaW5kaW5ncyBmb3IvJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ5NTExOTQ5XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICAgICAgICAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICAgICAgICAgICAgYHNlZCAtaSAtZSAnLyMjICR7aXNEZXByZWNhdGVkID8gXCJEZXByZWNhdGVkXCIgOiBcIkF2YWlsYWJsZVwifSBQYWNrYWdlcy8sLyMjIyBHby8hYicgLWUgJy8jIyMgR28vIWQ7cDsgcy8jIyMgR28vIyMgR28gUGFja2FnZS8nIC1lICdkJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kYCxcbiAgICAgICAgICAgICAgLy8gc2VkIC1lIGlzIGJsYWNrIG1hZ2ljIGFuZCBmb3Igd2hhdGV2ZXIgcmVhc29uIHRoZSBzdHJpbmcgcmVwbGFjZSBkb2Vzbid0IHdvcmsgc28gbGV0J3MgdHJ5IGl0IGFnYWluOlxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgICAgIGBzZWQgLWkgJ3MvIyMjIEdvLyMjICR7aXNEZXByZWNhdGVkID8gXCJEZXByZWNhdGVkXCIgOiBcIkdvXCJ9IFBhY2thZ2UvJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kYCxcbiAgICAgICAgICAgICAgLy8gSnVzdCBzdHJhaWdodCB1cCBkZWxldGUgdGhlc2UgZnVsbCBsaW5lcyBhbmQgZXZlcnl0aGluZyBpbiBiZXR3ZWVuIHRoZW06XG4gICAgICAgICAgICAgIFwic2VkIC1pIC1lICcvQVBJLnR5cGVzY3JpcHQubWQvLC9Zb3UgY2FuIGFsc28gdmlzaXQgYSBob3N0ZWQgdmVyc2lvbi8hYicgLWUgJ2QnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRcIixcbiAgICAgICAgICAgICAgYHNlZCAtaSAnc3xGaW5kIGF1dG8tZ2VuZXJhdGVkIGRvY3MgZm9yIHRoaXMgcHJvdmlkZXIgaGVyZTp8RmluZCBhdXRvLWdlbmVyYXRlZCBkb2NzIGZvciB0aGlzIHByb3ZpZGVyIFtoZXJlXShodHRwczovLyR7cmVwb3NpdG9yeVVybH0vYmxvYi9tYWluL2RvY3MvQVBJLmdvLm1kKS58JyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kYCxcbiAgICAgICAgICAgICAgLy8gSnVzdCBzdHJhaWdodCB1cCBkZWxldGUgdGhlc2UgZnVsbCBsaW5lcyBhbmQgZXZlcnl0aGluZyBpbiBiZXR3ZWVuIHRoZW06XG4gICAgICAgICAgICAgIFwic2VkIC1pIC1lICcvIyMjIFByb3ZpZGVyIFZlcnNpb24vLC9UaGUgcHJvdmlkZXIgdmVyc2lvbiBjYW4gYmUgYWRqdXN0ZWQvIWInIC1lICdkJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNvcHkgdGhlIFJFQURNRSBmaWxlIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICBydW46IFwiY3AgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZCAucmVwby9kaXN0L2dvL1JFQURNRS5tZFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb2xsZWN0IGdvIEFydGlmYWN0XCIsXG4gICAgICAgICAgICBydW46IFwibXYgLnJlcG8vZGlzdCBkaXN0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHdvcmtmbG93UnVuc09uID0gb3B0aW9ucy51c2VDdXN0b21HaXRodWJSdW5uZXJcbiAgICAgID8gW1wiZGVwb3QtdWJ1bnR1LTI0LjA0LThcIl0gLy8gOCBjb3JlLCAzMiBHQlxuICAgICAgOiBbXCJ1YnVudHUtbGF0ZXN0XCJdOyAvLyA3IEdCXG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgYXV0aG9yQWRkcmVzcyxcbiAgICAgIGF1dGhvck5hbWUsXG4gICAgICBtaW5Ob2RlVmVyc2lvbixcbiAgICAgIHdvcmtmbG93Q29udGFpbmVySW1hZ2UsXG4gICAgICB3b3JrZmxvd1J1bnNPbixcbiAgICAgIGxpY2Vuc2VkOiBmYWxzZSwgLy8gd2UgZG8gc3VwcGx5IG91ciBvd24gbGljZW5zZSBmaWxlIHdpdGggYSBjdXN0b20gaGVhZGVyXG4gICAgICByZWxlYXNlVG9OcG06IHRydWUsXG4gICAgICBucG1UcnVzdGVkUHVibGlzaGluZzogbnBtVHJ1c3RlZFB1Ymxpc2hpbmcgPz8gZmFsc2UsXG4gICAgICBuYW1lOiBwYWNrYWdlSW5mby5ucG0ubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgUHJlYnVpbHQgJHtwcm92aWRlck5hbWV9IFByb3ZpZGVyIGZvciBDREsgVGVycmFpbiAoY2RrdG4pYCxcbiAgICAgIGtleXdvcmRzOiBbXG4gICAgICAgIFwiY2RrdG5cIixcbiAgICAgICAgXCJjZGstdGVycmFpblwiLFxuICAgICAgICBcImNka3RmXCIsXG4gICAgICAgIFwidGVycmFmb3JtXCIsXG4gICAgICAgIFwib3BlbnRvZnVcIixcbiAgICAgICAgXCJjZGtcIixcbiAgICAgICAgXCJwcm92aWRlclwiLFxuICAgICAgICBwcm92aWRlck5hbWUsXG4gICAgICBdLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBcIm1haW5cIixcbiAgICAgIHJlcG9zaXRvcnk6IGBodHRwczovL2dpdGh1Yi5jb20vJHtyZXBvc2l0b3J5fS5naXRgLFxuICAgICAgZXNsaW50OiBmYWxzZSxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSxcbiAgICAgIC8vIFByb3ZpZGVyIHJlcG9zIHJ1biBqc2lpLXBhY21hayBvdmVyIGJ1bmRsZWQgZGVwcyBleGFjdGx5IGFzIHRoaXMgcHJvamVjdFxuICAgICAgLy8gZG9lcywgc28gdGhleSBuZWVkIHRoZSBob2lzdGVkIGxpbmtlciB0b28gLS0gc2VlIHRoZSBub3RlIGluIC5wcm9qZW5yYy50cy5cbiAgICAgIC8vIEl0IG11c3QgYmUgaW4gcG5wbS13b3Jrc3BhY2UueWFtbCwgbm90IC5ucG1yYywgb3IgcG5wbSAxMSBpZ25vcmVzIGl0LlxuICAgICAgcG5wbU9wdGlvbnM6IHtcbiAgICAgICAgd29ya3NwYWNlWWFtbE9wdGlvbnM6IHtcbiAgICAgICAgICBub2RlTGlua2VyOiBQbnBtV29ya3NwYWNlWWFtbFNjaGVtYU5vZGVMaW5rZXIuSE9JU1RFRCxcbiAgICAgICAgICBhdWRpdENvbmZpZzoge1xuICAgICAgICAgICAgLy8gU2FtZSBmbGF0LXJhbmdlIGFydGlmYWN0IHRoaXMgcHJvamVjdCBpZ25vcmVzIGZvciBpdHNlbGY6XG4gICAgICAgICAgICAvLyBHSFNBLW1oOTktdjk5bS00Z3ZnIGRlY2xhcmVzIGFmZmVjdGVkIFwiPD01LjAuN1wiLCB3aGljaCBuYWl2ZWx5IG1hdGNoZXNcbiAgICAgICAgICAgIC8vIHRoZSAxLnggbGluZS4gUHJvdmlkZXIgcmVwb3MgcmVhY2ggYnJhY2UtZXhwYW5zaW9uQDEgdmlhXG4gICAgICAgICAgICAvLyBjZGt0bi1jbGkgPiBAY2RrdG4vaGNsMmNkayA+IGdsb2IgPiBtaW5pbWF0Y2hAMywgYW5kIHRoZXJlIGlzIG5vIGZpeGVkXG4gICAgICAgICAgICAvLyAxLnggdG8gbW92ZSB0byAtLSBmb3JjaW5nIDUuMC44IHdvdWxkIGJyZWFrIG1pbmltYXRjaEAzLCB3aGljaCByZXF1aXJlc1xuICAgICAgICAgICAgLy8gXjEuMS43LiBEZXYgdG9vbGluZyBvbmx5OyBuZXZlciBzaGlwcGVkLlxuICAgICAgICAgICAgaWdub3JlR2hzYXM6IFtcIkdIU0EtbWg5OS12OTltLTRndmdcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBMZXQgZmlyc3QtcGFydHkgcmVsZWFzZXMgc2tpcCB0aGUgYGNvb2xkb3duYCBiZWxvdyAtLSBzZWUgdGhlIG5vdGUgb25cbiAgICAgICAgICAvLyB0aGUgY29uc3RhbnQuIFRoaXJkLXBhcnR5IGRlcHMgYXJlIHVuYWZmZWN0ZWQuXG4gICAgICAgICAgbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlOiBNSU5JTVVNX1JFTEVBU0VfQUdFX0VYQ0xVREUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVwc1VwZ3JhZGU6ICFpc0RlcHJlY2F0ZWQsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgLy8gU2tpcCB2ZXJzaW9ucyBwdWJsaXNoZWQgaW4gdGhlIGxhc3QgNCBkYXlzLCBzbyBhIGNvbXByb21pc2VkIHJlbGVhc2UgaGFzXG4gICAgICAgIC8vIHRpbWUgdG8gYmUgZmxhZ2dlZCBiZWZvcmUgYW4gYXV0by1tZXJnaW5nIHVwZ3JhZGUgUFIgcHVsbHMgaXQgaW4uIFdhaXZlZFxuICAgICAgICAvLyBmb3IgdGhlIHBhY2thZ2VzIGluIE1JTklNVU1fUkVMRUFTRV9BR0VfRVhDTFVERS5cbiAgICAgICAgY29vbGRvd246IDQsXG4gICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsczogW1wiYXV0b21lcmdlXCIsIFwiYXV0by1hcHByb3ZlXCIsIFwiZGVwZW5kZW5jaWVzXCJdLFxuICAgICAgICAgIHNjaGVkdWxlOiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUuV0VFS0xZLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGF1ZGl0RGVwczogIWlzRGVwcmVjYXRlZCxcbiAgICAgIGF1ZGl0RGVwc09wdGlvbnM6IHtcbiAgICAgICAgbGV2ZWw6IFwiaGlnaFwiLFxuICAgICAgICBydW5PbjogXCJidWlsZFwiLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb1B5cGk6IHBhY2thZ2VJbmZvLnB5dGhvbixcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiBwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldCxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbixcbiAgICAgIHB1Ymxpc2hUb0dvOiBwYWNrYWdlSW5mby5wdWJsaXNoVG9HbyxcbiAgICAgIHJlbGVhc2VGYWlsdXJlSXNzdWU6IHRydWUsXG4gICAgICBwZWVyRGVwZW5kZW5jeU9wdGlvbnM6IHtcbiAgICAgICAgcGlubmVkRGV2RGVwZW5kZW5jeTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgd29ya2Zsb3dHaXRJZGVudGl0eToge1xuICAgICAgICBuYW1lOiBcInRlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgICAgZW1haWw6IFwiZ2l0aHViLXRlYW0tY2RrLXRlcnJhaW5AY2RrdG4uaW9cIixcbiAgICAgIH0sXG4gICAgICBtaW5NYWpvclZlcnNpb246IE1JTl9NQUpPUl9WRVJTSU9OLFxuICAgICAgc3RhbGU6IHRydWUsXG4gICAgICBzdGFsZU9wdGlvbnM6IHtcbiAgICAgICAgaXNzdWVzOiB7XG4gICAgICAgICAgc3RhbGVMYWJlbDogXCJzdGFsZVwiLFxuICAgICAgICAgIGRheXNCZWZvcmVTdGFsZTogNDUsXG4gICAgICAgICAgc3RhbGVNZXNzYWdlOlxuICAgICAgICAgICAgXCI0NSBkYXlzIGhhdmUgcGFzc2VkIHNpbmNlIHRoaXMgaXNzdWUgd2FzIG9wZW5lZCwgYW5kIEkgYXNzdW1lIG90aGVyIHB1Ymxpc2hlcyBoYXZlIHN1Y2NlZWRlZCBpbiB0aGUgbWVhbnRpbWUuIFwiICtcbiAgICAgICAgICAgIFwiSWYgbm8gb25lIHJlbW92ZXMgdGhlIGBzdGFsZWAgbGFiZWwgb3IgY29tbWVudHMsIEknbSBnb2luZyB0byBhdXRvLWNsb3NlIHRoaXMgaXNzdWUgaW4gMTQgZGF5cy5cIixcbiAgICAgICAgICBkYXlzQmVmb3JlQ2xvc2U6IDE0LFxuICAgICAgICAgIGNsb3NlTWVzc2FnZTpcbiAgICAgICAgICAgIFwiMiBtb250aHMgaGF2ZSBwYXNzZWQsIHNvIEknbSBjbG9zaW5nIHRoaXMgaXNzdWUgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IG90aGVyIHB1Ymxpc2hlcyBoYXZlIHN1Y2NlZWRlZCBpbiB0aGUgbWVhbnRpbWUuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxSZXF1ZXN0OiB7XG4gICAgICAgICAgc3RhbGVMYWJlbDogXCJzdGFsZVwiLFxuICAgICAgICAgIGRheXNCZWZvcmVTdGFsZTogMSxcbiAgICAgICAgICBzdGFsZU1lc3NhZ2U6IGBDbG9zaW5nIHRoaXMgUFIsIGlmIGl0IGhhcyBub3QgbWVyZ2VkIHRoZXJlIGlzIG1vc3QgbGlrZWx5IGEgQ0kgb3IgQ0RLVE4gaXNzdWUgcHJldmVudGluZyBpdCBmcm9tIG1lcmdpbmcuIElmIHRoaXMgaGFzIGJlZW4gYSBtYW51YWwgUFIsIHBsZWFzZSByZW9wZW4gaXQgYW5kIGFkZCB0aGUgXFxgbm8tYXV0by1jbG9zZVxcYCBsYWJlbCB0byBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcgYWdhaW4uYCxcbiAgICAgICAgICBkYXlzQmVmb3JlQ2xvc2U6IDAsXG4gICAgICAgICAgZXhlbXB0TGFiZWxzOiBbXCJuby1hdXRvLWNsb3NlXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGU6IGZhbHNlLFxuICAgICAgZG9jZ2VuOiBmYWxzZSxcbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKCksXG4gICAgICAgIC8vIHByb2plbiA+PTAuMTAwIG1vdmVkIHRoZSBgbWVyZ2lmeWAgcHJvamVjdCBvcHRpb24gdW5kZXIgZ2l0aHViT3B0aW9uc1xuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICBcImRvdC1wcm9wQF41LjIuMFwiLFxuICAgICAgLy8gXjEuMS4wIGNvdWxkIG5ldmVyIGxlYXZlIHRoZSAxLnggbGluZSwgd2hpY2ggZHJhZ3MgaW4gYW4gb2xkXG4gICAgICAvLyBAYWN0aW9ucy9odHRwLWNsaWVudCBhbmQgd2l0aCBpdCB1bmRpY2kgPDYuMjQuMCAtLSB0aHJlZSBoaWdoIGFkdmlzb3JpZXNcbiAgICAgIC8vIChHSFNBLXZybTYtOHZwdi1xdjhxLCBHSFNBLXY5cDktaGZqMi1oY3c4LCBhbmQgdGhlIDw2LjI3LjAgZnJhZ21lbnQtY291bnRcbiAgICAgIC8vIERvUykuIDMueCBkZXBlbmRzIG9uIEBhY3Rpb25zL2h0dHAtY2xpZW50IF40IC0+IHVuZGljaSBeNi4yMy4wLCByZXNvbHZpbmdcbiAgICAgIC8vIHRvIDYuMjguMC4gTk9URTogMy54IGlzIEVTTS1vbmx5LCBzbyBjaGVjay1mb3ItdXBncmFkZXMuanMgbG9hZHMgaXQgd2l0aCBhXG4gICAgICAvLyBkeW5hbWljIGltcG9ydCByYXRoZXIgdGhhbiBgcmVxdWlyZWAuXG4gICAgICBcIkBhY3Rpb25zL2NvcmVAXjMuMC4wXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NvcmVcIixcbiAgICAgIFwiQGFjdGlvbi12YWxpZGF0b3IvY2xpXCJcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBtZW1vcnkgaXMgN0dCOiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlc1xuICAgIC8vIEN1c3RvbSBSdW5uZXJzIHdlIHVzZSBoYXZlIDMyR0Igb2YgbWVtb3J5LlxuICAgIC8vXG4gICAgLy8gVGhlIGN1c3RvbS1ydW5uZXIgY2VpbGluZyB1c2VkIHRvIGJlIDMxNzQ0ICgzMUdCIG9mIDMyR0IsIH45NyUgb2YgUkFNKS5cbiAgICAvLyBUaGF0IGxlYXZlcyBub3RoaW5nIGZvciB0aGUga2VybmVsLCB0aGUgcnVubmVyIGFnZW50LCBvciB0aGUgR28gdG9vbGNoYWluXG4gICAgLy8gdGhhdCBqc2lpLXBhY21hayBzaGVsbHMgb3V0IHRvLCBzbyBhIHBhY21hayBydW4gdGhhdCBsZWdpdGltYXRlbHkgd2FudHMgYVxuICAgIC8vIGxvdCBvZiBoZWFwIGdldHMgT09NLWtpbGxlZCBieSB0aGUga2VybmVsIGluc3RlYWQgb2YgYmVpbmcgdG9sZCB0byBjb2xsZWN0LlxuICAgIC8vIFRoZSBzaWduYXR1cmUgaXMgZGlzdGluY3RpdmU6IHRoZSBzdGVwIHNpdHMgaW5fcHJvZ3Jlc3Mgd2l0aCBhIG51bGxcbiAgICAvLyBjb21wbGV0ZWRBdCAoa2lsbGVkIHByb2Nlc3MsIG5vdCBhIG5vbi16ZXJvIGV4aXQpIGFuZCB0aGUgam9iIGJ1cm5zIH4xMi0xM21cbiAgICAvLyBpbnN0ZWFkIG9mIHRoZSB+NG0gYSBoZWFsdGh5IHJ1biB0YWtlcy4gU2VlIGNka3RuLXByb3ZpZGVyLXByb2plY3QjMzQuXG4gICAgLy9cbiAgICAvLyAyODY3MiAoMjhHQikga2VlcHMgNEdCIG9mIGhlYWRyb29tLiBUaGlzIGlzIGEgY2VpbGluZywgbm90IGEgcmVzZXJ2YXRpb24gLS1cbiAgICAvLyBwcm92aWRlcnMgdGhhdCBuZXZlciBhcHByb2FjaCBpdCBhcmUgdW5hZmZlY3RlZC5cbiAgICBjb25zdCBERUZBVUxUX0hFQVBfTUJfQ1VTVE9NX1JVTk5FUiA9IDI4NjcyO1xuICAgIGNvbnN0IERFRkFVTFRfSEVBUF9NQl9IT1NURURfUlVOTkVSID0gNjY1NjsgLy8gNi41R0Igb2YgN0dCXG5cbiAgICAvLyBgbm9kZUhlYXBTaXplTWJgIGlzIHB1YmxpYyBBUEkgYW5kLCB2aWEganNpaSwgcmVhY2hhYmxlIGZyb20gUHl0aG9uLCBHbyxcbiAgICAvLyBKYXZhIGFuZCAuTkVUIHdoZXJlIGBudW1iZXJgIGlzIGV2ZW4gbG9vc2VyIHRoYW4gVHlwZVNjcmlwdCdzLiBOb2RlXG4gICAgLy8gcmVmdXNlcyB0byBzdGFydCBvbiBhIG1hbGZvcm1lZCBjZWlsaW5nIC0tIGAtLW1heC1vbGQtc3BhY2Utc2l6ZT0xLjVgXG4gICAgLy8gYW5kIGA9TmFOYCBhcmUgYm90aCByZWplY3RlZCBiZWZvcmUgYW55IHNjcmlwdCBydW5zIC0tIGFuZCBgMGAgc2lsZW50bHlcbiAgICAvLyByZXN0b3JlcyBWOCdzIGRlZmF1bHQgaW5zdGVhZCBvZiBhcHBseWluZyBhIGxpbWl0LiBJbnRlcnBvbGF0aW5nIGFuXG4gICAgLy8gdW5jaGVja2VkIHZhbHVlIHdvdWxkIHRoZXJlZm9yZSBicmVhayBldmVyeSB0YXNrIGluIHRoZSBnZW5lcmF0ZWQgcmVwbyxcbiAgICAvLyBzdXJmYWNpbmcgYXMgYW4gaW5zY3J1dGFibGUgc3RhcnR1cCBmYWlsdXJlIGluIENJIHJhdGhlciB0aGFuIGhlcmUuXG4gICAgYXNzZXJ0KFxuICAgICAgb3B0aW9ucy5ub2RlSGVhcFNpemVNYiA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIChOdW1iZXIuaXNTYWZlSW50ZWdlcihvcHRpb25zLm5vZGVIZWFwU2l6ZU1iKSAmJlxuICAgICAgICAgIG9wdGlvbnMubm9kZUhlYXBTaXplTWIgPiAwKSxcbiAgICAgIGBub2RlSGVhcFNpemVNYiBtdXN0IGJlIGEgcG9zaXRpdmUgc2FmZSBpbnRlZ2VyIChNaUIpLCBnb3QgJHtvcHRpb25zLm5vZGVIZWFwU2l6ZU1ifWBcbiAgICApO1xuXG4gICAgY29uc3QgbWF4T2xkU3BhY2VTaXplID0gU3RyaW5nKFxuICAgICAgb3B0aW9ucy5ub2RlSGVhcFNpemVNYiA/P1xuICAgICAgICAob3B0aW9ucy51c2VDdXN0b21HaXRodWJSdW5uZXJcbiAgICAgICAgICA/IERFRkFVTFRfSEVBUF9NQl9DVVNUT01fUlVOTkVSXG4gICAgICAgICAgOiBERUZBVUxUX0hFQVBfTUJfSE9TVEVEX1JVTk5FUilcbiAgICApO1xuXG4gICAgLy8gR29sYW5nIG5lZWRzIG1vcmUgbWVtb3J5IHRvIGJ1aWxkXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiTk9ERV9PUFRJT05TXCIsXG4gICAgICBgLS1tYXgtb2xkLXNwYWNlLXNpemU9JHttYXhPbGRTcGFjZVNpemV9YFxuICAgICk7XG5cbiAgICB0aGlzLnRhc2tzLmFkZEVudmlyb25tZW50KFwiQ0hFQ0tQT0lOVF9ESVNBQkxFXCIsIFwiMVwiKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVGFzayA9IHRoaXMuYWRkVGFzayhcInZhbGlkYXRlLXdvcmtmbG93c1wiLCB7XG4gICAgICBleGVjOiBgZmluZCAuLy5naXRodWIvd29ya2Zsb3dzIC10eXBlIGYgLW5hbWUgXCIqLnltbFwiIC1wcmludDAgfCB4YXJncyAtMCAtbiAxIG5weCBhY3Rpb24tdmFsaWRhdG9yYCxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVRhc2suZGVzY3JpcHRpb24gPVxuICAgICAgXCJMaW50IHRoZSBZQU1MIGZpbGVzIGdlbmVyYXRlZCBieSBQcm9qZW4gdG8gZGVmaW5lIEdpdEh1YiBBY3Rpb25zIGFuZCBXb3JrZmxvd3MsIGNoZWNraW5nIHRoZW0gYWdhaW5zdCBwdWJsaXNoZWQgSlNPTiBzY2hlbWFzXCI7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odmFsaWRhdGVUYXNrKTtcblxuICAgIHRoaXMucGFja2FnZS5hZGRQYWNrYWdlUmVzb2x1dGlvbnMoXCJAdHlwZXMveWFyZ3NAMTcuMC4xM1wiKTtcblxuICAgIGNvbnN0IHNldFNhZmVEaXJlY3RvcnkgPSB7XG4gICAgICBuYW1lOiBcIlNldCBnaXQgY29uZmlnIHNhZmUuZGlyZWN0b3J5XCIsXG4gICAgICBydW46IFwiZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLWFkZCBzYWZlLmRpcmVjdG9yeSAkKHB3ZClcIixcbiAgICB9O1xuXG4gICAgKCh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXSkucHVzaChcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuICAgICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5zcGxpY2UoXG4gICAgICAxLFxuICAgICAgMCxcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuXG4gICAgLy8gYWx3YXlzIHB1Ymxpc2ggYSBuZXcgR2l0SHViIHJlbGVhc2UsIGV2ZW4gd2hlbiBwdWJsaXNoaW5nIHRvIGEgcGFydGljdWxhciBwYWNrYWdlIG1hbmFnZXIgZmFpbHNcbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFwiXG4gICAgKTtcbiAgICByZWxlYXNlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwiam9icy5yZWxlYXNlX2dpdGh1Yi5uZWVkc1wiLCBcInJlbGVhc2VcIik7XG5cbiAgICAvLyBUcnVzdGVkIHB1Ymxpc2hpbmcgcmVxdWlyZXMgbnBtID49MTEuNS4xIHdoaWNoIHNoaXBzIHdpdGggTm9kZSAyNFxuICAgIGlmIChucG1UcnVzdGVkUHVibGlzaGluZykge1xuICAgICAgdGhpcy5naXRodWJcbiAgICAgICAgPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpXG4gICAgICAgID8uZmlsZT8ucGF0Y2goXG4gICAgICAgICAgSnNvblBhdGNoLnJlcGxhY2UoXG4gICAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfbnBtL3N0ZXBzLzAvd2l0aC9ub2RlLXZlcnNpb25cIixcbiAgICAgICAgICAgIFwiMjQueFwiXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAvLyBOUE0gT0lEQyBkb2Vzbid0IHN1cHBvcnQgc2VsZi1ob3N0ZWQgcnVubmVycyB5ZXRcbiAgICAgIHRoaXMuZ2l0aHViXG4gICAgICAgID8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKVxuICAgICAgICA/LmZpbGU/LnBhdGNoKFxuICAgICAgICAgIEpzb25QYXRjaC5yZXBsYWNlKFwiL2pvYnMvcmVsZWFzZV9ucG0vcnVucy1vblwiLCBcInVidW50dS1sYXRlc3RcIilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBOT1RFOiByZWxlYXNlX3B5cGkgZGVsaWJlcmF0ZWx5IHN0YXlzIG9uIHdoYXRldmVyIHJ1bm5lciB0aGUgcHJvamVjdCBpc1xuICAgIC8vIGNvbmZpZ3VyZWQgZm9yLiBVbmxpa2UgbnBtLCBQeVBJIHBsYWNlcyBubyByZXN0cmljdGlvbiBvbiB0aGUgcnVubmVyXG4gICAgLy8gZW52aXJvbm1lbnQ6IHB1YmxpYi1weXBpIG1pbnRzIGl0cyB0b2tlbiB3aXRoIGBweXRob24zIC1tIGlkIHB5cGlgIGFnYWluc3RcbiAgICAvLyBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVVJMLCB3aGljaCBHaXRIdWIgaW5qZWN0cyBvbiBhbnkgcnVubmVyIGdpdmVuXG4gICAgLy8gYGlkLXRva2VuOiB3cml0ZWAsIGFuZCBQeVBJJ3MgdHJ1c3QgaXMgYm91bmQgdG8gdGhlIHdvcmtmbG93IHJlZiwgbm90IHRoZVxuICAgIC8vIHJ1bm5lci4gRm9yY2luZyB0aGlzIGpvYiBvbnRvIGEgaG9zdGVkIHJ1bm5lciB3b3VsZCBhbHNvIHN0cmFuZCBpdCB3aXRoIHRoZVxuICAgIC8vIDI4R0IgTk9ERV9PUFRJT05TIGhlYXAgY2VpbGluZyB0aGF0IHVzZUN1c3RvbUdpdGh1YlJ1bm5lciB3cml0ZXMgaW50b1xuICAgIC8vIC5wcm9qZW4vdGFza3MuanNvbiwgb24gYSBib3ggd2l0aCBmYXIgbGVzcyBSQU0gdGhhbiB0aGF0IC0tIGFuZCB1bmxpa2VcbiAgICAvLyBwYWNrYWdlOmpzLCBwYWNrYWdlOnB5dGhvbiBpcyBhIHJlYWwganNpaS1wYWNtYWsgdHJhbnNwaWxlLlxuXG4gICAgLy8gZW5zdXJlIHdlIGRvbid0IGZhaWwgaWYgdGhlIHJlbGVhc2UgZmlsZSBpcyBub3QgcHJlc2VudFxuICAgIGNvbnN0IGNoZWNrRXhpc3RpbmdUYWdTdGVwID0gKFxuICAgICAgdGhpcy5yZWxlYXNlIGFzIGFueVxuICAgICkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzLnJlbGVhc2Uuc3RlcHMuZmluZChcbiAgICAgIChzOiBvYmplY3QpID0+IFwiaWRcIiBpbiBzICYmIHMuaWQgPT09IFwiY2hlY2tfdGFnX2V4aXN0c1wiXG4gICAgKTtcbiAgICBjb25zdCBvbGRFeGlzdGluZ1RhZ1J1bjogc3RyaW5nID0gY2hlY2tFeGlzdGluZ1RhZ1N0ZXAucnVuO1xuICAgIHByZXR0eUFzc2VydEVxdWFsKFxuICAgICAgb2xkRXhpc3RpbmdUYWdSdW4uc3BsaXQoXCJcXG5cIilbMF0sXG4gICAgICBcIlRBRz0kKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KVwiLFxuICAgICAgXCJyZWxlYXNlIHN0ZXAgY2hhbmdlZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgKTtcbiAgICBjaGVja0V4aXN0aW5nVGFnU3RlcC5ydW4gPSBgaWYgWyAhIC1mIGRpc3QvcmVsZWFzZXRhZy50eHQgXTsgdGhlbiAoZWNobyBcImV4aXN0cz10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQpICYmIGV4aXQgMDsgZmlcXG4ke29sZEV4aXN0aW5nVGFnUnVufWA7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgeyB1cGdyYWRlLCBwciB9ID0gKHRoaXMudXBncmFkZVdvcmtmbG93IGFzIGFueSkud29ya2Zsb3dzWzBdLmpvYnM7XG4gICAgICB1cGdyYWRlLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICAgIHByLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICB9XG5cbiAgICAvLyByZWxlYXNlOiBHbyDigJQgcGF0Y2ggdGhlIHJlbGVhc2Ugd29ya2Zsb3cncyBHbyBwdWJsaXNoIHRvIHVzZSBhIEdpdEh1YlxuICAgIC8vIEFwcCBpbnN0YWxsYXRpb24gdG9rZW4uXG4gICAgY29uc3QgcGF0Y2hHb1B1Ymxpc2hUb1VzZUFwcFRva2VuID0gKHdvcmtmbG93RmlsZT86IE9iamVjdEZpbGUpID0+IHtcbiAgICAgIGlmICghd29ya2Zsb3dGaWxlKSByZXR1cm47XG4gICAgICBjb25zdCBnb1B1Ymxpc2hUb2tlbiA9IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHtcbiAgICAgICAgYXBwSWRTZWNyZXQ6IFwiUFJPSkVOX0FQUF9JRFwiLFxuICAgICAgICBwcml2YXRlS2V5U2VjcmV0OiBcIlBST0pFTl9BUFBfUFJJVkFURV9LRVlcIixcbiAgICAgICAgb3duZXI6IFwiJHt7IGdpdGh1Yi5yZXBvc2l0b3J5X293bmVyIH19XCIsXG4gICAgICAgIHJlcG9zaXRvcmllczogW1xuICAgICAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lPy5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuQXBwUGVybWlzc2lvbi5XUklURSB9LFxuICAgICAgfSk7XG4gICAgICB3b3JrZmxvd0ZpbGUucGF0Y2goXG4gICAgICAgIEpzb25QYXRjaC5hZGQoXG4gICAgICAgICAgXCIvam9icy9yZWxlYXNlX2dvbGFuZy9zdGVwcy8xNlwiLFxuICAgICAgICAgIGdvUHVibGlzaFRva2VuLnNldHVwU3RlcHNbMF1cbiAgICAgICAgKSxcbiAgICAgICAgSnNvblBhdGNoLmFkZChcbiAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfZ29sYW5nL3N0ZXBzLzE3L2Vudi9HSVRIVUJfVE9LRU5cIixcbiAgICAgICAgICAvLyBHaXRIdWIgQXBwIGluc3RhbGxhdGlvbiB0b2tlbnMgKGdoc18qKSByZXF1aXJlIHRoZSBgeC1hY2Nlc3MtdG9rZW5gXG4gICAgICAgICAgLy8gdXNlcm5hbWUgd2hlbiB1c2VkIGluIEhUVFBTIGdpdCBVUkxzLiBwdWJsaWIgcmVuZGVycyB0aGlzIGVudiB2YXJcbiAgICAgICAgICAvLyB2ZXJiYXRpbSBpbnRvIGBodHRwczovLyR7R0lUSFVCX1RPS0VOfUBnaXRodWIuY29tLy4uLmAsIHNvIHdpdGhvdXRcbiAgICAgICAgICAvLyB0aGUgcHJlZml4IHRoZSBwdXNoIDQwMXMgYW5kIGZhbGxzIGJhY2sgdG8gYSBUVFkgcGFzc3dvcmQgcHJvbXB0LlxuICAgICAgICAgIGB4LWFjY2Vzcy10b2tlbjoke2dvUHVibGlzaFRva2VuLnRva2VuUmVmfWBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIHBhdGNoR29QdWJsaXNoVG9Vc2VBcHBUb2tlbihyZWxlYXNlV29ya2Zsb3cpO1xuICAgIH1cblxuICAgIC8vIEZpeCBtYXZlbiBpc3N1ZSAoaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvcHVibGliL3B1bGwvNzc3KVxuICAgIC8vXG4gICAgLy8gVGhlIHB1Ymxpc2ggam9icyBkb24ndCBleGlzdCB1bnRpbCBSZWxlYXNlIHN5bnRoZXNpemVzLCBhbmQgdGhlIHN0ZXAncyBpbmRleFxuICAgIC8vIHdpdGhpbiByZWxlYXNlX21hdmVuIHNoaWZ0cyB3aGVuZXZlciB0aGUgam9iIGdhaW5zIGEgc3RlcCAtLSBzd2l0Y2hpbmcgdGhlXG4gICAgLy8gcGFja2FnZSBtYW5hZ2VyIHRvIHBucG0gaW5zZXJ0cyBhIFwiU2V0dXAgcG5wbVwiIHN0ZXAsIHdoaWNoIHNpbGVudGx5IG1vdmVkIHRoZVxuICAgIC8vIG9sZCBoYXJkY29kZWQgL3N0ZXBzLzEwLyBvbnRvIGEgc3RlcCB3aXRoIG5vIGVudiBhdCBhbGwuIFJlc29sdmUgdGhlIHN0ZXAgYnlcbiAgICAvLyB3aGF0IGl0IHJ1bnMsIGluIHByZVN5bnRoZXNpemUsIHNvIG5laXRoZXIgcHJvYmxlbSBjYW4gcmVjdXIuXG4gICAgbmV3IE1hdmVuT3B0c1BhdGNoKHRoaXMpO1xuXG4gICAgdGhpcy5waW5HaXRodWJBY3Rpb25WZXJzaW9ucyhnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyk7XG5cbiAgICBuZXcgQ2RrdGZDb25maWcodGhpcywge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIHByb3ZpZGVyVmVyc2lvbixcbiAgICAgIGNka3RuVmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIHBhY2thZ2VJbmZvLFxuICAgICAgZ2l0aHViTmFtZXNwYWNlLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgICAgaXNEZXByZWNhdGVkOiAhIWlzRGVwcmVjYXRlZCxcbiAgICB9KTtcbiAgICBuZXcgQ3VzdG9taXplZExpY2Vuc2UodGhpcywgb3B0aW9ucy5jcmVhdGlvblllYXIsIG9wdGlvbnMubGljZW5zZWUpO1xuICAgIG5ldyBHaXRodWJJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9BcHByb3ZlKHRoaXMpO1xuICAgIG5ldyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9tZXJnZSh0aGlzKTtcbiAgICBuZXcgTG9ja0lzc3Vlcyh0aGlzKTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBjb25zdCB1cGdyYWRlU2NyaXB0ID0gbmV3IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlKHRoaXMsIHtcbiAgICAgICAgcHJvdmlkZXJWZXJzaW9uLFxuICAgICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IFByb3ZpZGVyVXBncmFkZSh0aGlzLCB7XG4gICAgICAgIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiB1cGdyYWRlU2NyaXB0LnBhdGgsXG4gICAgICAgIHdvcmtmbG93UnVuc09uLFxuICAgICAgICBub2RlSGVhcFNpemU6IG1heE9sZFNwYWNlU2l6ZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IEFsZXJ0T3BlblBycyh0aGlzLCB7XG4gICAgICAgIHNsYWNrV2ViaG9va1VybDogXCIke3sgc2VjcmV0cy5BTEVSVF9QUlNfU0xBQ0tfV0VCSE9PS19VUkwgfX1cIixcbiAgICAgICAgcmVwb3NpdG9yeSxcbiAgICAgIH0pO1xuICAgICAgbmV3IERlcGVuZGFib3QodGhpcyk7XG4gICAgfVxuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIFwiLmdpdGh1Yi9DT0RFT1dORVJTXCIsIHtcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIFwiIyBUaGVzZSBvd25lcnMgd2lsbCBiZSB0aGUgZGVmYXVsdCBvd25lcnMgZm9yIGV2ZXJ5dGhpbmcgaW4gXCIsXG4gICAgICAgIFwiIyB0aGUgcmVwby4gVW5sZXNzIGEgbGF0ZXIgbWF0Y2ggdGFrZXMgcHJlY2VkZW5jZSwgXCIsXG4gICAgICAgIFwiIyB0aGV5IHdpbGwgYmUgcmVxdWVzdGVkIGZvciByZXZpZXcgd2hlbiBzb21lb25lIG9wZW5zIGEgXCIsXG4gICAgICAgIFwiIyBwdWxsIHJlcXVlc3QuXCIsXG4gICAgICAgIFwiKiAgICAgICBAY2RrdG4taW8vdGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBuZXcgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUodGhpcywge30pO1xuXG4gICAgICBjb25zdCByZWxlYXNlVGFzayA9IHRoaXMudGFza3MudHJ5RmluZChcInJlbGVhc2VcIikhO1xuICAgICAgdGhpcy5yZW1vdmVUYXNrKFwicmVsZWFzZVwiKTtcbiAgICAgIHRoaXMuYWRkVGFzayhcInJlbGVhc2VcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcmVsZWFzZVRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgIHN0ZXBzOiByZWxlYXNlVGFzay5zdGVwcyxcbiAgICAgICAgZW52OiAocmVsZWFzZVRhc2sgYXMgYW55KS5fZW52LFxuICAgICAgICBjb25kaXRpb246IFwibm9kZSAuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2UuanNcIixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1yZWxlYXNlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHJlbGVhc2VUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdGVwczogcmVsZWFzZVRhc2suc3RlcHMsXG4gICAgICAgIGVudjogKHJlbGVhc2VUYXNrIGFzIGFueSkuX2VudixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZWxlYXNlSm9iU3RlcHM6IGFueVtdID0gKFxuICAgICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKSBhcyBhbnlcbiAgICAgICkuam9icy5yZWxlYXNlLnN0ZXBzO1xuICAgICAgY29uc3QgZ2l0UmVtb3RlSm9iID0gcmVsZWFzZUpvYlN0ZXBzLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gXCJnaXRfcmVtb3RlXCIpO1xuICAgICAgYXNzZXJ0KFxuICAgICAgICBnaXRSZW1vdGVKb2IsXG4gICAgICAgIFwiZ2l0X3JlbW90ZSBzdGVwIG5vdCBmb3VuZCBpbiByZWxlYXNlIHdvcmtmbG93LCBwbGVhc2UgY2hlY2sgaWYgdGhlIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICAgICk7XG4gICAgICAvLyBXZSB3cmFwIHdoYXRldmVyIHByb2plbiBnZW5lcmF0ZWQgaW4gYSBzaG91bGQtcmVsZWFzZSBndWFyZCByYXRoZXIgdGhhblxuICAgICAgLy8gcmV3cml0aW5nIGl0LCBzbyBhc3NlcnQgb25seSB0aGUgdHdvIHByb3BlcnRpZXMgdGhlIHdyYXBwaW5nIGFjdHVhbGx5XG4gICAgICAvLyBkZXBlbmRzIG9uLiBQaW5uaW5nIHRvIHByb2plbidzIGV4YWN0IHdvcmRpbmcgYnJva2UgdGhlIHdob2xlIGZsZWV0XG4gICAgICAvLyBvbmNlIGFscmVhZHk6IHByb2plbiAwLjEwMSBjaGFuZ2VkIGAke3sgZ2l0aHViLnJlZiB9fWAgdG8gYFwiJEdJVEhVQl9SRUZcImBcbiAgICAgIC8vIGFuZCBldmVyeSBwcm92aWRlciByZXBvJ3MgdXBncmFkZS1tYWluIHN0YXJ0ZWQgZmFpbGluZyBhdCBzeW50aC5cbiAgICAgIGFzc2VydChcbiAgICAgICAgdHlwZW9mIGdpdFJlbW90ZUpvYi5ydW4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICBnaXRSZW1vdGVKb2IucnVuLmluY2x1ZGVzKFwiZ2l0IGxzLXJlbW90ZVwiKSAmJlxuICAgICAgICAgIGdpdFJlbW90ZUpvYi5ydW4uaW5jbHVkZXMoXCJsYXRlc3RfY29tbWl0PVwiKSxcbiAgICAgICAgYGdpdF9yZW1vdGUgc3RlcCBubyBsb25nZXIgc2V0cyBsYXRlc3RfY29tbWl0IGZyb20gZ2l0IGxzLXJlbW90ZSwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzISBHb3Q6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZ2l0UmVtb3RlSm9iLnJ1blxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgICAvLyBGb2xkICpldmVyeSogbGluZTogcHJvamVuIGVtaXRzIHR3byB0b2RheSwgYnV0IFN0cmluZyNyZXBsYWNlIHdpdGggYVxuICAgICAgLy8gc3RyaW5nIHBhdHRlcm4gb25seSBmb2xkcyB0aGUgZmlyc3QgaWYgdGhhdCBldmVyIGdyb3dzLlxuICAgICAgY29uc3QgcHJldmlvdXNDb21tYW5kID0gZ2l0UmVtb3RlSm9iLnJ1bi5zcGxpdChcIlxcblwiKS5qb2luKFwiICYmIFwiKTtcblxuICAgICAgY29uc3QgY2FuY2VsQ29tbWFuZCA9XG4gICAgICAgICdlY2hvIFwibGF0ZXN0X2NvbW1pdD1yZWxlYXNlX2NhbmNlbGxlZFwiID4+ICRHSVRIVUJfT1VUUFVUJzsgLy8gdGhpcyBjYW5jZWxzIHRoZSByZWxlYXNlIHZpYSBhIG5vbi1tYXRjaGluZyBTSEE7XG4gICAgICBnaXRSZW1vdGVKb2IucnVuID0gYG5vZGUgLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlLmpzICYmICgke3ByZXZpb3VzQ29tbWFuZH0pIHx8ICR7Y2FuY2VsQ29tbWFuZH1gO1xuICAgICAgZ2l0UmVtb3RlSm9iLm5hbWUgKz1cbiAgICAgICAgXCIgb3IgY2FuY2VsIHZpYSBmYWtpbmcgYSBTSEEgaWYgcmVsZWFzZSB3YXMgY2FuY2VsbGVkXCI7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhbGVXb3JrZmxvdyA9IHRoaXMudHJ5RmluZE9iamVjdEZpbGUoXCIuZ2l0aHViL3dvcmtmbG93cy9zdGFsZS55bWxcIik7XG4gICAgc3RhbGVXb3JrZmxvdz8uYWRkT3ZlcnJpZGUoXCJvbi5zY2hlZHVsZVwiLCBbXG4gICAgICB7XG4gICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7IHByb2plY3Q6IHRoaXMsIG1heEhvdXI6IDQsIGhvdXJPZmZzZXQ6IDEgfSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgdXBncmFkZVdvcmtmbG93ID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZShcbiAgICAgIFwiLmdpdGh1Yi93b3JrZmxvd3MvdXBncmFkZS1tYWluLnltbFwiXG4gICAgKTtcbiAgICB1cGdyYWRlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwib24uc2NoZWR1bGVcIiwgW1xuICAgICAge1xuICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oe1xuICAgICAgICAgIHByb2plY3Q6IHRoaXMsXG4gICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICBob3VyT2Zmc2V0OiAxLFxuICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5XZWVrbHksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIC8vIFN1Ym1vZHVsZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb25cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiQVBJLm1kXCIpOyAvLyBpZ25vcmUgdGhlIG9sZCBmaWxlLCB3ZSBub3cgZ2VuZXJhdGUgaXQgaW4gdGhlIGRvY3MgZm9sZGVyXG4gICAgdGhpcy5hZGREZXZEZXBzKFwianNpaS1kb2NnZW5AXjEwLjIuM1wiKTtcbiAgICBpZiAoanNpaVZlcnNpb24pIHtcbiAgICAgIC8vIE5PVEU6IHRoZSBiZWxvdyBpcyBtYWtpbmcgYSBicm9hZCBhc3N1bXB0aW9uIHRoYXQgeW91J3JlIHBhc3NpbmcgYSByYW5nZSBsaWtlIFwifjUuMy4wXCIgdG8ganNpaVZlcnNpb25cbiAgICAgIC8vIElmIHlvdSB1c2UgdGhhdCBmaWVsZCB0byBwYXNzIGEgdmVyeSBzcGVjaWZpYyB2ZXJzaW9uIChlLmcuIFwiNS4zLjExXCIpIHRoZW4gdGhpcyBtaWdodCBicmVha1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFAJHtqc2lpVmVyc2lvbn1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLmFkZFRhc2soXCJkb2NnZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHByb2plY3RcIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBbXG4gICAgICAgICAgICBcInJtIC1yZiBkb2NzXCIsXG4gICAgICAgICAgICBcInJtIC1mIEFQSS5tZFwiLFxuICAgICAgICAgICAgXCJta2RpciBkb2NzXCIsXG4gICAgICAgICAgICBcImpzaWktZG9jZ2VuIC0tc3BsaXQtYnktc3VibW9kdWxlIC1sIHR5cGVzY3JpcHQgLWwgcHl0aG9uIC1sIGphdmEgLWwgY3NoYXJwIC1sIGdvXCIsXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBuaWNlIHdheSB0byB0ZWxsIGpzaWktZG9jZ2VuIHRvIGdlbmVyYXRlIGRvY3MgaW50byBhIGZvbGRlciBzbyBJIHdlbnQgdGhpcyByb3V0ZVxuICAgICAgICAgICAgXCJtdiAqLioubWQgZG9jc1wiLFxuICAgICAgICAgICAgLy8gU29tZSBwYXJ0IG9mIHRoZSBkb2N1bWVudGF0aW9uIGFyZSB0b28gbG9uZywgd2UgbmVlZCB0byB0cnVuY2F0ZSB0aGVtIHRvIH4xME1CXG4gICAgICAgICAgICBcImNkIGRvY3NcIixcbiAgICAgICAgICAgIFwibHMgLi8gfCB4YXJncyBzZWQgLWkgJzE1MDAwMCwkIGQnICQxXCIsXG4gICAgICAgICAgXS5qb2luKFwiICYmIFwiKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24oZG9jZ2VuKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5pbmNsdWRlKGAvZG9jcy8qLm1kYCk7XG4gICAgdGhpcy5hbm5vdGF0ZUdlbmVyYXRlZChgL2RvY3MvKi5tZGApO1xuXG4gICAgLy8gU2V0dGluZyB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gc28gdGhlIGdvbGFuZyBkb2NzIGhhdmUgdGhlIGNvcnJlY3QgdmVyc2lvblxuICAgIGNvbnN0IHVuY29uZGl0aW9uYWxCdW1wID0gdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1idW1wXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gdG8gdGhlIGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiQ2xlYXIgdGhlIGNoYW5nZWxvZyBzbyB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHB1Ymxpc2hlZCB0d2ljZVwiLFxuICAgICAgICAgIGV4ZWM6IFwicm0gLWYgJENIQU5HRUxPR1wiLFxuICAgICAgICB9LFxuICAgICAgICAvLyBwcm9qZW4gMC4xMDEgcmVtb3ZlZCB0aGUgY29tYmluZWQgYHJlbGVhc2UvYnVtcC12ZXJzaW9uYCBidWlsdGluIGFuZCBzcGxpdFxuICAgICAgICAvLyBpdCBpbnRvIHJlc29sdmUtbGF0ZXN0LXRhZyAtPiBzdWdnZXN0LXZlcnNpb24tYnVtcCAtPiBhcHBseS12ZXJzaW9uLWJ1bXAsXG4gICAgICAgIC8vIGhhbmRpbmcgcmVzdWx0cyBmb3J3YXJkIHZpYSBzdGVwIGBvdXRwdXRFbnZgIGNhcHR1cmVzLiBhcHBseSBvbiBpdHMgb3duXG4gICAgICAgIC8vIHRocm93cyBcIm5laXRoZXIgQlVNUF9UWVBFIG5vciBTVUdHRVNURURfQlVNUCBpcyBzZXRcIiwgc28gYWxsIHRocmVlIGFyZVxuICAgICAgICAvLyBuZWVkZWQuIE1pcnJvcnMgcHJvamVuJ3Mgb3duIGJ1bXAgdGFzayAobGliL3ZlcnNpb24uanM6MTI4LTE0NCkuXG4gICAgICAgIHsgYnVpbHRpbjogXCJyZWxlYXNlL3Jlc29sdmUtbGF0ZXN0LXRhZ1wiLCBvdXRwdXRFbnY6IFwiTEFURVNUX1RBR1wiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBidWlsdGluOiBcInJlbGVhc2Uvc3VnZ2VzdC12ZXJzaW9uLWJ1bXBcIixcbiAgICAgICAgICBvdXRwdXRFbnY6IFwiU1VHR0VTVEVEX0JVTVBcIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBidWlsdGluOiBcInJlbGVhc2UvYXBwbHktdmVyc2lvbi1idW1wXCIgfSxcbiAgICAgIF0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgT1VURklMRTogXCJwYWNrYWdlLmpzb25cIixcbiAgICAgICAgQ0hBTkdFTE9HOiBcImRpc3QvY2hhbmdlbG9nLm1kXCIsXG4gICAgICAgIEJVTVBGSUxFOiBcImRpc3QvdmVyc2lvbi50eHRcIixcbiAgICAgICAgUkVMRUFTRVRBRzogXCJkaXN0L3JlbGVhc2V0YWcudHh0XCIsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogXCJcIixcbiAgICAgICAgTUlOX01BSk9SOiBTdHJpbmcoTUlOX01BSk9SX1ZFUlNJT04pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLnNwYXduKHVuY29uZGl0aW9uYWxCdW1wKTtcbiAgICAvLyBUbyBidW1wIGNvcnJlY3RseSB3ZSBuZWVkIHRvIGhhdmUgdGhlIGNvbXBsZXRlbHkgY2xvbmVkIHJlcG9cbiAgICAodGhpcy5idWlsZFdvcmtmbG93IGFzIGFueSkud29ya2Zsb3cuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwiam9icy5idWlsZC5zdGVwcy4wLndpdGguZmV0Y2gtZGVwdGhcIixcbiAgICAgIDBcbiAgICApO1xuICAgIC8vIFVuZG8gdGhlIGNoYW5nZXMgYWZ0ZXIgY29tcGlsYXRpb25cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3c/LmFkZFBvc3RCdWlsZFN0ZXBzKHtcbiAgICAgIG5hbWU6IFwiUmV2ZXJ0IHBhY2thZ2UuanNvbiB2ZXJzaW9uIGJ1bXBcIixcbiAgICAgIHJ1bjogXCJnaXQgY2hlY2tvdXQgcGFja2FnZS5qc29uXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgQ29weXJpZ2h0SGVhZGVycyh0aGlzKTtcbiAgICBuZXcgRGVwcmVjYXRlUGFja2FnZXModGhpcywge1xuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgcGFja2FnZUluZm8sXG4gICAgICBpc0RlcHJlY2F0ZWQ6ICEhaXNEZXByZWNhdGVkLFxuICAgIH0pO1xuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICAvLyBGb2xkcyB0aGUgbWFudWFsIGZvcmNlLXJlbGVhc2UgYmVoYXZpb3VyIGludG8gcmVsZWFzZS55bWwgYmVoaW5kIGFcbiAgICAgIC8vIHdvcmtmbG93X2Rpc3BhdGNoIHRyaWdnZXIsIHNvIG5wbS9QeVBJIE9JREMgdHJ1c3RzIGEgc2luZ2xlIHdvcmtmbG93LlxuICAgICAgbmV3IEZvcmNlUmVsZWFzZSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBpbkdpdGh1YkFjdGlvblZlcnNpb25zKHBpbm5lZFZlcnNpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgLy8gVXNlIHBpbm5lZCB2ZXJzaW9ucyBvZiBnaXRodWIgYWN0aW9uc1xuICAgIE9iamVjdC5lbnRyaWVzKHBpbm5lZFZlcnNpb25zKS5mb3JFYWNoKChbbmFtZSwgc2hhXSkgPT4ge1xuICAgICAgdGhpcy5naXRodWI/LmFjdGlvbnMuc2V0KG5hbWUsIGAke25hbWV9QCR7c2hhfWApO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogU2V0cyBNQVZFTl9PUFRTIG9uIHRoZSBtYXZlbiBwdWJsaXNoIHN0ZXAgYW5kIGRyb3BzIHRoZSB1bnVzZWRcbiAqIE1BVkVOX1NUQUdJTkdfUFJPRklMRV9JRCwgcmVzb2x2aW5nIHRoZSBzdGVwIGJ5IHRoZSBjb21tYW5kIGl0IHJ1bnMuXG4gKlxuICogUnVucyBpbiBwcmVTeW50aGVzaXplIGJlY2F1c2UgdGhlIHB1Ymxpc2ggam9icyBhcmUgYWRkZWQgYnkgUmVsZWFzZSBkdXJpbmdcbiAqIHN5bnRoZXNpcywgc28gdGhlIGpvYiBkb2VzIG5vdCBleGlzdCB5ZXQgYXQgY29uc3RydWN0aW9uIHRpbWUuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9wdWJsaWIvcHVsbC83NzdcbiAqL1xuY2xhc3MgTWF2ZW5PcHRzUGF0Y2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCB3b3JrZmxvdyA9IGdpdGh1Yi5HaXRIdWIub2YodGhpcy5wcm9qZWN0KT8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKTtcbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdIHwgdW5kZWZpbmVkID0gKHdvcmtmbG93IGFzIGFueSk/LmpvYnM/LnJlbGVhc2VfbWF2ZW5cbiAgICAgID8uc3RlcHM7XG4gICAgYXNzZXJ0KFxuICAgICAgc3RlcHMsXG4gICAgICBcInJlbGVhc2VfbWF2ZW4gam9iIG5vdCBmb3VuZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSBNQVZFTl9PUFRTIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICApO1xuICAgIGNvbnN0IHN0ZXAgPSBzdGVwcy5maW5kKChzKSA9PiBzLnJ1bj8uaW5jbHVkZXMoXCJwdWJsaWItbWF2ZW5cIikpO1xuICAgIGFzc2VydChcbiAgICAgIHN0ZXA/LmVudixcbiAgICAgIFwibm8gcHVibGliLW1hdmVuIHN0ZXAgd2l0aCBhbiBlbnYgYmxvY2sgaW4gcmVsZWFzZV9tYXZlbiwgcGxlYXNlIGNoZWNrIGlmIHRoZSBNQVZFTl9PUFRTIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICApO1xuICAgIC8vIE11dGF0ZSB0aGUgc3RlcCBkaXJlY3RseSByYXRoZXIgdGhhbiBKc29uUGF0Y2gtaW5nIHRoZSByZW5kZXJlZCBmaWxlOiB0aGVcbiAgICAvLyBwdWJsaXNoZXIgcHJlcGVuZHMgdG9vbC1zZXR1cCBzdGVwcyBhdCByZW5kZXIgdGltZSwgc28gaW4tbWVtb3J5IGluZGljZXMgZG9cbiAgICAvLyBub3QgbWF0Y2ggcmVuZGVyZWQgb25lcywgYW5kIGEgSlNPTiBQb2ludGVyIHdvdWxkIGhhdmUgdG8gZW5jb2RlIHRoYXQgb2Zmc2V0LlxuICAgIC8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MDE1Mzk2Mi9uZXh1cy1zdGFnaW5nLW1hdmVuLXBsdWdpbi1tYXZlbi1kZXBsb3ktZmFpbGVkLWFuLWFwaS1pbmNvbXBhdGliaWxpdHktd2FzLWVuY29cbiAgICBzdGVwLmVudi5NQVZFTl9PUFRTID1cbiAgICAgIFwiLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEudXRpbD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS5sYW5nLnJlZmxlY3Q9QUxMLVVOTkFNRUQgLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEudGV4dD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmRlc2t0b3AvamF2YS5hd3QuZm9udD1BTEwtVU5OQU1FRFwiO1xuICAgIC8vIFRoaXMgaXMgbm8gbG9uZ2VyIHVzZWQuXG4gICAgZGVsZXRlIHN0ZXAuZW52Lk1BVkVOX1NUQUdJTkdfUFJPRklMRV9JRDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmV0dHlBc3NlcnRFcXVhbDxUPihzdWJqZWN0OiBULCBleHBlY3RlZDogVCwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQge1xuICBpZiAoc3ViamVjdCAhPT0gZXhwZWN0ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHttZXNzYWdlID8/IFwiQXNzZXJ0aW9uIGZhaWxlZFwifTogZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgZXhwZWN0ZWRcbiAgICAgICl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShzdWJqZWN0KX1gXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/lib/provider-upgrade.js
CHANGED
|
@@ -46,6 +46,18 @@ class ProviderUpgrade {
|
|
|
46
46
|
terraform_wrapper: false,
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
|
+
// This workflow is hand-built, so projen does not inject the "Setup pnpm"
|
|
50
|
+
// step it adds to the workflows it generates itself. Without it the pnpm
|
|
51
|
+
// migration left `pnpm install` below with no pnpm on PATH -- exit 127,
|
|
52
|
+
// every provider, every day. Keep it ahead of setup-node, matching the
|
|
53
|
+
// order projen emits.
|
|
54
|
+
{
|
|
55
|
+
name: "Setup pnpm",
|
|
56
|
+
uses: "pnpm/action-setup",
|
|
57
|
+
with: {
|
|
58
|
+
version: project.package.pnpmVersion,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
49
61
|
{
|
|
50
62
|
name: "Setup Node.js",
|
|
51
63
|
uses: "actions/setup-node",
|
|
@@ -161,4 +173,4 @@ class ProviderUpgrade {
|
|
|
161
173
|
}
|
|
162
174
|
}
|
|
163
175
|
exports.ProviderUpgrade = ProviderUpgrade;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJB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Z0JBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUM5QixHQUFHLEVBQUU7b0JBQ0gsYUFBYSxFQUFFLDhCQUE4QjtvQkFDN0Msc0JBQXNCLEVBQUUsdUNBQXVDO29CQUMvRCxZQUFZLEVBQUUsd0JBQXdCLE9BQU8sQ0FBQyxZQUFZLEVBQUU7aUJBQzdEO2dCQUNELEtBQUs7Z0JBQ0wsV0FBVyxFQUFFO29CQUNYLFlBQVksRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQ2pDLE1BQU0sRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzNCLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzdCLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7aUJBQzlCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoS0QsMENBZ0tDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tQ3JvbiB9IGZyb20gXCIuL3V0aWwvcmFuZG9tLWNyb25cIjtcblxuaW50ZXJmYWNlIFByb3ZpZGVyVXBncmFkZU9wdGlvbnMge1xuICBjaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd1J1bnNPbjogc3RyaW5nW107XG4gIG5vZGVIZWFwU2l6ZTogc3RyaW5nO1xufVxuLyoqXG4gKiBDaGVja3MgZm9yIG5ldyB2ZXJzaW9ucyBvZiB0aGUgZ2l2ZW4gcHJvdmlkZXIgYW5kIGNyZWF0ZXMgYSBQUiB3aXRoIGFuIHVwZ3JhZGUgY2hhbmdlIGlmIHRoZXJlIGFyZSBjaGFuZ2VzLlxuICovXG5leHBvcnQgY2xhc3MgUHJvdmlkZXJVcGdyYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCxcbiAgICBvcHRpb25zOiBQcm92aWRlclVwZ3JhZGVPcHRpb25zXG4gICkge1xuICAgIHByb2plY3QuYWRkVGFzayhcImNoZWNrLWlmLW5ldy1wcm92aWRlci12ZXJzaW9uXCIsIHtcbiAgICAgIGV4ZWM6IGBub2RlIC4vJHtvcHRpb25zLmNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRofWAsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy5hZGRXb3JrZmxvdyhcInByb3ZpZGVyLXVwZ3JhZGVcIik7XG5cbiAgICBpZiAoIXdvcmtmbG93KSB0aHJvdyBuZXcgRXJyb3IoXCJubyB3b3JrZmxvdyBkZWZpbmVkXCIpO1xuXG4gICAgd29ya2Zsb3cub24oe1xuICAgICAgc2NoZWR1bGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7XG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICAgIGhvdXJPZmZzZXQ6IDMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLCAvLyBSdW4gZXZlcnkgZGF5IHNvbWV0aW1lIGJldHdlZW4gMyBhbmQgNGFtXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSwgLy8gYWxsb3cgbWFudWFsIHRyaWdnZXJpbmdcbiAgICB9KTtcblxuICAgIGNvbnN0IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSA9XG4gICAgICBcIiR7eyBzdGVwcy5jaGVja192ZXJzaW9uLm91dHB1dHMubmV3X3ZlcnNpb24gPT0gJ2F2YWlsYWJsZScgfX1cIjtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IFwiJHt7IHN0ZXBzLmN1cnJlbnRfdmVyc2lvbi5vdXRwdXRzLnZhbHVlIH19XCI7XG4gICAgY29uc3QgbmV3VmVyc2lvbiA9IFwiJHt7IHN0ZXBzLm5ld192ZXJzaW9uLm91dHB1dHMudmFsdWUgfX1cIjtcbiAgICBjb25zdCBzZW1hbnRpY1R5cGUgPSBcIiR7eyBzdGVwcy5yZWxlYXNlLm91dHB1dHMudHlwZSB9fVwiO1xuXG4gICAgY29uc3Qgc3RlcHM6IEpvYlN0ZXBbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDaGVja291dFwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgVGVycmFmb3JtXCIsXG4gICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgdGVycmFmb3JtX3dyYXBwZXI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlLmpzXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcIm5vZGUtdmVyc2lvblwiOiBwcm9qZWN0Lm1pbk5vZGVWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIixcbiAgICAgIH0sXG4gICAgICB7IHJ1bjogXCJwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGVcIiB9LFxuICAgICAge1xuICAgICAgICBpZDogXCJjaGVja192ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogXCJwbnBtIHJ1biBjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgY3VycmVudCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcImN1cnJlbnRfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnKC5jZGt0biAvLyAuY2RrdGYpLnByb3ZpZGVyLnZlcnNpb24nIHBhY2thZ2UuanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydW46IFwicG5wbSBydW4gZmV0Y2hcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0hFQ0tQT0lOVF9ESVNBQkxFOiBcIjFcIixcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJlY2F1c2UgcG5wbSBydW4gZmV0Y2ggbnVrZXMgdGhlIGNvbnRlbnRzIG9mIC9zcmMsIHdlJ3ZlIGxvc3Qgb3VyIGF1dG8tZ2VuZXJhdGVkIGNvcHlyaWdodCBoZWFkZXJzXG4gICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgcnVuOiBcImNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImdldCBwcm92aWRlciB1cGRhdGVkIHZlcnNpb25cIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwibmV3X3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBgZWNobyBcInZhbHVlPSQoanEgLXIgJy4gfCB0b19lbnRyaWVzW10gfCAudmFsdWUnIHNyYy92ZXJzaW9uLmpzb24pXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIG1pbm9yIG9yIHBhdGNoIHJlbGVhc2VcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwicmVsZWFzZVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDVVJSRU5UX1ZFUlNJT046IGN1cnJlbnRWZXJzaW9uLFxuICAgICAgICAgIE5FV19WRVJTSU9OOiBuZXdWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgICBydW46IFtcbiAgICAgICAgICBgQ1VSUkVOVF9WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJENVUlJFTlRfVkVSU0lPTlwiKWAsXG4gICAgICAgICAgYE5FV19WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJE5FV19WRVJTSU9OXCIpYCxcbiAgICAgICAgICBgW1sgXCIkQ1VSUkVOVF9WRVJTSU9OX01JTk9SXCIgIT0gXCIkTkVXX1ZFUlNJT05fTUlOT1JcIiBdXSAmJiBJU19NSU5PUl9SRUxFQVNFPXRydWUgfHwgSVNfTUlOT1JfUkVMRUFTRT1mYWxzZWAsXG4gICAgICAgICAgYFtbIFwiJElTX01JTk9SX1JFTEVBU0VcIiA9PSBcInRydWVcIiBdXSAmJiBTRU1BTlRJQ19UWVBFPWZlYXQgfHwgU0VNQU5USUNfVFlQRT1maXhgLFxuICAgICAgICAgIGBlY2hvIFwiaXNfbWlub3I9JElTX01JTk9SX1JFTEVBU0VcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgICAgYGVjaG8gXCJ0eXBlPSRTRU1BTlRJQ19UWVBFXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgICAgLy8gc3VibWl0IGEgUFJcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZW5lcmF0ZSB0b2tlblwiLFxuICAgICAgICBpZDogXCJnZW5lcmF0ZV90b2tlblwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwiYXBwLWlkXCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX0lEIH19XCIsXG4gICAgICAgICAgXCJwcml2YXRlLWtleVwiOiBcIiR7eyBlbnYuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZXQgR2l0SHViIEFwcCBVc2VyIElEXCIsXG4gICAgICAgIGlkOiBcImdldF91c2VyX2lkXCIsXG4gICAgICAgIHJ1bjogJ2VjaG8gXCJpZD0kKGdoIGFwaSBcIi91c2Vycy8ke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdXCIgLS1qcSAuaWQpXCIgPj4gXCIkR0lUSFVCX09VVFBVVFwiJyxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICB1c2VzOiBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIGJyYW5jaDogXCJhdXRvL3Byb3ZpZGVyLXVwZ3JhZGVcIixcbiAgICAgICAgICBcImNvbW1pdC1tZXNzYWdlXCI6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIHRpdGxlOiBgJHtzZW1hbnRpY1R5cGV9OiB1cGdyYWRlIHByb3ZpZGVyIGZyb20gXFxgJHtjdXJyZW50VmVyc2lvbn1cXGAgdG8gdmVyc2lvbiBcXGAke25ld1ZlcnNpb259XFxgYCxcbiAgICAgICAgICBib2R5OiBgVGhpcyBQUiB1cGdyYWRlcyB0aGUgdW5kZXJseWluZyBUZXJyYWZvcm0gcHJvdmlkZXIgdG8gdmVyc2lvbiAke25ld1ZlcnNpb259YCxcbiAgICAgICAgICBsYWJlbHM6IFwiYXV0b21lcmdlLGF1dG8tYXBwcm92ZVwiLFxuICAgICAgICAgIFwiZGVsZXRlLWJyYW5jaFwiOiB0cnVlLFxuICAgICAgICAgIHRva2VuOiBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLnRva2VuIH19XCIsXG4gICAgICAgICAgYXV0aG9yOlxuICAgICAgICAgICAgXCIke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdIDwke3sgc3RlcHMuZ2V0X3VzZXJfaWQub3V0cHV0cy5pZCB9fSske3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT5cIixcbiAgICAgICAgICBjb21taXR0ZXI6XG4gICAgICAgICAgICBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF0gPCR7eyBzdGVwcy5nZXRfdXNlcl9pZC5vdXRwdXRzLmlkIH19KyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIuY29tPlwiLFxuICAgICAgICAgIHNpZ25vZmY6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB3b3JrZmxvdy5hZGRKb2JzKHtcbiAgICAgIHVwZ3JhZGU6IHtcbiAgICAgICAgcnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBQUk9KRU5fQVBQX0lEOiBcIiR7eyBzZWNyZXRzLlBST0pFTl9BUFBfSUQgfX1cIixcbiAgICAgICAgICBQUk9KRU5fQVBQX1BSSVZBVEVfS0VZOiBcIiR7eyBzZWNyZXRzLlBST0pFTl9BUFBfUFJJVkFURV9LRVkgfX1cIixcbiAgICAgICAgICBOT0RFX09QVElPTlM6IGAtLW1heC1vbGQtc3BhY2Utc2l6ZT0ke29wdGlvbnMubm9kZUhlYXBTaXplfWAsXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgc3RhdHVzZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJB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LHdCQUF3QjtvQkFDaEMsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLEtBQUssRUFBRSwyQ0FBMkM7b0JBQ2xELE1BQU0sRUFDSixvS0FBb0s7b0JBQ3RLLFNBQVMsRUFDUCxvS0FBb0s7b0JBQ3RLLE9BQU8sRUFBRSxJQUFJO2lCQUNkO2FBQ0Y7U0FDRixDQUFDO1FBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNmLE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQzlCLEdBQUcsRUFBRTtvQkFDSCxhQUFhLEVBQUUsOEJBQThCO29CQUM3QyxzQkFBc0IsRUFBRSx1Q0FBdUM7b0JBQy9ELFlBQVksRUFBRSx3QkFBd0IsT0FBTyxDQUFDLFlBQVksRUFBRTtpQkFDN0Q7Z0JBQ0QsS0FBSztnQkFDTCxXQUFXLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDakMsTUFBTSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDM0IsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDN0IsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDOUI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVLRCwwQ0E0S0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21Dcm9uIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG5pbnRlcmZhY2UgUHJvdmlkZXJVcGdyYWRlT3B0aW9ucyB7XG4gIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93UnVuc09uOiBzdHJpbmdbXTtcbiAgbm9kZUhlYXBTaXplOiBzdHJpbmc7XG59XG4vKipcbiAqIENoZWNrcyBmb3IgbmV3IHZlcnNpb25zIG9mIHRoZSBnaXZlbiBwcm92aWRlciBhbmQgY3JlYXRlcyBhIFBSIHdpdGggYW4gdXBncmFkZSBjaGFuZ2UgaWYgdGhlcmUgYXJlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm92aWRlclVwZ3JhZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0LFxuICAgIG9wdGlvbnM6IFByb3ZpZGVyVXBncmFkZU9wdGlvbnNcbiAgKSB7XG4gICAgcHJvamVjdC5hZGRUYXNrKFwiY2hlY2staWYtbmV3LXByb3ZpZGVyLXZlcnNpb25cIiwge1xuICAgICAgZXhlYzogYG5vZGUgLi8ke29wdGlvbnMuY2hlY2tGb3JVcGdyYWRlc1NjcmlwdFBhdGh9YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LmFkZFdvcmtmbG93KFwicHJvdmlkZXItdXBncmFkZVwiKTtcblxuICAgIGlmICghd29ya2Zsb3cpIHRocm93IG5ldyBFcnJvcihcIm5vIHdvcmtmbG93IGRlZmluZWRcIik7XG5cbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBzY2hlZHVsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY3JvbjogZ2VuZXJhdGVSYW5kb21Dcm9uKHtcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICBtYXhIb3VyOiAwLFxuICAgICAgICAgICAgaG91ck9mZnNldDogMyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sIC8vIFJ1biBldmVyeSBkYXkgc29tZXRpbWUgYmV0d2VlbiAzIGFuZCA0YW1cbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LCAvLyBhbGxvdyBtYW51YWwgdHJpZ2dlcmluZ1xuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3ZXJWZXJzaW9uQXZhaWxhYmxlID1cbiAgICAgIFwiJHt7IHN0ZXBzLmNoZWNrX3ZlcnNpb24ub3V0cHV0cy5uZXdfdmVyc2lvbiA9PSAnYXZhaWxhYmxlJyB9fVwiO1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gXCIke3sgc3RlcHMuY3VycmVudF92ZXJzaW9uLm91dHB1dHMudmFsdWUgfX1cIjtcbiAgICBjb25zdCBuZXdWZXJzaW9uID0gXCIke3sgc3RlcHMubmV3X3ZlcnNpb24ub3V0cHV0cy52YWx1ZSB9fVwiO1xuICAgIGNvbnN0IHNlbWFudGljVHlwZSA9IFwiJHt7IHN0ZXBzLnJlbGVhc2Uub3V0cHV0cy50eXBlIH19XCI7XG5cbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBUZXJyYWZvcm1cIixcbiAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtdGVycmFmb3JtXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICB0ZXJyYWZvcm1fd3JhcHBlcjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLy8gVGhpcyB3b3JrZmxvdyBpcyBoYW5kLWJ1aWx0LCBzbyBwcm9qZW4gZG9lcyBub3QgaW5qZWN0IHRoZSBcIlNldHVwIHBucG1cIlxuICAgICAgLy8gc3RlcCBpdCBhZGRzIHRvIHRoZSB3b3JrZmxvd3MgaXQgZ2VuZXJhdGVzIGl0c2VsZi4gV2l0aG91dCBpdCB0aGUgcG5wbVxuICAgICAgLy8gbWlncmF0aW9uIGxlZnQgYHBucG0gaW5zdGFsbGAgYmVsb3cgd2l0aCBubyBwbnBtIG9uIFBBVEggLS0gZXhpdCAxMjcsXG4gICAgICAvLyBldmVyeSBwcm92aWRlciwgZXZlcnkgZGF5LiBLZWVwIGl0IGFoZWFkIG9mIHNldHVwLW5vZGUsIG1hdGNoaW5nIHRoZVxuICAgICAgLy8gb3JkZXIgcHJvamVuIGVtaXRzLlxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIHBucG1cIixcbiAgICAgICAgdXNlczogXCJwbnBtL2FjdGlvbi1zZXR1cFwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgdmVyc2lvbjogcHJvamVjdC5wYWNrYWdlLnBucG1WZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlLmpzXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcIm5vZGUtdmVyc2lvblwiOiBwcm9qZWN0Lm1pbk5vZGVWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIixcbiAgICAgIH0sXG4gICAgICB7IHJ1bjogXCJwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGVcIiB9LFxuICAgICAge1xuICAgICAgICBpZDogXCJjaGVja192ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogXCJwbnBtIHJ1biBjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgY3VycmVudCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcImN1cnJlbnRfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnKC5jZGt0biAvLyAuY2RrdGYpLnByb3ZpZGVyLnZlcnNpb24nIHBhY2thZ2UuanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydW46IFwicG5wbSBydW4gZmV0Y2hcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0hFQ0tQT0lOVF9ESVNBQkxFOiBcIjFcIixcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJlY2F1c2UgcG5wbSBydW4gZmV0Y2ggbnVrZXMgdGhlIGNvbnRlbnRzIG9mIC9zcmMsIHdlJ3ZlIGxvc3Qgb3VyIGF1dG8tZ2VuZXJhdGVkIGNvcHlyaWdodCBoZWFkZXJzXG4gICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgcnVuOiBcImNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImdldCBwcm92aWRlciB1cGRhdGVkIHZlcnNpb25cIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwibmV3X3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBgZWNobyBcInZhbHVlPSQoanEgLXIgJy4gfCB0b19lbnRyaWVzW10gfCAudmFsdWUnIHNyYy92ZXJzaW9uLmpzb24pXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIG1pbm9yIG9yIHBhdGNoIHJlbGVhc2VcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwicmVsZWFzZVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDVVJSRU5UX1ZFUlNJT046IGN1cnJlbnRWZXJzaW9uLFxuICAgICAgICAgIE5FV19WRVJTSU9OOiBuZXdWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgICBydW46IFtcbiAgICAgICAgICBgQ1VSUkVOVF9WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJENVUlJFTlRfVkVSU0lPTlwiKWAsXG4gICAgICAgICAgYE5FV19WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJE5FV19WRVJTSU9OXCIpYCxcbiAgICAgICAgICBgW1sgXCIkQ1VSUkVOVF9WRVJTSU9OX01JTk9SXCIgIT0gXCIkTkVXX1ZFUlNJT05fTUlOT1JcIiBdXSAmJiBJU19NSU5PUl9SRUxFQVNFPXRydWUgfHwgSVNfTUlOT1JfUkVMRUFTRT1mYWxzZWAsXG4gICAgICAgICAgYFtbIFwiJElTX01JTk9SX1JFTEVBU0VcIiA9PSBcInRydWVcIiBdXSAmJiBTRU1BTlRJQ19UWVBFPWZlYXQgfHwgU0VNQU5USUNfVFlQRT1maXhgLFxuICAgICAgICAgIGBlY2hvIFwiaXNfbWlub3I9JElTX01JTk9SX1JFTEVBU0VcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgICAgYGVjaG8gXCJ0eXBlPSRTRU1BTlRJQ19UWVBFXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgICAgLy8gc3VibWl0IGEgUFJcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZW5lcmF0ZSB0b2tlblwiLFxuICAgICAgICBpZDogXCJnZW5lcmF0ZV90b2tlblwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwiYXBwLWlkXCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX0lEIH19XCIsXG4gICAgICAgICAgXCJwcml2YXRlLWtleVwiOiBcIiR7eyBlbnYuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZXQgR2l0SHViIEFwcCBVc2VyIElEXCIsXG4gICAgICAgIGlkOiBcImdldF91c2VyX2lkXCIsXG4gICAgICAgIHJ1bjogJ2VjaG8gXCJpZD0kKGdoIGFwaSBcIi91c2Vycy8ke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdXCIgLS1qcSAuaWQpXCIgPj4gXCIkR0lUSFVCX09VVFBVVFwiJyxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICB1c2VzOiBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIGJyYW5jaDogXCJhdXRvL3Byb3ZpZGVyLXVwZ3JhZGVcIixcbiAgICAgICAgICBcImNvbW1pdC1tZXNzYWdlXCI6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIHRpdGxlOiBgJHtzZW1hbnRpY1R5cGV9OiB1cGdyYWRlIHByb3ZpZGVyIGZyb20gXFxgJHtjdXJyZW50VmVyc2lvbn1cXGAgdG8gdmVyc2lvbiBcXGAke25ld1ZlcnNpb259XFxgYCxcbiAgICAgICAgICBib2R5OiBgVGhpcyBQUiB1cGdyYWRlcyB0aGUgdW5kZXJseWluZyBUZXJyYWZvcm0gcHJvdmlkZXIgdG8gdmVyc2lvbiAke25ld1ZlcnNpb259YCxcbiAgICAgICAgICBsYWJlbHM6IFwiYXV0b21lcmdlLGF1dG8tYXBwcm92ZVwiLFxuICAgICAgICAgIFwiZGVsZXRlLWJyYW5jaFwiOiB0cnVlLFxuICAgICAgICAgIHRva2VuOiBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLnRva2VuIH19XCIsXG4gICAgICAgICAgYXV0aG9yOlxuICAgICAgICAgICAgXCIke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdIDwke3sgc3RlcHMuZ2V0X3VzZXJfaWQub3V0cHV0cy5pZCB9fSske3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT5cIixcbiAgICAgICAgICBjb21taXR0ZXI6XG4gICAgICAgICAgICBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF0gPCR7eyBzdGVwcy5nZXRfdXNlcl9pZC5vdXRwdXRzLmlkIH19KyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIuY29tPlwiLFxuICAgICAgICAgIHNpZ25vZmY6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB3b3JrZmxvdy5hZGRKb2JzKHtcbiAgICAgIHVwZ3JhZGU6IHtcbiAgICAgICAgcnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBQUk9KRU5fQVBQX0lEOiBcIiR7eyBzZWNyZXRzLlBST0pFTl9BUFBfSUQgfX1cIixcbiAgICAgICAgICBQUk9KRU5fQVBQX1BSSVZBVEVfS0VZOiBcIiR7eyBzZWNyZXRzLlBST0pFTl9BUFBfUFJJVkFURV9LRVkgfX1cIixcbiAgICAgICAgICBOT0RFX09QVElPTlM6IGAtLW1heC1vbGQtc3BhY2Utc2l6ZT0ke29wdGlvbnMubm9kZUhlYXBTaXplfWAsXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgc3RhdHVzZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"projen": "0.101.20",
|
|
38
38
|
"ts-jest": "^29",
|
|
39
39
|
"ts-node": "^10.9.2",
|
|
40
|
-
"typescript": "~5.9.0"
|
|
40
|
+
"typescript": "~5.9.0",
|
|
41
|
+
"yaml": "^2.9.0"
|
|
41
42
|
},
|
|
42
43
|
"peerDependencies": {
|
|
43
44
|
"constructs": "^10.5.0",
|
|
@@ -67,7 +68,7 @@
|
|
|
67
68
|
"publishConfig": {
|
|
68
69
|
"access": "public"
|
|
69
70
|
},
|
|
70
|
-
"version": "0.9.
|
|
71
|
+
"version": "0.9.5",
|
|
71
72
|
"jest": {
|
|
72
73
|
"coverageProvider": "v8",
|
|
73
74
|
"testMatch": [
|