@cdktn/provider-project 0.8.1 → 0.9.1
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 +23 -23
- package/CLAUDE.md +12 -13
- package/README.md +3 -3
- package/lib/cdktf-config.js +4 -4
- package/lib/copyright-headers.js +7 -2
- package/lib/deprecate-packages.js +2 -2
- package/lib/index.js +70 -8
- package/lib/provider-upgrade.js +5 -5
- package/lib/scripts/check-for-upgrades.js +10 -5
- package/node_modules/jsonfile/package.json +1 -1
- package/node_modules/jsonfile/utils.js +4 -0
- package/package.json +38 -33
- package/pnpm-workspace.yaml +6 -0
package/.jsii
CHANGED
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"stability": "stable"
|
|
89
89
|
},
|
|
90
90
|
"homepage": "https://github.com/cdktn-io/cdktn-provider-project.git",
|
|
91
|
-
"jsiiVersion": "5.9.
|
|
91
|
+
"jsiiVersion": "5.9.48 (build 82cdda0)",
|
|
92
92
|
"license": "MPL-2.0",
|
|
93
93
|
"metadata": {
|
|
94
94
|
"jsii": {
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
},
|
|
101
101
|
"name": "@cdktn/provider-project",
|
|
102
102
|
"readme": {
|
|
103
|
-
"markdown": "# The Future of Terraform CDK\n\n> [!IMPORTANT]\n>\n> [OCF](https://the-ocf.org/) - [github.com/open-constructs](https://github.com/open-constructs) has stepped up to fork under the new name of [CDK Terrain - cdktn.io](http://cdktn.io)\n\n---\n\n# Terraform CDK Provider Project\n\nA project template for [projen](https://projen.io) to create repositories for prebuilt provider packages for [CDK Terrain](https://cdktn.io).\n\n## Usage\n\nThe provider repos are entirely auto generated from the configuration contained in this repo here. There's no manual interaction necessary, except for creating the initial repository - using this repo. The `cdktn get` command is executed as part of the build pipeline in Github Actions. These jobs are executed on a schedule. Hence, new provider changes will be picked up automatically.\n\n### Creating a new provider\n\n> [!NOTE]\n> Only Offical Terraform Providers or Hashicorp partner Terraform Poviders will be accepted for pre-built provider generation.\n\nAdd a new repository [over here](https://github.com/cdktn-io/cdktn-repository-manager).\n\nIn the newly created repository, all we need is a `.projenrc.js` file like this:\n\n```js\nconst { CdktnProviderProject } = require('@cdktn/provider-project');\nconst { Semver } = require('projen');\n\nconst project = new CdktnProviderProject({\n terraformProvider: \"aws@~> 2.0\"\n});\n\nproject.synth();\n```\n\nAdjust the `terraformProvider` attribute as required and run the following commands:\n\n```\nnpm install @cdktn/provider-project@latest\nnpx projen\
|
|
103
|
+
"markdown": "# The Future of Terraform CDK\n\n> [!IMPORTANT]\n>\n> [OCF](https://the-ocf.org/) - [github.com/open-constructs](https://github.com/open-constructs) has stepped up to fork under the new name of [CDK Terrain - cdktn.io](http://cdktn.io)\n\n---\n\n# Terraform CDK Provider Project\n\nA project template for [projen](https://projen.io) to create repositories for prebuilt provider packages for [CDK Terrain](https://cdktn.io).\n\n## Usage\n\nThe provider repos are entirely auto generated from the configuration contained in this repo here. There's no manual interaction necessary, except for creating the initial repository - using this repo. The `cdktn get` command is executed as part of the build pipeline in Github Actions. These jobs are executed on a schedule. Hence, new provider changes will be picked up automatically.\n\n### Creating a new provider\n\n> [!NOTE]\n> Only Offical Terraform Providers or Hashicorp partner Terraform Poviders will be accepted for pre-built provider generation.\n\nAdd a new repository [over here](https://github.com/cdktn-io/cdktn-repository-manager).\n\nIn the newly created repository, all we need is a `.projenrc.js` file like this:\n\n```js\nconst { CdktnProviderProject } = require('@cdktn/provider-project');\nconst { Semver } = require('projen');\n\nconst project = new CdktnProviderProject({\n terraformProvider: \"aws@~> 2.0\"\n});\n\nproject.synth();\n```\n\nAdjust the `terraformProvider` attribute as required and run the following commands:\n\n```\nnpm install @cdktn/provider-project@latest\nnpx projen\npnpm install\n```\n\nThis will generate an entire repository ready to be published, including Github Workflows for publishing NPM, Pypi and maven packages. The only thing which is needed to be set manually are the tokens for these registries:\n\n- `NPM_TOKEN`\n- `TWINE_PASSWORD`\n- `TWINE_USERNAME`\n- `MAVEN_GPG_PRIVATE_KEY`\n- `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n- `MAVEN_PASSWORD`\n- `MAVEN_USERNAME`\n\n### Updating an existing Provider\n\nCommit and push the required changes to this repository here and wait for the auto-release to happen. Once released, you can run the following commands in the target provider repository:\n\n```\nnpm install @cdktn/provider-project@latest\nnpx projen\npnpm install\n```\n\nCommit, push and check for the auto-released version.\n\n## Development\n\nWhatever needs to be changed in the downstream [provider repositories](https://github.com/cdktn-io/cdktn-repository-manager) should be done via the [code definitions](./src/index.ts) here.\n\nFor local development, [pnpm link](https://pnpm.io/cli/link) might be quite helpful for testing.\n"
|
|
104
104
|
},
|
|
105
105
|
"repository": {
|
|
106
106
|
"type": "git",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
},
|
|
127
127
|
"locationInModule": {
|
|
128
128
|
"filename": "src/index.ts",
|
|
129
|
-
"line":
|
|
129
|
+
"line": 137
|
|
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": 136
|
|
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": 39
|
|
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": 42
|
|
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": 47
|
|
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": 41
|
|
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": 46
|
|
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": 74
|
|
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": 84
|
|
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": 48
|
|
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": 57
|
|
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": 79
|
|
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": 88
|
|
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": 69
|
|
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": 65
|
|
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": 52
|
|
376
376
|
},
|
|
377
377
|
"name": "namespace",
|
|
378
378
|
"optional": true,
|
|
@@ -389,7 +389,7 @@
|
|
|
389
389
|
"immutable": true,
|
|
390
390
|
"locationInModule": {
|
|
391
391
|
"filename": "src/index.ts",
|
|
392
|
-
"line":
|
|
392
|
+
"line": 61
|
|
393
393
|
},
|
|
394
394
|
"name": "nugetOrg",
|
|
395
395
|
"optional": true,
|
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
"immutable": true,
|
|
410
410
|
"locationInModule": {
|
|
411
411
|
"filename": "src/index.ts",
|
|
412
|
-
"line":
|
|
412
|
+
"line": 103
|
|
413
413
|
},
|
|
414
414
|
"name": "pypiTrustedPublishing",
|
|
415
415
|
"optional": true,
|
|
@@ -425,7 +425,7 @@
|
|
|
425
425
|
"immutable": true,
|
|
426
426
|
"locationInModule": {
|
|
427
427
|
"filename": "src/index.ts",
|
|
428
|
-
"line":
|
|
428
|
+
"line": 40
|
|
429
429
|
},
|
|
430
430
|
"name": "useCustomGithubRunner",
|
|
431
431
|
"optional": true,
|
|
@@ -437,6 +437,6 @@
|
|
|
437
437
|
"symbolId": "src/index:CdktnProviderProjectOptions"
|
|
438
438
|
}
|
|
439
439
|
},
|
|
440
|
-
"version": "0.
|
|
441
|
-
"fingerprint": "
|
|
440
|
+
"version": "0.9.1",
|
|
441
|
+
"fingerprint": "6HrMJeVxEnm3qLhFFuV7pNNNwecrV8NlPJHSj3ypQoQ="
|
|
442
442
|
}
|
package/CLAUDE.md
CHANGED
|
@@ -19,19 +19,19 @@ This is a Projen (https://projen.io) project template for creating CDKTF (CDK fo
|
|
|
19
19
|
### Development
|
|
20
20
|
```bash
|
|
21
21
|
npx projen # Regenerate all project files from .projenrc.ts
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
pnpm run build # Compile TypeScript and run all build steps
|
|
23
|
+
pnpm run compile # Compile TypeScript only
|
|
24
|
+
pnpm test # Run Jest tests
|
|
25
|
+
pnpm run eslint # Lint TypeScript files
|
|
26
|
+
pnpm run eslint:fix # Fix auto-fixable linting issues
|
|
27
|
+
pnpm run validate-workflows # Validate GitHub Actions workflow YAML files
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
### Testing Changes
|
|
31
31
|
```bash
|
|
32
|
-
|
|
32
|
+
pnpm link --global # Create a local link for testing in provider repos
|
|
33
33
|
# In a provider repo:
|
|
34
|
-
|
|
34
|
+
pnpm link --global @cdktn/provider-project
|
|
35
35
|
npx projen # Apply the linked version
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -81,7 +81,7 @@ Determines if a release is needed by comparing `version.json` against the last g
|
|
|
81
81
|
**Provider Update Flow:**
|
|
82
82
|
1. `provider-upgrade` workflow runs daily (randomized cron between 3-4am)
|
|
83
83
|
2. Checks Terraform Registry for new provider version
|
|
84
|
-
3. If available, runs `
|
|
84
|
+
3. If available, runs `pnpm run fetch` (which executes `cdktn get`)
|
|
85
85
|
4. Adds copyright headers back (they get nuked by fetch)
|
|
86
86
|
5. Creates PR with appropriate semantic commit message (`feat:` for minor, `fix:` for patch)
|
|
87
87
|
6. Auto-approve and auto-merge labels trigger automated merge
|
|
@@ -134,7 +134,7 @@ Tests use snapshot testing via `synthSnapshot()` helper:
|
|
|
134
134
|
- Generates a full Projen project in memory
|
|
135
135
|
- Captures all generated files
|
|
136
136
|
- Compares against committed snapshots
|
|
137
|
-
- Update snapshots: `
|
|
137
|
+
- Update snapshots: `pnpm test -u`
|
|
138
138
|
|
|
139
139
|
Key test scenarios:
|
|
140
140
|
- Minimal configuration
|
|
@@ -149,14 +149,13 @@ Key test scenarios:
|
|
|
149
149
|
2. **Run `npx projen`** - Regenerates all project files
|
|
150
150
|
3. **Run tests** - `npm test`
|
|
151
151
|
4. **Validate workflows** - Happens automatically in post-compile, checks YAML against schemas
|
|
152
|
-
5. **Test in a provider repo** - Use `
|
|
152
|
+
5. **Test in a provider repo** - Use `pnpm link --global` for local testing
|
|
153
153
|
6. **Commit and release** - Auto-release on main branch (if not paths-ignored)
|
|
154
154
|
|
|
155
155
|
## Fork-Specific Context
|
|
156
156
|
|
|
157
157
|
This fork (cdktn.io) continues development after HashiCorp's sunset. With a Phased approach.
|
|
158
|
-
-
|
|
159
|
-
- In the near future, will Use `cdktn` and `cdktn-cli` packages instead of `cdktf`
|
|
158
|
+
- Generated provider repos depend on the `cdktn` and `cdktn-cli` packages (see `src/cdktf-config.ts`). Some *filenames* still say `cdktf` (`src/cdktf-config.ts`, and `cdktf.json`, which is deliberately NOT renamed for legacy support) — treat any remaining `cdktf` mention in prose as stale and verify against the source.
|
|
160
159
|
- Default `githubNamespace` updated to "cdktn-io" due to Hashicorp maintaining copyright over original cdtkf/cdk.tf/terraform-cdk orgs, repositories and package names.
|
|
161
160
|
- Maintain support custom namespaces for organizations wanting to publish their own provider bindings
|
|
162
161
|
|
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ Adjust the `terraformProvider` attribute as required and run the following comma
|
|
|
39
39
|
```
|
|
40
40
|
npm install @cdktn/provider-project@latest
|
|
41
41
|
npx projen
|
|
42
|
-
|
|
42
|
+
pnpm install
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
This will generate an entire repository ready to be published, including Github Workflows for publishing NPM, Pypi and maven packages. The only thing which is needed to be set manually are the tokens for these registries:
|
|
@@ -59,7 +59,7 @@ Commit and push the required changes to this repository here and wait for the au
|
|
|
59
59
|
```
|
|
60
60
|
npm install @cdktn/provider-project@latest
|
|
61
61
|
npx projen
|
|
62
|
-
|
|
62
|
+
pnpm install
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Commit, push and check for the auto-released version.
|
|
@@ -68,4 +68,4 @@ Commit, push and check for the auto-released version.
|
|
|
68
68
|
|
|
69
69
|
Whatever needs to be changed in the downstream [provider repositories](https://github.com/cdktn-io/cdktn-repository-manager) should be done via the [code definitions](./src/index.ts) here.
|
|
70
70
|
|
|
71
|
-
For local development, [
|
|
71
|
+
For local development, [pnpm link](https://pnpm.io/cli/link) might be quite helpful for testing.
|
package/lib/cdktf-config.js
CHANGED
|
@@ -70,9 +70,9 @@ class CdktfConfig {
|
|
|
70
70
|
project.setScript("commit", 'git add -A && git commit -am "Update provider" || echo "No changes to commit"');
|
|
71
71
|
// eslint-disable-next-line quotes
|
|
72
72
|
project.setScript("should-release", `! git diff --exit-code v$(cat version.json | jq -r '.version') ./src ./package.json`);
|
|
73
|
-
project.setScript("prebump", "
|
|
73
|
+
project.setScript("prebump", "pnpm run fetch && pnpm run compile && pnpm run commit && pnpm run should-release");
|
|
74
74
|
project.setScript("compile", "jsii --silence-warnings=reserved-word");
|
|
75
|
-
project.setScript("build-provider", "
|
|
75
|
+
project.setScript("build-provider", "pnpm run fetch && pnpm run compile && pnpm run docgen");
|
|
76
76
|
project.setScript("test", "jest --passWithNoTests");
|
|
77
77
|
project.addFields({ publishConfig: { access: "public" } });
|
|
78
78
|
project.addFields({
|
|
@@ -150,7 +150,7 @@ class CdktfConfig {
|
|
|
150
150
|
}
|
|
151
151
|
project.gitignore.exclude(".gen");
|
|
152
152
|
project.gitignore.exclude(".terraform");
|
|
153
|
-
|
|
153
|
+
// pnpm uses pnpm-lock.yaml; projen handles its gitignore automatically
|
|
154
154
|
new projen_1.JsonFile(project, CDKTF_JSON_FILE, {
|
|
155
155
|
obj: {
|
|
156
156
|
language: "typescript",
|
|
@@ -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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RSxXQUFXO2dCQUNoQixnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QixrQkFBa0IsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2FBQ3hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDbkMsR0FBRyxPQUFPO1lBQ1YsMEJBQTBCLEVBQUUscUJBQXFCO1NBQ2xELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTNKRCxrQ0EySkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHJlYWRGaWxlU3luYywgZXhpc3RzU3luYyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgSnNvbkZpbGUsIGNkayB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IFBhY2thZ2VJbmZvIH0gZnJvbSBcIi4vcGFja2FnZS1pbmZvXCI7XG5pbXBvcnQgeyBSZWFkbWVGaWxlIH0gZnJvbSBcIi4vcmVhZG1lXCI7XG5cbmNvbnN0IENES1RGX0pTT05fRklMRSA9IFwiY2RrdGYuanNvblwiO1xuXG5pbnRlcmZhY2UgQ2RrdGZDb25maWdPcHRpb25zIHtcbiAgdGVycmFmb3JtUHJvdmlkZXI6IHN0cmluZztcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIGZxcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIHByb3ZpZGVyVmVyc2lvbjogc3RyaW5nO1xuICBjZGt0blZlcnNpb246IHN0cmluZztcbiAgY29uc3RydWN0c1ZlcnNpb246IHN0cmluZztcbiAgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvO1xuICBnaXRodWJOYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgcHJlYnVpbHQgcHJvdmlkZXIgaXMgZGVwcmVjYXRlZC5cbiAgICogSWYgdHJ1ZSwgbm8gbmV3IHZlcnNpb25zIHdpbGwgYmUgcHVibGlzaGVkLlxuICAgKi9cbiAgaXNEZXByZWNhdGVkOiBib29sZWFuO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGF0ZSB3aGVuIHRoZSBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGRlcHJlY2F0ZWQsXG4gICAqIHRvIGJlIHVzZWQgaW4gdGhlIFJFQURNRSB0ZXh0LiBJZiBubyBkYXRlIGlzIHByb3ZpZGVkLCB0aGVuIHRoZVxuICAgKiBkYXRlIG9mIHRoZSBidWlsZCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGRlcHJlY2F0aW9uRGF0ZT86IHN0cmluZztcbiAganNpaVZlcnNpb24/OiBzdHJpbmc7XG4gIHR5cGVzY3JpcHRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2RrdGZDb25maWcge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBjZGsuSnNpaVByb2plY3QsIG9wdGlvbnM6IENka3RmQ29uZmlnT3B0aW9ucykge1xuICAgIGNvbnN0IHtcbiAgICAgIHRlcnJhZm9ybVByb3ZpZGVyLFxuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIGlzRGVwcmVjYXRlZCxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGNka3RuVmVyc2lvbiA9IG9wdGlvbnMuY2RrdG5WZXJzaW9uO1xuICAgIGNvbnN0IGNvbnN0cnVjdHNWZXJzaW9uID0gb3B0aW9ucy5jb25zdHJ1Y3RzVmVyc2lvbjtcblxuICAgIHByb2plY3QuYWRkUGVlckRlcHMoYGNka3RuQCR7Y2RrdG5WZXJzaW9ufWApO1xuICAgIHByb2plY3QuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RzVmVyc2lvbn1gKTtcblxuICAgIHByb2plY3QuYWRkRGV2RGVwcyhgY2RrdG5AJHtjZGt0blZlcnNpb259YCk7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKGBjZGt0bi1jbGlAJHtjZGt0blZlcnNpb259YCk7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKGBjb25zdHJ1Y3RzQCR7Y29uc3RydWN0c1ZlcnNpb259YCk7XG5cbiAgICBpZiAoanNpaVZlcnNpb24pIHtcbiAgICAgIHByb2plY3QuYWRkRGV2RGVwcyhganNpaUAke2pzaWlWZXJzaW9ufWApO1xuICAgIH1cbiAgICBpZiAodHlwZXNjcmlwdFZlcnNpb24pIHtcbiAgICAgIHByb2plY3QuYWRkRGV2RGVwcyhgdHlwZXNjcmlwdEAke3R5cGVzY3JpcHRWZXJzaW9ufWApO1xuICAgIH1cblxuICAgIGNvbnN0IGZldGNoVGFzayA9IHByb2plY3QuYWRkVGFzayhcImZldGNoXCIsIHtcbiAgICAgIGV4ZWM6IGBta2RpciAtcCBzcmMgJiYgcm0gLXJmIC4vc3JjLyogJiYgY2RrdG4gZ2V0ICYmIGNwIC1SIC5nZW4vcHJvdmlkZXJzLyR7cHJvdmlkZXJOYW1lfS8qIC4vc3JjLyAmJiBjcCAuZ2VuL3ZlcnNpb25zLmpzb24gLi9zcmMvdmVyc2lvbi5qc29uYCxcbiAgICAgIGVudjoge1xuICAgICAgICBDSEVDS1BPSU5UX0RJU0FCTEU6IFwiMVwiLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAvLyBleGVjdXRlIHByb2plbiBhZnRlciBmZXRjaCB0byBlbnN1cmUgdGhhdCB1cGRhdGVzIHRvIHZlcnNpb24uanNvbiBhcmUgcGlja2VkIHVwIGluIHBhY2thZ2UuanNvblxuICAgIGZldGNoVGFzay5zcGF3bihwcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJkZWZhdWx0XCIpISk7XG5cbiAgICBwcm9qZWN0LnNldFNjcmlwdChcbiAgICAgIFwiY29tbWl0XCIsXG4gICAgICAnZ2l0IGFkZCAtQSAmJiBnaXQgY29tbWl0IC1hbSBcIlVwZGF0ZSBwcm92aWRlclwiIHx8IGVjaG8gXCJObyBjaGFuZ2VzIHRvIGNvbW1pdFwiJ1xuICAgICk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHF1b3Rlc1xuICAgIHByb2plY3Quc2V0U2NyaXB0KFxuICAgICAgXCJzaG91bGQtcmVsZWFzZVwiLFxuICAgICAgYCEgZ2l0IGRpZmYgLS1leGl0LWNvZGUgdiQoY2F0IHZlcnNpb24uanNvbiB8IGpxIC1yICcudmVyc2lvbicpIC4vc3JjIC4vcGFja2FnZS5qc29uYFxuICAgICk7XG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcInByZWJ1bXBcIixcbiAgICAgIFwieWFybiBmZXRjaCAmJiB5YXJuIGNvbXBpbGUgJiYgeWFybiBydW4gY29tbWl0ICYmIHlhcm4gcnVuIHNob3VsZC1yZWxlYXNlXCJcbiAgICApO1xuICAgIHByb2plY3Quc2V0U2NyaXB0KFwiY29tcGlsZVwiLCBcImpzaWkgLS1zaWxlbmNlLXdhcm5pbmdzPXJlc2VydmVkLXdvcmRcIik7XG5cbiAgICBwcm9qZWN0LnNldFNjcmlwdChcbiAgICAgIFwiYnVpbGQtcHJvdmlkZXJcIixcbiAgICAgIFwieWFybiBmZXRjaCAmJiB5YXJuIGNvbXBpbGUgJiYgeWFybiBkb2NnZW5cIlxuICAgICk7XG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXCJ0ZXN0XCIsIFwiamVzdCAtLXBhc3NXaXRoTm9UZXN0c1wiKTtcbiAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IHB1Ymxpc2hDb25maWc6IHsgYWNjZXNzOiBcInB1YmxpY1wiIH0gfSk7XG4gICAgcHJvamVjdC5hZGRGaWVsZHMoe1xuICAgICAgXCJzdGFuZGFyZC12ZXJzaW9uXCI6IHtcbiAgICAgICAgdHlwZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImZlYXRcIixcbiAgICAgICAgICAgIHNlY3Rpb246IFwiRmVhdHVyZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZml4XCIsXG4gICAgICAgICAgICBzZWN0aW9uOiBcIkJ1ZyBGaXhlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJjaG9yZVwiLFxuICAgICAgICAgICAgc2VjdGlvbjogXCJVcGRhdGVzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImRvY3NcIixcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3R5bGVcIixcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwicmVmYWN0b3JcIixcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwicGVyZlwiLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXN0XCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBzZXQgcHJvdmlkZXIgbmFtZSBhbmQgdmVyc2lvbiBmcm9tIHZlcnNpb24uanNvbiAoaWYgaXQgZXhpc3RzIHlldClcbiAgICBjb25zdCB2ZXJzaW9uRmlsZSA9IHBhdGgucmVzb2x2ZShwcm9qZWN0Lm91dGRpciwgXCJzcmMvdmVyc2lvbi5qc29uXCIpO1xuXG4gICAgbGV0IGZ1bGx5UXVhbGlmaWVkUHJvdmlkZXJOYW1lID0gXCI8dW5rbm93bj5cIjtcbiAgICBsZXQgYWN0dWFsUHJvdmlkZXJWZXJzaW9uID0gXCI8dW5rbm93bj5cIjtcbiAgICBpZiAoZXhpc3RzU3luYyh2ZXJzaW9uRmlsZSkpIHtcbiAgICAgIGNvbnN0IG1hcCA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHZlcnNpb25GaWxlLCBcInV0ZjhcIikpO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKG1hcCkubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcInZlcnNpb24uanNvbiBtdXN0IGhhdmUgZXhhY3RseSBvbmUgZW50cnkuIHNwZWNpZnlpbmcgbXVsdGlwbGUgcHJvdmlkZXJzIGlzIG5vdCBzdXBwb3J0ZWRcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgW2ZxcG4sIHZlcnNpb25dID0gT2JqZWN0LmVudHJpZXMobWFwKVswXTtcbiAgICAgIGZ1bGx5UXVhbGlmaWVkUHJvdmlkZXJOYW1lID0gZnFwbjtcbiAgICAgIGFjdHVhbFByb3ZpZGVyVmVyc2lvbiA9IHZlcnNpb24gYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyTWV0YWRhdGEgPSB7XG4gICAgICBpc0RlcHJlY2F0ZWQsXG4gICAgICBwcm92aWRlcjoge1xuICAgICAgICBuYW1lOiBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSxcbiAgICAgICAgdmVyc2lvbjogYWN0dWFsUHJvdmlkZXJWZXJzaW9uLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcHJvamVjdC5hZGRGaWVsZHMoe1xuICAgICAgY2RrdGY6IHByb3ZpZGVyTWV0YWRhdGEsXG4gICAgICBjZGt0bjogcHJvdmlkZXJNZXRhZGF0YSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9qZWN0Lm5wbWlnbm9yZSkge1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShDREtURl9KU09OX0ZJTEUpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi5nZW5cIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiLnRlcnJhZm9ybVwiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJjZGt0Zi5qc29uXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIkFQSS5tZFwiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJkb2NzXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcInNjcmlwdHNcIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiLnByb2plbnJjLmpzXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi5jb3B5d3JpdGUuaGNsXCIpO1xuICAgIH1cbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFwiLmdlblwiKTtcbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFwiLnRlcnJhZm9ybVwiKTtcbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFwicGFja2FnZS1sb2NrLmpzb25cIik7XG5cbiAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgQ0RLVEZfSlNPTl9GSUxFLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICBhcHA6IFwiZWNobyBub29wXCIsXG4gICAgICAgIHNlbmRDcmFzaFJlcG9ydHM6IGZhbHNlLFxuICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFt0ZXJyYWZvcm1Qcm92aWRlcl0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IFJlYWRtZUZpbGUocHJvamVjdCwgXCJSRUFETUUubWRcIiwge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHVuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9uOiBhY3R1YWxQcm92aWRlclZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdGYtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nka3RmLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQ0FBNkI7QUFDN0IsdUNBQW9EO0FBQ3BELG1DQUF1QztBQUV2QyxxQ0FBc0M7QUFFdEMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBMEJyQyxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUF3QixFQUFFLE9BQTJCO1FBQy9ELE1BQU0sRUFDSixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUMxQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUVwRCxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFFdEQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3pDLElBQUksRUFBRSx1RUFBdUUsWUFBWSx1REFBdUQ7WUFDaEosR0FBRyxFQUFFO2dCQUNILGtCQUFrQixFQUFFLEdBQUc7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFDSCxrR0FBa0c7UUFDbEcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sQ0FBQyxTQUFTLENBQ2YsUUFBUSxFQUNSLCtFQUErRSxDQUNoRixDQUFDO1FBQ0Ysa0NBQWtDO1FBQ2xDLE9BQU8sQ0FBQyxTQUFTLENBQ2YsZ0JBQWdCLEVBQ2hCLHFGQUFxRixDQUN0RixDQUFDO1FBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FDZixTQUFTLEVBQ1Qsa0ZBQWtGLENBQ25GLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO1FBRXRFLE9BQU8sQ0FBQyxTQUFTLENBQ2YsZ0JBQWdCLEVBQ2hCLHVEQUF1RCxDQUN4RCxDQUFDO1FBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2hCLGtCQUFrQixFQUFFO2dCQUNsQixLQUFLLEVBQUU7b0JBQ0w7d0JBQ0UsSUFBSSxFQUFFLE1BQU07d0JBQ1osT0FBTyxFQUFFLFVBQVU7cUJBQ3BCO29CQUNEO3dCQUNFLElBQUksRUFBRSxLQUFLO3dCQUNYLE9BQU8sRUFBRSxXQUFXO3FCQUNyQjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixPQUFPLEVBQUUsU0FBUztxQkFDbkI7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLE1BQU07d0JBQ1osTUFBTSxFQUFFLElBQUk7cUJBQ2I7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLE9BQU87d0JBQ2IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO29CQUNEO3dCQUNFLElBQUksRUFBRSxNQUFNO3dCQUNaLE1BQU0sRUFBRSxJQUFJO3FCQUNiO29CQUNEO3dCQUNFLElBQUksRUFBRSxNQUFNO3dCQUNaLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxxRUFBcUU7UUFDckUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFckUsSUFBSSwwQkFBMEIsR0FBRyxXQUFXLENBQUM7UUFDN0MsSUFBSSxxQkFBcUIsR0FBRyxXQUFXLENBQUM7UUFDeEMsSUFBSSxJQUFBLHFCQUFVLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUEsdUJBQVksRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRixDQUMzRixDQUFDO1lBQ0osQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7WUFDbEMscUJBQXFCLEdBQUcsT0FBaUIsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRztZQUN2QixZQUFZO1lBQ1osUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSwwQkFBMEI7Z0JBQ2hDLE9BQU8sRUFBRSxxQkFBcUI7YUFDL0I7U0FDRixDQUFDO1FBRUYsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNoQixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLEtBQUssRUFBRSxnQkFBZ0I7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsdUVBQXVFO1FBRXZFLElBQUksaUJBQVEsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFO1lBQ3JDLEdBQUcsRUFBRTtnQkFDSCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGtCQUFrQixFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTtZQUNuQyxHQUFHLE9BQU87WUFDViwwQkFBMEIsRUFBRSxxQkFBcUI7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0pELGtDQTJKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCBleGlzdHNTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBKc29uRmlsZSwgY2RrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcbmltcG9ydCB7IFJlYWRtZUZpbGUgfSBmcm9tIFwiLi9yZWFkbWVcIjtcblxuY29uc3QgQ0RLVEZfSlNPTl9GSUxFID0gXCJjZGt0Zi5qc29uXCI7XG5cbmludGVyZmFjZSBDZGt0ZkNvbmZpZ09wdGlvbnMge1xuICB0ZXJyYWZvcm1Qcm92aWRlcjogc3RyaW5nO1xuICBwcm92aWRlck5hbWU6IHN0cmluZztcbiAgZnFwcm92aWRlck5hbWU6IHN0cmluZztcbiAgcHJvdmlkZXJWZXJzaW9uOiBzdHJpbmc7XG4gIGNka3RuVmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RzVmVyc2lvbjogc3RyaW5nO1xuICBwYWNrYWdlSW5mbzogUGFja2FnZUluZm87XG4gIGdpdGh1Yk5hbWVzcGFjZTogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBwcmVidWlsdCBwcm92aWRlciBpcyBkZXByZWNhdGVkLlxuICAgKiBJZiB0cnVlLCBubyBuZXcgdmVyc2lvbnMgd2lsbCBiZSBwdWJsaXNoZWQuXG4gICAqL1xuICBpc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkYXRlIHdoZW4gdGhlIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCxcbiAgICogdG8gYmUgdXNlZCBpbiB0aGUgUkVBRE1FIHRleHQuIElmIG5vIGRhdGUgaXMgcHJvdmlkZWQsIHRoZW4gdGhlXG4gICAqIGRhdGUgb2YgdGhlIGJ1aWxkIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgZGVwcmVjYXRpb25EYXRlPzogc3RyaW5nO1xuICBqc2lpVmVyc2lvbj86IHN0cmluZztcbiAgdHlwZXNjcmlwdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDZGt0ZkNvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGNkay5Kc2lpUHJvamVjdCwgb3B0aW9uczogQ2RrdGZDb25maWdPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBqc2lpVmVyc2lvbixcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgY2RrdG5WZXJzaW9uID0gb3B0aW9ucy5jZGt0blZlcnNpb247XG4gICAgY29uc3QgY29uc3RydWN0c1ZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdHNWZXJzaW9uO1xuXG4gICAgcHJvamVjdC5hZGRQZWVyRGVwcyhgY2RrdG5AJHtjZGt0blZlcnNpb259YCk7XG4gICAgcHJvamVjdC5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdHNWZXJzaW9ufWApO1xuXG4gICAgcHJvamVjdC5hZGREZXZEZXBzKGBjZGt0bkAke2Nka3RuVmVyc2lvbn1gKTtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGNka3RuLWNsaUAke2Nka3RuVmVyc2lvbn1gKTtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RzVmVyc2lvbn1gKTtcblxuICAgIGlmIChqc2lpVmVyc2lvbikge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGBqc2lpQCR7anNpaVZlcnNpb259YCk7XG4gICAgfVxuICAgIGlmICh0eXBlc2NyaXB0VmVyc2lvbikge1xuICAgICAgcHJvamVjdC5hZGREZXZEZXBzKGB0eXBlc2NyaXB0QCR7dHlwZXNjcmlwdFZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiZmV0Y2hcIiwge1xuICAgICAgZXhlYzogYG1rZGlyIC1wIHNyYyAmJiBybSAtcmYgLi9zcmMvKiAmJiBjZGt0biBnZXQgJiYgY3AgLVIgLmdlbi9wcm92aWRlcnMvJHtwcm92aWRlck5hbWV9LyogLi9zcmMvICYmIGNwIC5nZW4vdmVyc2lvbnMuanNvbiAuL3NyYy92ZXJzaW9uLmpzb25gLFxuICAgICAgZW52OiB7XG4gICAgICAgIENIRUNLUE9JTlRfRElTQUJMRTogXCIxXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIC8vIGV4ZWN1dGUgcHJvamVuIGFmdGVyIGZldGNoIHRvIGVuc3VyZSB0aGF0IHVwZGF0ZXMgdG8gdmVyc2lvbi5qc29uIGFyZSBwaWNrZWQgdXAgaW4gcGFja2FnZS5qc29uXG4gICAgZmV0Y2hUYXNrLnNwYXduKHByb2plY3QudGFza3MudHJ5RmluZChcImRlZmF1bHRcIikhKTtcblxuICAgIHByb2plY3Quc2V0U2NyaXB0KFxuICAgICAgXCJjb21taXRcIixcbiAgICAgICdnaXQgYWRkIC1BICYmIGdpdCBjb21taXQgLWFtIFwiVXBkYXRlIHByb3ZpZGVyXCIgfHwgZWNobyBcIk5vIGNoYW5nZXMgdG8gY29tbWl0XCInXG4gICAgKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcXVvdGVzXG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcInNob3VsZC1yZWxlYXNlXCIsXG4gICAgICBgISBnaXQgZGlmZiAtLWV4aXQtY29kZSB2JChjYXQgdmVyc2lvbi5qc29uIHwganEgLXIgJy52ZXJzaW9uJykgLi9zcmMgLi9wYWNrYWdlLmpzb25gXG4gICAgKTtcbiAgICBwcm9qZWN0LnNldFNjcmlwdChcbiAgICAgIFwicHJlYnVtcFwiLFxuICAgICAgXCJwbnBtIHJ1biBmZXRjaCAmJiBwbnBtIHJ1biBjb21waWxlICYmIHBucG0gcnVuIGNvbW1pdCAmJiBwbnBtIHJ1biBzaG91bGQtcmVsZWFzZVwiXG4gICAgKTtcbiAgICBwcm9qZWN0LnNldFNjcmlwdChcImNvbXBpbGVcIiwgXCJqc2lpIC0tc2lsZW5jZS13YXJuaW5ncz1yZXNlcnZlZC13b3JkXCIpO1xuXG4gICAgcHJvamVjdC5zZXRTY3JpcHQoXG4gICAgICBcImJ1aWxkLXByb3ZpZGVyXCIsXG4gICAgICBcInBucG0gcnVuIGZldGNoICYmIHBucG0gcnVuIGNvbXBpbGUgJiYgcG5wbSBydW4gZG9jZ2VuXCJcbiAgICApO1xuICAgIHByb2plY3Quc2V0U2NyaXB0KFwidGVzdFwiLCBcImplc3QgLS1wYXNzV2l0aE5vVGVzdHNcIik7XG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyBwdWJsaXNoQ29uZmlnOiB7IGFjY2VzczogXCJwdWJsaWNcIiB9IH0pO1xuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIFwic3RhbmRhcmQtdmVyc2lvblwiOiB7XG4gICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJmZWF0XCIsXG4gICAgICAgICAgICBzZWN0aW9uOiBcIkZlYXR1cmVzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImZpeFwiLFxuICAgICAgICAgICAgc2VjdGlvbjogXCJCdWcgRml4ZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY2hvcmVcIixcbiAgICAgICAgICAgIHNlY3Rpb246IFwiVXBkYXRlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogXCJkb2NzXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInN0eWxlXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInJlZmFjdG9yXCIsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcInBlcmZcIixcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGVzdFwiLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gc2V0IHByb3ZpZGVyIG5hbWUgYW5kIHZlcnNpb24gZnJvbSB2ZXJzaW9uLmpzb24gKGlmIGl0IGV4aXN0cyB5ZXQpXG4gICAgY29uc3QgdmVyc2lvbkZpbGUgPSBwYXRoLnJlc29sdmUocHJvamVjdC5vdXRkaXIsIFwic3JjL3ZlcnNpb24uanNvblwiKTtcblxuICAgIGxldCBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSA9IFwiPHVua25vd24+XCI7XG4gICAgbGV0IGFjdHVhbFByb3ZpZGVyVmVyc2lvbiA9IFwiPHVua25vd24+XCI7XG4gICAgaWYgKGV4aXN0c1N5bmModmVyc2lvbkZpbGUpKSB7XG4gICAgICBjb25zdCBtYXAgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyh2ZXJzaW9uRmlsZSwgXCJ1dGY4XCIpKTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhtYXApLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJ2ZXJzaW9uLmpzb24gbXVzdCBoYXZlIGV4YWN0bHkgb25lIGVudHJ5LiBzcGVjaWZ5aW5nIG11bHRpcGxlIHByb3ZpZGVycyBpcyBub3Qgc3VwcG9ydGVkXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFtmcXBuLCB2ZXJzaW9uXSA9IE9iamVjdC5lbnRyaWVzKG1hcClbMF07XG4gICAgICBmdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZSA9IGZxcG47XG4gICAgICBhY3R1YWxQcm92aWRlclZlcnNpb24gPSB2ZXJzaW9uIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlck1ldGFkYXRhID0ge1xuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgbmFtZTogZnVsbHlRdWFsaWZpZWRQcm92aWRlck5hbWUsXG4gICAgICAgIHZlcnNpb246IGFjdHVhbFByb3ZpZGVyVmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHByb2plY3QuYWRkRmllbGRzKHtcbiAgICAgIGNka3RmOiBwcm92aWRlck1ldGFkYXRhLFxuICAgICAgY2RrdG46IHByb3ZpZGVyTWV0YWRhdGEsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvamVjdC5ucG1pZ25vcmUpIHtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoQ0RLVEZfSlNPTl9GSUxFKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCIuZ2VuXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm1cIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiY2RrdGYuanNvblwiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJBUEkubWRcIik7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZS5leGNsdWRlKFwiZG9jc1wiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCJzY3JpcHRzXCIpO1xuICAgICAgcHJvamVjdC5ucG1pZ25vcmUuZXhjbHVkZShcIi5wcm9qZW5yYy5qc1wiKTtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLmV4Y2x1ZGUoXCIuY29weXdyaXRlLmhjbFwiKTtcbiAgICB9XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi5nZW5cIik7XG4gICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm1cIik7XG4gICAgLy8gcG5wbSB1c2VzIHBucG0tbG9jay55YW1sOyBwcm9qZW4gaGFuZGxlcyBpdHMgZ2l0aWdub3JlIGF1dG9tYXRpY2FsbHlcblxuICAgIG5ldyBKc29uRmlsZShwcm9qZWN0LCBDREtURl9KU09OX0ZJTEUsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJlY2hvIG5vb3BcIixcbiAgICAgICAgc2VuZENyYXNoUmVwb3J0czogZmFsc2UsXG4gICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW3RlcnJhZm9ybVByb3ZpZGVyXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgUmVhZG1lRmlsZShwcm9qZWN0LCBcIlJFQURNRS5tZFwiLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdW5kZXJseWluZ1RlcnJhZm9ybVZlcnNpb246IGFjdHVhbFByb3ZpZGVyVmVyc2lvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/copyright-headers.js
CHANGED
|
@@ -33,7 +33,12 @@ project {
|
|
|
33
33
|
"docs/**",
|
|
34
34
|
"API.md",
|
|
35
35
|
".mergify.yml",
|
|
36
|
-
"scripts/*.js"
|
|
36
|
+
"scripts/*.js",
|
|
37
|
+
# projen-owned and rewritten on every synth; copywrite headers .yaml files, so
|
|
38
|
+
# without these the header is added, stripped by the next synth, and re-added by
|
|
39
|
+
# CI -- permanent self-mutation churn across every provider repo.
|
|
40
|
+
"pnpm-lock.yaml",
|
|
41
|
+
"pnpm-workspace.yaml"
|
|
37
42
|
]
|
|
38
43
|
}
|
|
39
44
|
`.split("\n"),
|
|
@@ -41,4 +46,4 @@ project {
|
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
48
|
exports.CopyrightHeaders = CopyrightHeaders;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weXJpZ2h0LWhlYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29weXJpZ2h0LWhlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXVDO0FBRXZDLE1BQWEsZ0JBQWdCO0lBQzNCLFlBQVksT0FBd0I7UUFDbEMsMkRBQTJEO1FBQzNELHFFQUFxRTtRQUNyRSxPQUFPLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUN0QztZQUNFLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsSUFBSSxFQUFFLDJCQUEyQjtTQUNsQyxFQUNELEVBQUUsSUFBSSxFQUFFLGtDQUFrQyxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxDQUN2RSxDQUFDO1FBRUYsMERBQTBEO1FBQzFELElBQUksaUJBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7WUFDdEMsS0FBSyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZCWixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5Q0QsNENBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2RrLCBUZXh0RmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcblxuZXhwb3J0IGNsYXNzIENvcHlyaWdodEhlYWRlcnMge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBjZGsuSnNpaVByb2plY3QpIHtcbiAgICAvLyBSdW4gY29weXdyaXRlIHRvb2wgdG8gYWRkIGNvcHlyaWdodCBoZWFkZXJzIHRvIGFsbCBmaWxlc1xuICAgIC8vIFRoaXMgcnVucyBvbiBpbmRpdmlkdWFsIHJlcG9zaXRvcmllcyB0aGF0IHVzZSB0aGlzIFByb2plbiB0ZW1wbGF0ZVxuICAgIHByb2plY3QuYnVpbGRXb3JrZmxvdz8uYWRkUG9zdEJ1aWxkU3RlcHMoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtY29weXdyaXRlXCIsXG4gICAgICB9LFxuICAgICAgeyBuYW1lOiBcIkFkZCBoZWFkZXJzIHVzaW5nIENvcHl3cml0ZSB0b29sXCIsIHJ1bjogXCJjb3B5d3JpdGUgaGVhZGVyc1wiIH1cbiAgICApO1xuXG4gICAgLy8gY29weXdyaXRlIGNvbmZpZyBmb3IgdGhlIGluZGl2aWR1YWwgcHJlLWJ1aWx0IHByb3ZpZGVyc1xuICAgIG5ldyBUZXh0RmlsZShwcm9qZWN0LCBcIi5jb3B5d3JpdGUuaGNsXCIsIHtcbiAgICAgIGxpbmVzOiBgc2NoZW1hX3ZlcnNpb24gPSAxXG5cbnByb2plY3Qge1xuICBsaWNlbnNlICAgICAgICA9IFwiTVBMLTIuMFwiXG4gIGNvcHlyaWdodF95ZWFyID0gMjAyMVxuXG4gICMgKE9QVElPTkFMKSBBIGxpc3Qgb2YgZ2xvYnMgdGhhdCBzaG91bGQgbm90IGhhdmUgY29weXJpZ2h0L2xpY2Vuc2UgaGVhZGVycy5cbiAgIyBTdXBwb3J0cyBkb3VibGVzdGFyIGdsb2IgcGF0dGVybnMgZm9yIG1vcmUgZmxleGliaWxpdHkgaW4gZGVmaW5pbmcgd2hpY2hcbiAgIyBmaWxlcyBvciBmb2xkZXJzIHNob3VsZCBiZSBpZ25vcmVkXG4gIGhlYWRlcl9pZ25vcmUgPSBbXG4gICAgXCIqKi9ub2RlX21vZHVsZXMvKipcIixcbiAgICBcImxpYi8qKlwiLFxuICAgIFwiZGlzdC8qKlwiLFxuICAgIFwibG9ncy8qKlwiLFxuICAgIFwiYnVpbGQvKipcIixcbiAgICBcIi5nZW4vKipcIixcbiAgICBcIi5naXRodWIvSVNTVUVfVEVNUExBVEUvKipcIixcbiAgICBcIi50ZXJyYWZvcm0vKipcIixcbiAgICBcImRvY3MvKipcIixcbiAgICBcIkFQSS5tZFwiLFxuICAgIFwiLm1lcmdpZnkueW1sXCIsXG4gICAgXCJzY3JpcHRzLyouanNcIixcbiAgICAjIHByb2plbi1vd25lZCBhbmQgcmV3cml0dGVuIG9uIGV2ZXJ5IHN5bnRoOyBjb3B5d3JpdGUgaGVhZGVycyAueWFtbCBmaWxlcywgc29cbiAgICAjIHdpdGhvdXQgdGhlc2UgdGhlIGhlYWRlciBpcyBhZGRlZCwgc3RyaXBwZWQgYnkgdGhlIG5leHQgc3ludGgsIGFuZCByZS1hZGRlZCBieVxuICAgICMgQ0kgLS0gcGVybWFuZW50IHNlbGYtbXV0YXRpb24gY2h1cm4gYWNyb3NzIGV2ZXJ5IHByb3ZpZGVyIHJlcG8uXG4gICAgXCJwbnBtLWxvY2sueWFtbFwiLFxuICAgIFwicG5wbS13b3Jrc3BhY2UueWFtbFwiXG4gIF1cbn1cbmAuc3BsaXQoXCJcXG5cIiksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -52,7 +52,7 @@ class DeprecatePackages {
|
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
name: "Install",
|
|
55
|
-
run: "
|
|
55
|
+
run: "pnpm install --frozen-lockfile",
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
name: "Check deprecation status",
|
|
@@ -89,4 +89,4 @@ class DeprecatePackages {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
exports.DeprecatePackages = DeprecatePackages;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlLXBhY2thZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcHJlY2F0ZS1wYWNrYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBMkU7QUFTM0UsTUFBYSxpQkFBaUI7SUFDNUIsWUFBWSxPQUFvQixFQUFFLE9BQWlDO1FBQ2pFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUU1RCxNQUFNLHdCQUF3QixHQUFHO1lBQy9CLDJHQUEyRyxZQUFZLFdBQVc7WUFDbEksMEVBQTBFO1NBQzNFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osaURBQWlEO1FBQ2pELE1BQU0sdUJBQXVCLEdBQUc7WUFDOUIseUdBQXlHLFlBQVksR0FBRztZQUN4SCwySEFBMkg7WUFDM0gsMEdBQTBHO1lBQzFHLGtDQUFrQyxZQUFZLHNFQUFzRTtZQUNwSCxtSUFBbUk7WUFDbkksRUFBRTtTQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWQsTUFBTSxlQUFlLEdBQVk7WUFDL0IsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxHQUFHLEVBQUUsNEZBQTRGLHVCQUF1QixJQUFJO1NBQzdILENBQUM7UUFDRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDdEIsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxxREFBcUQ7Z0JBQzNELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztnQkFDakMsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUsa0JBQWtCO3FCQUN6QjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsZUFBZTt3QkFDckIsSUFBSSxFQUFFLG9CQUFvQjt3QkFDMUIsSUFBSSxFQUFFOzRCQUNKLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYzt5QkFDdkM7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsR0FBRyxFQUFFLGdDQUFnQztxQkFDdEM7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLDBCQUEwQjt3QkFDaEMsRUFBRSxFQUFFLGNBQWM7d0JBQ2xCLEdBQUcsRUFBRTs0QkFDSCw2RUFBNkU7NEJBQzdFLHFDQUFxQyxFQUFFLHVCQUF1Qjs0QkFDOUQsdURBQXVEO3lCQUN4RCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7cUJBQ2I7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLDhCQUE4Qjt3QkFDcEMsRUFBRSxFQUFFLHdHQUF3Rzt3QkFDNUcsR0FBRyxFQUFFOzRCQUNILGtEQUFrRDs0QkFDbEQsaUJBQWlCLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLHdCQUF3QixHQUFHO3lCQUN0RSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ1osR0FBRyxFQUFFOzRCQUNILFlBQVksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVc7NEJBQ3pDLFNBQVMsRUFDUCxjQUFjO2dDQUNkLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksV0FBVyxLQUFLO3lCQUN4RDtxQkFDRjtvQkFDRCxxSEFBcUg7b0JBQ3JILCtGQUErRjtvQkFDL0YsNEhBQTRIO29CQUM1SCxzRUFBc0U7aUJBQ3ZFO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxRQUFRLEVBQUUsK0JBQWEsQ0FBQyxJQUFJO2lCQUM3QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdEZELDhDQXNGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgSnNpaVByb2plY3QgfSBmcm9tIFwicHJvamVuL2xpYi9jZGtcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBQYWNrYWdlSW5mbyB9IGZyb20gXCIuL3BhY2thZ2UtaW5mb1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcHJlY2F0ZVBhY2thZ2VzT3B0aW9ucyB7XG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBwYWNrYWdlSW5mbzogUGFja2FnZUluZm87XG4gIGlzRGVwcmVjYXRlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZVBhY2thZ2VzIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogSnNpaVByb2plY3QsIG9wdGlvbnM6IERlcHJlY2F0ZVBhY2thZ2VzT3B0aW9ucykge1xuICAgIGNvbnN0IHsgcHJvdmlkZXJOYW1lLCBwYWNrYWdlSW5mbywgaXNEZXByZWNhdGVkIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgZGVwcmVjYXRpb25NZXNzYWdlRm9yTlBNID0gW1xuICAgICAgYFNlZSBodHRwczovL2Nka3RuLmlvL2RvY3MvY29uY2VwdHMvcHJvdmlkZXJzI2ltcG9ydC1wcm92aWRlcnMgZm9yIGRldGFpbHMgb24gaG93IHRvIGNvbnRpbnVlIHRvIHVzZSB0aGUgJHtwcm92aWRlck5hbWV9IHByb3ZpZGVyYCxcbiAgICAgIGBpbiB5b3VyIENESyBUZXJyYWluIChjZGt0bikgcHJvamVjdHMgYnkgZ2VuZXJhdGluZyB0aGUgYmluZGluZ3MgbG9jYWxseS5gLFxuICAgIF0uam9pbihcIiBcIik7XG4gICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL2dvL2lzc3Vlcy80MDM1N1xuICAgIGNvbnN0IGRlcHJlY2F0aW9uTWVzc2FnZUZvckdvID0gW1xuICAgICAgYC8vIERlcHJlY2F0ZWQ6IFRoZSBDREsgVGVycmFpbiBUZWFtIGlzIG5vIGxvbmdlciBwdWJsaXNoaW5nIG5ldyB2ZXJzaW9ucyBvZiB0aGUgcHJlYnVpbHQgcHJvdmlkZXIgZm9yICR7cHJvdmlkZXJOYW1lfS5gLFxuICAgICAgYC8vIFByZXZpb3VzbHktcHVibGlzaGVkIHZlcnNpb25zIG9mIHRoaXMgcHJlYnVpbHQgcHJvdmlkZXIgd2lsbCBzdGlsbCBjb250aW51ZSB0byBiZSBhdmFpbGFibGUgYXMgaW5zdGFsbGFibGUgR28gbW9kdWxlcyxgLFxuICAgICAgYC8vIGJ1dCB0aGVzZSB3aWxsIG5vdCBiZSBjb21wYXRpYmxlIHdpdGggbmV3ZXIgdmVyc2lvbnMgb2YgQ0RLIFRlcnJhaW4gYW5kIGFyZSBub3QgZWxpZ2libGUgZm9yIHN1cHBvcnQuYCxcbiAgICAgIGAvLyBZb3UgY2FuIGNvbnRpbnVlIHRvIHVzZSB0aGUgJHtwcm92aWRlck5hbWV9IHByb3ZpZGVyIGluIHlvdXIgQ0RLIFRlcnJhaW4gcHJvamVjdHMgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBjZGt0bixgLFxuICAgICAgYC8vIGJ1dCB5b3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIHRoZSBiaW5kaW5ncyBsb2NhbGx5LiBTZWUgaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL3Byb3ZpZGVycyNpbXBvcnQtcHJvdmlkZXJzIGZvciBkZXRhaWxzLmAsXG4gICAgICBgYCxcbiAgICBdLmpvaW4oXCJcXFxcblwiKTtcblxuICAgIGNvbnN0IGRlcHJlY2F0aW9uU3RlcDogSm9iU3RlcCA9IHtcbiAgICAgIG5hbWU6IFwiTWFyayB0aGUgR28gbW9kdWxlIGFzIGRlcHJlY2F0ZWRcIixcbiAgICAgIHJ1bjogYGZpbmQgJy5yZXBvL2Rpc3QvZ28nIC1taW5kZXB0aCAyIC1tYXhkZXB0aCA0IC10eXBlIGYgLW5hbWUgJ2dvLm1vZCcgfCB4YXJncyBzZWQgLWkgJzFzfF58JHtkZXByZWNhdGlvbk1lc3NhZ2VGb3JHb318J2AsXG4gICAgfTtcbiAgICBpZiAoaXNEZXByZWNhdGVkKSB7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ucHJlUHVibGlzaFN0ZXBzPy5zcGxpY2UoLTEsIDAsIGRlcHJlY2F0aW9uU3RlcCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZWFzZVdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LnRyeUZpbmRXb3JrZmxvdyhcInJlbGVhc2VcIik7XG4gICAgaWYgKCFyZWxlYXNlV29ya2Zsb3cpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIHJlbGVhc2Ugd29ya2Zsb3csIGFib3J0aW5nXCIpO1xuICAgIH1cblxuICAgIHJlbGVhc2VXb3JrZmxvdy5hZGRKb2JzKHtcbiAgICAgIGRlcHJlY2F0ZToge1xuICAgICAgICBuYW1lOiBcIkRlcHJlY2F0ZSB0aGUgcGFja2FnZSBpbiBwYWNrYWdlIG1hbmFnZXJzIGlmIG5lZWRlZFwiLFxuICAgICAgICBydW5zT246IFtcInVidW50dS1sYXRlc3RcIl0sXG4gICAgICAgIG5lZWRzOiBbXCJyZWxlYXNlXCIsIFwicmVsZWFzZV9ucG1cIl0sXG4gICAgICAgIHN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDaGVja291dFwiLFxuICAgICAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlNldHVwIE5vZGUuanNcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlXCIsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIFwibm9kZS12ZXJzaW9uXCI6IHByb2plY3QubWluTm9kZVZlcnNpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsXCIsXG4gICAgICAgICAgICBydW46IFwicG5wbSBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNoZWNrIGRlcHJlY2F0aW9uIHN0YXR1c1wiLFxuICAgICAgICAgICAgaWQ6IFwiY2hlY2tfc3RhdHVzXCIsXG4gICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgYElTX0RFUFJFQ0FURUQ9JChjYXQgcGFja2FnZS5qc29uIHwganEgJyguY2RrdG4gLy8gLmNka3RmKS5pc0RlcHJlY2F0ZWQnIC1yKWAsXG4gICAgICAgICAgICAgIGBlY2hvIFwiaXNfZGVwcmVjYXRlZD0kSVNfREVQUkVDQVRFRFwiYCwgLy8gZm9yIGVhc2llciBkZWJ1Z2dpbmdcbiAgICAgICAgICAgICAgYGVjaG8gXCJpc19kZXByZWNhdGVkPSRJU19ERVBSRUNBVEVEXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJEZXByZWNhdGUgdGhlIHBhY2thZ2Ugb24gTlBNXCIsXG4gICAgICAgICAgICBpZjogXCJzdGVwcy5jaGVja19zdGF0dXMub3V0cHV0cy5pc19kZXByZWNhdGVkID09ICd0cnVlJyB8fCBzdGVwcy5jaGVja19zdGF0dXMub3V0cHV0cy5pc19kZXByZWNhdGVkID09IHRydWVcIixcbiAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAnbnBtIHNldCBcIi8vJE5QTV9SRUdJU1RSWS86X2F1dGhUb2tlbj0kTlBNX1RPS0VOXCInLFxuICAgICAgICAgICAgICBgbnBtIGRlcHJlY2F0ZSAke3BhY2thZ2VJbmZvLm5wbS5uYW1lfSBcIiR7ZGVwcmVjYXRpb25NZXNzYWdlRm9yTlBNfVwiYCxcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICBOUE1fUkVHSVNUUlk6IHByb2plY3QucGFja2FnZS5ucG1SZWdpc3RyeSxcbiAgICAgICAgICAgICAgTlBNX1RPS0VOOlxuICAgICAgICAgICAgICAgIFwiJHt7IHNlY3JldHMuXCIgK1xuICAgICAgICAgICAgICAgIGAke3Byb2plY3QucGFja2FnZS5ucG1Ub2tlblNlY3JldCA/PyBcIk5QTV9UT0tFTlwifSB9fWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgUHlQaSBoYXMgbm8gbWVjaGFuaXNtIHRvIG1hcmsgYSBwYWNrYWdlIGFzIGRlcHJlY2F0ZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXBpL3dhcmVob3VzZS9pc3N1ZXMvMzQ1XG4gICAgICAgICAgLy8gTWF2ZW4gYWxzbyBuZXZlciBtb3ZlZCBwYXN0IHRoZSBwcm9wb3NhbCBzdGFnZTogaHR0cHM6Ly9naXRodWIuY29tL3A0ZW0vYXJ0aWZhY3QtZGVwcmVjYXRpb25cbiAgICAgICAgICAvLyBOdUdldCBzdXBwb3J0cyBkZXByZWNhdGlvbiwgYnV0IG9ubHkgdmlhIHRoZSB3ZWIgVUk6IGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9udWdldC9udWdldC1vcmcvZGVwcmVjYXRlLXBhY2thZ2VzXG4gICAgICAgICAgLy8gR28gZGVwcmVjYXRpb24gaXMgaGFuZGxlZCBpbiB0aGUgXCJQdWJsaXNoIHRvIEdvXCIgc3RlcCAoc2VlIGxpbmUgMzcpXG4gICAgICAgIF0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/index.js
CHANGED
|
@@ -49,9 +49,11 @@ const githubActionPinnedVersions = {
|
|
|
49
49
|
"peter-evans/create-pull-request": "5f6978faf089d4d20b00c7766989d076bb2fc7f1", // v8.1.1
|
|
50
50
|
"slackapi/slack-github-action": "45a88b9581bfab2566dc881e2cd66d334e621e2c", // v3.0.3
|
|
51
51
|
"actions/create-github-app-token": "29824e69f54612133e76f7eaac726eef6c875baf", // v2.2.1
|
|
52
|
+
// projen emits this unpinned as `pnpm/action-setup@v5` once packageManager is pnpm
|
|
53
|
+
"pnpm/action-setup": "fc06bc1257f339d1d5d8b3a19a8cae5388b55320", // v5
|
|
52
54
|
};
|
|
53
55
|
class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
54
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.
|
|
56
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.9.1" };
|
|
55
57
|
constructor(options) {
|
|
56
58
|
const cdktnVersion = options.cdktnVersion ?? options.cdktfVersion;
|
|
57
59
|
assert(cdktnVersion, "Either cdktnVersion or cdktfVersion must be provided");
|
|
@@ -195,13 +197,37 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
|
195
197
|
defaultReleaseBranch: "main",
|
|
196
198
|
repository: `https://github.com/${repository}.git`,
|
|
197
199
|
eslint: false,
|
|
200
|
+
packageManager: javascript_1.NodePackageManager.PNPM,
|
|
201
|
+
// Provider repos run jsii-pacmak over bundled deps exactly as this project
|
|
202
|
+
// does, so they need the hoisted linker too -- see the note in .projenrc.ts.
|
|
203
|
+
// It must be in pnpm-workspace.yaml, not .npmrc, or pnpm 11 ignores it.
|
|
204
|
+
pnpmOptions: {
|
|
205
|
+
workspaceYamlOptions: {
|
|
206
|
+
nodeLinker: javascript_1.PnpmWorkspaceYamlSchemaNodeLinker.HOISTED,
|
|
207
|
+
auditConfig: {
|
|
208
|
+
// Same flat-range artifact this project ignores for itself:
|
|
209
|
+
// GHSA-mh99-v99m-4gvg declares affected "<=5.0.7", which naively matches
|
|
210
|
+
// the 1.x line. Provider repos reach brace-expansion@1 via
|
|
211
|
+
// cdktn-cli > @cdktn/hcl2cdk > glob > minimatch@3, and there is no fixed
|
|
212
|
+
// 1.x to move to -- forcing 5.0.8 would break minimatch@3, which requires
|
|
213
|
+
// ^1.1.7. Dev tooling only; never shipped.
|
|
214
|
+
ignoreGhsas: ["GHSA-mh99-v99m-4gvg"],
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
},
|
|
198
218
|
depsUpgrade: !isDeprecated,
|
|
199
219
|
depsUpgradeOptions: {
|
|
220
|
+
cooldown: 4,
|
|
200
221
|
workflowOptions: {
|
|
201
222
|
labels: ["automerge", "auto-approve", "dependencies"],
|
|
202
223
|
schedule: javascript_1.UpgradeDependenciesSchedule.WEEKLY,
|
|
203
224
|
},
|
|
204
225
|
},
|
|
226
|
+
auditDeps: !isDeprecated,
|
|
227
|
+
auditDepsOptions: {
|
|
228
|
+
level: "high",
|
|
229
|
+
runOn: "build",
|
|
230
|
+
},
|
|
205
231
|
publishToPypi: packageInfo.python,
|
|
206
232
|
publishToNuget: packageInfo.publishToNuget,
|
|
207
233
|
publishToMaven: packageInfo.publishToMaven,
|
|
@@ -241,7 +267,14 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
|
241
267
|
mergify: false,
|
|
242
268
|
},
|
|
243
269
|
});
|
|
244
|
-
this.addDevDeps("dot-prop@^5.2.0",
|
|
270
|
+
this.addDevDeps("dot-prop@^5.2.0",
|
|
271
|
+
// ^1.1.0 could never leave the 1.x line, which drags in an old
|
|
272
|
+
// @actions/http-client and with it undici <6.24.0 -- three high advisories
|
|
273
|
+
// (GHSA-vrm6-8vpv-qv8q, GHSA-v9p9-hfj2-hcw8, and the <6.27.0 fragment-count
|
|
274
|
+
// DoS). 3.x depends on @actions/http-client ^4 -> undici ^6.23.0, resolving
|
|
275
|
+
// to 6.28.0. NOTE: 3.x is ESM-only, so check-for-upgrades.js loads it with a
|
|
276
|
+
// dynamic import rather than `require`.
|
|
277
|
+
"@actions/core@^3.0.0", "@action-validator/core", "@action-validator/cli");
|
|
245
278
|
// Default memory is 7GB: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
|
|
246
279
|
// Custom Runners we use have 32GB of memory
|
|
247
280
|
// The below numbers set heap limits that are ~1gb and ~0.5gb less, respectively, than the total available memory
|
|
@@ -319,11 +352,13 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
|
319
352
|
patchGoPublishToUseAppToken(releaseWorkflow);
|
|
320
353
|
}
|
|
321
354
|
// Fix maven issue (https://github.com/cdklabs/publib/pull/777)
|
|
322
|
-
|
|
323
|
-
//
|
|
324
|
-
|
|
325
|
-
//
|
|
326
|
-
|
|
355
|
+
//
|
|
356
|
+
// The publish jobs don't exist until Release synthesizes, and the step's index
|
|
357
|
+
// within release_maven shifts whenever the job gains a step -- switching the
|
|
358
|
+
// package manager to pnpm inserts a "Setup pnpm" step, which silently moved the
|
|
359
|
+
// old hardcoded /steps/10/ onto a step with no env at all. Resolve the step by
|
|
360
|
+
// what it runs, in preSynthesize, so neither problem can recur.
|
|
361
|
+
new MavenOptsPatch(this);
|
|
327
362
|
this.pinGithubActionVersions(githubActionPinnedVersions);
|
|
328
363
|
new cdktf_config_1.CdktfConfig(this, {
|
|
329
364
|
terraformProvider,
|
|
@@ -500,9 +535,36 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
|
|
|
500
535
|
}
|
|
501
536
|
}
|
|
502
537
|
exports.CdktnProviderProject = CdktnProviderProject;
|
|
538
|
+
/**
|
|
539
|
+
* Sets MAVEN_OPTS on the maven publish step and drops the unused
|
|
540
|
+
* MAVEN_STAGING_PROFILE_ID, resolving the step by the command it runs.
|
|
541
|
+
*
|
|
542
|
+
* Runs in preSynthesize because the publish jobs are added by Release during
|
|
543
|
+
* synthesis, so the job does not exist yet at construction time.
|
|
544
|
+
*
|
|
545
|
+
* @see https://github.com/cdklabs/publib/pull/777
|
|
546
|
+
*/
|
|
547
|
+
class MavenOptsPatch extends projen_1.Component {
|
|
548
|
+
preSynthesize() {
|
|
549
|
+
const workflow = projen_1.github.GitHub.of(this.project)?.tryFindWorkflow("release");
|
|
550
|
+
const steps = workflow?.jobs?.release_maven
|
|
551
|
+
?.steps;
|
|
552
|
+
assert(steps, "release_maven job not found, please check if the MAVEN_OPTS workaround still works!");
|
|
553
|
+
const step = steps.find((s) => s.run?.includes("publib-maven"));
|
|
554
|
+
assert(step?.env, "no publib-maven step with an env block in release_maven, please check if the MAVEN_OPTS workaround still works!");
|
|
555
|
+
// Mutate the step directly rather than JsonPatch-ing the rendered file: the
|
|
556
|
+
// publisher prepends tool-setup steps at render time, so in-memory indices do
|
|
557
|
+
// not match rendered ones, and a JSON Pointer would have to encode that offset.
|
|
558
|
+
// See https://stackoverflow.com/questions/70153962/nexus-staging-maven-plugin-maven-deploy-failed-an-api-incompatibility-was-enco
|
|
559
|
+
step.env.MAVEN_OPTS =
|
|
560
|
+
"--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED";
|
|
561
|
+
// This is no longer used.
|
|
562
|
+
delete step.env.MAVEN_STAGING_PROFILE_ID;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
503
565
|
function prettyAssertEqual(subject, expected, message) {
|
|
504
566
|
if (subject !== expected) {
|
|
505
567
|
throw new Error(`${message ?? "Assertion failed"}: expected ${JSON.stringify(expected)} but got ${JSON.stringify(subject)}`);
|
|
506
568
|
}
|
|
507
569
|
}
|
|
508
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBEQUEwRDtBQUMxRCxpQ0FBa0M7QUFDbEMsNkNBQXlDO0FBQ3pDLG1DQUFzRTtBQUV0RSxzREFBb0U7QUFDcEUscURBQWdEO0FBQ2hELGlEQUE2QztBQUM3QywrRUFBeUU7QUFDekUsMkNBQXdDO0FBQ3hDLGlEQUE2QztBQUM3QywyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELDZDQUEwQztBQUMxQyw2REFBeUQ7QUFDekQsbURBQStDO0FBQy9DLG1EQUErQztBQUMvQywrQ0FBMkM7QUFFM0MseURBQXFEO0FBQ3JELHFFQUEwRTtBQUMxRSw2REFBbUU7QUFDbkUsb0RBQWtFO0FBRWxFLG1IQUFtSDtBQUNuSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQXFFNUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFvQixFQUFVLEVBQUU7SUFDcEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxHQUFHLFlBQVksV0FBVztRQUM1QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRztJQUNqQyxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLDJCQUEyQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDbEYsdUJBQXVCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM5RSxzQkFBc0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQzdFLGtCQUFrQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDekUsb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUMzRSxvQkFBb0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFT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SSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExakJILG9EQTJqQkM7QUFFRCxTQUFTLGlCQUFpQixDQUFJLE9BQVUsRUFBRSxRQUFXLEVBQUUsT0FBZ0I7SUFDckUsSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLE9BQU8sSUFBSSxrQkFBa0IsY0FBYyxJQUFJLENBQUMsU0FBUyxDQUMxRCxRQUFRLENBQ1QsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ3ZDLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmltcG9ydCBhc3NlcnQgPSByZXF1aXJlKFwiYXNzZXJ0XCIpO1xuaW1wb3J0IHsgcGFzY2FsQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuaW1wb3J0IHsgT2JqZWN0RmlsZSwgVGV4dEZpbGUsIGNkaywgZ2l0aHViLCBKc29uUGF0Y2ggfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlIH0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQWxlcnRPcGVuUHJzIH0gZnJvbSBcIi4vYWxlcnQtb3Blbi1wcnNcIjtcbmltcG9ydCB7IEF1dG9BcHByb3ZlIH0gZnJvbSBcIi4vYXV0by1hcHByb3ZlXCI7XG5pbXBvcnQgeyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXMgfSBmcm9tIFwiLi9hdXRvLWNsb3NlLWNvbW11bml0eS1pc3N1ZXNcIjtcbmltcG9ydCB7IEF1dG9tZXJnZSB9IGZyb20gXCIuL2F1dG9tZXJnZVwiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmltcG9ydCB7IENvcHlyaWdodEhlYWRlcnMgfSBmcm9tIFwiLi9jb3B5cmlnaHQtaGVhZGVyc1wiO1xuaW1wb3J0IHsgQ3VzdG9taXplZExpY2Vuc2UgfSBmcm9tIFwiLi9jdXN0b21pemVkLWxpY2Vuc2VcIjtcbmltcG9ydCB7IERlcGVuZGFib3QgfSBmcm9tIFwiLi9kZXBlbmRhYm90XCI7XG5pbXBvcnQgeyBEZXByZWNhdGVQYWNrYWdlcyB9IGZyb20gXCIuL2RlcHJlY2F0ZS1wYWNrYWdlc1wiO1xuaW1wb3J0IHsgRm9yY2VSZWxlYXNlIH0gZnJvbSBcIi4vZm9yY2UtcmVsZWFzZVwiO1xuaW1wb3J0IHsgR2l0aHViSXNzdWVzIH0gZnJvbSBcIi4vZ2l0aHViLWlzc3Vlc1wiO1xuaW1wb3J0IHsgTG9ja0lzc3VlcyB9IGZyb20gXCIuL2xvY2staXNzdWVzXCI7XG5pbXBvcnQgeyBQYWNrYWdlSW5mbyB9IGZyb20gXCIuL3BhY2thZ2UtaW5mb1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJVcGdyYWRlIH0gZnJvbSBcIi4vcHJvdmlkZXItdXBncmFkZVwiO1xuaW1wb3J0IHsgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGUgfSBmcm9tIFwiLi9zY3JpcHRzL2NoZWNrLWZvci11cGdyYWRlc1wiO1xuaW1wb3J0IHsgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUgfSBmcm9tIFwiLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVJhbmRvbUNyb24sIFNjaGVkdWxlIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG4vLyBlbnN1cmUgbmV3IHByb2plY3RzIHN0YXJ0IHdpdGggMS4wLjAgc28gdGhhdCBldmVyeSBmb2xsb3dpbmcgYnJlYWtpbmcgY2hhbmdlIGxlYWRzIHRvIGFuIGluY3JlYXNlZCBtYWpvciB2ZXJzaW9uXG5jb25zdCBNSU5fTUFKT1JfVkVSU0lPTiA9IDE7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrdG5Qcm92aWRlclByb2plY3RPcHRpb25zIGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHVzZUN1c3RvbUdpdGh1YlJ1bm5lcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVByb3ZpZGVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNka3RuVmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBjZGt0blZlcnNpb25gIGluc3RlYWQuIFRoaXMgYWxpYXMgaXMgcHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAqL1xuICByZWFkb25seSBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbnN0cnVjdHNWZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZvcmNlTWFqb3JWZXJzaW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0blwiXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuLWlvXCJcbiAgICogcHJldmlvdXNseSB3YXMgXCJjZGt0ZlwiLiBVc2VkIGZvciBHaXRIdWIgb3JnIG5hbWUgYW5kIHBhY2thZ2Ugc2NvcGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViTmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJJby5DZGt0blwiXG4gICAqL1xuICByZWFkb25seSBudWdldE9yZz86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5Pcmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImlvLiR7bWF2ZW5Pcmd9XCJcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuR3JvdXBJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB5ZWFyIG9mIHRoZSBjcmVhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeSwgZm9yIGNvcHlyaWdodCBwdXJwb3Nlcy5cbiAgICogV2lsbCBmYWxsIGJhY2sgdG8gdGhlIGN1cnJlbnQgeWVhciBpZiBub3Qgc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRpb25ZZWFyPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBwcmVidWlsdCBwcm92aWRlciBpcyBkZXByZWNhdGVkLlxuICAgKiBJZiB0cnVlLCBubyBuZXcgdmVyc2lvbnMgd2lsbCBiZSBwdWJsaXNoZWQuXG4gICAqL1xuICByZWFkb25seSBpc0RlcHJlY2F0ZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGF0ZSB3aGVuIHRoZSBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGRlcHJlY2F0ZWQsIHRvIGJlIHVzZWQgaW4gdGhlIFJFQURNRSB0ZXh0LlxuICAgKiBJZiBubyBkYXRlIGlzIHByb3ZpZGVkLCB0aGVuIHRoZSBkYXRlIG9mIHRoZSBidWlsZCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcHJlY2F0aW9uRGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiSGFzaGlDb3JwLCBJbmMuXCJcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VlPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlIHRydXN0ZWQgcHVibGlzaGluZyBmb3IgcHVibGlzaGluZyB0byBweXBpLm9yZ1xuICAgKiBOZWVkcyB0byBiZSBwcmUtY29uZmlndXJlZCBvbiBQeVBJIHRvIHdvcmsuXG4gICAqXG4gICAqIFRoZSBgcmVsZWFzZV9weXBpYCBqb2Iga2VlcHMgd2hhdGV2ZXIgcnVubmVyIHRoZSBwcm9qZWN0IGlzIGNvbmZpZ3VyZWQgZm9yLlxuICAgKiBQeVBJLCB1bmxpa2UgbnBtLCBkb2VzIG5vdCByZXN0cmljdCB0cnVzdGVkIHB1Ymxpc2hpbmcgdG8gR2l0SHViLWhvc3RlZFxuICAgKiBydW5uZXJzIC0tIHRydXN0IGlzIGJvdW5kIHRvIHRoZSB3b3JrZmxvdyByZWYsIGFuZCB0aGUgT0lEQyB0b2tlbiBpcyBtaW50ZWRcbiAgICogZnJvbSBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVVJMLCB3aGljaCBpcyBhdmFpbGFibGUgb24gYW55IHJ1bm5lciB3aXRoXG4gICAqIGBpZC10b2tlbjogd3JpdGVgLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5weXBpLm9yZy90cnVzdGVkLXB1Ymxpc2hlcnMvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB5cGlUcnVzdGVkUHVibGlzaGluZz86IGJvb2xlYW47XG59XG5cbmNvbnN0IGdldE1hdmVuTmFtZSA9IChwcm92aWRlck5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBbXCJudWxsXCIsIFwicmFuZG9tXCJdLmluY2x1ZGVzKHByb3ZpZGVyTmFtZSlcbiAgICA/IGAke3Byb3ZpZGVyTmFtZX1fcHJvdmlkZXJgXG4gICAgOiBwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpO1xufTtcblxuY29uc3QgZ2l0aHViQWN0aW9uUGlubmVkVmVyc2lvbnMgPSB7XG4gIFwiYWN0aW9ucy9jaGVja291dFwiOiBcImRlMGZhYzJlNDUwMGRhYmUwMDA5ZTY3MjE0ZmY1ZjU0NDdjZTgzZGRcIiwgLy8gdjYuMC4yXG4gIFwiYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdFwiOiBcIjNlNWY0NWIyY2ZiOTE3MjA1NGI0MDg3YTQwZThlMGI1YTU0NjFlN2NcIiwgLy8gdjguMC4xXG4gIFwiYWN0aW9ucy9naXRodWItc2NyaXB0XCI6IFwiZWQ1OTc0MTFkOGY5MjQwNzNmOThkZmM1YzY1YTIzYTIzMjVmMzRjZFwiLCAvLyB2OC4wLjBcbiAgXCJhY3Rpb25zL3NldHVwLWRvdG5ldFwiOiBcImMyZmEwOWY0YmRlNWViYjlkMTc3N2NmMjgyNjJhM2ViM2RiM2NlZDdcIiwgLy8gdjUuMi4wXG4gIFwiYWN0aW9ucy9zZXR1cC1nb1wiOiBcIjRhMzYwMTEyMWRkMDFkMTYyNmExZTIzZTM3MjExZTMyNTRjMWMwNmNcIiwgLy8gdjYuNC4wXG4gIFwiYWN0aW9ucy9zZXR1cC1qYXZhXCI6IFwiYmU2NjZjMmZjZDI3ZWM4MDk3MDNkZWM1MGU1MDhjMmZkYzdmNjY1NFwiLCAvLyB2NS4yLjBcbiAgXCJhY3Rpb25zL3NldHVwLW5vZGVcIjogXCI0OGI1NWEwMTFiZGE5ZjVkNmFlYjRjMmQ5YzczNjJlOGRhZTQwNDFlXCIsIC8vIHY2LjQuMFxuICBcImFjdGlvbnMvc2V0dXAtcHl0aG9uXCI6IFwiYTMwOWZmOGI0MjZiNThlYzBlMmE0NWYwZjg2OWQ0Njg4OWQwMjQwNVwiLCAvLyB2Ni4yLjBcbiAgXCJhY3Rpb25zL3N0YWxlXCI6IFwiYjVkNDFkNGUxZDVkY2VlYTEwZTcxMDQ3ODZiNzM2MjRjMThhMTkwZlwiLCAvLyB2MTAuMi4wXG4gIFwiYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RcIjogXCIwNDNmYjQ2ZDFhOTNjNzdhYWU2NTZlN2MxYzY0YTg3NWQxZmM2YTBhXCIsIC8vIHY3LjAuMVxuICBcImFtYW5ubi9hY3Rpb24tc2VtYW50aWMtcHVsbC1yZXF1ZXN0XCI6XG4gICAgXCI0OGYyNTYyODRiZDQ2Y2RhYWIxMDQ4YzM3MjEzNjBlODA4MzM1ZDUwXCIsIC8vIHY2LjEuMVxuICBcImRlc3NhbnQvbG9jay10aHJlYWRzXCI6IFwiNzI2NmE3Y2U1YzFkZjAxYjFjNmRiODViZjhjZDg2YzczN2RhZGJlN1wiLCAvLyB2Ni4wLjBcbiAgXCJoYXNoaWNvcnAvc2V0dXAtY29weXdyaXRlXCI6IFwiMzI2MzhkYTJkNGU4MWQ1NmEwNzY0YWExNTQ3ODgyZmM0ZDIwOTYzNlwiLCAvLyB2MS4xLjNcbiAgXCJoYXNoaWNvcnAvc2V0dXAtdGVycmFmb3JtXCI6IFwiNWU4ZGJmM2M2ZDlkZWFmNDE5M2NhN2E4ZmIyM2YyYWM4M2JiNmM4NVwiLCAvLyB2NC4wLjBcbiAgXCJpbWpvaG5iby9pc3N1ZS1ib3RcIjogXCIzMTg4YzZjZTA2MjQ5MjA2NzA5ZDNiMWYyNzRkMGQ0YzVhNTIxNjAxXCIsIC8vIHYzLjQuNVxuICBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RcIjogXCI1ZjY5NzhmYWYwODlkNGQyMGIwMGM3NzY2OTg5ZDA3NmJiMmZjN2YxXCIsIC8vIHY4LjEuMVxuICBcInNsYWNrYXBpL3NsYWNrLWdpdGh1Yi1hY3Rpb25cIjogXCI0NWE4OGI5NTgxYmZhYjI1NjZkYzg4MWUyY2Q2NmQzMzRlNjIxZTJjXCIsIC8vIHYzLjAuM1xuICBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIjogXCIyOTgyNGU2OWY1NDYxMjEzM2U3NmY3ZWFhYzcyNmVlZjZjODc1YmFmXCIsIC8vIHYyLjIuMVxufTtcblxuZXhwb3J0IGNsYXNzIENka3RuUHJvdmlkZXJQcm9qZWN0IGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrdG5Qcm92aWRlclByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgY2RrdG5WZXJzaW9uID0gb3B0aW9ucy5jZGt0blZlcnNpb24gPz8gb3B0aW9ucy5jZGt0ZlZlcnNpb247XG4gICAgYXNzZXJ0KFxuICAgICAgY2RrdG5WZXJzaW9uLFxuICAgICAgXCJFaXRoZXIgY2RrdG5WZXJzaW9uIG9yIGNka3RmVmVyc2lvbiBtdXN0IGJlIHByb3ZpZGVkXCJcbiAgICApO1xuXG4gICAgY29uc3Qge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgY29uc3RydWN0c1ZlcnNpb24sXG4gICAgICBtaW5Ob2RlVmVyc2lvbixcbiAgICAgIGpzaWlWZXJzaW9uLFxuICAgICAgdHlwZXNjcmlwdFZlcnNpb24sXG4gICAgICBpc0RlcHJlY2F0ZWQsXG4gICAgICBkZXByZWNhdGlvbkRhdGUsXG4gICAgICAvLyBUT0RPOiBDb25maXJtIGRlZmF1bHQgQXV0aG9yIE5hbWVcbiAgICAgIGF1dGhvck5hbWUgPSBcIkNESyBUZXJyYWluIE1haW50YWluZXJzXCIsXG4gICAgICBhdXRob3JBZGRyZXNzID0gXCJodHRwczovL2Nka3RuLmlvXCIsXG4gICAgICBuYW1lc3BhY2UgPSBcImNka3RuXCIsXG4gICAgICBnaXRodWJOYW1lc3BhY2UgPSBcImNka3RuLWlvXCIsXG4gICAgICBudWdldE9yZyA9IFwiSW8uQ2RrdG5cIixcbiAgICAgIG1hdmVuT3JnID0gXCJjZGt0blwiLFxuICAgICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmcsXG4gICAgICBweXBpVHJ1c3RlZFB1Ymxpc2hpbmcsXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBbZnFwcm92aWRlck5hbWUsIHByb3ZpZGVyVmVyc2lvbl0gPSB0ZXJyYWZvcm1Qcm92aWRlci5zcGxpdChcIkBcIik7XG4gICAgY29uc3QgcHJvdmlkZXJOYW1lID0gZnFwcm92aWRlck5hbWUuc3BsaXQoXCIvXCIpLnBvcCgpO1xuICAgIGFzc2VydChwcm92aWRlck5hbWUsIGAke3RlcnJhZm9ybVByb3ZpZGVyfSBkb2Vzbid0IHNlZW0gdG8gYmUgdmFsaWRgKTtcbiAgICBhc3NlcnQoXG4gICAgICAhcHJvdmlkZXJOYW1lLmVuZHNXaXRoKFwiLWdvXCIpLFxuICAgICAgXCJwcm92aWRlck5hbWUgbWF5IG5vdCBlbmQgd2l0aCAnLWdvJyBhcyB0aGlzIGNhbiBjb25mbGljdCB3aXRoIHJlcG9zIGZvciBnbyBwYWNrYWdlc1wiXG4gICAgKTtcblxuICAgIGNvbnN0IG51Z2V0TmFtZSA9IGAke251Z2V0T3JnfS5Qcm92aWRlcnMuJHtwYXNjYWxDYXNlKHByb3ZpZGVyTmFtZSl9YDtcbiAgICBjb25zdCBtYXZlbkdyb3VwSWQgPSBvcHRpb25zLm1hdmVuR3JvdXBJZCA/PyBgaW8uJHttYXZlbk9yZ31gO1xuICAgIGNvbnN0IG1hdmVuTmFtZSA9IGAke21hdmVuR3JvdXBJZH0ucHJvdmlkZXJzLiR7Z2V0TWF2ZW5OYW1lKHByb3ZpZGVyTmFtZSl9YDtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYCR7Z2l0aHViTmFtZXNwYWNlfS8ke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWUucmVwbGFjZShcbiAgICAgIC8tL2csXG4gICAgICBcIlwiXG4gICAgKX1gO1xuICAgIGNvbnN0IHJlcG9zaXRvcnlVcmwgPSBgZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnl9YDtcblxuICAgIGNvbnN0IHBhY2thZ2VJbmZvOiBQYWNrYWdlSW5mbyA9IHtcbiAgICAgIG5wbToge1xuICAgICAgICBuYW1lOiBgQCR7bmFtZXNwYWNlfS9wcm92aWRlci0ke3Byb3ZpZGVyTmFtZX1gLFxuICAgICAgfSxcbiAgICAgIHB5dGhvbjoge1xuICAgICAgICAvLyBkaXN0TmFtZTogYCR7Z2l0aHViTmFtZXNwYWNlfS0ke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWUucmVwbGFjZShcbiAgICAgICAgZGlzdE5hbWU6IGAke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpfWAsXG4gICAgICAgIC8vIG1vZHVsZTogYCR7Z2l0aHViTmFtZXNwYWNlfV8ke25hbWVzcGFjZX1fcHJvdmlkZXJfJHtwcm92aWRlck5hbWUucmVwbGFjZShcbiAgICAgICAgbW9kdWxlOiBgJHtuYW1lc3BhY2V9X3Byb3ZpZGVyXyR7cHJvdmlkZXJOYW1lLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKX1gLFxuICAgICAgICB0cnVzdGVkUHVibGlzaGluZzogcHlwaVRydXN0ZWRQdWJsaXNoaW5nID8/IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiB7XG4gICAgICAgIGRvdE5ldE5hbWVzcGFjZTogbnVnZXROYW1lLFxuICAgICAgICBwYWNrYWdlSWQ6IG51Z2V0TmFtZSxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9NYXZlbjoge1xuICAgICAgICBqYXZhUGFja2FnZTogbWF2ZW5OYW1lLFxuICAgICAgICBtYXZlbkdyb3VwSWQ6IG1hdmVuR3JvdXBJZCxcbiAgICAgICAgbWF2ZW5BcnRpZmFjdElkOiBgJHtuYW1lc3BhY2V9LXByb3ZpZGVyLSR7cHJvdmlkZXJOYW1lfWAsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvR286IHtcbiAgICAgICAgbW9kdWxlTmFtZTogYCR7cmVwb3NpdG9yeVVybH0tZ29gLFxuICAgICAgICBnaXRVc2VyRW1haWw6IFwiZ2l0aHViLXRlYW0tY2RrLXRlcnJhaW5AY2RrdG4uaW9cIixcbiAgICAgICAgZ2l0VXNlck5hbWU6IFwidGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgICBwYWNrYWdlTmFtZTogcHJvdmlkZXJOYW1lLnJlcGxhY2UoLy0vZywgXCJcIiksXG4gICAgICAgIC8vIEluIG9yZGVyIHRvIHVzZSB0aGUgY29weXdyaXRlIGFjdGlvbiwgd2UgbmVlZCB0byByZWJ1aWxkIHRoZSBmdWxsIHByZS1wdWJsaXNoIHN0ZXBzIHdvcmtmbG93IHVuZm9ydHVuYXRlbHlcbiAgICAgICAgLy8gSWYgc29tZW9uZSBrbm93cyBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyBtdXRhdGlvbiB3aXRoIG1pbmltYWwgY3VzdG9tIGNvZGUsIHBsZWFzZSBkbyBzb1xuICAgICAgICBwcmVQdWJsaXNoU3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgcGF0aDogXCIucmVwb1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5zdGFsbCBEZXBlbmRlbmNpZXNcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwbyAmJiB5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcyAtLWZyb3plbi1sb2NrZmlsZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJFeHRyYWN0IGJ1aWxkIGFydGlmYWN0XCIsXG4gICAgICAgICAgICBydW46IFwidGFyIC0tc3RyaXAtY29tcG9uZW50cz0xIC14enZmIGRpc3QvanMvKi50Z3ogLUMgLnJlcG9cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiTW92ZSBidWlsZCBhcnRpZmFjdCBvdXQgb2YgdGhlIHdheVwiLFxuICAgICAgICAgICAgcnVuOiBcIm12IGRpc3QgZGlzdC5vbGRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ3JlYXRlIGdvIGFydGlmYWN0XCIsXG4gICAgICAgICAgICBydW46IFwiY2QgLnJlcG8gJiYgbnB4IHByb2plbiBwYWNrYWdlOmdvXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlNldHVwIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29weSBjb3B5d3JpdGUgaGNsIGZpbGVcIixcbiAgICAgICAgICAgIHJ1bjogXCJjcCAucmVwby8uY29weXdyaXRlLmhjbCAucmVwby9kaXN0L2dvLy5jb3B5d3JpdGUuaGNsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkFkZCBoZWFkZXJzIHVzaW5nIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgICAgICBydW46IFwiY2QgLnJlcG8vZGlzdC9nbyAmJiBjb3B5d3JpdGUgaGVhZGVyc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJSZW1vdmUgY29weXdyaXRlIGhjbCBmaWxlXCIsXG4gICAgICAgICAgICBydW46IFwicm0gLWYgLnJlcG8vZGlzdC9nby8uY29weXdyaXRlLmhjbFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJSZW1vdmUgc29tZSB0ZXh0IGZyb20gdGhlIFJFQURNRSB0aGF0IGRvZXNuJ3QgYXBwbHkgdG8gR29cIixcbiAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICBcInNlZCAtaSAncy8jIENES1ROIHByZWJ1aWx0IGJpbmRpbmdzIGZvci8jIENES1ROIEdvIGJpbmRpbmdzIGZvci8nIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRcIixcbiAgICAgICAgICAgICAgLy8gQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDk1MTE5NDlcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgICAgICBgc2VkIC1pIC1lICcvIyMgJHtpc0RlcHJlY2F0ZWQgPyBcIkRlcHJlY2F0ZWRcIiA6IFwiQXZhaWxhYmxlXCJ9IFBhY2thZ2VzLywvIyMjIEdvLyFiJyAtZSAnLyMjIyBHby8hZDtwOyBzLyMjIyBHby8jIyBHbyBQYWNrYWdlLycgLWUgJ2QnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRgLFxuICAgICAgICAgICAgICAvLyBzZWQgLWUgaXMgYmxhY2sgbWFnaWMgYW5kIGZvciB3aGF0ZXZlciByZWFzb24gdGhlIHN0cmluZyByZXBsYWNlIGRvZXNuJ3Qgd29yayBzbyBsZXQncyB0cnkgaXQgYWdhaW46XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICAgICAgICAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICAgICAgICAgICAgYHNlZCAtaSAncy8jIyMgR28vIyMgJHtpc0RlcHJlY2F0ZWQgPyBcIkRlcHJlY2F0ZWRcIiA6IFwiR29cIn0gUGFja2FnZS8nIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRgLFxuICAgICAgICAgICAgICAvLyBKdXN0IHN0cmFpZ2h0IHVwIGRlbGV0ZSB0aGVzZSBmdWxsIGxpbmVzIGFuZCBldmVyeXRoaW5nIGluIGJldHdlZW4gdGhlbTpcbiAgICAgICAgICAgICAgXCJzZWQgLWkgLWUgJy9BUEkudHlwZXNjcmlwdC5tZC8sL1lvdSBjYW4gYWxzbyB2aXNpdCBhIGhvc3RlZCB2ZXJzaW9uLyFiJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgICBgc2VkIC1pICdzfEZpbmQgYXV0by1nZW5lcmF0ZWQgZG9jcyBmb3IgdGhpcyBwcm92aWRlciBoZXJlOnxGaW5kIGF1dG8tZ2VuZXJhdGVkIGRvY3MgZm9yIHRoaXMgcHJvdmlkZXIgW2hlcmVdKGh0dHBzOi8vJHtyZXBvc2l0b3J5VXJsfS9ibG9iL21haW4vZG9jcy9BUEkuZ28ubWQpLnwnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRgLFxuICAgICAgICAgICAgICAvLyBKdXN0IHN0cmFpZ2h0IHVwIGRlbGV0ZSB0aGVzZSBmdWxsIGxpbmVzIGFuZCBldmVyeXRoaW5nIGluIGJldHdlZW4gdGhlbTpcbiAgICAgICAgICAgICAgXCJzZWQgLWkgLWUgJy8jIyMgUHJvdmlkZXIgVmVyc2lvbi8sL1RoZSBwcm92aWRlciB2ZXJzaW9uIGNhbiBiZSBhZGp1c3RlZC8hYicgLWUgJ2QnIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWRcIixcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29weSB0aGUgUkVBRE1FIGZpbGUgdG8gdGhlIHBhcmVudCBkaXJlY3RvcnlcIixcbiAgICAgICAgICAgIHJ1bjogXCJjcCAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kIC5yZXBvL2Rpc3QvZ28vUkVBRE1FLm1kXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNvbGxlY3QgZ28gQXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJtdiAucmVwby9kaXN0IGRpc3RcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3Qgd29ya2Zsb3dSdW5zT24gPSBvcHRpb25zLnVzZUN1c3RvbUdpdGh1YlJ1bm5lclxuICAgICAgPyBbXCJkZXBvdC11YnVudHUtMjQuMDQtOFwiXSAvLyA4IGNvcmUsIDMyIEdCXG4gICAgICA6IFtcInVidW50dS1sYXRlc3RcIl07IC8vIDcgR0JcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhdXRob3JBZGRyZXNzLFxuICAgICAgYXV0aG9yTmFtZSxcbiAgICAgIG1pbk5vZGVWZXJzaW9uLFxuICAgICAgd29ya2Zsb3dDb250YWluZXJJbWFnZSxcbiAgICAgIHdvcmtmbG93UnVuc09uLFxuICAgICAgbGljZW5zZWQ6IGZhbHNlLCAvLyB3ZSBkbyBzdXBwbHkgb3VyIG93biBsaWNlbnNlIGZpbGUgd2l0aCBhIGN1c3RvbSBoZWFkZXJcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiBucG1UcnVzdGVkUHVibGlzaGluZyA/PyBmYWxzZSxcbiAgICAgIG5hbWU6IHBhY2thZ2VJbmZvLm5wbS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGBQcmVidWlsdCAke3Byb3ZpZGVyTmFtZX0gUHJvdmlkZXIgZm9yIENESyBUZXJyYWluIChjZGt0bilgLFxuICAgICAga2V5d29yZHM6IFtcbiAgICAgICAgXCJjZGt0blwiLFxuICAgICAgICBcImNkay10ZXJyYWluXCIsXG4gICAgICAgIFwiY2RrdGZcIixcbiAgICAgICAgXCJ0ZXJyYWZvcm1cIixcbiAgICAgICAgXCJvcGVudG9mdVwiLFxuICAgICAgICBcImNka1wiLFxuICAgICAgICBcInByb3ZpZGVyXCIsXG4gICAgICAgIHByb3ZpZGVyTmFtZSxcbiAgICAgIF0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICAgICAgcmVwb3NpdG9yeTogYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnl9LmdpdGAsXG4gICAgICBlc2xpbnQ6IGZhbHNlLFxuICAgICAgZGVwc1VwZ3JhZGU6ICFpc0RlcHJlY2F0ZWQsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWxzOiBbXCJhdXRvbWVyZ2VcIiwgXCJhdXRvLWFwcHJvdmVcIiwgXCJkZXBlbmRlbmNpZXNcIl0sXG4gICAgICAgICAgc2NoZWR1bGU6IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvUHlwaTogcGFja2FnZUluZm8ucHl0aG9uLFxuICAgICAgcHVibGlzaFRvTnVnZXQ6IHBhY2thZ2VJbmZvLnB1Ymxpc2hUb051Z2V0LFxuICAgICAgcHVibGlzaFRvTWF2ZW46IHBhY2thZ2VJbmZvLnB1Ymxpc2hUb01hdmVuLFxuICAgICAgcHVibGlzaFRvR286IHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvLFxuICAgICAgcmVsZWFzZUZhaWx1cmVJc3N1ZTogdHJ1ZSxcbiAgICAgIHBlZXJEZXBlbmRlbmN5T3B0aW9uczoge1xuICAgICAgICBwaW5uZWREZXZEZXBlbmRlbmN5OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd0dpdElkZW50aXR5OiB7XG4gICAgICAgIG5hbWU6IFwidGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgICBlbWFpbDogXCJnaXRodWItdGVhbS1jZGstdGVycmFpbkBjZGt0bi5pb1wiLFxuICAgICAgfSxcbiAgICAgIG1pbk1ham9yVmVyc2lvbjogTUlOX01BSk9SX1ZFUlNJT04sXG4gICAgICBzdGFsZTogdHJ1ZSxcbiAgICAgIHN0YWxlT3B0aW9uczoge1xuICAgICAgICBpc3N1ZXM6IHtcbiAgICAgICAgICBzdGFsZUxhYmVsOiBcInN0YWxlXCIsXG4gICAgICAgICAgZGF5c0JlZm9yZVN0YWxlOiA0NSxcbiAgICAgICAgICBzdGFsZU1lc3NhZ2U6XG4gICAgICAgICAgICBcIjQ1IGRheXMgaGF2ZSBwYXNzZWQgc2luY2UgdGhpcyBpc3N1ZSB3YXMgb3BlbmVkLCBhbmQgSSBhc3N1bWUgb3RoZXIgcHVibGlzaGVzIGhhdmUgc3VjY2VlZGVkIGluIHRoZSBtZWFudGltZS4gXCIgK1xuICAgICAgICAgICAgXCJJZiBubyBvbmUgcmVtb3ZlcyB0aGUgYHN0YWxlYCBsYWJlbCBvciBjb21tZW50cywgSSdtIGdvaW5nIHRvIGF1dG8tY2xvc2UgdGhpcyBpc3N1ZSBpbiAxNCBkYXlzLlwiLFxuICAgICAgICAgIGRheXNCZWZvcmVDbG9zZTogMTQsXG4gICAgICAgICAgY2xvc2VNZXNzYWdlOlxuICAgICAgICAgICAgXCIyIG1vbnRocyBoYXZlIHBhc3NlZCwgc28gSSdtIGNsb3NpbmcgdGhpcyBpc3N1ZSB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgb3RoZXIgcHVibGlzaGVzIGhhdmUgc3VjY2VlZGVkIGluIHRoZSBtZWFudGltZS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVsbFJlcXVlc3Q6IHtcbiAgICAgICAgICBzdGFsZUxhYmVsOiBcInN0YWxlXCIsXG4gICAgICAgICAgZGF5c0JlZm9yZVN0YWxlOiAxLFxuICAgICAgICAgIHN0YWxlTWVzc2FnZTogYENsb3NpbmcgdGhpcyBQUiwgaWYgaXQgaGFzIG5vdCBtZXJnZWQgdGhlcmUgaXMgbW9zdCBsaWtlbHkgYSBDSSBvciBDREtUTiBpc3N1ZSBwcmV2ZW50aW5nIGl0IGZyb20gbWVyZ2luZy4gSWYgdGhpcyBoYXMgYmVlbiBhIG1hbnVhbCBQUiwgcGxlYXNlIHJlb3BlbiBpdCBhbmQgYWRkIHRoZSBcXGBuby1hdXRvLWNsb3NlXFxgIGxhYmVsIHRvIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZyBhZ2Fpbi5gLFxuICAgICAgICAgIGRheXNCZWZvcmVDbG9zZTogMCxcbiAgICAgICAgICBleGVtcHRMYWJlbHM6IFtcIm5vLWF1dG8tY2xvc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcHVsbFJlcXVlc3RUZW1wbGF0ZTogZmFsc2UsXG4gICAgICBkb2NnZW46IGZhbHNlLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoKSxcbiAgICAgICAgLy8gcHJvamVuID49MC4xMDAgbW92ZWQgdGhlIGBtZXJnaWZ5YCBwcm9qZWN0IG9wdGlvbiB1bmRlciBnaXRodWJPcHRpb25zXG4gICAgICAgIG1lcmdpZnk6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIFwiZG90LXByb3BAXjUuMi4wXCIsXG4gICAgICBcIkBhY3Rpb25zL2NvcmVAXjEuMS4wXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NvcmVcIixcbiAgICAgIFwiQGFjdGlvbi12YWxpZGF0b3IvY2xpXCJcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBtZW1vcnkgaXMgN0dCOiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlc1xuICAgIC8vIEN1c3RvbSBSdW5uZXJzIHdlIHVzZSBoYXZlIDMyR0Igb2YgbWVtb3J5XG4gICAgLy8gVGhlIGJlbG93IG51bWJlcnMgc2V0IGhlYXAgbGltaXRzIHRoYXQgYXJlIH4xZ2IgYW5kIH4wLjVnYiBsZXNzLCByZXNwZWN0aXZlbHksIHRoYW4gdGhlIHRvdGFsIGF2YWlsYWJsZSBtZW1vcnlcbiAgICBjb25zdCBtYXhPbGRTcGFjZVNpemUgPSBvcHRpb25zLnVzZUN1c3RvbUdpdGh1YlJ1bm5lciA/IFwiMzE3NDRcIiA6IFwiNjY1NlwiO1xuXG4gICAgLy8gR29sYW5nIG5lZWRzIG1vcmUgbWVtb3J5IHRvIGJ1aWxkXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiTk9ERV9PUFRJT05TXCIsXG4gICAgICBgLS1tYXgtb2xkLXNwYWNlLXNpemU9JHttYXhPbGRTcGFjZVNpemV9YFxuICAgICk7XG5cbiAgICB0aGlzLnRhc2tzLmFkZEVudmlyb25tZW50KFwiQ0hFQ0tQT0lOVF9ESVNBQkxFXCIsIFwiMVwiKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVGFzayA9IHRoaXMuYWRkVGFzayhcInZhbGlkYXRlLXdvcmtmbG93c1wiLCB7XG4gICAgICBleGVjOiBgZmluZCAuLy5naXRodWIvd29ya2Zsb3dzIC10eXBlIGYgLW5hbWUgXCIqLnltbFwiIC1wcmludDAgfCB4YXJncyAtMCAtbiAxIG5weCBhY3Rpb24tdmFsaWRhdG9yYCxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVRhc2suZGVzY3JpcHRpb24gPVxuICAgICAgXCJMaW50IHRoZSBZQU1MIGZpbGVzIGdlbmVyYXRlZCBieSBQcm9qZW4gdG8gZGVmaW5lIEdpdEh1YiBBY3Rpb25zIGFuZCBXb3JrZmxvd3MsIGNoZWNraW5nIHRoZW0gYWdhaW5zdCBwdWJsaXNoZWQgSlNPTiBzY2hlbWFzXCI7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odmFsaWRhdGVUYXNrKTtcblxuICAgIHRoaXMucGFja2FnZS5hZGRQYWNrYWdlUmVzb2x1dGlvbnMoXCJAdHlwZXMveWFyZ3NAMTcuMC4xM1wiKTtcblxuICAgIGNvbnN0IHNldFNhZmVEaXJlY3RvcnkgPSB7XG4gICAgICBuYW1lOiBcIlNldCBnaXQgY29uZmlnIHNhZmUuZGlyZWN0b3J5XCIsXG4gICAgICBydW46IFwiZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLWFkZCBzYWZlLmRpcmVjdG9yeSAkKHB3ZClcIixcbiAgICB9O1xuXG4gICAgKCh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXSkucHVzaChcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuICAgICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5zcGxpY2UoXG4gICAgICAxLFxuICAgICAgMCxcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuXG4gICAgLy8gYWx3YXlzIHB1Ymxpc2ggYSBuZXcgR2l0SHViIHJlbGVhc2UsIGV2ZW4gd2hlbiBwdWJsaXNoaW5nIHRvIGEgcGFydGljdWxhciBwYWNrYWdlIG1hbmFnZXIgZmFpbHNcbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFwiXG4gICAgKTtcbiAgICByZWxlYXNlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwiam9icy5yZWxlYXNlX2dpdGh1Yi5uZWVkc1wiLCBcInJlbGVhc2VcIik7XG5cbiAgICAvLyBUcnVzdGVkIHB1Ymxpc2hpbmcgcmVxdWlyZXMgbnBtID49MTEuNS4xIHdoaWNoIHNoaXBzIHdpdGggTm9kZSAyNFxuICAgIGlmIChucG1UcnVzdGVkUHVibGlzaGluZykge1xuICAgICAgdGhpcy5naXRodWJcbiAgICAgICAgPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpXG4gICAgICAgID8uZmlsZT8ucGF0Y2goXG4gICAgICAgICAgSnNvblBhdGNoLnJlcGxhY2UoXG4gICAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfbnBtL3N0ZXBzLzAvd2l0aC9ub2RlLXZlcnNpb25cIixcbiAgICAgICAgICAgIFwiMjQueFwiXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAvLyBOUE0gT0lEQyBkb2Vzbid0IHN1cHBvcnQgc2VsZi1ob3N0ZWQgcnVubmVycyB5ZXRcbiAgICAgIHRoaXMuZ2l0aHViXG4gICAgICAgID8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKVxuICAgICAgICA/LmZpbGU/LnBhdGNoKFxuICAgICAgICAgIEpzb25QYXRjaC5yZXBsYWNlKFwiL2pvYnMvcmVsZWFzZV9ucG0vcnVucy1vblwiLCBcInVidW50dS1sYXRlc3RcIilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBOT1RFOiByZWxlYXNlX3B5cGkgZGVsaWJlcmF0ZWx5IHN0YXlzIG9uIHdoYXRldmVyIHJ1bm5lciB0aGUgcHJvamVjdCBpc1xuICAgIC8vIGNvbmZpZ3VyZWQgZm9yLiBVbmxpa2UgbnBtLCBQeVBJIHBsYWNlcyBubyByZXN0cmljdGlvbiBvbiB0aGUgcnVubmVyXG4gICAgLy8gZW52aXJvbm1lbnQ6IHB1YmxpYi1weXBpIG1pbnRzIGl0cyB0b2tlbiB3aXRoIGBweXRob24zIC1tIGlkIHB5cGlgIGFnYWluc3RcbiAgICAvLyBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVVJMLCB3aGljaCBHaXRIdWIgaW5qZWN0cyBvbiBhbnkgcnVubmVyIGdpdmVuXG4gICAgLy8gYGlkLXRva2VuOiB3cml0ZWAsIGFuZCBQeVBJJ3MgdHJ1c3QgaXMgYm91bmQgdG8gdGhlIHdvcmtmbG93IHJlZiwgbm90IHRoZVxuICAgIC8vIHJ1bm5lci4gRm9yY2luZyB0aGlzIGpvYiBvbnRvIGEgaG9zdGVkIHJ1bm5lciB3b3VsZCBhbHNvIHN0cmFuZCBpdCB3aXRoIHRoZVxuICAgIC8vIDMxR0IgTk9ERV9PUFRJT05TIGhlYXAgY2VpbGluZyB0aGF0IHVzZUN1c3RvbUdpdGh1YlJ1bm5lciB3cml0ZXMgaW50b1xuICAgIC8vIC5wcm9qZW4vdGFza3MuanNvbiwgb24gYSBib3ggd2l0aCBmYXIgbGVzcyBSQU0gdGhhbiB0aGF0IC0tIGFuZCB1bmxpa2VcbiAgICAvLyBwYWNrYWdlOmpzLCBwYWNrYWdlOnB5dGhvbiBpcyBhIHJlYWwganNpaS1wYWNtYWsgdHJhbnNwaWxlLlxuXG4gICAgLy8gZW5zdXJlIHdlIGRvbid0IGZhaWwgaWYgdGhlIHJlbGVhc2UgZmlsZSBpcyBub3QgcHJlc2VudFxuICAgIGNvbnN0IGNoZWNrRXhpc3RpbmdUYWdTdGVwID0gKFxuICAgICAgdGhpcy5yZWxlYXNlIGFzIGFueVxuICAgICkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzLnJlbGVhc2Uuc3RlcHMuZmluZChcbiAgICAgIChzOiBvYmplY3QpID0+IFwiaWRcIiBpbiBzICYmIHMuaWQgPT09IFwiY2hlY2tfdGFnX2V4aXN0c1wiXG4gICAgKTtcbiAgICBjb25zdCBvbGRFeGlzdGluZ1RhZ1J1bjogc3RyaW5nID0gY2hlY2tFeGlzdGluZ1RhZ1N0ZXAucnVuO1xuICAgIHByZXR0eUFzc2VydEVxdWFsKFxuICAgICAgb2xkRXhpc3RpbmdUYWdSdW4uc3BsaXQoXCJcXG5cIilbMF0sXG4gICAgICBcIlRBRz0kKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KVwiLFxuICAgICAgXCJyZWxlYXNlIHN0ZXAgY2hhbmdlZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgKTtcbiAgICBjaGVja0V4aXN0aW5nVGFnU3RlcC5ydW4gPSBgaWYgWyAhIC1mIGRpc3QvcmVsZWFzZXRhZy50eHQgXTsgdGhlbiAoZWNobyBcImV4aXN0cz10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQpICYmIGV4aXQgMDsgZmlcXG4ke29sZEV4aXN0aW5nVGFnUnVufWA7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgeyB1cGdyYWRlLCBwciB9ID0gKHRoaXMudXBncmFkZVdvcmtmbG93IGFzIGFueSkud29ya2Zsb3dzWzBdLmpvYnM7XG4gICAgICB1cGdyYWRlLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICAgIHByLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICB9XG5cbiAgICAvLyByZWxlYXNlOiBHbyDigJQgcGF0Y2ggdGhlIHJlbGVhc2Ugd29ya2Zsb3cncyBHbyBwdWJsaXNoIHRvIHVzZSBhIEdpdEh1YlxuICAgIC8vIEFwcCBpbnN0YWxsYXRpb24gdG9rZW4uXG4gICAgY29uc3QgcGF0Y2hHb1B1Ymxpc2hUb1VzZUFwcFRva2VuID0gKHdvcmtmbG93RmlsZT86IE9iamVjdEZpbGUpID0+IHtcbiAgICAgIGlmICghd29ya2Zsb3dGaWxlKSByZXR1cm47XG4gICAgICBjb25zdCBnb1B1Ymxpc2hUb2tlbiA9IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHtcbiAgICAgICAgYXBwSWRTZWNyZXQ6IFwiUFJPSkVOX0FQUF9JRFwiLFxuICAgICAgICBwcml2YXRlS2V5U2VjcmV0OiBcIlBST0pFTl9BUFBfUFJJVkFURV9LRVlcIixcbiAgICAgICAgb3duZXI6IFwiJHt7IGdpdGh1Yi5yZXBvc2l0b3J5X293bmVyIH19XCIsXG4gICAgICAgIHJlcG9zaXRvcmllczogW1xuICAgICAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lPy5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuQXBwUGVybWlzc2lvbi5XUklURSB9LFxuICAgICAgfSk7XG4gICAgICB3b3JrZmxvd0ZpbGUucGF0Y2goXG4gICAgICAgIEpzb25QYXRjaC5hZGQoXG4gICAgICAgICAgXCIvam9icy9yZWxlYXNlX2dvbGFuZy9zdGVwcy8xNlwiLFxuICAgICAgICAgIGdvUHVibGlzaFRva2VuLnNldHVwU3RlcHNbMF1cbiAgICAgICAgKSxcbiAgICAgICAgSnNvblBhdGNoLmFkZChcbiAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfZ29sYW5nL3N0ZXBzLzE3L2Vudi9HSVRIVUJfVE9LRU5cIixcbiAgICAgICAgICAvLyBHaXRIdWIgQXBwIGluc3RhbGxhdGlvbiB0b2tlbnMgKGdoc18qKSByZXF1aXJlIHRoZSBgeC1hY2Nlc3MtdG9rZW5gXG4gICAgICAgICAgLy8gdXNlcm5hbWUgd2hlbiB1c2VkIGluIEhUVFBTIGdpdCBVUkxzLiBwdWJsaWIgcmVuZGVycyB0aGlzIGVudiB2YXJcbiAgICAgICAgICAvLyB2ZXJiYXRpbSBpbnRvIGBodHRwczovLyR7R0lUSFVCX1RPS0VOfUBnaXRodWIuY29tLy4uLmAsIHNvIHdpdGhvdXRcbiAgICAgICAgICAvLyB0aGUgcHJlZml4IHRoZSBwdXNoIDQwMXMgYW5kIGZhbGxzIGJhY2sgdG8gYSBUVFkgcGFzc3dvcmQgcHJvbXB0LlxuICAgICAgICAgIGB4LWFjY2Vzcy10b2tlbjoke2dvUHVibGlzaFRva2VuLnRva2VuUmVmfWBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIHBhdGNoR29QdWJsaXNoVG9Vc2VBcHBUb2tlbihyZWxlYXNlV29ya2Zsb3cpO1xuICAgIH1cblxuICAgIC8vIEZpeCBtYXZlbiBpc3N1ZSAoaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvcHVibGliL3B1bGwvNzc3KVxuICAgIGdpdGh1Yi5HaXRIdWIub2YodGhpcyk/LnRyeUZpbmRXb3JrZmxvdyhcInJlbGVhc2VcIik/LmZpbGU/LnBhdGNoKFxuICAgICAgSnNvblBhdGNoLmFkZChcbiAgICAgICAgXCIvam9icy9yZWxlYXNlX21hdmVuL3N0ZXBzLzEwL2Vudi9NQVZFTl9PUFRTXCIsXG4gICAgICAgIC8vIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MDE1Mzk2Mi9uZXh1cy1zdGFnaW5nLW1hdmVuLXBsdWdpbi1tYXZlbi1kZXBsb3ktZmFpbGVkLWFuLWFwaS1pbmNvbXBhdGliaWxpdHktd2FzLWVuY29cbiAgICAgICAgXCItLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS51dGlsPUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZhLmxhbmcucmVmbGVjdD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS50ZXh0PUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuZGVza3RvcC9qYXZhLmF3dC5mb250PUFMTC1VTk5BTUVEXCJcbiAgICAgICksXG4gICAgICBKc29uUGF0Y2gucmVtb3ZlKFxuICAgICAgICAvLyBUaGlzIGlzIG5vIGxvbmdlciB1c2VkLlxuICAgICAgICBcIi9qb2JzL3JlbGVhc2VfbWF2ZW4vc3RlcHMvMTAvZW52L01BVkVOX1NUQUdJTkdfUFJPRklMRV9JRFwiXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMucGluR2l0aHViQWN0aW9uVmVyc2lvbnMoZ2l0aHViQWN0aW9uUGlubmVkVmVyc2lvbnMpO1xuXG4gICAgbmV3IENka3RmQ29uZmlnKHRoaXMsIHtcbiAgICAgIHRlcnJhZm9ybVByb3ZpZGVyLFxuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgZnFwcm92aWRlck5hbWUsXG4gICAgICBwcm92aWRlclZlcnNpb24sXG4gICAgICBjZGt0blZlcnNpb24sXG4gICAgICBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICAgIGpzaWlWZXJzaW9uLFxuICAgICAgdHlwZXNjcmlwdFZlcnNpb24sXG4gICAgICBwYWNrYWdlSW5mbyxcbiAgICAgIGdpdGh1Yk5hbWVzcGFjZSxcbiAgICAgIGRlcHJlY2F0aW9uRGF0ZSxcbiAgICAgIGlzRGVwcmVjYXRlZDogISFpc0RlcHJlY2F0ZWQsXG4gICAgfSk7XG4gICAgbmV3IEN1c3RvbWl6ZWRMaWNlbnNlKHRoaXMsIG9wdGlvbnMuY3JlYXRpb25ZZWFyLCBvcHRpb25zLmxpY2Vuc2VlKTtcbiAgICBuZXcgR2l0aHViSXNzdWVzKHRoaXMsIHsgcHJvdmlkZXJOYW1lIH0pO1xuICAgIG5ldyBBdXRvQXBwcm92ZSh0aGlzKTtcbiAgICBuZXcgQXV0b0Nsb3NlQ29tbXVuaXR5SXNzdWVzKHRoaXMsIHsgcHJvdmlkZXJOYW1lIH0pO1xuICAgIG5ldyBBdXRvbWVyZ2UodGhpcyk7XG4gICAgbmV3IExvY2tJc3N1ZXModGhpcyk7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgdXBncmFkZVNjcmlwdCA9IG5ldyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZSh0aGlzLCB7XG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbixcbiAgICAgICAgZnFwcm92aWRlck5hbWUsXG4gICAgICB9KTtcbiAgICAgIG5ldyBQcm92aWRlclVwZ3JhZGUodGhpcywge1xuICAgICAgICBjaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aDogdXBncmFkZVNjcmlwdC5wYXRoLFxuICAgICAgICB3b3JrZmxvd1J1bnNPbixcbiAgICAgICAgbm9kZUhlYXBTaXplOiBtYXhPbGRTcGFjZVNpemUsXG4gICAgICB9KTtcbiAgICAgIG5ldyBBbGVydE9wZW5QcnModGhpcywge1xuICAgICAgICBzbGFja1dlYmhvb2tVcmw6IFwiJHt7IHNlY3JldHMuQUxFUlRfUFJTX1NMQUNLX1dFQkhPT0tfVVJMIH19XCIsXG4gICAgICAgIHJlcG9zaXRvcnksXG4gICAgICB9KTtcbiAgICAgIG5ldyBEZXBlbmRhYm90KHRoaXMpO1xuICAgIH1cblxuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCBcIi5naXRodWIvQ09ERU9XTkVSU1wiLCB7XG4gICAgICBsaW5lczogW1xuICAgICAgICBcIiMgVGhlc2Ugb3duZXJzIHdpbGwgYmUgdGhlIGRlZmF1bHQgb3duZXJzIGZvciBldmVyeXRoaW5nIGluIFwiLFxuICAgICAgICBcIiMgdGhlIHJlcG8uIFVubGVzcyBhIGxhdGVyIG1hdGNoIHRha2VzIHByZWNlZGVuY2UsIFwiLFxuICAgICAgICBcIiMgdGhleSB3aWxsIGJlIHJlcXVlc3RlZCBmb3IgcmV2aWV3IHdoZW4gc29tZW9uZSBvcGVucyBhIFwiLFxuICAgICAgICBcIiMgcHVsbCByZXF1ZXN0LlwiLFxuICAgICAgICBcIiogICAgICAgQGNka3RuLWlvL3RlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgbmV3IFNob3VsZFJlbGVhc2VTY3JpcHRGaWxlKHRoaXMsIHt9KTtcblxuICAgICAgY29uc3QgcmVsZWFzZVRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQoXCJyZWxlYXNlXCIpITtcbiAgICAgIHRoaXMucmVtb3ZlVGFzayhcInJlbGVhc2VcIik7XG4gICAgICB0aGlzLmFkZFRhc2soXCJyZWxlYXNlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHJlbGVhc2VUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdGVwczogcmVsZWFzZVRhc2suc3RlcHMsXG4gICAgICAgIGVudjogKHJlbGVhc2VUYXNrIGFzIGFueSkuX2VudixcbiAgICAgICAgY29uZGl0aW9uOiBcIm5vZGUgLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlLmpzXCIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkVGFzayhcInVuY29uZGl0aW9uYWwtcmVsZWFzZVwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiByZWxlYXNlVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgc3RlcHM6IHJlbGVhc2VUYXNrLnN0ZXBzLFxuICAgICAgICBlbnY6IChyZWxlYXNlVGFzayBhcyBhbnkpLl9lbnYsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVsZWFzZUpvYlN0ZXBzOiBhbnlbXSA9IChcbiAgICAgICAgdGhpcy5naXRodWI/LnRyeUZpbmRXb3JrZmxvdyhcInJlbGVhc2VcIikgYXMgYW55XG4gICAgICApLmpvYnMucmVsZWFzZS5zdGVwcztcbiAgICAgIGNvbnN0IGdpdFJlbW90ZUpvYiA9IHJlbGVhc2VKb2JTdGVwcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IFwiZ2l0X3JlbW90ZVwiKTtcbiAgICAgIGFzc2VydChcbiAgICAgICAgZ2l0UmVtb3RlSm9iLFxuICAgICAgICBcImdpdF9yZW1vdGUgc3RlcCBub3QgZm91bmQgaW4gcmVsZWFzZSB3b3JrZmxvdywgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgICApO1xuICAgICAgLy8gV2Ugd3JhcCB3aGF0ZXZlciBwcm9qZW4gZ2VuZXJhdGVkIGluIGEgc2hvdWxkLXJlbGVhc2UgZ3VhcmQgcmF0aGVyIHRoYW5cbiAgICAgIC8vIHJld3JpdGluZyBpdCwgc28gYXNzZXJ0IG9ubHkgdGhlIHR3byBwcm9wZXJ0aWVzIHRoZSB3cmFwcGluZyBhY3R1YWxseVxuICAgICAgLy8gZGVwZW5kcyBvbi4gUGlubmluZyB0byBwcm9qZW4ncyBleGFjdCB3b3JkaW5nIGJyb2tlIHRoZSB3aG9sZSBmbGVldFxuICAgICAgLy8gb25jZSBhbHJlYWR5OiBwcm9qZW4gMC4xMDEgY2hhbmdlZCBgJHt7IGdpdGh1Yi5yZWYgfX1gIHRvIGBcIiRHSVRIVUJfUkVGXCJgXG4gICAgICAvLyBhbmQgZXZlcnkgcHJvdmlkZXIgcmVwbydzIHVwZ3JhZGUtbWFpbiBzdGFydGVkIGZhaWxpbmcgYXQgc3ludGguXG4gICAgICBhc3NlcnQoXG4gICAgICAgIHR5cGVvZiBnaXRSZW1vdGVKb2IucnVuID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgZ2l0UmVtb3RlSm9iLnJ1bi5pbmNsdWRlcyhcImdpdCBscy1yZW1vdGVcIikgJiZcbiAgICAgICAgICBnaXRSZW1vdGVKb2IucnVuLmluY2x1ZGVzKFwibGF0ZXN0X2NvbW1pdD1cIiksXG4gICAgICAgIGBnaXRfcmVtb3RlIHN0ZXAgbm8gbG9uZ2VyIHNldHMgbGF0ZXN0X2NvbW1pdCBmcm9tIGdpdCBscy1yZW1vdGUsIHBsZWFzZSBjaGVjayBpZiB0aGUgd29ya2Fyb3VuZCBzdGlsbCB3b3JrcyEgR290OiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIGdpdFJlbW90ZUpvYi5ydW5cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgICAgLy8gRm9sZCAqZXZlcnkqIGxpbmU6IHByb2plbiBlbWl0cyB0d28gdG9kYXksIGJ1dCBTdHJpbmcjcmVwbGFjZSB3aXRoIGFcbiAgICAgIC8vIHN0cmluZyBwYXR0ZXJuIG9ubHkgZm9sZHMgdGhlIGZpcnN0IGlmIHRoYXQgZXZlciBncm93cy5cbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tbWFuZCA9IGdpdFJlbW90ZUpvYi5ydW4uc3BsaXQoXCJcXG5cIikuam9pbihcIiAmJiBcIik7XG5cbiAgICAgIGNvbnN0IGNhbmNlbENvbW1hbmQgPVxuICAgICAgICAnZWNobyBcImxhdGVzdF9jb21taXQ9cmVsZWFzZV9jYW5jZWxsZWRcIiA+PiAkR0lUSFVCX09VVFBVVCc7IC8vIHRoaXMgY2FuY2VscyB0aGUgcmVsZWFzZSB2aWEgYSBub24tbWF0Y2hpbmcgU0hBO1xuICAgICAgZ2l0UmVtb3RlSm9iLnJ1biA9IGBub2RlIC4vc2NyaXB0cy9zaG91bGQtcmVsZWFzZS5qcyAmJiAoJHtwcmV2aW91c0NvbW1hbmR9KSB8fCAke2NhbmNlbENvbW1hbmR9YDtcbiAgICAgIGdpdFJlbW90ZUpvYi5uYW1lICs9XG4gICAgICAgIFwiIG9yIGNhbmNlbCB2aWEgZmFraW5nIGEgU0hBIGlmIHJlbGVhc2Ugd2FzIGNhbmNlbGxlZFwiO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWxlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFwiLmdpdGh1Yi93b3JrZmxvd3Mvc3RhbGUueW1sXCIpO1xuICAgIHN0YWxlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwib24uc2NoZWR1bGVcIiwgW1xuICAgICAge1xuICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oeyBwcm9qZWN0OiB0aGlzLCBtYXhIb3VyOiA0LCBob3VyT2Zmc2V0OiAxIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGNvbnN0IHVwZ3JhZGVXb3JrZmxvdyA9IHRoaXMudHJ5RmluZE9iamVjdEZpbGUoXG4gICAgICBcIi5naXRodWIvd29ya2Zsb3dzL3VwZ3JhZGUtbWFpbi55bWxcIlxuICAgICk7XG4gICAgdXBncmFkZVdvcmtmbG93Py5hZGRPdmVycmlkZShcIm9uLnNjaGVkdWxlXCIsIFtcbiAgICAgIHtcbiAgICAgICAgY3JvbjogZ2VuZXJhdGVSYW5kb21Dcm9uKHtcbiAgICAgICAgICBwcm9qZWN0OiB0aGlzLFxuICAgICAgICAgIG1heEhvdXI6IDAsXG4gICAgICAgICAgaG91ck9mZnNldDogMSxcbiAgICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUuV2Vla2x5LFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICAvLyBTdWJtb2R1bGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uXG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIkFQSS5tZFwiKTsgLy8gaWdub3JlIHRoZSBvbGQgZmlsZSwgd2Ugbm93IGdlbmVyYXRlIGl0IGluIHRoZSBkb2NzIGZvbGRlclxuICAgIHRoaXMuYWRkRGV2RGVwcyhcImpzaWktZG9jZ2VuQF4xMC4yLjNcIik7XG4gICAgaWYgKGpzaWlWZXJzaW9uKSB7XG4gICAgICAvLyBOT1RFOiB0aGUgYmVsb3cgaXMgbWFraW5nIGEgYnJvYWQgYXNzdW1wdGlvbiB0aGF0IHlvdSdyZSBwYXNzaW5nIGEgcmFuZ2UgbGlrZSBcIn41LjMuMFwiIHRvIGpzaWlWZXJzaW9uXG4gICAgICAvLyBJZiB5b3UgdXNlIHRoYXQgZmllbGQgdG8gcGFzcyBhIHZlcnkgc3BlY2lmaWMgdmVyc2lvbiAoZS5nLiBcIjUuMy4xMVwiKSB0aGVuIHRoaXMgbWlnaHQgYnJlYWtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcyhganNpaS1yb3NldHRhQCR7anNpaVZlcnNpb259YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcyhganNpaS1yb3NldHRhYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZG9jZ2VuID0gdGhpcy5hZGRUYXNrKFwiZG9jZ2VuXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdlbmVyYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwcm9qZWN0XCIsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogW1xuICAgICAgICAgICAgXCJybSAtcmYgZG9jc1wiLFxuICAgICAgICAgICAgXCJybSAtZiBBUEkubWRcIixcbiAgICAgICAgICAgIFwibWtkaXIgZG9jc1wiLFxuICAgICAgICAgICAgXCJqc2lpLWRvY2dlbiAtLXNwbGl0LWJ5LXN1Ym1vZHVsZSAtbCB0eXBlc2NyaXB0IC1sIHB5dGhvbiAtbCBqYXZhIC1sIGNzaGFycCAtbCBnb1wiLFxuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gbmljZSB3YXkgdG8gdGVsbCBqc2lpLWRvY2dlbiB0byBnZW5lcmF0ZSBkb2NzIGludG8gYSBmb2xkZXIgc28gSSB3ZW50IHRoaXMgcm91dGVcbiAgICAgICAgICAgIFwibXYgKi4qLm1kIGRvY3NcIixcbiAgICAgICAgICAgIC8vIFNvbWUgcGFydCBvZiB0aGUgZG9jdW1lbnRhdGlvbiBhcmUgdG9vIGxvbmcsIHdlIG5lZWQgdG8gdHJ1bmNhdGUgdGhlbSB0byB+MTBNQlxuICAgICAgICAgICAgXCJjZCBkb2NzXCIsXG4gICAgICAgICAgICBcImxzIC4vIHwgeGFyZ3Mgc2VkIC1pICcxNTAwMDAsJCBkJyAkMVwiLFxuICAgICAgICAgIF0uam9pbihcIiAmJiBcIiksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIHRoaXMucG9zdENvbXBpbGVUYXNrLnNwYXduKGRvY2dlbik7XG4gICAgdGhpcy5naXRpZ25vcmUuaW5jbHVkZShgL2RvY3MvKi5tZGApO1xuICAgIHRoaXMuYW5ub3RhdGVHZW5lcmF0ZWQoYC9kb2NzLyoubWRgKTtcblxuICAgIC8vIFNldHRpbmcgdGhlIHZlcnNpb24gaW4gcGFja2FnZS5qc29uIHNvIHRoZSBnb2xhbmcgZG9jcyBoYXZlIHRoZSBjb3JyZWN0IHZlcnNpb25cbiAgICBjb25zdCB1bmNvbmRpdGlvbmFsQnVtcCA9IHRoaXMuYWRkVGFzayhcInVuY29uZGl0aW9uYWwtYnVtcFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJTZXQgdGhlIHZlcnNpb24gaW4gcGFja2FnZS5qc29uIHRvIHRoZSBjdXJyZW50IHZlcnNpb25cIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkNsZWFyIHRoZSBjaGFuZ2Vsb2cgc28gdGhhdCBpdCBkb2Vzbid0IGdldCBwdWJsaXNoZWQgdHdpY2VcIixcbiAgICAgICAgICBleGVjOiBcInJtIC1mICRDSEFOR0VMT0dcIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBidWlsdGluOiBcInJlbGVhc2UvYnVtcC12ZXJzaW9uXCIgfSxcbiAgICAgIF0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgT1VURklMRTogXCJwYWNrYWdlLmpzb25cIixcbiAgICAgICAgQ0hBTkdFTE9HOiBcImRpc3QvY2hhbmdlbG9nLm1kXCIsXG4gICAgICAgIEJVTVBGSUxFOiBcImRpc3QvdmVyc2lvbi50eHRcIixcbiAgICAgICAgUkVMRUFTRVRBRzogXCJkaXN0L3JlbGVhc2V0YWcudHh0XCIsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogXCJcIixcbiAgICAgICAgTUlOX01BSk9SOiBTdHJpbmcoTUlOX01BSk9SX1ZFUlNJT04pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLnNwYXduKHVuY29uZGl0aW9uYWxCdW1wKTtcbiAgICAvLyBUbyBidW1wIGNvcnJlY3RseSB3ZSBuZWVkIHRvIGhhdmUgdGhlIGNvbXBsZXRlbHkgY2xvbmVkIHJlcG9cbiAgICAodGhpcy5idWlsZFdvcmtmbG93IGFzIGFueSkud29ya2Zsb3cuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwiam9icy5idWlsZC5zdGVwcy4wLndpdGguZmV0Y2gtZGVwdGhcIixcbiAgICAgIDBcbiAgICApO1xuICAgIC8vIFVuZG8gdGhlIGNoYW5nZXMgYWZ0ZXIgY29tcGlsYXRpb25cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3c/LmFkZFBvc3RCdWlsZFN0ZXBzKHtcbiAgICAgIG5hbWU6IFwiUmV2ZXJ0IHBhY2thZ2UuanNvbiB2ZXJzaW9uIGJ1bXBcIixcbiAgICAgIHJ1bjogXCJnaXQgY2hlY2tvdXQgcGFja2FnZS5qc29uXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgQ29weXJpZ2h0SGVhZGVycyh0aGlzKTtcbiAgICBuZXcgRGVwcmVjYXRlUGFja2FnZXModGhpcywge1xuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgcGFja2FnZUluZm8sXG4gICAgICBpc0RlcHJlY2F0ZWQ6ICEhaXNEZXByZWNhdGVkLFxuICAgIH0pO1xuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICAvLyBGb2xkcyB0aGUgbWFudWFsIGZvcmNlLXJlbGVhc2UgYmVoYXZpb3VyIGludG8gcmVsZWFzZS55bWwgYmVoaW5kIGFcbiAgICAgIC8vIHdvcmtmbG93X2Rpc3BhdGNoIHRyaWdnZXIsIHNvIG5wbS9QeVBJIE9JREMgdHJ1c3RzIGEgc2luZ2xlIHdvcmtmbG93LlxuICAgICAgbmV3IEZvcmNlUmVsZWFzZSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBpbkdpdGh1YkFjdGlvblZlcnNpb25zKHBpbm5lZFZlcnNpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgLy8gVXNlIHBpbm5lZCB2ZXJzaW9ucyBvZiBnaXRodWIgYWN0aW9uc1xuICAgIE9iamVjdC5lbnRyaWVzKHBpbm5lZFZlcnNpb25zKS5mb3JFYWNoKChbbmFtZSwgc2hhXSkgPT4ge1xuICAgICAgdGhpcy5naXRodWI/LmFjdGlvbnMuc2V0KG5hbWUsIGAke25hbWV9QCR7c2hhfWApO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByZXR0eUFzc2VydEVxdWFsPFQ+KHN1YmplY3Q6IFQsIGV4cGVjdGVkOiBULCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChzdWJqZWN0ICE9PSBleHBlY3RlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke21lc3NhZ2UgPz8gXCJBc3NlcnRpb24gZmFpbGVkXCJ9OiBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBleHBlY3RlZFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHN1YmplY3QpfWBcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
570
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBEQUEwRDtBQUMxRCxpQ0FBa0M7QUFDbEMsNkNBQXlDO0FBQ3pDLG1DQU9nQjtBQUVoQixzREFJK0I7QUFDL0IscURBQWdEO0FBQ2hELGlEQUE2QztBQUM3QywrRUFBeUU7QUFDekUsMkNBQXdDO0FBQ3hDLGlEQUE2QztBQUM3QywyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELDZDQUEwQztBQUMxQyw2REFBeUQ7QUFDekQsbURBQStDO0FBQy9DLG1EQUErQztBQUMvQywrQ0FBMkM7QUFFM0MseURBQXFEO0FBQ3JELHFFQUEwRTtBQUMxRSw2REFBbUU7QUFDbkUsb0RBQWtFO0FBRWxFLG1IQUFtSDtBQUNuSCxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQXFFNUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFvQixFQUFVLEVBQUU7SUFDcEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxHQUFHLFlBQVksV0FBVztRQUM1QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRztJQUNqQyxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLDJCQUEyQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDbEYsdUJBQXVCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM5RSxzQkFBc0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQzdFLGtCQUFrQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDekUsb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUMzRSxvQkFBb0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFT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QUFHLEVBQ1QsaUhBQWlILENBQ2xILENBQUM7UUFDRiw0RUFBNEU7UUFDNUUsOEVBQThFO1FBQzlFLGdGQUFnRjtRQUNoRixrSUFBa0k7UUFDbEksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVO1lBQ2pCLGdNQUFnTSxDQUFDO1FBQ25NLDBCQUEwQjtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxPQUFVLEVBQUUsUUFBVyxFQUFFLE9BQWdCO0lBQ3JFLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxPQUFPLElBQUksa0JBQWtCLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FDMUQsUUFBUSxDQUNULFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN2QyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcbmltcG9ydCB7IHBhc2NhbENhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT2JqZWN0RmlsZSxcbiAgVGV4dEZpbGUsXG4gIGNkayxcbiAgZ2l0aHViLFxuICBKc29uUGF0Y2gsXG59IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQge1xuICBOb2RlUGFja2FnZU1hbmFnZXIsXG4gIFBucG1Xb3Jrc3BhY2VZYW1sU2NoZW1hTm9kZUxpbmtlcixcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBBbGVydE9wZW5QcnMgfSBmcm9tIFwiLi9hbGVydC1vcGVuLXByc1wiO1xuaW1wb3J0IHsgQXV0b0FwcHJvdmUgfSBmcm9tIFwiLi9hdXRvLWFwcHJvdmVcIjtcbmltcG9ydCB7IEF1dG9DbG9zZUNvbW11bml0eUlzc3VlcyB9IGZyb20gXCIuL2F1dG8tY2xvc2UtY29tbXVuaXR5LWlzc3Vlc1wiO1xuaW1wb3J0IHsgQXV0b21lcmdlIH0gZnJvbSBcIi4vYXV0b21lcmdlXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuaW1wb3J0IHsgQ29weXJpZ2h0SGVhZGVycyB9IGZyb20gXCIuL2NvcHlyaWdodC1oZWFkZXJzXCI7XG5pbXBvcnQgeyBDdXN0b21pemVkTGljZW5zZSB9IGZyb20gXCIuL2N1c3RvbWl6ZWQtbGljZW5zZVwiO1xuaW1wb3J0IHsgRGVwZW5kYWJvdCB9IGZyb20gXCIuL2RlcGVuZGFib3RcIjtcbmltcG9ydCB7IERlcHJlY2F0ZVBhY2thZ2VzIH0gZnJvbSBcIi4vZGVwcmVjYXRlLXBhY2thZ2VzXCI7XG5pbXBvcnQgeyBGb3JjZVJlbGVhc2UgfSBmcm9tIFwiLi9mb3JjZS1yZWxlYXNlXCI7XG5pbXBvcnQgeyBHaXRodWJJc3N1ZXMgfSBmcm9tIFwiLi9naXRodWItaXNzdWVzXCI7XG5pbXBvcnQgeyBMb2NrSXNzdWVzIH0gZnJvbSBcIi4vbG9jay1pc3N1ZXNcIjtcbmltcG9ydCB7IFBhY2thZ2VJbmZvIH0gZnJvbSBcIi4vcGFja2FnZS1pbmZvXCI7XG5pbXBvcnQgeyBQcm92aWRlclVwZ3JhZGUgfSBmcm9tIFwiLi9wcm92aWRlci11cGdyYWRlXCI7XG5pbXBvcnQgeyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZSB9IGZyb20gXCIuL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzXCI7XG5pbXBvcnQgeyBTaG91bGRSZWxlYXNlU2NyaXB0RmlsZSB9IGZyb20gXCIuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2VcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tQ3JvbiwgU2NoZWR1bGUgfSBmcm9tIFwiLi91dGlsL3JhbmRvbS1jcm9uXCI7XG5cbi8vIGVuc3VyZSBuZXcgcHJvamVjdHMgc3RhcnQgd2l0aCAxLjAuMCBzbyB0aGF0IGV2ZXJ5IGZvbGxvd2luZyBicmVha2luZyBjaGFuZ2UgbGVhZHMgdG8gYW4gaW5jcmVhc2VkIG1ham9yIHZlcnNpb25cbmNvbnN0IE1JTl9NQUpPUl9WRVJTSU9OID0gMTtcblxuZXhwb3J0IGludGVyZmFjZSBDZGt0blByb3ZpZGVyUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgdXNlQ3VzdG9tR2l0aHViUnVubmVyPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGVycmFmb3JtUHJvdmlkZXI6IHN0cmluZztcbiAgcmVhZG9ubHkgY2RrdG5WZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGNka3RuVmVyc2lvbmAgaW5zdGVhZC4gVGhpcyBhbGlhcyBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgZm9yY2VNYWpvclZlcnNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG4taW9cIlxuICAgKiBwcmV2aW91c2x5IHdhcyBcImNka3RmXCIuIFVzZWQgZm9yIEdpdEh1YiBvcmcgbmFtZSBhbmQgcGFja2FnZSBzY29waW5nXG4gICAqL1xuICByZWFkb25seSBnaXRodWJOYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcIklvLkNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG51Z2V0T3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0blwiXG4gICAqL1xuICByZWFkb25seSBtYXZlbk9yZz86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiaW8uJHttYXZlbk9yZ31cIlxuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5Hcm91cElkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHllYXIgb2YgdGhlIGNyZWF0aW9uIG9mIHRoZSByZXBvc2l0b3J5LCBmb3IgY29weXJpZ2h0IHB1cnBvc2VzLlxuICAgKiBXaWxsIGZhbGwgYmFjayB0byB0aGUgY3VycmVudCB5ZWFyIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGlvblllYXI/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIGlzIGRlcHJlY2F0ZWQuXG4gICAqIElmIHRydWUsIG5vIG5ldyB2ZXJzaW9ucyB3aWxsIGJlIHB1Ymxpc2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzRGVwcmVjYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkYXRlIHdoZW4gdGhlIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCwgdG8gYmUgdXNlZCBpbiB0aGUgUkVBRE1FIHRleHQuXG4gICAqIElmIG5vIGRhdGUgaXMgcHJvdmlkZWQsIHRoZW4gdGhlIGRhdGUgb2YgdGhlIGJ1aWxkIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwcmVjYXRpb25EYXRlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJIYXNoaUNvcnAsIEluYy5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBVc2UgdHJ1c3RlZCBwdWJsaXNoaW5nIGZvciBwdWJsaXNoaW5nIHRvIHB5cGkub3JnXG4gICAqIE5lZWRzIHRvIGJlIHByZS1jb25maWd1cmVkIG9uIFB5UEkgdG8gd29yay5cbiAgICpcbiAgICogVGhlIGByZWxlYXNlX3B5cGlgIGpvYiBrZWVwcyB3aGF0ZXZlciBydW5uZXIgdGhlIHByb2plY3QgaXMgY29uZmlndXJlZCBmb3IuXG4gICAqIFB5UEksIHVubGlrZSBucG0sIGRvZXMgbm90IHJlc3RyaWN0IHRydXN0ZWQgcHVibGlzaGluZyB0byBHaXRIdWItaG9zdGVkXG4gICAqIHJ1bm5lcnMgLS0gdHJ1c3QgaXMgYm91bmQgdG8gdGhlIHdvcmtmbG93IHJlZiwgYW5kIHRoZSBPSURDIHRva2VuIGlzIG1pbnRlZFxuICAgKiBmcm9tIEFDVElPTlNfSURfVE9LRU5fUkVRVUVTVF9VUkwsIHdoaWNoIGlzIGF2YWlsYWJsZSBvbiBhbnkgcnVubmVyIHdpdGhcbiAgICogYGlkLXRva2VuOiB3cml0ZWAuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnB5cGkub3JnL3RydXN0ZWQtcHVibGlzaGVycy9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHlwaVRydXN0ZWRQdWJsaXNoaW5nPzogYm9vbGVhbjtcbn1cblxuY29uc3QgZ2V0TWF2ZW5OYW1lID0gKHByb3ZpZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIFtcIm51bGxcIiwgXCJyYW5kb21cIl0uaW5jbHVkZXMocHJvdmlkZXJOYW1lKVxuICAgID8gYCR7cHJvdmlkZXJOYW1lfV9wcm92aWRlcmBcbiAgICA6IHByb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG59O1xuXG5jb25zdCBnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyA9IHtcbiAgXCJhY3Rpb25zL2NoZWNrb3V0XCI6IFwiZGUwZmFjMmU0NTAwZGFiZTAwMDllNjcyMTRmZjVmNTQ0N2NlODNkZFwiLCAvLyB2Ni4wLjJcbiAgXCJhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0XCI6IFwiM2U1ZjQ1YjJjZmI5MTcyMDU0YjQwODdhNDBlOGUwYjVhNTQ2MWU3Y1wiLCAvLyB2OC4wLjFcbiAgXCJhY3Rpb25zL2dpdGh1Yi1zY3JpcHRcIjogXCJlZDU5NzQxMWQ4ZjkyNDA3M2Y5OGRmYzVjNjVhMjNhMjMyNWYzNGNkXCIsIC8vIHY4LjAuMFxuICBcImFjdGlvbnMvc2V0dXAtZG90bmV0XCI6IFwiYzJmYTA5ZjRiZGU1ZWJiOWQxNzc3Y2YyODI2MmEzZWIzZGIzY2VkN1wiLCAvLyB2NS4yLjBcbiAgXCJhY3Rpb25zL3NldHVwLWdvXCI6IFwiNGEzNjAxMTIxZGQwMWQxNjI2YTFlMjNlMzcyMTFlMzI1NGMxYzA2Y1wiLCAvLyB2Ni40LjBcbiAgXCJhY3Rpb25zL3NldHVwLWphdmFcIjogXCJiZTY2NmMyZmNkMjdlYzgwOTcwM2RlYzUwZTUwOGMyZmRjN2Y2NjU0XCIsIC8vIHY1LjIuMFxuICBcImFjdGlvbnMvc2V0dXAtbm9kZVwiOiBcIjQ4YjU1YTAxMWJkYTlmNWQ2YWViNGMyZDljNzM2MmU4ZGFlNDA0MWVcIiwgLy8gdjYuNC4wXG4gIFwiYWN0aW9ucy9zZXR1cC1weXRob25cIjogXCJhMzA5ZmY4YjQyNmI1OGVjMGUyYTQ1ZjBmODY5ZDQ2ODg5ZDAyNDA1XCIsIC8vIHY2LjIuMFxuICBcImFjdGlvbnMvc3RhbGVcIjogXCJiNWQ0MWQ0ZTFkNWRjZWVhMTBlNzEwNDc4NmI3MzYyNGMxOGExOTBmXCIsIC8vIHYxMC4yLjBcbiAgXCJhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdFwiOiBcIjA0M2ZiNDZkMWE5M2M3N2FhZTY1NmU3YzFjNjRhODc1ZDFmYzZhMGFcIiwgLy8gdjcuMC4xXG4gIFwiYW1hbm5uL2FjdGlvbi1zZW1hbnRpYy1wdWxsLXJlcXVlc3RcIjpcbiAgICBcIjQ4ZjI1NjI4NGJkNDZjZGFhYjEwNDhjMzcyMTM2MGU4MDgzMzVkNTBcIiwgLy8gdjYuMS4xXG4gIFwiZGVzc2FudC9sb2NrLXRocmVhZHNcIjogXCI3MjY2YTdjZTVjMWRmMDFiMWM2ZGI4NWJmOGNkODZjNzM3ZGFkYmU3XCIsIC8vIHY2LjAuMFxuICBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIjogXCIzMjYzOGRhMmQ0ZTgxZDU2YTA3NjRhYTE1NDc4ODJmYzRkMjA5NjM2XCIsIC8vIHYxLjEuM1xuICBcImhhc2hpY29ycC9zZXR1cC10ZXJyYWZvcm1cIjogXCI1ZThkYmYzYzZkOWRlYWY0MTkzY2E3YThmYjIzZjJhYzgzYmI2Yzg1XCIsIC8vIHY0LjAuMFxuICBcImltam9obmJvL2lzc3VlLWJvdFwiOiBcIjMxODhjNmNlMDYyNDkyMDY3MDlkM2IxZjI3NGQwZDRjNWE1MjE2MDFcIiwgLy8gdjMuNC41XG4gIFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdFwiOiBcIjVmNjk3OGZhZjA4OWQ0ZDIwYjAwYzc3NjY5ODlkMDc2YmIyZmM3ZjFcIiwgLy8gdjguMS4xXG4gIFwic2xhY2thcGkvc2xhY2stZ2l0aHViLWFjdGlvblwiOiBcIjQ1YTg4Yjk1ODFiZmFiMjU2NmRjODgxZTJjZDY2ZDMzNGU2MjFlMmNcIiwgLy8gdjMuMC4zXG4gIFwiYWN0aW9ucy9jcmVhdGUtZ2l0aHViLWFwcC10b2tlblwiOiBcIjI5ODI0ZTY5ZjU0NjEyMTMzZTc2ZjdlYWFjNzI2ZWVmNmM4NzViYWZcIiwgLy8gdjIuMi4xXG4gIC8vIHByb2plbiBlbWl0cyB0aGlzIHVucGlubmVkIGFzIGBwbnBtL2FjdGlvbi1zZXR1cEB2NWAgb25jZSBwYWNrYWdlTWFuYWdlciBpcyBwbnBtXG4gIFwicG5wbS9hY3Rpb24tc2V0dXBcIjogXCJmYzA2YmMxMjU3ZjMzOWQxZDVkOGIzYTE5YThjYWU1Mzg4YjU1MzIwXCIsIC8vIHY1XG59O1xuXG5leHBvcnQgY2xhc3MgQ2RrdG5Qcm92aWRlclByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGt0blByb3ZpZGVyUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBjZGt0blZlcnNpb24gPSBvcHRpb25zLmNka3RuVmVyc2lvbiA/PyBvcHRpb25zLmNka3RmVmVyc2lvbjtcbiAgICBhc3NlcnQoXG4gICAgICBjZGt0blZlcnNpb24sXG4gICAgICBcIkVpdGhlciBjZGt0blZlcnNpb24gb3IgY2RrdGZWZXJzaW9uIG11c3QgYmUgcHJvdmlkZWRcIlxuICAgICk7XG5cbiAgICBjb25zdCB7XG4gICAgICB0ZXJyYWZvcm1Qcm92aWRlcixcbiAgICAgIHdvcmtmbG93Q29udGFpbmVySW1hZ2UsXG4gICAgICBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICAgIG1pbk5vZGVWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIGlzRGVwcmVjYXRlZCxcbiAgICAgIGRlcHJlY2F0aW9uRGF0ZSxcbiAgICAgIC8vIFRPRE86IENvbmZpcm0gZGVmYXVsdCBBdXRob3IgTmFtZVxuICAgICAgYXV0aG9yTmFtZSA9IFwiQ0RLIFRlcnJhaW4gTWFpbnRhaW5lcnNcIixcbiAgICAgIGF1dGhvckFkZHJlc3MgPSBcImh0dHBzOi8vY2RrdG4uaW9cIixcbiAgICAgIG5hbWVzcGFjZSA9IFwiY2RrdG5cIixcbiAgICAgIGdpdGh1Yk5hbWVzcGFjZSA9IFwiY2RrdG4taW9cIixcbiAgICAgIG51Z2V0T3JnID0gXCJJby5DZGt0blwiLFxuICAgICAgbWF2ZW5PcmcgPSBcImNka3RuXCIsXG4gICAgICBucG1UcnVzdGVkUHVibGlzaGluZyxcbiAgICAgIHB5cGlUcnVzdGVkUHVibGlzaGluZyxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IFtmcXByb3ZpZGVyTmFtZSwgcHJvdmlkZXJWZXJzaW9uXSA9IHRlcnJhZm9ybVByb3ZpZGVyLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBmcXByb3ZpZGVyTmFtZS5zcGxpdChcIi9cIikucG9wKCk7XG4gICAgYXNzZXJ0KHByb3ZpZGVyTmFtZSwgYCR7dGVycmFmb3JtUHJvdmlkZXJ9IGRvZXNuJ3Qgc2VlbSB0byBiZSB2YWxpZGApO1xuICAgIGFzc2VydChcbiAgICAgICFwcm92aWRlck5hbWUuZW5kc1dpdGgoXCItZ29cIiksXG4gICAgICBcInByb3ZpZGVyTmFtZSBtYXkgbm90IGVuZCB3aXRoICctZ28nIGFzIHRoaXMgY2FuIGNvbmZsaWN0IHdpdGggcmVwb3MgZm9yIGdvIHBhY2thZ2VzXCJcbiAgICApO1xuXG4gICAgY29uc3QgbnVnZXROYW1lID0gYCR7bnVnZXRPcmd9LlByb3ZpZGVycy4ke3Bhc2NhbENhc2UocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IG1hdmVuR3JvdXBJZCA9IG9wdGlvbnMubWF2ZW5Hcm91cElkID8/IGBpby4ke21hdmVuT3JnfWA7XG4gICAgY29uc3QgbWF2ZW5OYW1lID0gYCR7bWF2ZW5Hcm91cElkfS5wcm92aWRlcnMuJHtnZXRNYXZlbk5hbWUocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBgJHtnaXRodWJOYW1lc3BhY2V9LyR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgLy0vZyxcbiAgICAgIFwiXCJcbiAgICApfWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeVVybCA9IGBnaXRodWIuY29tLyR7cmVwb3NpdG9yeX1gO1xuXG4gICAgY29uc3QgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvID0ge1xuICAgICAgbnBtOiB7XG4gICAgICAgIG5hbWU6IGBAJHtuYW1lc3BhY2V9L3Byb3ZpZGVyLSR7cHJvdmlkZXJOYW1lfWAsXG4gICAgICB9LFxuICAgICAgcHl0aG9uOiB7XG4gICAgICAgIC8vIGRpc3ROYW1lOiBgJHtnaXRodWJOYW1lc3BhY2V9LSR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBkaXN0TmFtZTogYCR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIil9YCxcbiAgICAgICAgLy8gbW9kdWxlOiBgJHtnaXRodWJOYW1lc3BhY2V9XyR7bmFtZXNwYWNlfV9wcm92aWRlcl8ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBtb2R1bGU6IGAke25hbWVzcGFjZX1fcHJvdmlkZXJfJHtwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpfWAsXG4gICAgICAgIHRydXN0ZWRQdWJsaXNoaW5nOiBweXBpVHJ1c3RlZFB1Ymxpc2hpbmcgPz8gZmFsc2UsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvTnVnZXQ6IHtcbiAgICAgICAgZG90TmV0TmFtZXNwYWNlOiBudWdldE5hbWUsXG4gICAgICAgIHBhY2thZ2VJZDogbnVnZXROYW1lLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiB7XG4gICAgICAgIGphdmFQYWNrYWdlOiBtYXZlbk5hbWUsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogbWF2ZW5Hcm91cElkLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IGAke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWV9YCxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9Hbzoge1xuICAgICAgICBtb2R1bGVOYW1lOiBgJHtyZXBvc2l0b3J5VXJsfS1nb2AsXG4gICAgICAgIGdpdFVzZXJFbWFpbDogXCJnaXRodWItdGVhbS1jZGstdGVycmFpbkBjZGt0bi5pb1wiLFxuICAgICAgICBnaXRVc2VyTmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBwcm92aWRlck5hbWUucmVwbGFjZSgvLS9nLCBcIlwiKSxcbiAgICAgICAgLy8gSW4gb3JkZXIgdG8gdXNlIHRoZSBjb3B5d3JpdGUgYWN0aW9uLCB3ZSBuZWVkIHRvIHJlYnVpbGQgdGhlIGZ1bGwgcHJlLXB1Ymxpc2ggc3RlcHMgd29ya2Zsb3cgdW5mb3J0dW5hdGVseVxuICAgICAgICAvLyBJZiBzb21lb25lIGtub3dzIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIG11dGF0aW9uIHdpdGggbWluaW1hbCBjdXN0b20gY29kZSwgcGxlYXNlIGRvIHNvXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBwYXRoOiBcIi5yZXBvXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsIERlcGVuZGVuY2llc1wiLFxuICAgICAgICAgICAgcnVuOiBcImNkIC5yZXBvICYmIHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkV4dHJhY3QgYnVpbGQgYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJ0YXIgLS1zdHJpcC1jb21wb25lbnRzPTEgLXh6dmYgZGlzdC9qcy8qLnRneiAtQyAucmVwb1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5XCIsXG4gICAgICAgICAgICBydW46IFwibXYgZGlzdCBkaXN0Lm9sZFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDcmVhdGUgZ28gYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwbyAmJiBucHggcHJvamVuIHBhY2thZ2U6Z29cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IGNvcHl3cml0ZSBoY2wgZmlsZVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvLy5jb3B5d3JpdGUuaGNsIC5yZXBvL2Rpc3QvZ28vLmNvcHl3cml0ZS5oY2xcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwby9kaXN0L2dvICYmIGNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBjb3B5d3JpdGUgaGNsIGZpbGVcIixcbiAgICAgICAgICAgIHJ1bjogXCJybSAtZiAucmVwby9kaXN0L2dvLy5jb3B5d3JpdGUuaGNsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBzb21lIHRleHQgZnJvbSB0aGUgUkVBRE1FIHRoYXQgZG9lc24ndCBhcHBseSB0byBHb1wiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgIFwic2VkIC1pICdzLyMgQ0RLVE4gcHJlYnVpbHQgYmluZGluZ3MgZm9yLyMgQ0RLVE4gR28gYmluZGluZ3MgZm9yLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80OTUxMTk0OVxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgICAgIGBzZWQgLWkgLWUgJy8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJBdmFpbGFibGVcIn0gUGFja2FnZXMvLC8jIyMgR28vIWInIC1lICcvIyMjIEdvLyFkO3A7IHMvIyMjIEdvLyMjIEdvIFBhY2thZ2UvJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIHNlZCAtZSBpcyBibGFjayBtYWdpYyBhbmQgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGUgc3RyaW5nIHJlcGxhY2UgZG9lc24ndCB3b3JrIHNvIGxldCdzIHRyeSBpdCBhZ2FpbjpcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgICAgICBgc2VkIC1pICdzLyMjIyBHby8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJHb1wifSBQYWNrYWdlLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnL0FQSS50eXBlc2NyaXB0Lm1kLywvWW91IGNhbiBhbHNvIHZpc2l0IGEgaG9zdGVkIHZlcnNpb24vIWInIC1lICdkJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICAgIGBzZWQgLWkgJ3N8RmluZCBhdXRvLWdlbmVyYXRlZCBkb2NzIGZvciB0aGlzIHByb3ZpZGVyIGhlcmU6fEZpbmQgYXV0by1nZW5lcmF0ZWQgZG9jcyBmb3IgdGhpcyBwcm92aWRlciBbaGVyZV0oaHR0cHM6Ly8ke3JlcG9zaXRvcnlVcmx9L2Jsb2IvbWFpbi9kb2NzL0FQSS5nby5tZCkufCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnLyMjIyBQcm92aWRlciBWZXJzaW9uLywvVGhlIHByb3ZpZGVyIHZlcnNpb24gY2FuIGJlIGFkanVzdGVkLyFiJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IHRoZSBSRUFETUUgZmlsZSB0byB0aGUgcGFyZW50IGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWQgLnJlcG8vZGlzdC9nby9SRUFETUUubWRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29sbGVjdCBnbyBBcnRpZmFjdFwiLFxuICAgICAgICAgICAgcnVuOiBcIm12IC5yZXBvL2Rpc3QgZGlzdFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JrZmxvd1J1bnNPbiA9IG9wdGlvbnMudXNlQ3VzdG9tR2l0aHViUnVubmVyXG4gICAgICA/IFtcImRlcG90LXVidW50dS0yNC4wNC04XCJdIC8vIDggY29yZSwgMzIgR0JcbiAgICAgIDogW1widWJ1bnR1LWxhdGVzdFwiXTsgLy8gNyBHQlxuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGF1dGhvckFkZHJlc3MsXG4gICAgICBhdXRob3JOYW1lLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgd29ya2Zsb3dSdW5zT24sXG4gICAgICBsaWNlbnNlZDogZmFsc2UsIC8vIHdlIGRvIHN1cHBseSBvdXIgb3duIGxpY2Vuc2UgZmlsZSB3aXRoIGEgY3VzdG9tIGhlYWRlclxuICAgICAgcmVsZWFzZVRvTnBtOiB0cnVlLFxuICAgICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc6IG5wbVRydXN0ZWRQdWJsaXNoaW5nID8/IGZhbHNlLFxuICAgICAgbmFtZTogcGFja2FnZUluZm8ubnBtLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYFByZWJ1aWx0ICR7cHJvdmlkZXJOYW1lfSBQcm92aWRlciBmb3IgQ0RLIFRlcnJhaW4gKGNka3RuKWAsXG4gICAgICBrZXl3b3JkczogW1xuICAgICAgICBcImNka3RuXCIsXG4gICAgICAgIFwiY2RrLXRlcnJhaW5cIixcbiAgICAgICAgXCJjZGt0ZlwiLFxuICAgICAgICBcInRlcnJhZm9ybVwiLFxuICAgICAgICBcIm9wZW50b2Z1XCIsXG4gICAgICAgIFwiY2RrXCIsXG4gICAgICAgIFwicHJvdmlkZXJcIixcbiAgICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgXSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgamVzdDogZmFsc2UsXG4gICAgICBhdXRob3JPcmdhbml6YXRpb246IHRydWUsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogXCJtYWluXCIsXG4gICAgICByZXBvc2l0b3J5OiBgaHR0cHM6Ly9naXRodWIuY29tLyR7cmVwb3NpdG9yeX0uZ2l0YCxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG4gICAgICAvLyBQcm92aWRlciByZXBvcyBydW4ganNpaS1wYWNtYWsgb3ZlciBidW5kbGVkIGRlcHMgZXhhY3RseSBhcyB0aGlzIHByb2plY3RcbiAgICAgIC8vIGRvZXMsIHNvIHRoZXkgbmVlZCB0aGUgaG9pc3RlZCBsaW5rZXIgdG9vIC0tIHNlZSB0aGUgbm90ZSBpbiAucHJvamVucmMudHMuXG4gICAgICAvLyBJdCBtdXN0IGJlIGluIHBucG0td29ya3NwYWNlLnlhbWwsIG5vdCAubnBtcmMsIG9yIHBucG0gMTEgaWdub3JlcyBpdC5cbiAgICAgIHBucG1PcHRpb25zOiB7XG4gICAgICAgIHdvcmtzcGFjZVlhbWxPcHRpb25zOiB7XG4gICAgICAgICAgbm9kZUxpbmtlcjogUG5wbVdvcmtzcGFjZVlhbWxTY2hlbWFOb2RlTGlua2VyLkhPSVNURUQsXG4gICAgICAgICAgYXVkaXRDb25maWc6IHtcbiAgICAgICAgICAgIC8vIFNhbWUgZmxhdC1yYW5nZSBhcnRpZmFjdCB0aGlzIHByb2plY3QgaWdub3JlcyBmb3IgaXRzZWxmOlxuICAgICAgICAgICAgLy8gR0hTQS1taDk5LXY5OW0tNGd2ZyBkZWNsYXJlcyBhZmZlY3RlZCBcIjw9NS4wLjdcIiwgd2hpY2ggbmFpdmVseSBtYXRjaGVzXG4gICAgICAgICAgICAvLyB0aGUgMS54IGxpbmUuIFByb3ZpZGVyIHJlcG9zIHJlYWNoIGJyYWNlLWV4cGFuc2lvbkAxIHZpYVxuICAgICAgICAgICAgLy8gY2RrdG4tY2xpID4gQGNka3RuL2hjbDJjZGsgPiBnbG9iID4gbWluaW1hdGNoQDMsIGFuZCB0aGVyZSBpcyBubyBmaXhlZFxuICAgICAgICAgICAgLy8gMS54IHRvIG1vdmUgdG8gLS0gZm9yY2luZyA1LjAuOCB3b3VsZCBicmVhayBtaW5pbWF0Y2hAMywgd2hpY2ggcmVxdWlyZXNcbiAgICAgICAgICAgIC8vIF4xLjEuNy4gRGV2IHRvb2xpbmcgb25seTsgbmV2ZXIgc2hpcHBlZC5cbiAgICAgICAgICAgIGlnbm9yZUdoc2FzOiBbXCJHSFNBLW1oOTktdjk5bS00Z3ZnXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVwc1VwZ3JhZGU6ICFpc0RlcHJlY2F0ZWQsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgY29vbGRvd246IDQsXG4gICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsczogW1wiYXV0b21lcmdlXCIsIFwiYXV0by1hcHByb3ZlXCIsIFwiZGVwZW5kZW5jaWVzXCJdLFxuICAgICAgICAgIHNjaGVkdWxlOiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUuV0VFS0xZLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGF1ZGl0RGVwczogIWlzRGVwcmVjYXRlZCxcbiAgICAgIGF1ZGl0RGVwc09wdGlvbnM6IHtcbiAgICAgICAgbGV2ZWw6IFwiaGlnaFwiLFxuICAgICAgICBydW5PbjogXCJidWlsZFwiLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb1B5cGk6IHBhY2thZ2VJbmZvLnB5dGhvbixcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiBwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldCxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbixcbiAgICAgIHB1Ymxpc2hUb0dvOiBwYWNrYWdlSW5mby5wdWJsaXNoVG9HbyxcbiAgICAgIHJlbGVhc2VGYWlsdXJlSXNzdWU6IHRydWUsXG4gICAgICBwZWVyRGVwZW5kZW5jeU9wdGlvbnM6IHtcbiAgICAgICAgcGlubmVkRGV2RGVwZW5kZW5jeTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgd29ya2Zsb3dHaXRJZGVudGl0eToge1xuICAgICAgICBuYW1lOiBcInRlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgICAgZW1haWw6IFwiZ2l0aHViLXRlYW0tY2RrLXRlcnJhaW5AY2RrdG4uaW9cIixcbiAgICAgIH0sXG4gICAgICBtaW5NYWpvclZlcnNpb246IE1JTl9NQUpPUl9WRVJTSU9OLFxuICAgICAgc3RhbGU6IHRydWUsXG4gICAgICBzdGFsZU9wdGlvbnM6IHtcbiAgICAgICAgaXNzdWVzOiB7XG4gICAgICAgICAgc3RhbGVMYWJlbDogXCJzdGFsZVwiLFxuICAgICAgICAgIGRheXNCZWZvcmVTdGFsZTogNDUsXG4gICAgICAgICAgc3RhbGVNZXNzYWdlOlxuICAgICAgICAgICAgXCI0NSBkYXlzIGhhdmUgcGFzc2VkIHNpbmNlIHRoaXMgaXNzdWUgd2FzIG9wZW5lZCwgYW5kIEkgYXNzdW1lIG90aGVyIHB1Ymxpc2hlcyBoYXZlIHN1Y2NlZWRlZCBpbiB0aGUgbWVhbnRpbWUuIFwiICtcbiAgICAgICAgICAgIFwiSWYgbm8gb25lIHJlbW92ZXMgdGhlIGBzdGFsZWAgbGFiZWwgb3IgY29tbWVudHMsIEknbSBnb2luZyB0byBhdXRvLWNsb3NlIHRoaXMgaXNzdWUgaW4gMTQgZGF5cy5cIixcbiAgICAgICAgICBkYXlzQmVmb3JlQ2xvc2U6IDE0LFxuICAgICAgICAgIGNsb3NlTWVzc2FnZTpcbiAgICAgICAgICAgIFwiMiBtb250aHMgaGF2ZSBwYXNzZWQsIHNvIEknbSBjbG9zaW5nIHRoaXMgaXNzdWUgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IG90aGVyIHB1Ymxpc2hlcyBoYXZlIHN1Y2NlZWRlZCBpbiB0aGUgbWVhbnRpbWUuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxSZXF1ZXN0OiB7XG4gICAgICAgICAgc3RhbGVMYWJlbDogXCJzdGFsZVwiLFxuICAgICAgICAgIGRheXNCZWZvcmVTdGFsZTogMSxcbiAgICAgICAgICBzdGFsZU1lc3NhZ2U6IGBDbG9zaW5nIHRoaXMgUFIsIGlmIGl0IGhhcyBub3QgbWVyZ2VkIHRoZXJlIGlzIG1vc3QgbGlrZWx5IGEgQ0kgb3IgQ0RLVE4gaXNzdWUgcHJldmVudGluZyBpdCBmcm9tIG1lcmdpbmcuIElmIHRoaXMgaGFzIGJlZW4gYSBtYW51YWwgUFIsIHBsZWFzZSByZW9wZW4gaXQgYW5kIGFkZCB0aGUgXFxgbm8tYXV0by1jbG9zZVxcYCBsYWJlbCB0byBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcgYWdhaW4uYCxcbiAgICAgICAgICBkYXlzQmVmb3JlQ2xvc2U6IDAsXG4gICAgICAgICAgZXhlbXB0TGFiZWxzOiBbXCJuby1hdXRvLWNsb3NlXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGU6IGZhbHNlLFxuICAgICAgZG9jZ2VuOiBmYWxzZSxcbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKCksXG4gICAgICAgIC8vIHByb2plbiA+PTAuMTAwIG1vdmVkIHRoZSBgbWVyZ2lmeWAgcHJvamVjdCBvcHRpb24gdW5kZXIgZ2l0aHViT3B0aW9uc1xuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICBcImRvdC1wcm9wQF41LjIuMFwiLFxuICAgICAgLy8gXjEuMS4wIGNvdWxkIG5ldmVyIGxlYXZlIHRoZSAxLnggbGluZSwgd2hpY2ggZHJhZ3MgaW4gYW4gb2xkXG4gICAgICAvLyBAYWN0aW9ucy9odHRwLWNsaWVudCBhbmQgd2l0aCBpdCB1bmRpY2kgPDYuMjQuMCAtLSB0aHJlZSBoaWdoIGFkdmlzb3JpZXNcbiAgICAgIC8vIChHSFNBLXZybTYtOHZwdi1xdjhxLCBHSFNBLXY5cDktaGZqMi1oY3c4LCBhbmQgdGhlIDw2LjI3LjAgZnJhZ21lbnQtY291bnRcbiAgICAgIC8vIERvUykuIDMueCBkZXBlbmRzIG9uIEBhY3Rpb25zL2h0dHAtY2xpZW50IF40IC0+IHVuZGljaSBeNi4yMy4wLCByZXNvbHZpbmdcbiAgICAgIC8vIHRvIDYuMjguMC4gTk9URTogMy54IGlzIEVTTS1vbmx5LCBzbyBjaGVjay1mb3ItdXBncmFkZXMuanMgbG9hZHMgaXQgd2l0aCBhXG4gICAgICAvLyBkeW5hbWljIGltcG9ydCByYXRoZXIgdGhhbiBgcmVxdWlyZWAuXG4gICAgICBcIkBhY3Rpb25zL2NvcmVAXjMuMC4wXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NvcmVcIixcbiAgICAgIFwiQGFjdGlvbi12YWxpZGF0b3IvY2xpXCJcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBtZW1vcnkgaXMgN0dCOiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlc1xuICAgIC8vIEN1c3RvbSBSdW5uZXJzIHdlIHVzZSBoYXZlIDMyR0Igb2YgbWVtb3J5XG4gICAgLy8gVGhlIGJlbG93IG51bWJlcnMgc2V0IGhlYXAgbGltaXRzIHRoYXQgYXJlIH4xZ2IgYW5kIH4wLjVnYiBsZXNzLCByZXNwZWN0aXZlbHksIHRoYW4gdGhlIHRvdGFsIGF2YWlsYWJsZSBtZW1vcnlcbiAgICBjb25zdCBtYXhPbGRTcGFjZVNpemUgPSBvcHRpb25zLnVzZUN1c3RvbUdpdGh1YlJ1bm5lciA/IFwiMzE3NDRcIiA6IFwiNjY1NlwiO1xuXG4gICAgLy8gR29sYW5nIG5lZWRzIG1vcmUgbWVtb3J5IHRvIGJ1aWxkXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiTk9ERV9PUFRJT05TXCIsXG4gICAgICBgLS1tYXgtb2xkLXNwYWNlLXNpemU9JHttYXhPbGRTcGFjZVNpemV9YFxuICAgICk7XG5cbiAgICB0aGlzLnRhc2tzLmFkZEVudmlyb25tZW50KFwiQ0hFQ0tQT0lOVF9ESVNBQkxFXCIsIFwiMVwiKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVGFzayA9IHRoaXMuYWRkVGFzayhcInZhbGlkYXRlLXdvcmtmbG93c1wiLCB7XG4gICAgICBleGVjOiBgZmluZCAuLy5naXRodWIvd29ya2Zsb3dzIC10eXBlIGYgLW5hbWUgXCIqLnltbFwiIC1wcmludDAgfCB4YXJncyAtMCAtbiAxIG5weCBhY3Rpb24tdmFsaWRhdG9yYCxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVRhc2suZGVzY3JpcHRpb24gPVxuICAgICAgXCJMaW50IHRoZSBZQU1MIGZpbGVzIGdlbmVyYXRlZCBieSBQcm9qZW4gdG8gZGVmaW5lIEdpdEh1YiBBY3Rpb25zIGFuZCBXb3JrZmxvd3MsIGNoZWNraW5nIHRoZW0gYWdhaW5zdCBwdWJsaXNoZWQgSlNPTiBzY2hlbWFzXCI7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odmFsaWRhdGVUYXNrKTtcblxuICAgIHRoaXMucGFja2FnZS5hZGRQYWNrYWdlUmVzb2x1dGlvbnMoXCJAdHlwZXMveWFyZ3NAMTcuMC4xM1wiKTtcblxuICAgIGNvbnN0IHNldFNhZmVEaXJlY3RvcnkgPSB7XG4gICAgICBuYW1lOiBcIlNldCBnaXQgY29uZmlnIHNhZmUuZGlyZWN0b3J5XCIsXG4gICAgICBydW46IFwiZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLWFkZCBzYWZlLmRpcmVjdG9yeSAkKHB3ZClcIixcbiAgICB9O1xuXG4gICAgKCh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXSkucHVzaChcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuICAgICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5zcGxpY2UoXG4gICAgICAxLFxuICAgICAgMCxcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuXG4gICAgLy8gYWx3YXlzIHB1Ymxpc2ggYSBuZXcgR2l0SHViIHJlbGVhc2UsIGV2ZW4gd2hlbiBwdWJsaXNoaW5nIHRvIGEgcGFydGljdWxhciBwYWNrYWdlIG1hbmFnZXIgZmFpbHNcbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFwiXG4gICAgKTtcbiAgICByZWxlYXNlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwiam9icy5yZWxlYXNlX2dpdGh1Yi5uZWVkc1wiLCBcInJlbGVhc2VcIik7XG5cbiAgICAvLyBUcnVzdGVkIHB1Ymxpc2hpbmcgcmVxdWlyZXMgbnBtID49MTEuNS4xIHdoaWNoIHNoaXBzIHdpdGggTm9kZSAyNFxuICAgIGlmIChucG1UcnVzdGVkUHVibGlzaGluZykge1xuICAgICAgdGhpcy5naXRodWJcbiAgICAgICAgPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpXG4gICAgICAgID8uZmlsZT8ucGF0Y2goXG4gICAgICAgICAgSnNvblBhdGNoLnJlcGxhY2UoXG4gICAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfbnBtL3N0ZXBzLzAvd2l0aC9ub2RlLXZlcnNpb25cIixcbiAgICAgICAgICAgIFwiMjQueFwiXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAvLyBOUE0gT0lEQyBkb2Vzbid0IHN1cHBvcnQgc2VsZi1ob3N0ZWQgcnVubmVycyB5ZXRcbiAgICAgIHRoaXMuZ2l0aHViXG4gICAgICAgID8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKVxuICAgICAgICA/LmZpbGU/LnBhdGNoKFxuICAgICAgICAgIEpzb25QYXRjaC5yZXBsYWNlKFwiL2pvYnMvcmVsZWFzZV9ucG0vcnVucy1vblwiLCBcInVidW50dS1sYXRlc3RcIilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBOT1RFOiByZWxlYXNlX3B5cGkgZGVsaWJlcmF0ZWx5IHN0YXlzIG9uIHdoYXRldmVyIHJ1bm5lciB0aGUgcHJvamVjdCBpc1xuICAgIC8vIGNvbmZpZ3VyZWQgZm9yLiBVbmxpa2UgbnBtLCBQeVBJIHBsYWNlcyBubyByZXN0cmljdGlvbiBvbiB0aGUgcnVubmVyXG4gICAgLy8gZW52aXJvbm1lbnQ6IHB1YmxpYi1weXBpIG1pbnRzIGl0cyB0b2tlbiB3aXRoIGBweXRob24zIC1tIGlkIHB5cGlgIGFnYWluc3RcbiAgICAvLyBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVVJMLCB3aGljaCBHaXRIdWIgaW5qZWN0cyBvbiBhbnkgcnVubmVyIGdpdmVuXG4gICAgLy8gYGlkLXRva2VuOiB3cml0ZWAsIGFuZCBQeVBJJ3MgdHJ1c3QgaXMgYm91bmQgdG8gdGhlIHdvcmtmbG93IHJlZiwgbm90IHRoZVxuICAgIC8vIHJ1bm5lci4gRm9yY2luZyB0aGlzIGpvYiBvbnRvIGEgaG9zdGVkIHJ1bm5lciB3b3VsZCBhbHNvIHN0cmFuZCBpdCB3aXRoIHRoZVxuICAgIC8vIDMxR0IgTk9ERV9PUFRJT05TIGhlYXAgY2VpbGluZyB0aGF0IHVzZUN1c3RvbUdpdGh1YlJ1bm5lciB3cml0ZXMgaW50b1xuICAgIC8vIC5wcm9qZW4vdGFza3MuanNvbiwgb24gYSBib3ggd2l0aCBmYXIgbGVzcyBSQU0gdGhhbiB0aGF0IC0tIGFuZCB1bmxpa2VcbiAgICAvLyBwYWNrYWdlOmpzLCBwYWNrYWdlOnB5dGhvbiBpcyBhIHJlYWwganNpaS1wYWNtYWsgdHJhbnNwaWxlLlxuXG4gICAgLy8gZW5zdXJlIHdlIGRvbid0IGZhaWwgaWYgdGhlIHJlbGVhc2UgZmlsZSBpcyBub3QgcHJlc2VudFxuICAgIGNvbnN0IGNoZWNrRXhpc3RpbmdUYWdTdGVwID0gKFxuICAgICAgdGhpcy5yZWxlYXNlIGFzIGFueVxuICAgICkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzLnJlbGVhc2Uuc3RlcHMuZmluZChcbiAgICAgIChzOiBvYmplY3QpID0+IFwiaWRcIiBpbiBzICYmIHMuaWQgPT09IFwiY2hlY2tfdGFnX2V4aXN0c1wiXG4gICAgKTtcbiAgICBjb25zdCBvbGRFeGlzdGluZ1RhZ1J1bjogc3RyaW5nID0gY2hlY2tFeGlzdGluZ1RhZ1N0ZXAucnVuO1xuICAgIHByZXR0eUFzc2VydEVxdWFsKFxuICAgICAgb2xkRXhpc3RpbmdUYWdSdW4uc3BsaXQoXCJcXG5cIilbMF0sXG4gICAgICBcIlRBRz0kKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KVwiLFxuICAgICAgXCJyZWxlYXNlIHN0ZXAgY2hhbmdlZCwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgKTtcbiAgICBjaGVja0V4aXN0aW5nVGFnU3RlcC5ydW4gPSBgaWYgWyAhIC1mIGRpc3QvcmVsZWFzZXRhZy50eHQgXTsgdGhlbiAoZWNobyBcImV4aXN0cz10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQpICYmIGV4aXQgMDsgZmlcXG4ke29sZEV4aXN0aW5nVGFnUnVufWA7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgeyB1cGdyYWRlLCBwciB9ID0gKHRoaXMudXBncmFkZVdvcmtmbG93IGFzIGFueSkud29ya2Zsb3dzWzBdLmpvYnM7XG4gICAgICB1cGdyYWRlLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICAgIHByLnN0ZXBzLnNwbGljZSgxLCAwLCBzZXRTYWZlRGlyZWN0b3J5KTtcbiAgICB9XG5cbiAgICAvLyByZWxlYXNlOiBHbyDigJQgcGF0Y2ggdGhlIHJlbGVhc2Ugd29ya2Zsb3cncyBHbyBwdWJsaXNoIHRvIHVzZSBhIEdpdEh1YlxuICAgIC8vIEFwcCBpbnN0YWxsYXRpb24gdG9rZW4uXG4gICAgY29uc3QgcGF0Y2hHb1B1Ymxpc2hUb1VzZUFwcFRva2VuID0gKHdvcmtmbG93RmlsZT86IE9iamVjdEZpbGUpID0+IHtcbiAgICAgIGlmICghd29ya2Zsb3dGaWxlKSByZXR1cm47XG4gICAgICBjb25zdCBnb1B1Ymxpc2hUb2tlbiA9IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHtcbiAgICAgICAgYXBwSWRTZWNyZXQ6IFwiUFJPSkVOX0FQUF9JRFwiLFxuICAgICAgICBwcml2YXRlS2V5U2VjcmV0OiBcIlBST0pFTl9BUFBfUFJJVkFURV9LRVlcIixcbiAgICAgICAgb3duZXI6IFwiJHt7IGdpdGh1Yi5yZXBvc2l0b3J5X293bmVyIH19XCIsXG4gICAgICAgIHJlcG9zaXRvcmllczogW1xuICAgICAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lPy5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuQXBwUGVybWlzc2lvbi5XUklURSB9LFxuICAgICAgfSk7XG4gICAgICB3b3JrZmxvd0ZpbGUucGF0Y2goXG4gICAgICAgIEpzb25QYXRjaC5hZGQoXG4gICAgICAgICAgXCIvam9icy9yZWxlYXNlX2dvbGFuZy9zdGVwcy8xNlwiLFxuICAgICAgICAgIGdvUHVibGlzaFRva2VuLnNldHVwU3RlcHNbMF1cbiAgICAgICAgKSxcbiAgICAgICAgSnNvblBhdGNoLmFkZChcbiAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfZ29sYW5nL3N0ZXBzLzE3L2Vudi9HSVRIVUJfVE9LRU5cIixcbiAgICAgICAgICAvLyBHaXRIdWIgQXBwIGluc3RhbGxhdGlvbiB0b2tlbnMgKGdoc18qKSByZXF1aXJlIHRoZSBgeC1hY2Nlc3MtdG9rZW5gXG4gICAgICAgICAgLy8gdXNlcm5hbWUgd2hlbiB1c2VkIGluIEhUVFBTIGdpdCBVUkxzLiBwdWJsaWIgcmVuZGVycyB0aGlzIGVudiB2YXJcbiAgICAgICAgICAvLyB2ZXJiYXRpbSBpbnRvIGBodHRwczovLyR7R0lUSFVCX1RPS0VOfUBnaXRodWIuY29tLy4uLmAsIHNvIHdpdGhvdXRcbiAgICAgICAgICAvLyB0aGUgcHJlZml4IHRoZSBwdXNoIDQwMXMgYW5kIGZhbGxzIGJhY2sgdG8gYSBUVFkgcGFzc3dvcmQgcHJvbXB0LlxuICAgICAgICAgIGB4LWFjY2Vzcy10b2tlbjoke2dvUHVibGlzaFRva2VuLnRva2VuUmVmfWBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIHBhdGNoR29QdWJsaXNoVG9Vc2VBcHBUb2tlbihyZWxlYXNlV29ya2Zsb3cpO1xuICAgIH1cblxuICAgIC8vIEZpeCBtYXZlbiBpc3N1ZSAoaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvcHVibGliL3B1bGwvNzc3KVxuICAgIC8vXG4gICAgLy8gVGhlIHB1Ymxpc2ggam9icyBkb24ndCBleGlzdCB1bnRpbCBSZWxlYXNlIHN5bnRoZXNpemVzLCBhbmQgdGhlIHN0ZXAncyBpbmRleFxuICAgIC8vIHdpdGhpbiByZWxlYXNlX21hdmVuIHNoaWZ0cyB3aGVuZXZlciB0aGUgam9iIGdhaW5zIGEgc3RlcCAtLSBzd2l0Y2hpbmcgdGhlXG4gICAgLy8gcGFja2FnZSBtYW5hZ2VyIHRvIHBucG0gaW5zZXJ0cyBhIFwiU2V0dXAgcG5wbVwiIHN0ZXAsIHdoaWNoIHNpbGVudGx5IG1vdmVkIHRoZVxuICAgIC8vIG9sZCBoYXJkY29kZWQgL3N0ZXBzLzEwLyBvbnRvIGEgc3RlcCB3aXRoIG5vIGVudiBhdCBhbGwuIFJlc29sdmUgdGhlIHN0ZXAgYnlcbiAgICAvLyB3aGF0IGl0IHJ1bnMsIGluIHByZVN5bnRoZXNpemUsIHNvIG5laXRoZXIgcHJvYmxlbSBjYW4gcmVjdXIuXG4gICAgbmV3IE1hdmVuT3B0c1BhdGNoKHRoaXMpO1xuXG4gICAgdGhpcy5waW5HaXRodWJBY3Rpb25WZXJzaW9ucyhnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyk7XG5cbiAgICBuZXcgQ2RrdGZDb25maWcodGhpcywge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIHByb3ZpZGVyVmVyc2lvbixcbiAgICAgIGNka3RuVmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIHBhY2thZ2VJbmZvLFxuICAgICAgZ2l0aHViTmFtZXNwYWNlLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgICAgaXNEZXByZWNhdGVkOiAhIWlzRGVwcmVjYXRlZCxcbiAgICB9KTtcbiAgICBuZXcgQ3VzdG9taXplZExpY2Vuc2UodGhpcywgb3B0aW9ucy5jcmVhdGlvblllYXIsIG9wdGlvbnMubGljZW5zZWUpO1xuICAgIG5ldyBHaXRodWJJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9BcHByb3ZlKHRoaXMpO1xuICAgIG5ldyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXModGhpcywgeyBwcm92aWRlck5hbWUgfSk7XG4gICAgbmV3IEF1dG9tZXJnZSh0aGlzKTtcbiAgICBuZXcgTG9ja0lzc3Vlcyh0aGlzKTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBjb25zdCB1cGdyYWRlU2NyaXB0ID0gbmV3IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlKHRoaXMsIHtcbiAgICAgICAgcHJvdmlkZXJWZXJzaW9uLFxuICAgICAgICBmcXByb3ZpZGVyTmFtZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IFByb3ZpZGVyVXBncmFkZSh0aGlzLCB7XG4gICAgICAgIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiB1cGdyYWRlU2NyaXB0LnBhdGgsXG4gICAgICAgIHdvcmtmbG93UnVuc09uLFxuICAgICAgICBub2RlSGVhcFNpemU6IG1heE9sZFNwYWNlU2l6ZSxcbiAgICAgIH0pO1xuICAgICAgbmV3IEFsZXJ0T3BlblBycyh0aGlzLCB7XG4gICAgICAgIHNsYWNrV2ViaG9va1VybDogXCIke3sgc2VjcmV0cy5BTEVSVF9QUlNfU0xBQ0tfV0VCSE9PS19VUkwgfX1cIixcbiAgICAgICAgcmVwb3NpdG9yeSxcbiAgICAgIH0pO1xuICAgICAgbmV3IERlcGVuZGFib3QodGhpcyk7XG4gICAgfVxuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIFwiLmdpdGh1Yi9DT0RFT1dORVJTXCIsIHtcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIFwiIyBUaGVzZSBvd25lcnMgd2lsbCBiZSB0aGUgZGVmYXVsdCBvd25lcnMgZm9yIGV2ZXJ5dGhpbmcgaW4gXCIsXG4gICAgICAgIFwiIyB0aGUgcmVwby4gVW5sZXNzIGEgbGF0ZXIgbWF0Y2ggdGFrZXMgcHJlY2VkZW5jZSwgXCIsXG4gICAgICAgIFwiIyB0aGV5IHdpbGwgYmUgcmVxdWVzdGVkIGZvciByZXZpZXcgd2hlbiBzb21lb25lIG9wZW5zIGEgXCIsXG4gICAgICAgIFwiIyBwdWxsIHJlcXVlc3QuXCIsXG4gICAgICAgIFwiKiAgICAgICBAY2RrdG4taW8vdGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBuZXcgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUodGhpcywge30pO1xuXG4gICAgICBjb25zdCByZWxlYXNlVGFzayA9IHRoaXMudGFza3MudHJ5RmluZChcInJlbGVhc2VcIikhO1xuICAgICAgdGhpcy5yZW1vdmVUYXNrKFwicmVsZWFzZVwiKTtcbiAgICAgIHRoaXMuYWRkVGFzayhcInJlbGVhc2VcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcmVsZWFzZVRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgIHN0ZXBzOiByZWxlYXNlVGFzay5zdGVwcyxcbiAgICAgICAgZW52OiAocmVsZWFzZVRhc2sgYXMgYW55KS5fZW52LFxuICAgICAgICBjb25kaXRpb246IFwibm9kZSAuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2UuanNcIixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1yZWxlYXNlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHJlbGVhc2VUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdGVwczogcmVsZWFzZVRhc2suc3RlcHMsXG4gICAgICAgIGVudjogKHJlbGVhc2VUYXNrIGFzIGFueSkuX2VudixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZWxlYXNlSm9iU3RlcHM6IGFueVtdID0gKFxuICAgICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKSBhcyBhbnlcbiAgICAgICkuam9icy5yZWxlYXNlLnN0ZXBzO1xuICAgICAgY29uc3QgZ2l0UmVtb3RlSm9iID0gcmVsZWFzZUpvYlN0ZXBzLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gXCJnaXRfcmVtb3RlXCIpO1xuICAgICAgYXNzZXJ0KFxuICAgICAgICBnaXRSZW1vdGVKb2IsXG4gICAgICAgIFwiZ2l0X3JlbW90ZSBzdGVwIG5vdCBmb3VuZCBpbiByZWxlYXNlIHdvcmtmbG93LCBwbGVhc2UgY2hlY2sgaWYgdGhlIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICAgICk7XG4gICAgICAvLyBXZSB3cmFwIHdoYXRldmVyIHByb2plbiBnZW5lcmF0ZWQgaW4gYSBzaG91bGQtcmVsZWFzZSBndWFyZCByYXRoZXIgdGhhblxuICAgICAgLy8gcmV3cml0aW5nIGl0LCBzbyBhc3NlcnQgb25seSB0aGUgdHdvIHByb3BlcnRpZXMgdGhlIHdyYXBwaW5nIGFjdHVhbGx5XG4gICAgICAvLyBkZXBlbmRzIG9uLiBQaW5uaW5nIHRvIHByb2plbidzIGV4YWN0IHdvcmRpbmcgYnJva2UgdGhlIHdob2xlIGZsZWV0XG4gICAgICAvLyBvbmNlIGFscmVhZHk6IHByb2plbiAwLjEwMSBjaGFuZ2VkIGAke3sgZ2l0aHViLnJlZiB9fWAgdG8gYFwiJEdJVEhVQl9SRUZcImBcbiAgICAgIC8vIGFuZCBldmVyeSBwcm92aWRlciByZXBvJ3MgdXBncmFkZS1tYWluIHN0YXJ0ZWQgZmFpbGluZyBhdCBzeW50aC5cbiAgICAgIGFzc2VydChcbiAgICAgICAgdHlwZW9mIGdpdFJlbW90ZUpvYi5ydW4gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICBnaXRSZW1vdGVKb2IucnVuLmluY2x1ZGVzKFwiZ2l0IGxzLXJlbW90ZVwiKSAmJlxuICAgICAgICAgIGdpdFJlbW90ZUpvYi5ydW4uaW5jbHVkZXMoXCJsYXRlc3RfY29tbWl0PVwiKSxcbiAgICAgICAgYGdpdF9yZW1vdGUgc3RlcCBubyBsb25nZXIgc2V0cyBsYXRlc3RfY29tbWl0IGZyb20gZ2l0IGxzLXJlbW90ZSwgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzISBHb3Q6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZ2l0UmVtb3RlSm9iLnJ1blxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgICAvLyBGb2xkICpldmVyeSogbGluZTogcHJvamVuIGVtaXRzIHR3byB0b2RheSwgYnV0IFN0cmluZyNyZXBsYWNlIHdpdGggYVxuICAgICAgLy8gc3RyaW5nIHBhdHRlcm4gb25seSBmb2xkcyB0aGUgZmlyc3QgaWYgdGhhdCBldmVyIGdyb3dzLlxuICAgICAgY29uc3QgcHJldmlvdXNDb21tYW5kID0gZ2l0UmVtb3RlSm9iLnJ1bi5zcGxpdChcIlxcblwiKS5qb2luKFwiICYmIFwiKTtcblxuICAgICAgY29uc3QgY2FuY2VsQ29tbWFuZCA9XG4gICAgICAgICdlY2hvIFwibGF0ZXN0X2NvbW1pdD1yZWxlYXNlX2NhbmNlbGxlZFwiID4+ICRHSVRIVUJfT1VUUFVUJzsgLy8gdGhpcyBjYW5jZWxzIHRoZSByZWxlYXNlIHZpYSBhIG5vbi1tYXRjaGluZyBTSEE7XG4gICAgICBnaXRSZW1vdGVKb2IucnVuID0gYG5vZGUgLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlLmpzICYmICgke3ByZXZpb3VzQ29tbWFuZH0pIHx8ICR7Y2FuY2VsQ29tbWFuZH1gO1xuICAgICAgZ2l0UmVtb3RlSm9iLm5hbWUgKz1cbiAgICAgICAgXCIgb3IgY2FuY2VsIHZpYSBmYWtpbmcgYSBTSEEgaWYgcmVsZWFzZSB3YXMgY2FuY2VsbGVkXCI7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhbGVXb3JrZmxvdyA9IHRoaXMudHJ5RmluZE9iamVjdEZpbGUoXCIuZ2l0aHViL3dvcmtmbG93cy9zdGFsZS55bWxcIik7XG4gICAgc3RhbGVXb3JrZmxvdz8uYWRkT3ZlcnJpZGUoXCJvbi5zY2hlZHVsZVwiLCBbXG4gICAgICB7XG4gICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7IHByb2plY3Q6IHRoaXMsIG1heEhvdXI6IDQsIGhvdXJPZmZzZXQ6IDEgfSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgdXBncmFkZVdvcmtmbG93ID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZShcbiAgICAgIFwiLmdpdGh1Yi93b3JrZmxvd3MvdXBncmFkZS1tYWluLnltbFwiXG4gICAgKTtcbiAgICB1cGdyYWRlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwib24uc2NoZWR1bGVcIiwgW1xuICAgICAge1xuICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oe1xuICAgICAgICAgIHByb2plY3Q6IHRoaXMsXG4gICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICBob3VyT2Zmc2V0OiAxLFxuICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5XZWVrbHksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIC8vIFN1Ym1vZHVsZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb25cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiQVBJLm1kXCIpOyAvLyBpZ25vcmUgdGhlIG9sZCBmaWxlLCB3ZSBub3cgZ2VuZXJhdGUgaXQgaW4gdGhlIGRvY3MgZm9sZGVyXG4gICAgdGhpcy5hZGREZXZEZXBzKFwianNpaS1kb2NnZW5AXjEwLjIuM1wiKTtcbiAgICBpZiAoanNpaVZlcnNpb24pIHtcbiAgICAgIC8vIE5PVEU6IHRoZSBiZWxvdyBpcyBtYWtpbmcgYSBicm9hZCBhc3N1bXB0aW9uIHRoYXQgeW91J3JlIHBhc3NpbmcgYSByYW5nZSBsaWtlIFwifjUuMy4wXCIgdG8ganNpaVZlcnNpb25cbiAgICAgIC8vIElmIHlvdSB1c2UgdGhhdCBmaWVsZCB0byBwYXNzIGEgdmVyeSBzcGVjaWZpYyB2ZXJzaW9uIChlLmcuIFwiNS4zLjExXCIpIHRoZW4gdGhpcyBtaWdodCBicmVha1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFAJHtqc2lpVmVyc2lvbn1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLmFkZFRhc2soXCJkb2NnZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHByb2plY3RcIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBbXG4gICAgICAgICAgICBcInJtIC1yZiBkb2NzXCIsXG4gICAgICAgICAgICBcInJtIC1mIEFQSS5tZFwiLFxuICAgICAgICAgICAgXCJta2RpciBkb2NzXCIsXG4gICAgICAgICAgICBcImpzaWktZG9jZ2VuIC0tc3BsaXQtYnktc3VibW9kdWxlIC1sIHR5cGVzY3JpcHQgLWwgcHl0aG9uIC1sIGphdmEgLWwgY3NoYXJwIC1sIGdvXCIsXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBuaWNlIHdheSB0byB0ZWxsIGpzaWktZG9jZ2VuIHRvIGdlbmVyYXRlIGRvY3MgaW50byBhIGZvbGRlciBzbyBJIHdlbnQgdGhpcyByb3V0ZVxuICAgICAgICAgICAgXCJtdiAqLioubWQgZG9jc1wiLFxuICAgICAgICAgICAgLy8gU29tZSBwYXJ0IG9mIHRoZSBkb2N1bWVudGF0aW9uIGFyZSB0b28gbG9uZywgd2UgbmVlZCB0byB0cnVuY2F0ZSB0aGVtIHRvIH4xME1CXG4gICAgICAgICAgICBcImNkIGRvY3NcIixcbiAgICAgICAgICAgIFwibHMgLi8gfCB4YXJncyBzZWQgLWkgJzE1MDAwMCwkIGQnICQxXCIsXG4gICAgICAgICAgXS5qb2luKFwiICYmIFwiKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24oZG9jZ2VuKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5pbmNsdWRlKGAvZG9jcy8qLm1kYCk7XG4gICAgdGhpcy5hbm5vdGF0ZUdlbmVyYXRlZChgL2RvY3MvKi5tZGApO1xuXG4gICAgLy8gU2V0dGluZyB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gc28gdGhlIGdvbGFuZyBkb2NzIGhhdmUgdGhlIGNvcnJlY3QgdmVyc2lvblxuICAgIGNvbnN0IHVuY29uZGl0aW9uYWxCdW1wID0gdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1idW1wXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gdG8gdGhlIGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiQ2xlYXIgdGhlIGNoYW5nZWxvZyBzbyB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHB1Ymxpc2hlZCB0d2ljZVwiLFxuICAgICAgICAgIGV4ZWM6IFwicm0gLWYgJENIQU5HRUxPR1wiLFxuICAgICAgICB9LFxuICAgICAgICB7IGJ1aWx0aW46IFwicmVsZWFzZS9idW1wLXZlcnNpb25cIiB9LFxuICAgICAgXSxcbiAgICAgIGVudjoge1xuICAgICAgICBPVVRGSUxFOiBcInBhY2thZ2UuanNvblwiLFxuICAgICAgICBDSEFOR0VMT0c6IFwiZGlzdC9jaGFuZ2Vsb2cubWRcIixcbiAgICAgICAgQlVNUEZJTEU6IFwiZGlzdC92ZXJzaW9uLnR4dFwiLFxuICAgICAgICBSRUxFQVNFVEFHOiBcImRpc3QvcmVsZWFzZXRhZy50eHRcIixcbiAgICAgICAgUkVMRUFTRV9UQUdfUFJFRklYOiBcIlwiLFxuICAgICAgICBNSU5fTUFKT1I6IFN0cmluZyhNSU5fTUFKT1JfVkVSU0lPTiksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucHJlQ29tcGlsZVRhc2suc3Bhd24odW5jb25kaXRpb25hbEJ1bXApO1xuICAgIC8vIFRvIGJ1bXAgY29ycmVjdGx5IHdlIG5lZWQgdG8gaGF2ZSB0aGUgY29tcGxldGVseSBjbG9uZWQgcmVwb1xuICAgICh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS53b3JrZmxvdy5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgXCJqb2JzLmJ1aWxkLnN0ZXBzLjAud2l0aC5mZXRjaC1kZXB0aFwiLFxuICAgICAgMFxuICAgICk7XG4gICAgLy8gVW5kbyB0aGUgY2hhbmdlcyBhZnRlciBjb21waWxhdGlvblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdz8uYWRkUG9zdEJ1aWxkU3RlcHMoe1xuICAgICAgbmFtZTogXCJSZXZlcnQgcGFja2FnZS5qc29uIHZlcnNpb24gYnVtcFwiLFxuICAgICAgcnVuOiBcImdpdCBjaGVja291dCBwYWNrYWdlLmpzb25cIixcbiAgICB9KTtcblxuICAgIG5ldyBDb3B5cmlnaHRIZWFkZXJzKHRoaXMpO1xuICAgIG5ldyBEZXByZWNhdGVQYWNrYWdlcyh0aGlzLCB7XG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBwYWNrYWdlSW5mbyxcbiAgICAgIGlzRGVwcmVjYXRlZDogISFpc0RlcHJlY2F0ZWQsXG4gICAgfSk7XG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIC8vIEZvbGRzIHRoZSBtYW51YWwgZm9yY2UtcmVsZWFzZSBiZWhhdmlvdXIgaW50byByZWxlYXNlLnltbCBiZWhpbmQgYVxuICAgICAgLy8gd29ya2Zsb3dfZGlzcGF0Y2ggdHJpZ2dlciwgc28gbnBtL1B5UEkgT0lEQyB0cnVzdHMgYSBzaW5nbGUgd29ya2Zsb3cuXG4gICAgICBuZXcgRm9yY2VSZWxlYXNlKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGluR2l0aHViQWN0aW9uVmVyc2lvbnMocGlubmVkVmVyc2lvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICAvLyBVc2UgcGlubmVkIHZlcnNpb25zIG9mIGdpdGh1YiBhY3Rpb25zXG4gICAgT2JqZWN0LmVudHJpZXMocGlubmVkVmVyc2lvbnMpLmZvckVhY2goKFtuYW1lLCBzaGFdKSA9PiB7XG4gICAgICB0aGlzLmdpdGh1Yj8uYWN0aW9ucy5zZXQobmFtZSwgYCR7bmFtZX1AJHtzaGF9YCk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXRzIE1BVkVOX09QVFMgb24gdGhlIG1hdmVuIHB1Ymxpc2ggc3RlcCBhbmQgZHJvcHMgdGhlIHVudXNlZFxuICogTUFWRU5fU1RBR0lOR19QUk9GSUxFX0lELCByZXNvbHZpbmcgdGhlIHN0ZXAgYnkgdGhlIGNvbW1hbmQgaXQgcnVucy5cbiAqXG4gKiBSdW5zIGluIHByZVN5bnRoZXNpemUgYmVjYXVzZSB0aGUgcHVibGlzaCBqb2JzIGFyZSBhZGRlZCBieSBSZWxlYXNlIGR1cmluZ1xuICogc3ludGhlc2lzLCBzbyB0aGUgam9iIGRvZXMgbm90IGV4aXN0IHlldCBhdCBjb25zdHJ1Y3Rpb24gdGltZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jZGtsYWJzL3B1YmxpYi9wdWxsLzc3N1xuICovXG5jbGFzcyBNYXZlbk9wdHNQYXRjaCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGNvbnN0IHdvcmtmbG93ID0gZ2l0aHViLkdpdEh1Yi5vZih0aGlzLnByb2plY3QpPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpO1xuICAgIGNvbnN0IHN0ZXBzOiBKb2JTdGVwW10gfCB1bmRlZmluZWQgPSAod29ya2Zsb3cgYXMgYW55KT8uam9icz8ucmVsZWFzZV9tYXZlblxuICAgICAgPy5zdGVwcztcbiAgICBhc3NlcnQoXG4gICAgICBzdGVwcyxcbiAgICAgIFwicmVsZWFzZV9tYXZlbiBqb2Igbm90IGZvdW5kLCBwbGVhc2UgY2hlY2sgaWYgdGhlIE1BVkVOX09QVFMgd29ya2Fyb3VuZCBzdGlsbCB3b3JrcyFcIlxuICAgICk7XG4gICAgY29uc3Qgc3RlcCA9IHN0ZXBzLmZpbmQoKHMpID0+IHMucnVuPy5pbmNsdWRlcyhcInB1YmxpYi1tYXZlblwiKSk7XG4gICAgYXNzZXJ0KFxuICAgICAgc3RlcD8uZW52LFxuICAgICAgXCJubyBwdWJsaWItbWF2ZW4gc3RlcCB3aXRoIGFuIGVudiBibG9jayBpbiByZWxlYXNlX21hdmVuLCBwbGVhc2UgY2hlY2sgaWYgdGhlIE1BVkVOX09QVFMgd29ya2Fyb3VuZCBzdGlsbCB3b3JrcyFcIlxuICAgICk7XG4gICAgLy8gTXV0YXRlIHRoZSBzdGVwIGRpcmVjdGx5IHJhdGhlciB0aGFuIEpzb25QYXRjaC1pbmcgdGhlIHJlbmRlcmVkIGZpbGU6IHRoZVxuICAgIC8vIHB1Ymxpc2hlciBwcmVwZW5kcyB0b29sLXNldHVwIHN0ZXBzIGF0IHJlbmRlciB0aW1lLCBzbyBpbi1tZW1vcnkgaW5kaWNlcyBkb1xuICAgIC8vIG5vdCBtYXRjaCByZW5kZXJlZCBvbmVzLCBhbmQgYSBKU09OIFBvaW50ZXIgd291bGQgaGF2ZSB0byBlbmNvZGUgdGhhdCBvZmZzZXQuXG4gICAgLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzcwMTUzOTYyL25leHVzLXN0YWdpbmctbWF2ZW4tcGx1Z2luLW1hdmVuLWRlcGxveS1mYWlsZWQtYW4tYXBpLWluY29tcGF0aWJpbGl0eS13YXMtZW5jb1xuICAgIHN0ZXAuZW52Lk1BVkVOX09QVFMgPVxuICAgICAgXCItLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS51dGlsPUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZhLmxhbmcucmVmbGVjdD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS50ZXh0PUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuZGVza3RvcC9qYXZhLmF3dC5mb250PUFMTC1VTk5BTUVEXCI7XG4gICAgLy8gVGhpcyBpcyBubyBsb25nZXIgdXNlZC5cbiAgICBkZWxldGUgc3RlcC5lbnYuTUFWRU5fU1RBR0lOR19QUk9GSUxFX0lEO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByZXR0eUFzc2VydEVxdWFsPFQ+KHN1YmplY3Q6IFQsIGV4cGVjdGVkOiBULCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChzdWJqZWN0ICE9PSBleHBlY3RlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke21lc3NhZ2UgPz8gXCJBc3NlcnRpb24gZmFpbGVkXCJ9OiBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBleHBlY3RlZFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHN1YmplY3QpfWBcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/lib/provider-upgrade.js
CHANGED
|
@@ -57,10 +57,10 @@ class ProviderUpgrade {
|
|
|
57
57
|
name: "Setup Copywrite tool",
|
|
58
58
|
uses: "hashicorp/setup-copywrite",
|
|
59
59
|
},
|
|
60
|
-
{ run: "
|
|
60
|
+
{ run: "pnpm install --frozen-lockfile" },
|
|
61
61
|
{
|
|
62
62
|
id: "check_version",
|
|
63
|
-
run: "
|
|
63
|
+
run: "pnpm run check-if-new-provider-version",
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
name: "get provider current version",
|
|
@@ -69,7 +69,7 @@ class ProviderUpgrade {
|
|
|
69
69
|
run: `echo "value=$(jq -r '(.cdktn // .cdktf).provider.version' package.json)" >> $GITHUB_OUTPUT`,
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
run: "
|
|
72
|
+
run: "pnpm run fetch",
|
|
73
73
|
if: newerVersionAvailable,
|
|
74
74
|
env: {
|
|
75
75
|
CHECKPOINT_DISABLE: "1",
|
|
@@ -77,7 +77,7 @@ class ProviderUpgrade {
|
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
|
-
// Because
|
|
80
|
+
// Because pnpm run fetch nukes the contents of /src, we've lost our auto-generated copyright headers
|
|
81
81
|
name: "Add headers using Copywrite tool",
|
|
82
82
|
if: newerVersionAvailable,
|
|
83
83
|
run: "copywrite headers",
|
|
@@ -161,4 +161,4 @@ class ProviderUpgrade {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
exports.ProviderUpgrade = ProviderUpgrade;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJB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UCxNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQzlCLEdBQUcsRUFBRTtvQkFDSCxhQUFhLEVBQUUsOEJBQThCO29CQUM3QyxzQkFBc0IsRUFBRSx1Q0FBdUM7b0JBQy9ELFlBQVksRUFBRSx3QkFBd0IsT0FBTyxDQUFDLFlBQVksRUFBRTtpQkFDN0Q7Z0JBQ0QsS0FBSztnQkFDTCxXQUFXLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDakMsTUFBTSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDM0IsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDN0IsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDOUI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhLRCwwQ0FnS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21Dcm9uIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG5pbnRlcmZhY2UgUHJvdmlkZXJVcGdyYWRlT3B0aW9ucyB7XG4gIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93UnVuc09uOiBzdHJpbmdbXTtcbiAgbm9kZUhlYXBTaXplOiBzdHJpbmc7XG59XG4vKipcbiAqIENoZWNrcyBmb3IgbmV3IHZlcnNpb25zIG9mIHRoZSBnaXZlbiBwcm92aWRlciBhbmQgY3JlYXRlcyBhIFBSIHdpdGggYW4gdXBncmFkZSBjaGFuZ2UgaWYgdGhlcmUgYXJlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm92aWRlclVwZ3JhZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0LFxuICAgIG9wdGlvbnM6IFByb3ZpZGVyVXBncmFkZU9wdGlvbnNcbiAgKSB7XG4gICAgcHJvamVjdC5hZGRUYXNrKFwiY2hlY2staWYtbmV3LXByb3ZpZGVyLXZlcnNpb25cIiwge1xuICAgICAgZXhlYzogYG5vZGUgLi8ke29wdGlvbnMuY2hlY2tGb3JVcGdyYWRlc1NjcmlwdFBhdGh9YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LmFkZFdvcmtmbG93KFwicHJvdmlkZXItdXBncmFkZVwiKTtcblxuICAgIGlmICghd29ya2Zsb3cpIHRocm93IG5ldyBFcnJvcihcIm5vIHdvcmtmbG93IGRlZmluZWRcIik7XG5cbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBzY2hlZHVsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY3JvbjogZ2VuZXJhdGVSYW5kb21Dcm9uKHtcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICBtYXhIb3VyOiAwLFxuICAgICAgICAgICAgaG91ck9mZnNldDogMyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sIC8vIFJ1biBldmVyeSBkYXkgc29tZXRpbWUgYmV0d2VlbiAzIGFuZCA0YW1cbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LCAvLyBhbGxvdyBtYW51YWwgdHJpZ2dlcmluZ1xuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3ZXJWZXJzaW9uQXZhaWxhYmxlID1cbiAgICAgIFwiJHt7IHN0ZXBzLmNoZWNrX3ZlcnNpb24ub3V0cHV0cy5uZXdfdmVyc2lvbiA9PSAnYXZhaWxhYmxlJyB9fVwiO1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gXCIke3sgc3RlcHMuY3VycmVudF92ZXJzaW9uLm91dHB1dHMudmFsdWUgfX1cIjtcbiAgICBjb25zdCBuZXdWZXJzaW9uID0gXCIke3sgc3RlcHMubmV3X3ZlcnNpb24ub3V0cHV0cy52YWx1ZSB9fVwiO1xuICAgIGNvbnN0IHNlbWFudGljVHlwZSA9IFwiJHt7IHN0ZXBzLnJlbGVhc2Uub3V0cHV0cy50eXBlIH19XCI7XG5cbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBUZXJyYWZvcm1cIixcbiAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtdGVycmFmb3JtXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICB0ZXJyYWZvcm1fd3JhcHBlcjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIE5vZGUuanNcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL3NldHVwLW5vZGVcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwibm9kZS12ZXJzaW9uXCI6IHByb2plY3QubWluTm9kZVZlcnNpb24sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiLFxuICAgICAgfSxcbiAgICAgIHsgcnVuOiBcInlhcm4gaW5zdGFsbFwiIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiBcImNoZWNrX3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBcInlhcm4gY2hlY2staWYtbmV3LXByb3ZpZGVyLXZlcnNpb25cIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZ2V0IHByb3ZpZGVyIGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBpZDogXCJjdXJyZW50X3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBgZWNobyBcInZhbHVlPSQoanEgLXIgJyguY2RrdG4gLy8gLmNka3RmKS5wcm92aWRlci52ZXJzaW9uJyBwYWNrYWdlLmpzb24pXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVuOiBcInlhcm4gZmV0Y2hcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0hFQ0tQT0lOVF9ESVNBQkxFOiBcIjFcIixcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJlY2F1c2UgeWFybiBmZXRjaCBudWtlcyB0aGUgY29udGVudHMgb2YgL3NyYywgd2UndmUgbG9zdCBvdXIgYXV0by1nZW5lcmF0ZWQgY29weXJpZ2h0IGhlYWRlcnNcbiAgICAgICAgbmFtZTogXCJBZGQgaGVhZGVycyB1c2luZyBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBydW46IFwiY29weXdyaXRlIGhlYWRlcnNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZ2V0IHByb3ZpZGVyIHVwZGF0ZWQgdmVyc2lvblwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBpZDogXCJuZXdfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnLiB8IHRvX2VudHJpZXNbXSB8IC52YWx1ZScgc3JjL3ZlcnNpb24uanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkRldGVybWluZSBpZiB0aGlzIGlzIGEgbWlub3Igb3IgcGF0Y2ggcmVsZWFzZVwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBpZDogXCJyZWxlYXNlXCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENVUlJFTlRfVkVSU0lPTjogY3VycmVudFZlcnNpb24sXG4gICAgICAgICAgTkVXX1ZFUlNJT046IG5ld1ZlcnNpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bjogW1xuICAgICAgICAgIGBDVVJSRU5UX1ZFUlNJT05fTUlOT1I9JChjdXQgLWQgXCIuXCIgLWYgMiA8PDwgXCIkQ1VSUkVOVF9WRVJTSU9OXCIpYCxcbiAgICAgICAgICBgTkVXX1ZFUlNJT05fTUlOT1I9JChjdXQgLWQgXCIuXCIgLWYgMiA8PDwgXCIkTkVXX1ZFUlNJT05cIilgLFxuICAgICAgICAgIGBbWyBcIiRDVVJSRU5UX1ZFUlNJT05fTUlOT1JcIiAhPSBcIiRORVdfVkVSU0lPTl9NSU5PUlwiIF1dICYmIElTX01JTk9SX1JFTEVBU0U9dHJ1ZSB8fCBJU19NSU5PUl9SRUxFQVNFPWZhbHNlYCxcbiAgICAgICAgICBgW1sgXCIkSVNfTUlOT1JfUkVMRUFTRVwiID09IFwidHJ1ZVwiIF1dICYmIFNFTUFOVElDX1RZUEU9ZmVhdCB8fCBTRU1BTlRJQ19UWVBFPWZpeGAsXG4gICAgICAgICAgYGVjaG8gXCJpc19taW5vcj0kSVNfTUlOT1JfUkVMRUFTRVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgICAgICBgZWNobyBcInR5cGU9JFNFTUFOVElDX1RZUEVcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgIH0sXG4gICAgICAvLyBzdWJtaXQgYSBQUlxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdlbmVyYXRlIHRva2VuXCIsXG4gICAgICAgIGlkOiBcImdlbmVyYXRlX3Rva2VuXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jcmVhdGUtZ2l0aHViLWFwcC10b2tlblwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgXCJhcHAtaWRcIjogXCIke3sgZW52LlBST0pFTl9BUFBfSUQgfX1cIixcbiAgICAgICAgICBcInByaXZhdGUta2V5XCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX1BSSVZBVEVfS0VZIH19XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdldCBHaXRIdWIgQXBwIFVzZXIgSURcIixcbiAgICAgICAgaWQ6IFwiZ2V0X3VzZXJfaWRcIixcbiAgICAgICAgcnVuOiAnZWNobyBcImlkPSQoZ2ggYXBpIFwiL3VzZXJzLyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1cIiAtLWpxIC5pZClcIiA+PiBcIiRHSVRIVUJfT1VUUFVUXCInLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy50b2tlbiB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDcmVhdGUgUHVsbCBSZXF1ZXN0XCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIHVzZXM6IFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdFwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgYnJhbmNoOiBcImF1dG8vcHJvdmlkZXItdXBncmFkZVwiLFxuICAgICAgICAgIFwiY29tbWl0LW1lc3NhZ2VcIjogYCR7c2VtYW50aWNUeXBlfTogdXBncmFkZSBwcm92aWRlciBmcm9tIFxcYCR7Y3VycmVudFZlcnNpb259XFxgIHRvIHZlcnNpb24gXFxgJHtuZXdWZXJzaW9ufVxcYGAsXG4gICAgICAgICAgdGl0bGU6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIGJvZHk6IGBUaGlzIFBSIHVwZ3JhZGVzIHRoZSB1bmRlcmx5aW5nIFRlcnJhZm9ybSBwcm92aWRlciB0byB2ZXJzaW9uICR7bmV3VmVyc2lvbn1gLFxuICAgICAgICAgIGxhYmVsczogXCJhdXRvbWVyZ2UsYXV0by1hcHByb3ZlXCIsXG4gICAgICAgICAgXCJkZWxldGUtYnJhbmNoXCI6IHRydWUsXG4gICAgICAgICAgdG9rZW46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgICBhdXRob3I6XG4gICAgICAgICAgICBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF0gPCR7eyBzdGVwcy5nZXRfdXNlcl9pZC5vdXRwdXRzLmlkIH19KyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIuY29tPlwiLFxuICAgICAgICAgIGNvbW1pdHRlcjpcbiAgICAgICAgICAgIFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XSA8JHt7IHN0ZXBzLmdldF91c2VyX2lkLm91dHB1dHMuaWQgfX0rJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+XCIsXG4gICAgICAgICAgc2lnbm9mZjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgdXBncmFkZToge1xuICAgICAgICBydW5zT246IG9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIFBST0pFTl9BUFBfSUQ6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9JRCB9fVwiLFxuICAgICAgICAgIFBST0pFTl9BUFBfUFJJVkFURV9LRVk6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICAgIE5PREVfT1BUSU9OUzogYC0tbWF4LW9sZC1zcGFjZS1zaXplPSR7b3B0aW9ucy5ub2RlSGVhcFNpemV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcHMsXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBzdGF0dXNlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJB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Z0JBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUM5QixHQUFHLEVBQUU7b0JBQ0gsYUFBYSxFQUFFLDhCQUE4QjtvQkFDN0Msc0JBQXNCLEVBQUUsdUNBQXVDO29CQUMvRCxZQUFZLEVBQUUsd0JBQXdCLE9BQU8sQ0FBQyxZQUFZLEVBQUU7aUJBQzdEO2dCQUNELEtBQUs7Z0JBQ0wsV0FBVyxFQUFFO29CQUNYLFlBQVksRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQ2pDLE1BQU0sRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzNCLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzdCLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7aUJBQzlCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoS0QsMENBZ0tDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tQ3JvbiB9IGZyb20gXCIuL3V0aWwvcmFuZG9tLWNyb25cIjtcblxuaW50ZXJmYWNlIFByb3ZpZGVyVXBncmFkZU9wdGlvbnMge1xuICBjaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd1J1bnNPbjogc3RyaW5nW107XG4gIG5vZGVIZWFwU2l6ZTogc3RyaW5nO1xufVxuLyoqXG4gKiBDaGVja3MgZm9yIG5ldyB2ZXJzaW9ucyBvZiB0aGUgZ2l2ZW4gcHJvdmlkZXIgYW5kIGNyZWF0ZXMgYSBQUiB3aXRoIGFuIHVwZ3JhZGUgY2hhbmdlIGlmIHRoZXJlIGFyZSBjaGFuZ2VzLlxuICovXG5leHBvcnQgY2xhc3MgUHJvdmlkZXJVcGdyYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCxcbiAgICBvcHRpb25zOiBQcm92aWRlclVwZ3JhZGVPcHRpb25zXG4gICkge1xuICAgIHByb2plY3QuYWRkVGFzayhcImNoZWNrLWlmLW5ldy1wcm92aWRlci12ZXJzaW9uXCIsIHtcbiAgICAgIGV4ZWM6IGBub2RlIC4vJHtvcHRpb25zLmNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRofWAsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy5hZGRXb3JrZmxvdyhcInByb3ZpZGVyLXVwZ3JhZGVcIik7XG5cbiAgICBpZiAoIXdvcmtmbG93KSB0aHJvdyBuZXcgRXJyb3IoXCJubyB3b3JrZmxvdyBkZWZpbmVkXCIpO1xuXG4gICAgd29ya2Zsb3cub24oe1xuICAgICAgc2NoZWR1bGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7XG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICAgIGhvdXJPZmZzZXQ6IDMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLCAvLyBSdW4gZXZlcnkgZGF5IHNvbWV0aW1lIGJldHdlZW4gMyBhbmQgNGFtXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSwgLy8gYWxsb3cgbWFudWFsIHRyaWdnZXJpbmdcbiAgICB9KTtcblxuICAgIGNvbnN0IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSA9XG4gICAgICBcIiR7eyBzdGVwcy5jaGVja192ZXJzaW9uLm91dHB1dHMubmV3X3ZlcnNpb24gPT0gJ2F2YWlsYWJsZScgfX1cIjtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IFwiJHt7IHN0ZXBzLmN1cnJlbnRfdmVyc2lvbi5vdXRwdXRzLnZhbHVlIH19XCI7XG4gICAgY29uc3QgbmV3VmVyc2lvbiA9IFwiJHt7IHN0ZXBzLm5ld192ZXJzaW9uLm91dHB1dHMudmFsdWUgfX1cIjtcbiAgICBjb25zdCBzZW1hbnRpY1R5cGUgPSBcIiR7eyBzdGVwcy5yZWxlYXNlLm91dHB1dHMudHlwZSB9fVwiO1xuXG4gICAgY29uc3Qgc3RlcHM6IEpvYlN0ZXBbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDaGVja291dFwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgVGVycmFmb3JtXCIsXG4gICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgdGVycmFmb3JtX3dyYXBwZXI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlLmpzXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcIm5vZGUtdmVyc2lvblwiOiBwcm9qZWN0Lm1pbk5vZGVWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIixcbiAgICAgIH0sXG4gICAgICB7IHJ1bjogXCJwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGVcIiB9LFxuICAgICAge1xuICAgICAgICBpZDogXCJjaGVja192ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogXCJwbnBtIHJ1biBjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgY3VycmVudCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcImN1cnJlbnRfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnKC5jZGt0biAvLyAuY2RrdGYpLnByb3ZpZGVyLnZlcnNpb24nIHBhY2thZ2UuanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydW46IFwicG5wbSBydW4gZmV0Y2hcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0hFQ0tQT0lOVF9ESVNBQkxFOiBcIjFcIixcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJlY2F1c2UgcG5wbSBydW4gZmV0Y2ggbnVrZXMgdGhlIGNvbnRlbnRzIG9mIC9zcmMsIHdlJ3ZlIGxvc3Qgb3VyIGF1dG8tZ2VuZXJhdGVkIGNvcHlyaWdodCBoZWFkZXJzXG4gICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgcnVuOiBcImNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImdldCBwcm92aWRlciB1cGRhdGVkIHZlcnNpb25cIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwibmV3X3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBgZWNobyBcInZhbHVlPSQoanEgLXIgJy4gfCB0b19lbnRyaWVzW10gfCAudmFsdWUnIHNyYy92ZXJzaW9uLmpzb24pXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIG1pbm9yIG9yIHBhdGNoIHJlbGVhc2VcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwicmVsZWFzZVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDVVJSRU5UX1ZFUlNJT046IGN1cnJlbnRWZXJzaW9uLFxuICAgICAgICAgIE5FV19WRVJTSU9OOiBuZXdWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgICBydW46IFtcbiAgICAgICAgICBgQ1VSUkVOVF9WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJENVUlJFTlRfVkVSU0lPTlwiKWAsXG4gICAgICAgICAgYE5FV19WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJE5FV19WRVJTSU9OXCIpYCxcbiAgICAgICAgICBgW1sgXCIkQ1VSUkVOVF9WRVJTSU9OX01JTk9SXCIgIT0gXCIkTkVXX1ZFUlNJT05fTUlOT1JcIiBdXSAmJiBJU19NSU5PUl9SRUxFQVNFPXRydWUgfHwgSVNfTUlOT1JfUkVMRUFTRT1mYWxzZWAsXG4gICAgICAgICAgYFtbIFwiJElTX01JTk9SX1JFTEVBU0VcIiA9PSBcInRydWVcIiBdXSAmJiBTRU1BTlRJQ19UWVBFPWZlYXQgfHwgU0VNQU5USUNfVFlQRT1maXhgLFxuICAgICAgICAgIGBlY2hvIFwiaXNfbWlub3I9JElTX01JTk9SX1JFTEVBU0VcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgICAgYGVjaG8gXCJ0eXBlPSRTRU1BTlRJQ19UWVBFXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgICAgLy8gc3VibWl0IGEgUFJcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZW5lcmF0ZSB0b2tlblwiLFxuICAgICAgICBpZDogXCJnZW5lcmF0ZV90b2tlblwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwiYXBwLWlkXCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX0lEIH19XCIsXG4gICAgICAgICAgXCJwcml2YXRlLWtleVwiOiBcIiR7eyBlbnYuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZXQgR2l0SHViIEFwcCBVc2VyIElEXCIsXG4gICAgICAgIGlkOiBcImdldF91c2VyX2lkXCIsXG4gICAgICAgIHJ1bjogJ2VjaG8gXCJpZD0kKGdoIGFwaSBcIi91c2Vycy8ke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdXCIgLS1qcSAuaWQpXCIgPj4gXCIkR0lUSFVCX09VVFBVVFwiJyxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICB1c2VzOiBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIGJyYW5jaDogXCJhdXRvL3Byb3ZpZGVyLXVwZ3JhZGVcIixcbiAgICAgICAgICBcImNvbW1pdC1tZXNzYWdlXCI6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIHRpdGxlOiBgJHtzZW1hbnRpY1R5cGV9OiB1cGdyYWRlIHByb3ZpZGVyIGZyb20gXFxgJHtjdXJyZW50VmVyc2lvbn1cXGAgdG8gdmVyc2lvbiBcXGAke25ld1ZlcnNpb259XFxgYCxcbiAgICAgICAgICBib2R5OiBgVGhpcyBQUiB1cGdyYWRlcyB0aGUgdW5kZXJseWluZyBUZXJyYWZvcm0gcHJvdmlkZXIgdG8gdmVyc2lvbiAke25ld1ZlcnNpb259YCxcbiAgICAgICAgICBsYWJlbHM6IFwiYXV0b21lcmdlLGF1dG8tYXBwcm92ZVwiLFxuICAgICAgICAgIFwiZGVsZXRlLWJyYW5jaFwiOiB0cnVlLFxuICAgICAgICAgIHRva2VuOiBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLnRva2VuIH19XCIsXG4gICAgICAgICAgYXV0aG9yOlxuICAgICAgICAgICAgXCIke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdIDwke3sgc3RlcHMuZ2V0X3VzZXJfaWQub3V0cHV0cy5pZCB9fSske3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT5cIixcbiAgICAgICAgICBjb21taXR0ZXI6XG4gICAgICAgICAgICBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF0gPCR7eyBzdGVwcy5nZXRfdXNlcl9pZC5vdXRwdXRzLmlkIH19KyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIuY29tPlwiLFxuICAgICAgICAgIHNpZ25vZmY6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB3b3JrZmxvdy5hZGRKb2JzKHtcbiAgICAgIHVwZ3JhZGU6IHtcbiAgICAgICAgcnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBQUk9KRU5fQVBQX0lEOiBcIiR7eyBzZWNyZXRzLlBST0pFTl9BUFBfSUQgfX1cIixcbiAgICAgICAgICBQUk9KRU5fQVBQX1BSSVZBVEVfS0VZOiBcIiR7eyBzZWNyZXRzLlBST0pFTl9BUFBfUFJJVkFURV9LRVkgfX1cIixcbiAgICAgICAgICBOT0RFX09QVElPTlM6IGAtLW1heC1vbGQtc3BhY2Utc2l6ZT0ke29wdGlvbnMubm9kZUhlYXBTaXplfWAsXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgc3RhdHVzZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -25,7 +25,6 @@ class CheckForUpgradesScriptFile extends projen_1.FileBase {
|
|
|
25
25
|
* SPDX-License-Identifier: MPL-2.0
|
|
26
26
|
*/
|
|
27
27
|
const semver = require("semver");
|
|
28
|
-
const actions = require("@actions/core");
|
|
29
28
|
|
|
30
29
|
// Code is inlined below, as this import requires us to add all dev dependencies of cdktn-cli as we're not
|
|
31
30
|
// using the bundle. A better alternative would be to refactor this method to move to its own package, that
|
|
@@ -42,14 +41,20 @@ const FQ_PROVIDER_NAME = "${fqproviderName}";
|
|
|
42
41
|
console.log(
|
|
43
42
|
\`Found newer Terraform provider version matching the current constraint: \${CONSTRAINT}\`
|
|
44
43
|
);
|
|
45
|
-
setGithubStepOutput("new_version", "available");
|
|
44
|
+
await setGithubStepOutput("new_version", "available");
|
|
46
45
|
} else {
|
|
47
46
|
console.log("No changes detected.");
|
|
48
|
-
setGithubStepOutput("new_version", "unavailable");
|
|
47
|
+
await setGithubStepOutput("new_version", "unavailable");
|
|
49
48
|
}
|
|
50
49
|
})();
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
// @actions/core is ESM-only from 3.x, so it cannot be \`require\`d. Load it from this
|
|
52
|
+
// async path instead. Keep using its setOutput rather than appending to
|
|
53
|
+
// $GITHUB_OUTPUT by hand: it emits a heredoc with a random delimiter for multiline
|
|
54
|
+
// values and validates the value against it, which a plain \`name=value\` append
|
|
55
|
+
// gets wrong.
|
|
56
|
+
async function setGithubStepOutput(name, value) {
|
|
57
|
+
const actions = await import("@actions/core");
|
|
53
58
|
actions.setOutput(name, value);
|
|
54
59
|
}
|
|
55
60
|
|
|
@@ -184,4 +189,4 @@ function versionMatchesConstraint(version, constraint) {
|
|
|
184
189
|
}
|
|
185
190
|
}
|
|
186
191
|
exports.CheckForUpgradesScriptFile = CheckForUpgradesScriptFile;
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZm9yLXVwZ3JhZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILG1DQUE4RDtBQVE5RCxNQUFhLDBCQUEyQixTQUFRLGlCQUFRO0lBQ25DLE9BQU8sQ0FBb0M7SUFFOUQsWUFDRSxPQUFvQixFQUNwQixPQUEwQztRQUUxQyxLQUFLLENBQUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLE9BQU8sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLElBQUksRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FDeEQsSUFBSSxDQUFDLE9BQU8sQ0FDd0IsQ0FBQztRQUV2QywwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxjQUFjLEdBQUcsYUFBYSxjQUFjLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBRUQsT0FBTzs7Ozs7Ozs7Ozs7Ozs7O3NCQWVXLGVBQWU7NEJBQ1QsY0FBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlKekMsQ0FBQztJQUNBLENBQUM7Q0FDRjtBQTFMRCxnRUEwTEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IEZpbGVCYXNlLCBGaWxlQmFzZU9wdGlvbnMsIElSZXNvbHZlciB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlT3B0aW9ucyBleHRlbmRzIEZpbGVCYXNlT3B0aW9ucyB7XG4gIGZxcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIHByb3ZpZGVyVmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zOiBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogTm9kZVByb2plY3QsXG4gICAgb3B0aW9uczogQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGVPcHRpb25zXG4gICkge1xuICAgIHN1cGVyKHByb2plY3QsIFwic2NyaXB0cy9jaGVjay1mb3ItdXBncmFkZXMuanNcIiwgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcInNlbXZlckBeNy41LjNcIik7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQocmVzb2x2ZXI6IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHsgcHJvdmlkZXJWZXJzaW9uLCBmcXByb3ZpZGVyTmFtZSB9ID0gcmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgIHRoaXMub3B0aW9uc1xuICAgICkgYXMgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGVPcHRpb25zO1xuXG4gICAgLy8gYXdzIC0+IGhhc2hpY29ycC9hd3MgKGVsc2UgdGhlIHJlZ2lzdHJ5IEFQSSBjYWxsIGZhaWxzKVxuICAgIGlmICghZnFwcm92aWRlck5hbWUuaW5jbHVkZXMoXCIvXCIpKSB7XG4gICAgICBmcXByb3ZpZGVyTmFtZSA9IGBoYXNoaWNvcnAvJHtmcXByb3ZpZGVyTmFtZX1gO1xuICAgIH1cblxuICAgIHJldHVybiBgXG4vKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5jb25zdCBzZW12ZXIgPSByZXF1aXJlKFwic2VtdmVyXCIpO1xuY29uc3QgYWN0aW9ucyA9IHJlcXVpcmUoXCJAYWN0aW9ucy9jb3JlXCIpO1xuXG4vLyBDb2RlIGlzIGlubGluZWQgYmVsb3csIGFzIHRoaXMgaW1wb3J0IHJlcXVpcmVzIHVzIHRvIGFkZCBhbGwgZGV2IGRlcGVuZGVuY2llcyBvZiBjZGt0bi1jbGkgYXMgd2UncmUgbm90XG4vLyB1c2luZyB0aGUgYnVuZGxlLiBBIGJldHRlciBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byByZWZhY3RvciB0aGlzIG1ldGhvZCB0byBtb3ZlIHRvIGl0cyBvd24gcGFja2FnZSwgdGhhdFxuLy8gdGhlIGNka3RuLWNsaSBhbmQgb3RoZXJzIGNhbiB1c2UgKHdlIGhhdmUgdGhlIHNhbWUgXCJwcm9ibGVtXCIgd2l0aCBzb21lIG90aGVyIGNvZGUgaW4gY2RrdG4sIGNka3RuLWNsaSBhbmRcbi8vIHRoZSBAY2RrdG4vcHJvdmlkZXItZ2VuZXJhdG9yIHBhY2thZ2UsIHRvbylcbi8vIGNvbnN0IHsgdmVyc2lvbk1hdGNoZXNDb25zdHJhaW50IH0gPSByZXF1aXJlKCdjZGt0bi1jbGkvbGliL2RlcGVuZGVuY2llcy92ZXJzaW9uLWNvbnN0cmFpbnRzJyk7XG5cbi8vIHNldCBieSB0aGUgcHJvamVuIGZpbGUgdGhhdCBnZW5lcmF0ZXMgdGhpcyBzY3JpcHRcbmNvbnN0IENPTlNUUkFJTlQgPSBcIiR7cHJvdmlkZXJWZXJzaW9ufVwiO1xuY29uc3QgRlFfUFJPVklERVJfTkFNRSA9IFwiJHtmcXByb3ZpZGVyTmFtZX1cIjtcblxuKGFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGlmIChhd2FpdCBuZXdlck1hdGNoaW5nUHJvdmlkZXJWZXJzaW9uRXhpc3RzKCkpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFxcYEZvdW5kIG5ld2VyIFRlcnJhZm9ybSBwcm92aWRlciB2ZXJzaW9uIG1hdGNoaW5nIHRoZSBjdXJyZW50IGNvbnN0cmFpbnQ6IFxcJHtDT05TVFJBSU5UfVxcYFxuICAgICk7XG4gICAgc2V0R2l0aHViU3RlcE91dHB1dChcIm5ld192ZXJzaW9uXCIsIFwiYXZhaWxhYmxlXCIpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKFwiTm8gY2hhbmdlcyBkZXRlY3RlZC5cIik7XG4gICAgc2V0R2l0aHViU3RlcE91dHB1dChcIm5ld192ZXJzaW9uXCIsIFwidW5hdmFpbGFibGVcIik7XG4gIH1cbn0pKCk7XG5cbmZ1bmN0aW9uIHNldEdpdGh1YlN0ZXBPdXRwdXQobmFtZSwgdmFsdWUpIHtcbiAgYWN0aW9ucy5zZXRPdXRwdXQobmFtZSwgdmFsdWUpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBuZXdlck1hdGNoaW5nUHJvdmlkZXJWZXJzaW9uRXhpc3RzKCkge1xuICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChcbiAgICBcXGBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby92Mi9wcm92aWRlcnMvXFwke0ZRX1BST1ZJREVSX05BTUV9L3Byb3ZpZGVyLXZlcnNpb25zXFxgXG4gICk7XG4gIGNvbnN0IGJvZHkgPSBhd2FpdCByZXMuanNvbigpO1xuXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gYXdhaXQgZ2V0Q3VycmVudFByb3ZpZGVyVmVyc2lvbigpO1xuXG4gIGNvbnN0IGF2YWlsYWJsZVZlcnNpb25zID0gYm9keS5kYXRhLm1hcCgoaXQpID0+IGl0LmF0dHJpYnV0ZXMudmVyc2lvbik7XG4gIGNvbnN0IHZlcnNpb25zTWF0Y2hpbmcgPSBhdmFpbGFibGVWZXJzaW9ucy5maWx0ZXIoKHYpID0+XG4gICAgdmVyc2lvbk1hdGNoZXNDb25zdHJhaW50KHYsIENPTlNUUkFJTlQpXG4gICk7XG4gIGlmICh2ZXJzaW9uc01hdGNoaW5nLmxlbmd0aCA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXFxgVW5leHBlY3RlZCBFcnJvcjogRm91bmQgbm8gbWF0Y2hpbmcgdmVyc2lvbnMgZm9yIGNvbnN0cmFpbnQgXFwke0NPTlNUUkFJTlR9IGluIFtcXCR7YXZhaWxhYmxlVmVyc2lvbnMuam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApfV1cXGBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbnNHcmVhdGVyVGhhbkN1cnJlbnQgPSB2ZXJzaW9uc01hdGNoaW5nLmZpbHRlcigodikgPT5cbiAgICBzZW12ZXIuZ3QodiwgY3VycmVudFZlcnNpb24pXG4gICk7XG4gIGlmICh2ZXJzaW9uc0dyZWF0ZXJUaGFuQ3VycmVudC5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcXGBPbmUgb3IgbW9yZSBtYXRjaGluZyB2ZXJzaW9ucyAoXFwke0NPTlNUUkFJTlR9KSBhcmUgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IHZlcnNpb24gKFxcJHtjdXJyZW50VmVyc2lvbn0pOiBbXFwke3ZlcnNpb25zR3JlYXRlclRoYW5DdXJyZW50LmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKX1dXFxgXG4gICAgKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFxcYEZvdW5kIG5vIG1hdGNoaW5nIHZlcnNpb25zIChcXCR7Q09OU1RSQUlOVH0pIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCB2ZXJzaW9uIChcXCR7Y3VycmVudFZlcnNpb259KS4gTWF0Y2hpbmcgdmVyc2lvbnM6IFtcXCR7dmVyc2lvbnNNYXRjaGluZy5qb2luKFxuICAgICAgICBcIiwgXCJcbiAgICAgICl9XVxcYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBlLmcuIGNka3RmIDAuMTIueCAtPiAwLjEzLnggYnV0IG5vdCAwLjEyLnkgLT4gMC4xMi56XG5hc3luYyBmdW5jdGlvbiBjZGt0ZlZlcnNpb25NYWpvckNoYW5nZWQoKSB7XG4gIHRocm93IG5ldyBFcnJvcihcInRvZG8gaW1wbGVtZW50XCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50UHJvdmlkZXJWZXJzaW9uKCkge1xuICBjb25zdCBqc29uID0gcmVxdWlyZShcIi4uL3NyYy92ZXJzaW9uLmpzb25cIik7XG4gIHJldHVybiBqc29uW1xcYHJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9cXCR7RlFfUFJPVklERVJfTkFNRS50b0xvd2VyQ2FzZSgpfVxcYF07XG59XG5cbi8vIFNFRSBOT1RJQ0UgQVQgVEhFIFRPUCBXSFkgVEhJUyBJUyBJTkxJTkVEIENVUlJFTlRMWVxuLy8gY29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL29wZW4tY29uc3RydWN0cy9jZGstdGVycmFpbi9ibG9iL2RmODU4Y2NmNGFjNzFhMTY4ZTM2MzZmMDUzYzY3NDMzMjRjOTgzMzIvcGFja2FnZXMvJTQwY2RrdG4vY2xpLWNvcmUvc3JjL2xpYi9kZXBlbmRlbmNpZXMvdmVyc2lvbi1jb25zdHJhaW50cy50c1xuLy8gYW5kIGNvbnZlcnRlZCB0byBKYXZhU2NyaXB0XG5cbi8vIGNvbnN0cmFpbnRzIGNhbiBiZSBwcmVmaXhlZCB3aXRoIFwifj5cIiwgXCI+XCIsIFwiPFwiLCBcIj1cIiwgXCI+PVwiLCBcIjw9XCIgb3IgXCIhPVwiXG4vLyBubyBwcmVmaXggbWVhbnMgXCI9XCJcbmZ1bmN0aW9uIHBhcnNlQ29uc3RyYWludChjb25zdHJhaW50KSB7XG4gIGNvbnN0IGNsZWFuZWQgPSBjb25zdHJhaW50LnRyaW0oKTtcblxuICBjb25zdCBvcGVyYXRvciA9IGNsZWFuZWQubWF0Y2goLyh+Pnw+PXw8PXw+fDx8PXwhPSkvKT8uWzBdIHx8IFwiPVwiO1xuICBjb25zdCB2ZXJzaW9uID0gY2xlYW5lZC5yZXBsYWNlKG9wZXJhdG9yLCBcIlwiKS50cmltKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBvcGVyYXRvcixcbiAgICB2ZXJzaW9uLFxuICB9O1xufVxuXG5mdW5jdGlvbiB2ZXJzaW9uTWF0Y2hlc0NvbnN0cmFpbnQodmVyc2lvbiwgY29uc3RyYWludCkge1xuICAvLyBodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvdmVyc2lvbi1jb25zdHJhaW50c1xuICAvLyB2ZXJzaW9uIGNhbiBjb250YWluIG11bHRpcGxlIGNvbnN0cmFpbnRzIHNwbGl0IGJ5IFwiLFwiXG5cbiAgY29uc3QgY29uc3RyYWludHMgPSBjb25zdHJhaW50LnNwbGl0KFwiLFwiKTtcbiAgdmVyc2lvbiA9IHNlbXZlci5jb2VyY2UodmVyc2lvbik/LnZlcnNpb24gPz8gdmVyc2lvbjtcblxuICAvLyBlYWNoIGNvbnN0cmFpbnQgbmVlZHMgdG8gYmUgc2F0aXNmaWVkXG4gIHJldHVybiBjb25zdHJhaW50cy5ldmVyeSgoYykgPT4ge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ29uc3RyYWludChjKTtcblxuICAgIGNvbnN0IGNsZWFuZWRQYXJzZWRWZXJzaW9uID1cbiAgICAgIHNlbXZlci5jb2VyY2UocGFyc2VkLnZlcnNpb24pPy52ZXJzaW9uID8/IHBhcnNlZC52ZXJzaW9uO1xuXG4gICAgc3dpdGNoIChwYXJzZWQub3BlcmF0b3IpIHtcbiAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgIHJldHVybiB2ZXJzaW9uID09PSBjbGVhbmVkUGFyc2VkVmVyc2lvbjtcbiAgICAgIGNhc2UgXCIhPVwiOlxuICAgICAgICByZXR1cm4gdmVyc2lvbiAhPT0gY2xlYW5lZFBhcnNlZFZlcnNpb247XG4gICAgICBjYXNlIFwifj5cIjoge1xuICAgICAgICAvLyBhbGxvd3MgcmlnaHRtb3N0IHZlcnNpb24gY29tcG9uZW50IHRvIGluY3JlbWVudFxuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gcGFyc2VkLnZlcnNpb24uc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBtaW5vclNwZWNpZmllZCA9IHBhcnRzLmxlbmd0aCA9PT0gMjtcbiAgICAgICAgY29uc3QgbWFqb3JJc1plcm8gPSBwYXJ0c1swXSA9PT0gXCIwXCI7XG5cbiAgICAgICAgLy8gfj4yLjAgd2hpY2ggYWxsb3dzIDIuMSBhbmQgMi4xLjEgbmVlZHMgc3BlY2lhbCBoYW5kbGluZyBhc1xuICAgICAgICAvLyBucG0gc2VtdmVyIGhhbmRsZXMgXCJ+XCIgZGlmZmVyZW50bHkgZm9yIH4yLjAgdGhhbiBmb3IgfjIgb3IgfjIuMS4wXG4gICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gdXNlIFwiXlwiIChlLmcuIF4yLjApIGZvciB0aGlzIGNhc2VcbiAgICAgICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vbnBtL25vZGUtc2VtdmVyL2lzc3Vlcy8xMVxuICAgICAgICBjb25zdCBhbGxvd01pbm9yQW5kUGF0Y2hPbmx5ID0gbWlub3JTcGVjaWZpZWQ7XG5cbiAgICAgICAgbGV0IHJhbmdlID0gYWxsb3dNaW5vckFuZFBhdGNoT25seVxuICAgICAgICAgID8gXFxgXlxcJHtwYXJzZWQudmVyc2lvbn1cXGBcbiAgICAgICAgICA6IFxcYH5cXCR7cGFyc2VkLnZlcnNpb259XFxgO1xuXG4gICAgICAgIC8vIHZlcnNpb25zIGJlbG93IDEuMCBhcmUgdHJlYXRlZCBhIGJpdCBkaWZmZXJlbnRseSBpbiBOUE0gdGhhbiBpbiBUZXJyYWZvcm1cbiAgICAgICAgLy8gbWVhbmluZyB0aGF0IE5QTXMgXjAuNCBkb2Vzbid0IGFsbG93IDAuNTUgd2hpbGUgVEZzIH4+MC40IGFsbG93cyAwLjU1XG4gICAgICAgIGlmIChtYWpvcklzWmVybyAmJiBtaW5vclNwZWNpZmllZCkge1xuICAgICAgICAgIHJhbmdlID0gXFxgPj1cXCR7cGFyc2VkLnZlcnNpb259IDwxLjAuMFxcYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZW12ZXIuc2F0aXNmaWVzKHZlcnNpb24sIHJhbmdlKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCI+PVwiOlxuICAgICAgICByZXR1cm4gc2VtdmVyLmd0ZSh2ZXJzaW9uLCBjbGVhbmVkUGFyc2VkVmVyc2lvbik7XG4gICAgICBjYXNlIFwiPD1cIjpcbiAgICAgICAgcmV0dXJuIHNlbXZlci5sdGUodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgY2FzZSBcIj5cIjpcbiAgICAgICAgcmV0dXJuIHNlbXZlci5ndCh2ZXJzaW9uLCBjbGVhbmVkUGFyc2VkVmVyc2lvbik7XG4gICAgICBjYXNlIFwiPFwiOlxuICAgICAgICByZXR1cm4gc2VtdmVyLmx0KHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IEVycm9ycy5FeHRlcm5hbChcbiAgICAgICAgICBcXGBVbmtub3duIGNvbnN0cmFpbnQgb3BlcmF0b3I6IFxcJHtwYXJzZWQub3BlcmF0b3J9IGluIHZlcnNpb24gY29uc3RyYWludCBcXCR7Y29uc3RyYWludH1cXGBcbiAgICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuYDtcbiAgfVxufVxuIl19
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZm9yLXVwZ3JhZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILG1DQUE4RDtBQVE5RCxNQUFhLDBCQUEyQixTQUFRLGlCQUFRO0lBQ25DLE9BQU8sQ0FBb0M7SUFFOUQsWUFDRSxPQUFvQixFQUNwQixPQUEwQztRQUUxQyxLQUFLLENBQUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLE9BQU8sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLElBQUksRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FDeEQsSUFBSSxDQUFDLE9BQU8sQ0FDd0IsQ0FBQztRQUV2QywwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxjQUFjLEdBQUcsYUFBYSxjQUFjLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBRUQsT0FBTzs7Ozs7Ozs7Ozs7Ozs7c0JBY1csZUFBZTs0QkFDVCxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdUp6QyxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBL0xELGdFQStMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgRmlsZUJhc2UsIEZpbGVCYXNlT3B0aW9ucywgSVJlc29sdmVyIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGVPcHRpb25zIGV4dGVuZHMgRmlsZUJhc2VPcHRpb25zIHtcbiAgZnFwcm92aWRlck5hbWU6IHN0cmluZztcbiAgcHJvdmlkZXJWZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnM6IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBOb2RlUHJvamVjdCxcbiAgICBvcHRpb25zOiBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZU9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCwgXCJzY3JpcHRzL2NoZWNrLWZvci11cGdyYWRlcy5qc1wiLCBvcHRpb25zKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgcHJvamVjdC5hZGREZXZEZXBzKFwic2VtdmVyQF43LjUuM1wiKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChyZXNvbHZlcjogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgeyBwcm92aWRlclZlcnNpb24sIGZxcHJvdmlkZXJOYW1lIH0gPSByZXNvbHZlci5yZXNvbHZlKFxuICAgICAgdGhpcy5vcHRpb25zXG4gICAgKSBhcyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZU9wdGlvbnM7XG5cbiAgICAvLyBhd3MgLT4gaGFzaGljb3JwL2F3cyAoZWxzZSB0aGUgcmVnaXN0cnkgQVBJIGNhbGwgZmFpbHMpXG4gICAgaWYgKCFmcXByb3ZpZGVyTmFtZS5pbmNsdWRlcyhcIi9cIikpIHtcbiAgICAgIGZxcHJvdmlkZXJOYW1lID0gYGhhc2hpY29ycC8ke2ZxcHJvdmlkZXJOYW1lfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBcbi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cbmNvbnN0IHNlbXZlciA9IHJlcXVpcmUoXCJzZW12ZXJcIik7XG5cbi8vIENvZGUgaXMgaW5saW5lZCBiZWxvdywgYXMgdGhpcyBpbXBvcnQgcmVxdWlyZXMgdXMgdG8gYWRkIGFsbCBkZXYgZGVwZW5kZW5jaWVzIG9mIGNka3RuLWNsaSBhcyB3ZSdyZSBub3Rcbi8vIHVzaW5nIHRoZSBidW5kbGUuIEEgYmV0dGVyIGFsdGVybmF0aXZlIHdvdWxkIGJlIHRvIHJlZmFjdG9yIHRoaXMgbWV0aG9kIHRvIG1vdmUgdG8gaXRzIG93biBwYWNrYWdlLCB0aGF0XG4vLyB0aGUgY2RrdG4tY2xpIGFuZCBvdGhlcnMgY2FuIHVzZSAod2UgaGF2ZSB0aGUgc2FtZSBcInByb2JsZW1cIiB3aXRoIHNvbWUgb3RoZXIgY29kZSBpbiBjZGt0biwgY2RrdG4tY2xpIGFuZFxuLy8gdGhlIEBjZGt0bi9wcm92aWRlci1nZW5lcmF0b3IgcGFja2FnZSwgdG9vKVxuLy8gY29uc3QgeyB2ZXJzaW9uTWF0Y2hlc0NvbnN0cmFpbnQgfSA9IHJlcXVpcmUoJ2Nka3RuLWNsaS9saWIvZGVwZW5kZW5jaWVzL3ZlcnNpb24tY29uc3RyYWludHMnKTtcblxuLy8gc2V0IGJ5IHRoZSBwcm9qZW4gZmlsZSB0aGF0IGdlbmVyYXRlcyB0aGlzIHNjcmlwdFxuY29uc3QgQ09OU1RSQUlOVCA9IFwiJHtwcm92aWRlclZlcnNpb259XCI7XG5jb25zdCBGUV9QUk9WSURFUl9OQU1FID0gXCIke2ZxcHJvdmlkZXJOYW1lfVwiO1xuXG4oYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgaWYgKGF3YWl0IG5ld2VyTWF0Y2hpbmdQcm92aWRlclZlcnNpb25FeGlzdHMoKSkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXFxgRm91bmQgbmV3ZXIgVGVycmFmb3JtIHByb3ZpZGVyIHZlcnNpb24gbWF0Y2hpbmcgdGhlIGN1cnJlbnQgY29uc3RyYWludDogXFwke0NPTlNUUkFJTlR9XFxgXG4gICAgKTtcbiAgICBhd2FpdCBzZXRHaXRodWJTdGVwT3V0cHV0KFwibmV3X3ZlcnNpb25cIiwgXCJhdmFpbGFibGVcIik7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coXCJObyBjaGFuZ2VzIGRldGVjdGVkLlwiKTtcbiAgICBhd2FpdCBzZXRHaXRodWJTdGVwT3V0cHV0KFwibmV3X3ZlcnNpb25cIiwgXCJ1bmF2YWlsYWJsZVwiKTtcbiAgfVxufSkoKTtcblxuLy8gQGFjdGlvbnMvY29yZSBpcyBFU00tb25seSBmcm9tIDMueCwgc28gaXQgY2Fubm90IGJlIFxcYHJlcXVpcmVcXGBkLiBMb2FkIGl0IGZyb20gdGhpc1xuLy8gYXN5bmMgcGF0aCBpbnN0ZWFkLiBLZWVwIHVzaW5nIGl0cyBzZXRPdXRwdXQgcmF0aGVyIHRoYW4gYXBwZW5kaW5nIHRvXG4vLyAkR0lUSFVCX09VVFBVVCBieSBoYW5kOiBpdCBlbWl0cyBhIGhlcmVkb2Mgd2l0aCBhIHJhbmRvbSBkZWxpbWl0ZXIgZm9yIG11bHRpbGluZVxuLy8gdmFsdWVzIGFuZCB2YWxpZGF0ZXMgdGhlIHZhbHVlIGFnYWluc3QgaXQsIHdoaWNoIGEgcGxhaW4gXFxgbmFtZT12YWx1ZVxcYCBhcHBlbmRcbi8vIGdldHMgd3JvbmcuXG5hc3luYyBmdW5jdGlvbiBzZXRHaXRodWJTdGVwT3V0cHV0KG5hbWUsIHZhbHVlKSB7XG4gIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBpbXBvcnQoXCJAYWN0aW9ucy9jb3JlXCIpO1xuICBhY3Rpb25zLnNldE91dHB1dChuYW1lLCB2YWx1ZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5ld2VyTWF0Y2hpbmdQcm92aWRlclZlcnNpb25FeGlzdHMoKSB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKFxuICAgIFxcYGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3YyL3Byb3ZpZGVycy9cXCR7RlFfUFJPVklERVJfTkFNRX0vcHJvdmlkZXItdmVyc2lvbnNcXGBcbiAgKTtcbiAgY29uc3QgYm9keSA9IGF3YWl0IHJlcy5qc29uKCk7XG5cbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCBnZXRDdXJyZW50UHJvdmlkZXJWZXJzaW9uKCk7XG5cbiAgY29uc3QgYXZhaWxhYmxlVmVyc2lvbnMgPSBib2R5LmRhdGEubWFwKChpdCkgPT4gaXQuYXR0cmlidXRlcy52ZXJzaW9uKTtcbiAgY29uc3QgdmVyc2lvbnNNYXRjaGluZyA9IGF2YWlsYWJsZVZlcnNpb25zLmZpbHRlcigodikgPT5cbiAgICB2ZXJzaW9uTWF0Y2hlc0NvbnN0cmFpbnQodiwgQ09OU1RSQUlOVClcbiAgKTtcbiAgaWYgKHZlcnNpb25zTWF0Y2hpbmcubGVuZ3RoIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcXGBVbmV4cGVjdGVkIEVycm9yOiBGb3VuZCBubyBtYXRjaGluZyB2ZXJzaW9ucyBmb3IgY29uc3RyYWludCBcXCR7Q09OU1RSQUlOVH0gaW4gW1xcJHthdmFpbGFibGVWZXJzaW9ucy5qb2luKFxuICAgICAgICBcIiwgXCJcbiAgICAgICl9XVxcYFxuICAgICk7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uc0dyZWF0ZXJUaGFuQ3VycmVudCA9IHZlcnNpb25zTWF0Y2hpbmcuZmlsdGVyKCh2KSA9PlxuICAgIHNlbXZlci5ndCh2LCBjdXJyZW50VmVyc2lvbilcbiAgKTtcbiAgaWYgKHZlcnNpb25zR3JlYXRlclRoYW5DdXJyZW50Lmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFxcYE9uZSBvciBtb3JlIG1hdGNoaW5nIHZlcnNpb25zIChcXCR7Q09OU1RSQUlOVH0pIGFyZSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgdmVyc2lvbiAoXFwke2N1cnJlbnRWZXJzaW9ufSk6IFtcXCR7dmVyc2lvbnNHcmVhdGVyVGhhbkN1cnJlbnQuam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApfV1cXGBcbiAgICApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXFxgRm91bmQgbm8gbWF0Y2hpbmcgdmVyc2lvbnMgKFxcJHtDT05TVFJBSU5UfSkgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IHZlcnNpb24gKFxcJHtjdXJyZW50VmVyc2lvbn0pLiBNYXRjaGluZyB2ZXJzaW9uczogW1xcJHt2ZXJzaW9uc01hdGNoaW5nLmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKX1dXFxgXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8vIGUuZy4gY2RrdGYgMC4xMi54IC0+IDAuMTMueCBidXQgbm90IDAuMTIueSAtPiAwLjEyLnpcbmFzeW5jIGZ1bmN0aW9uIGNka3RmVmVyc2lvbk1ham9yQ2hhbmdlZCgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKFwidG9kbyBpbXBsZW1lbnRcIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRQcm92aWRlclZlcnNpb24oKSB7XG4gIGNvbnN0IGpzb24gPSByZXF1aXJlKFwiLi4vc3JjL3ZlcnNpb24uanNvblwiKTtcbiAgcmV0dXJuIGpzb25bXFxgcmVnaXN0cnkudGVycmFmb3JtLmlvL1xcJHtGUV9QUk9WSURFUl9OQU1FLnRvTG93ZXJDYXNlKCl9XFxgXTtcbn1cblxuLy8gU0VFIE5PVElDRSBBVCBUSEUgVE9QIFdIWSBUSElTIElTIElOTElORUQgQ1VSUkVOVExZXG4vLyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluL2Jsb2IvZGY4NThjY2Y0YWM3MWExNjhlMzYzNmYwNTNjNjc0MzMyNGM5ODMzMi9wYWNrYWdlcy8lNDBjZGt0bi9jbGktY29yZS9zcmMvbGliL2RlcGVuZGVuY2llcy92ZXJzaW9uLWNvbnN0cmFpbnRzLnRzXG4vLyBhbmQgY29udmVydGVkIHRvIEphdmFTY3JpcHRcblxuLy8gY29uc3RyYWludHMgY2FuIGJlIHByZWZpeGVkIHdpdGggXCJ+PlwiLCBcIj5cIiwgXCI8XCIsIFwiPVwiLCBcIj49XCIsIFwiPD1cIiBvciBcIiE9XCJcbi8vIG5vIHByZWZpeCBtZWFucyBcIj1cIlxuZnVuY3Rpb24gcGFyc2VDb25zdHJhaW50KGNvbnN0cmFpbnQpIHtcbiAgY29uc3QgY2xlYW5lZCA9IGNvbnN0cmFpbnQudHJpbSgpO1xuXG4gIGNvbnN0IG9wZXJhdG9yID0gY2xlYW5lZC5tYXRjaCgvKH4+fD49fDw9fD58PHw9fCE9KS8pPy5bMF0gfHwgXCI9XCI7XG4gIGNvbnN0IHZlcnNpb24gPSBjbGVhbmVkLnJlcGxhY2Uob3BlcmF0b3IsIFwiXCIpLnRyaW0oKTtcblxuICByZXR1cm4ge1xuICAgIG9wZXJhdG9yLFxuICAgIHZlcnNpb24sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHZlcnNpb25NYXRjaGVzQ29uc3RyYWludCh2ZXJzaW9uLCBjb25zdHJhaW50KSB7XG4gIC8vIGh0dHBzOi8vd3d3LnRlcnJhZm9ybS5pby9sYW5ndWFnZS9leHByZXNzaW9ucy92ZXJzaW9uLWNvbnN0cmFpbnRzXG4gIC8vIHZlcnNpb24gY2FuIGNvbnRhaW4gbXVsdGlwbGUgY29uc3RyYWludHMgc3BsaXQgYnkgXCIsXCJcblxuICBjb25zdCBjb25zdHJhaW50cyA9IGNvbnN0cmFpbnQuc3BsaXQoXCIsXCIpO1xuICB2ZXJzaW9uID0gc2VtdmVyLmNvZXJjZSh2ZXJzaW9uKT8udmVyc2lvbiA/PyB2ZXJzaW9uO1xuXG4gIC8vIGVhY2ggY29uc3RyYWludCBuZWVkcyB0byBiZSBzYXRpc2ZpZWRcbiAgcmV0dXJuIGNvbnN0cmFpbnRzLmV2ZXJ5KChjKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VDb25zdHJhaW50KGMpO1xuXG4gICAgY29uc3QgY2xlYW5lZFBhcnNlZFZlcnNpb24gPVxuICAgICAgc2VtdmVyLmNvZXJjZShwYXJzZWQudmVyc2lvbik/LnZlcnNpb24gPz8gcGFyc2VkLnZlcnNpb247XG5cbiAgICBzd2l0Y2ggKHBhcnNlZC5vcGVyYXRvcikge1xuICAgICAgY2FzZSBcIj1cIjpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24gPT09IGNsZWFuZWRQYXJzZWRWZXJzaW9uO1xuICAgICAgY2FzZSBcIiE9XCI6XG4gICAgICAgIHJldHVybiB2ZXJzaW9uICE9PSBjbGVhbmVkUGFyc2VkVmVyc2lvbjtcbiAgICAgIGNhc2UgXCJ+PlwiOiB7XG4gICAgICAgIC8vIGFsbG93cyByaWdodG1vc3QgdmVyc2lvbiBjb21wb25lbnQgdG8gaW5jcmVtZW50XG5cbiAgICAgICAgY29uc3QgcGFydHMgPSBwYXJzZWQudmVyc2lvbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IG1pbm9yU3BlY2lmaWVkID0gcGFydHMubGVuZ3RoID09PSAyO1xuICAgICAgICBjb25zdCBtYWpvcklzWmVybyA9IHBhcnRzWzBdID09PSBcIjBcIjtcblxuICAgICAgICAvLyB+PjIuMCB3aGljaCBhbGxvd3MgMi4xIGFuZCAyLjEuMSBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGFzXG4gICAgICAgIC8vIG5wbSBzZW12ZXIgaGFuZGxlcyBcIn5cIiBkaWZmZXJlbnRseSBmb3IgfjIuMCB0aGFuIGZvciB+MiBvciB+Mi4xLjBcbiAgICAgICAgLy8gU28gd2UgbmVlZCB0byB1c2UgXCJeXCIgKGUuZy4gXjIuMCkgZm9yIHRoaXMgY2FzZVxuICAgICAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbm9kZS1zZW12ZXIvaXNzdWVzLzExXG4gICAgICAgIGNvbnN0IGFsbG93TWlub3JBbmRQYXRjaE9ubHkgPSBtaW5vclNwZWNpZmllZDtcblxuICAgICAgICBsZXQgcmFuZ2UgPSBhbGxvd01pbm9yQW5kUGF0Y2hPbmx5XG4gICAgICAgICAgPyBcXGBeXFwke3BhcnNlZC52ZXJzaW9ufVxcYFxuICAgICAgICAgIDogXFxgflxcJHtwYXJzZWQudmVyc2lvbn1cXGA7XG5cbiAgICAgICAgLy8gdmVyc2lvbnMgYmVsb3cgMS4wIGFyZSB0cmVhdGVkIGEgYml0IGRpZmZlcmVudGx5IGluIE5QTSB0aGFuIGluIFRlcnJhZm9ybVxuICAgICAgICAvLyBtZWFuaW5nIHRoYXQgTlBNcyBeMC40IGRvZXNuJ3QgYWxsb3cgMC41NSB3aGlsZSBURnMgfj4wLjQgYWxsb3dzIDAuNTVcbiAgICAgICAgaWYgKG1ham9ySXNaZXJvICYmIG1pbm9yU3BlY2lmaWVkKSB7XG4gICAgICAgICAgcmFuZ2UgPSBcXGA+PVxcJHtwYXJzZWQudmVyc2lvbn0gPDEuMC4wXFxgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbXZlci5zYXRpc2ZpZXModmVyc2lvbiwgcmFuZ2UpO1xuICAgICAgfVxuICAgICAgY2FzZSBcIj49XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIuZ3RlKHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGNhc2UgXCI8PVwiOlxuICAgICAgICByZXR1cm4gc2VtdmVyLmx0ZSh2ZXJzaW9uLCBjbGVhbmVkUGFyc2VkVmVyc2lvbik7XG4gICAgICBjYXNlIFwiPlwiOlxuICAgICAgICByZXR1cm4gc2VtdmVyLmd0KHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGNhc2UgXCI8XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIubHQodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICAgIFxcYFVua25vd24gY29uc3RyYWludCBvcGVyYXRvcjogXFwke3BhcnNlZC5vcGVyYXRvcn0gaW4gdmVyc2lvbiBjb25zdHJhaW50IFxcJHtjb25zdHJhaW50fVxcYFxuICAgICAgICApO1xuICAgIH1cbiAgfSk7XG59XG5gO1xuICB9XG59XG4iXX0=
|
|
@@ -2,6 +2,10 @@ function stringify (obj, { EOL = '\n', finalEOL = true, replacer = null, spaces
|
|
|
2
2
|
const EOF = finalEOL ? EOL : ''
|
|
3
3
|
const str = JSON.stringify(obj, replacer, spaces)
|
|
4
4
|
|
|
5
|
+
if (str === undefined) {
|
|
6
|
+
throw new TypeError(`Converting ${typeof obj} value to JSON is not supported`)
|
|
7
|
+
}
|
|
8
|
+
|
|
5
9
|
return str.replace(/\n/g, EOL) + EOF
|
|
6
10
|
}
|
|
7
11
|
|
package/package.json
CHANGED
|
@@ -4,33 +4,6 @@
|
|
|
4
4
|
"type": "git",
|
|
5
5
|
"url": "https://github.com/cdktn-io/cdktn-provider-project.git"
|
|
6
6
|
},
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "projen build",
|
|
9
|
-
"bump": "projen bump",
|
|
10
|
-
"bump:releasable-commits": "projen bump:releasable-commits",
|
|
11
|
-
"clobber": "projen clobber",
|
|
12
|
-
"compat": "projen compat",
|
|
13
|
-
"compile": "projen compile",
|
|
14
|
-
"default": "projen default",
|
|
15
|
-
"docgen": "projen docgen",
|
|
16
|
-
"eject": "projen eject",
|
|
17
|
-
"eslint": "projen eslint",
|
|
18
|
-
"package": "projen package",
|
|
19
|
-
"package-all": "projen package-all",
|
|
20
|
-
"package:js": "projen package:js",
|
|
21
|
-
"post-compile": "projen post-compile",
|
|
22
|
-
"post-upgrade": "projen post-upgrade",
|
|
23
|
-
"pre-compile": "projen pre-compile",
|
|
24
|
-
"release": "projen release",
|
|
25
|
-
"test": "projen test",
|
|
26
|
-
"test:watch": "projen test:watch",
|
|
27
|
-
"unbump": "projen unbump",
|
|
28
|
-
"upgrade": "projen upgrade",
|
|
29
|
-
"validate-workflows": "projen validate-workflows",
|
|
30
|
-
"watch": "projen watch",
|
|
31
|
-
"projen": "projen",
|
|
32
|
-
"eslint:fix": "eslint . --ext .ts --fix"
|
|
33
|
-
},
|
|
34
7
|
"author": {
|
|
35
8
|
"name": "CDK Terrain Maintainers",
|
|
36
9
|
"url": "https://cdktn.io",
|
|
@@ -78,19 +51,23 @@
|
|
|
78
51
|
"change-case",
|
|
79
52
|
"fs-extra"
|
|
80
53
|
],
|
|
81
|
-
"resolutions": {
|
|
82
|
-
"constructs": "10.5.0"
|
|
83
|
-
},
|
|
84
54
|
"engines": {
|
|
85
55
|
"node": ">= 22.11.0"
|
|
86
56
|
},
|
|
57
|
+
"devEngines": {
|
|
58
|
+
"packageManager": {
|
|
59
|
+
"name": "pnpm",
|
|
60
|
+
"version": ">=10",
|
|
61
|
+
"onFail": "ignore"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
87
64
|
"main": "lib/index.js",
|
|
88
65
|
"license": "MPL-2.0",
|
|
89
66
|
"stability": "stable",
|
|
90
67
|
"publishConfig": {
|
|
91
68
|
"access": "public"
|
|
92
69
|
},
|
|
93
|
-
"version": "0.
|
|
70
|
+
"version": "0.9.1",
|
|
94
71
|
"jest": {
|
|
95
72
|
"coverageProvider": "v8",
|
|
96
73
|
"testMatch": [
|
|
@@ -179,5 +156,33 @@
|
|
|
179
156
|
}
|
|
180
157
|
]
|
|
181
158
|
},
|
|
182
|
-
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"
|
|
183
|
-
|
|
159
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"pnpm exec projen\".",
|
|
160
|
+
"scripts": {
|
|
161
|
+
"audit": "projen audit",
|
|
162
|
+
"build": "projen build",
|
|
163
|
+
"bump": "projen bump",
|
|
164
|
+
"bump:releasable-commits": "projen bump:releasable-commits",
|
|
165
|
+
"clobber": "projen clobber",
|
|
166
|
+
"compat": "projen compat",
|
|
167
|
+
"compile": "projen compile",
|
|
168
|
+
"default": "projen default",
|
|
169
|
+
"docgen": "projen docgen",
|
|
170
|
+
"eject": "projen eject",
|
|
171
|
+
"eslint": "projen eslint",
|
|
172
|
+
"package": "projen package",
|
|
173
|
+
"package-all": "projen package-all",
|
|
174
|
+
"package:js": "projen package:js",
|
|
175
|
+
"post-compile": "projen post-compile",
|
|
176
|
+
"post-upgrade": "projen post-upgrade",
|
|
177
|
+
"pre-compile": "projen pre-compile",
|
|
178
|
+
"release": "projen release",
|
|
179
|
+
"test": "projen test",
|
|
180
|
+
"test:watch": "projen test:watch",
|
|
181
|
+
"unbump": "projen unbump",
|
|
182
|
+
"upgrade": "projen upgrade",
|
|
183
|
+
"validate-workflows": "projen validate-workflows",
|
|
184
|
+
"watch": "projen watch",
|
|
185
|
+
"projen": "projen",
|
|
186
|
+
"eslint:fix": "eslint . --ext .ts --fix"
|
|
187
|
+
}
|
|
188
|
+
}
|