@cdktn/provider-project 0.7.28 → 0.7.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "constructs": "^10.4.2",
16
- "projen": "^0.87.4"
16
+ "projen": "^0.99.0"
17
17
  },
18
18
  "dependencyClosure": {
19
19
  "constructs": {
@@ -54,7 +54,9 @@
54
54
  "projen.gitlab": {},
55
55
  "projen.java": {},
56
56
  "projen.javascript": {},
57
+ "projen.javascript.biome_config": {},
57
58
  "projen.python": {},
59
+ "projen.python.uvConfig": {},
58
60
  "projen.release": {},
59
61
  "projen.typescript": {},
60
62
  "projen.vscode": {},
@@ -86,7 +88,7 @@
86
88
  "stability": "stable"
87
89
  },
88
90
  "homepage": "https://github.com/cdktn-io/cdktn-provider-project.git",
89
- "jsiiVersion": "5.8.19 (build db67fde)",
91
+ "jsiiVersion": "5.9.25 (build bd30271)",
90
92
  "license": "MPL-2.0",
91
93
  "metadata": {
92
94
  "jsii": {
@@ -98,7 +100,7 @@
98
100
  },
99
101
  "name": "@cdktn/provider-project",
100
102
  "readme": {
101
- "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 [Terraform CDK](https://cdk.tf).\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 `cdktf 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/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\nyarn 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\n<!-- TODO: Re-enable Maven\n- `MAVEN_GPG_PRIVATE_KEY`\n- `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n- `MAVEN_PASSWORD`\n- `MAVEN_USERNAME`\n- `MAVEN_STAGING_PROFILE_ID`\n-->\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\nyarn 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/repository-manager) should be done via the [code definitions](./src/index.ts) here.\n\nFor local development, [yarn link](https://classic.yarnpkg.com/en/docs/cli/link/) might be quite helpful for testing.\n\n## CAVEATS\n\n1. Maven is disabled\n1. Java package: com.Io.Cdktn - unusual capitalization, typically should be io.cdktn or com.cdktn\n1. Nuget is disabled\n1. .NET namespace: Io.Cdktn.Cdktn.Providers.Random - has \"Cdktn\" duplicated\n"
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 [Terraform CDK](https://cdk.tf).\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 `cdktf 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/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\nyarn 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\n<!-- TODO: Re-enable Maven\n- `MAVEN_GPG_PRIVATE_KEY`\n- `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n- `MAVEN_PASSWORD`\n- `MAVEN_USERNAME`\n- `MAVEN_STAGING_PROFILE_ID`\n-->\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\nyarn 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/repository-manager) should be done via the [code definitions](./src/index.ts) here.\n\nFor local development, [yarn link](https://classic.yarnpkg.com/en/docs/cli/link/) might be quite helpful for testing.\n\n## CAVEATS\n\n1. Maven publishing is disabled (TODO: re-enable when requested and infra available)\n1. NuGet publishing is disabled (TODO: re-enable when requested and infra available)\n"
102
104
  },
103
105
  "repository": {
104
106
  "type": "git",
@@ -124,7 +126,7 @@
124
126
  },
125
127
  "locationInModule": {
126
128
  "filename": "src/index.ts",
127
- "line": 108
129
+ "line": 106
128
130
  },
129
131
  "parameters": [
130
132
  {
@@ -138,7 +140,7 @@
138
140
  "kind": "class",
139
141
  "locationInModule": {
140
142
  "filename": "src/index.ts",
141
- "line": 107
143
+ "line": 105
142
144
  },
143
145
  "name": "CdktnProviderProject",
144
146
  "symbolId": "src/index:CdktnProviderProject"
@@ -414,6 +416,6 @@
414
416
  "symbolId": "src/index:CdktnProviderProjectOptions"
415
417
  }
416
418
  },
417
- "version": "0.7.28",
418
- "fingerprint": "k6MtP4HRqty4a6qg2spdlN6Njw6ERhx+gcmO0VT++VI="
419
+ "version": "0.7.29",
420
+ "fingerprint": "CeZ053nR0rGlUVC3rJJ/glqbPncz7gJ8CCLxjlohMhk="
419
421
  }
package/API.md CHANGED
@@ -700,11 +700,12 @@ When given a project, this it the project itself.
700
700
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The package manager to use. |
701
701
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.runScriptCommand">runScriptCommand</a></code> | <code>string</code> | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). |
702
702
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.autoMerge">autoMerge</a></code> | <code>projen.github.AutoMerge</code> | Component that sets up mergify for merging approved pull requests. |
703
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.biome">biome</a></code> | <code>projen.javascript.Biome</code> | *No description.* |
703
704
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.buildWorkflow">buildWorkflow</a></code> | <code>projen.build.BuildWorkflow</code> | The PR build GitHub workflow. |
704
705
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.buildWorkflowJobId">buildWorkflowJobId</a></code> | <code>string</code> | The job ID of the build workflow. |
705
706
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.jest">jest</a></code> | <code>projen.javascript.Jest</code> | The Jest configuration (if enabled). |
706
- | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | Maximum node version required by this package. |
707
- | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | Minimum node.js version required by this package. |
707
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | Maximum node version supported by this package. |
708
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. |
708
709
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.npmignore">npmignore</a></code> | <code>projen.IgnoreFile</code> | The .npmignore file. |
709
710
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.prettier">prettier</a></code> | <code>projen.javascript.Prettier</code> | *No description.* |
710
711
  | <code><a href="#@cdktn/provider-project.CdktnProviderProject.property.publisher">publisher</a></code> | <code>projen.release.Publisher</code> | Package publisher. |
@@ -1234,6 +1235,16 @@ Component that sets up mergify for merging approved pull requests.
1234
1235
 
1235
1236
  ---
1236
1237
 
1238
+ ##### `biome`<sup>Optional</sup> <a name="biome" id="@cdktn/provider-project.CdktnProviderProject.property.biome"></a>
1239
+
1240
+ ```typescript
1241
+ public readonly biome: Biome;
1242
+ ```
1243
+
1244
+ - *Type:* projen.javascript.Biome
1245
+
1246
+ ---
1247
+
1237
1248
  ##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@cdktn/provider-project.CdktnProviderProject.property.buildWorkflow"></a>
1238
1249
 
1239
1250
  ```typescript
@@ -1280,7 +1291,9 @@ public readonly maxNodeVersion: string;
1280
1291
 
1281
1292
  - *Type:* string
1282
1293
 
1283
- Maximum node version required by this package.
1294
+ Maximum node version supported by this package.
1295
+
1296
+ The value indicates the package is incompatible with newer versions.
1284
1297
 
1285
1298
  ---
1286
1299
 
@@ -1292,7 +1305,9 @@ public readonly minNodeVersion: string;
1292
1305
 
1293
1306
  - *Type:* string
1294
1307
 
1295
- Minimum node.js version required by this package.
1308
+ The minimum node version required by this package to function.
1309
+
1310
+ This value indicates the package is incompatible with older versions.
1296
1311
 
1297
1312
  ---
1298
1313
 
@@ -1558,6 +1573,7 @@ const cdktnProviderProjectOptions: CdktnProviderProjectOptions = { ... }
1558
1573
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.bugsEmail">bugsEmail</a></code> | <code>string</code> | The email address to which issues should be reported. |
1559
1574
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.bugsUrl">bugsUrl</a></code> | <code>string</code> | The url to your project's issue tracker. |
1560
1575
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
1576
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
1561
1577
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
1562
1578
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.deps">deps</a></code> | <code>string[]</code> | Runtime dependencies of this module. |
1563
1579
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.description">description</a></code> | <code>string</code> | The description is just a string that helps people understand the purpose of the package. |
@@ -1567,13 +1583,14 @@ const cdktnProviderProjectOptions: CdktnProviderProjectOptions = { ... }
1567
1583
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.keywords">keywords</a></code> | <code>string[]</code> | Keywords to include in `package.json`. |
1568
1584
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.license">license</a></code> | <code>string</code> | License's SPDX identifier. |
1569
1585
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Indicates if a license should be added. |
1570
- | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | Minimum node.js version to require via `engines` (inclusive). |
1571
- | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | Minimum Node.js version to require via package.json `engines` (inclusive). |
1586
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | The maximum node version supported by this package. Most projects should not use this option. |
1587
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. Most projects should not use this option. |
1572
1588
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmAccess">npmAccess</a></code> | <code>projen.javascript.NpmAccess</code> | Access level of the npm package. |
1573
1589
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
1574
1590
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmRegistry">npmRegistry</a></code> | <code>string</code> | The host name of the npm registry to publish to. |
1575
1591
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
1576
1592
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
1593
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
1577
1594
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
1578
1595
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
1579
1596
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
@@ -1585,9 +1602,11 @@ const cdktnProviderProjectOptions: CdktnProviderProjectOptions = { ... }
1585
1602
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.scripts">scripts</a></code> | <code>{[ key: string ]: string}</code> | npm scripts to include. |
1586
1603
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.stability">stability</a></code> | <code>string</code> | Package's Stability. |
1587
1604
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.yarnBerryOptions">yarnBerryOptions</a></code> | <code>projen.javascript.YarnBerryOptions</code> | Options for Yarn Berry. |
1605
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.bumpPackage">bumpPackage</a></code> | <code>string</code> | The `commit-and-tag-version` compatible package used to bump the package version, as a dependency string. |
1588
1606
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.jsiiReleaseVersion">jsiiReleaseVersion</a></code> | <code>string</code> | Version requirement of `publib` which is used to publish modules to npm. |
1589
1607
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.majorVersion">majorVersion</a></code> | <code>number</code> | Major version to release from the default branch. |
1590
1608
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.minMajorVersion">minMajorVersion</a></code> | <code>number</code> | Minimal Major version to release. |
1609
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.nextVersionCommand">nextVersionCommand</a></code> | <code>string</code> | A shell command to control the next version to release. |
1591
1610
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.npmDistTag">npmDistTag</a></code> | <code>string</code> | The npmDistTag to use when publishing from the default branch. |
1592
1611
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
1593
1612
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -1595,12 +1614,14 @@ const cdktnProviderProjectOptions: CdktnProviderProjectOptions = { ... }
1595
1614
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.publishTasks">publishTasks</a></code> | <code>boolean</code> | Define publishing tasks that can be executed manually as well as workflows. |
1596
1615
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | Find commits that should be considered releasable Used to decide if a release is required. |
1597
1616
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
1617
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
1598
1618
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
1599
1619
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
1600
1620
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
1601
1621
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>string</code> | CRON schedule to trigger new releases. |
1602
1622
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>string</code> | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. |
1603
1623
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
1624
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseWorkflowEnv">releaseWorkflowEnv</a></code> | <code>{[ key: string ]: string}</code> | Build environment variables for release workflows. |
1604
1625
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>string</code> | The name of the default release workflow. |
1605
1626
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | A set of workflow steps to execute in order to setup the workflow container. |
1606
1627
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.versionrcOptions">versionrcOptions</a></code> | <code>{[ key: string ]: any}</code> | Custom configuration used when creating changelog with commit-and-tag-version package. |
@@ -1609,14 +1630,18 @@ const cdktnProviderProjectOptions: CdktnProviderProjectOptions = { ... }
1609
1630
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.workflowRunsOnGroup">workflowRunsOnGroup</a></code> | <code>projen.GroupRunnerOptions</code> | Github Runner Group selection options. |
1610
1631
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | The name of the main release branch. |
1611
1632
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
1612
- | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
1633
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
1634
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
1635
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configured). |
1636
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.biome">biome</a></code> | <code>boolean</code> | Setup Biome. |
1637
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.biomeOptions">biomeOptions</a></code> | <code>projen.javascript.BiomeOptions</code> | Biome options. |
1613
1638
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>boolean</code> | Define a GitHub workflow for building PRs. |
1614
1639
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.buildWorkflowOptions">buildWorkflowOptions</a></code> | <code>projen.javascript.BuildWorkflowOptions</code> | Options for PR build workflow. |
1615
1640
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>projen.github.workflows.Triggers</code> | Build workflow triggers. |
1616
1641
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
1617
1642
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
1618
- | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
1619
- | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
1643
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`. |
1644
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token. |
1620
1645
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | License copyright owner. |
1621
1646
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | The copyright years to put in the LICENSE file. |
1622
1647
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.dependabot">dependabot</a></code> | <code>boolean</code> | Use dependabot to handle dependency upgrades. |
@@ -1644,7 +1669,7 @@ const cdktnProviderProjectOptions: CdktnProviderProjectOptions = { ... }
1644
1669
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>boolean</code> | DEPRECATED: renamed to `release`. |
1645
1670
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Workflow steps to use in order to bootstrap this repo. |
1646
1671
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
1647
- | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version to use in GitHub workflows. |
1672
+ | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
1648
1673
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
1649
1674
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
1650
1675
  | <code><a href="#@cdktn/provider-project.CdktnProviderProjectOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a `tsconfig.dev.json` file. |
@@ -2252,6 +2277,19 @@ this will be what you `package.json` will eventually include.
2252
2277
 
2253
2278
  ---
2254
2279
 
2280
+ ##### `bunVersion`<sup>Optional</sup> <a name="bunVersion" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.bunVersion"></a>
2281
+
2282
+ ```typescript
2283
+ public readonly bunVersion: string;
2284
+ ```
2285
+
2286
+ - *Type:* string
2287
+ - *Default:* "latest"
2288
+
2289
+ The version of Bun to use if using Bun as a package manager.
2290
+
2291
+ ---
2292
+
2255
2293
  ##### `codeArtifactOptions`<sup>Optional</sup> <a name="codeArtifactOptions" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.codeArtifactOptions"></a>
2256
2294
 
2257
2295
  ```typescript
@@ -2415,9 +2453,15 @@ public readonly maxNodeVersion: string;
2415
2453
  ```
2416
2454
 
2417
2455
  - *Type:* string
2418
- - *Default:* no max
2456
+ - *Default:* no maximum version is enforced
2457
+
2458
+ The maximum node version supported by this package. Most projects should not use this option.
2419
2459
 
2420
- Minimum node.js version to require via `engines` (inclusive).
2460
+ The value indicates that the package is incompatible with any newer versions of node.
2461
+ This requirement is enforced via the engines field.
2462
+
2463
+ You will normally not need to set this option.
2464
+ Consider this option only if your package is known to not function with newer versions of node.
2421
2465
 
2422
2466
  ---
2423
2467
 
@@ -2428,9 +2472,19 @@ public readonly minNodeVersion: string;
2428
2472
  ```
2429
2473
 
2430
2474
  - *Type:* string
2431
- - *Default:* no "engines" specified
2475
+ - *Default:* no minimum version is enforced
2476
+
2477
+ The minimum node version required by this package to function. Most projects should not use this option.
2478
+
2479
+ The value indicates that the package is incompatible with any older versions of node.
2480
+ This requirement is enforced via the engines field.
2481
+
2482
+ You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
2483
+ Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
2484
+ Setting this option has very high impact on the consumers of your package,
2485
+ as package managers will actively prevent usage with node versions you have marked as incompatible.
2432
2486
 
2433
- Minimum Node.js version to require via package.json `engines` (inclusive).
2487
+ To change the node version of your CI/CD workflows, use `workflowNodeVersion`.
2434
2488
 
2435
2489
  ---
2436
2490
 
@@ -2512,6 +2566,19 @@ GitHub secret which contains the NPM token to use when publishing packages.
2512
2566
 
2513
2567
  ---
2514
2568
 
2569
+ ##### `npmTrustedPublishing`<sup>Optional</sup> <a name="npmTrustedPublishing" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.npmTrustedPublishing"></a>
2570
+
2571
+ ```typescript
2572
+ public readonly npmTrustedPublishing: boolean;
2573
+ ```
2574
+
2575
+ - *Type:* boolean
2576
+ - *Default:* false
2577
+
2578
+ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
2579
+
2580
+ ---
2581
+
2515
2582
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.packageManager"></a>
2516
2583
 
2517
2584
  ```typescript
@@ -2584,7 +2651,7 @@ public readonly pnpmVersion: string;
2584
2651
  ```
2585
2652
 
2586
2653
  - *Type:* string
2587
- - *Default:* "7"
2654
+ - *Default:* "9"
2588
2655
 
2589
2656
  The version of PNPM to use if using PNPM as a package manager.
2590
2657
 
@@ -2673,6 +2740,21 @@ Options for Yarn Berry.
2673
2740
 
2674
2741
  ---
2675
2742
 
2743
+ ##### `bumpPackage`<sup>Optional</sup> <a name="bumpPackage" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.bumpPackage"></a>
2744
+
2745
+ ```typescript
2746
+ public readonly bumpPackage: string;
2747
+ ```
2748
+
2749
+ - *Type:* string
2750
+ - *Default:* A recent version of "commit-and-tag-version"
2751
+
2752
+ The `commit-and-tag-version` compatible package used to bump the package version, as a dependency string.
2753
+
2754
+ This can be any compatible package version, including the deprecated `standard-version@9`.
2755
+
2756
+ ---
2757
+
2676
2758
  ##### `jsiiReleaseVersion`<sup>Optional</sup> <a name="jsiiReleaseVersion" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.jsiiReleaseVersion"></a>
2677
2759
 
2678
2760
  ```typescript
@@ -2720,6 +2802,38 @@ Can not be set together with `majorVersion`.
2720
2802
 
2721
2803
  ---
2722
2804
 
2805
+ ##### `nextVersionCommand`<sup>Optional</sup> <a name="nextVersionCommand" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.nextVersionCommand"></a>
2806
+
2807
+ ```typescript
2808
+ public readonly nextVersionCommand: string;
2809
+ ```
2810
+
2811
+ - *Type:* string
2812
+ - *Default:* The next version will be determined based on the commit history and project settings.
2813
+
2814
+ A shell command to control the next version to release.
2815
+
2816
+ If present, this shell command will be run before the bump is executed, and
2817
+ it determines what version to release. It will be executed in the following
2818
+ environment:
2819
+
2820
+ - Working directory: the project directory.
2821
+ - `$VERSION`: the current version. Looks like `1.2.3`.
2822
+ - `$LATEST_TAG`: the most recent tag. Looks like `prefix-v1.2.3`, or may be unset.
2823
+ - `$SUGGESTED_BUMP`: the suggested bump action based on commits. One of `major|minor|patch|none`.
2824
+
2825
+ The command should print one of the following to `stdout`:
2826
+
2827
+ - Nothing: the next version number will be determined based on commit history.
2828
+ - `x.y.z`: the next version number will be `x.y.z`.
2829
+ - `major|minor|patch`: the next version number will be the current version number
2830
+ with the indicated component bumped.
2831
+
2832
+ This setting cannot be specified together with `minMajorVersion`; the invoked
2833
+ script can be used to achieve the effects of `minMajorVersion`.
2834
+
2835
+ ---
2836
+
2723
2837
  ##### `npmDistTag`<sup>Optional</sup> <a name="npmDistTag" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.npmDistTag"></a>
2724
2838
 
2725
2839
  ```typescript
@@ -2824,6 +2938,25 @@ be provided for the default branch.
2824
2938
 
2825
2939
  ---
2826
2940
 
2941
+ ##### `releaseEnvironment`<sup>Optional</sup> <a name="releaseEnvironment" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseEnvironment"></a>
2942
+
2943
+ ```typescript
2944
+ public readonly releaseEnvironment: string;
2945
+ ```
2946
+
2947
+ - *Type:* string
2948
+ - *Default:* no environment used, unless set at the artifact level
2949
+
2950
+ The GitHub Actions environment used for the release.
2951
+
2952
+ This can be used to add an explicit approval step to the release
2953
+ or limit who can initiate a release through environment protection rules.
2954
+
2955
+ When multiple artifacts are released, the environment can be overwritten
2956
+ on a per artifact basis.
2957
+
2958
+ ---
2959
+
2827
2960
  ##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseEveryCommit"></a>
2828
2961
 
2829
2962
  - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead
@@ -2913,6 +3046,19 @@ The release trigger to use.
2913
3046
 
2914
3047
  ---
2915
3048
 
3049
+ ##### `releaseWorkflowEnv`<sup>Optional</sup> <a name="releaseWorkflowEnv" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseWorkflowEnv"></a>
3050
+
3051
+ ```typescript
3052
+ public readonly releaseWorkflowEnv: {[ key: string ]: string};
3053
+ ```
3054
+
3055
+ - *Type:* {[ key: string ]: string}
3056
+ - *Default:* {}
3057
+
3058
+ Build environment variables for release workflows.
3059
+
3060
+ ---
3061
+
2916
3062
  ##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.releaseWorkflowName"></a>
2917
3063
 
2918
3064
  ```typescript
@@ -3017,6 +3163,36 @@ A directory which will contain build artifacts.
3017
3163
 
3018
3164
  ---
3019
3165
 
3166
+ ##### `auditDeps`<sup>Optional</sup> <a name="auditDeps" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.auditDeps"></a>
3167
+
3168
+ ```typescript
3169
+ public readonly auditDeps: boolean;
3170
+ ```
3171
+
3172
+ - *Type:* boolean
3173
+ - *Default:* false
3174
+
3175
+ Run security audit on dependencies.
3176
+
3177
+ When enabled, creates an "audit" task that checks for known security vulnerabilities
3178
+ in dependencies. By default, runs during every build and checks for "high" severity
3179
+ vulnerabilities or above in all dependencies (including dev dependencies).
3180
+
3181
+ ---
3182
+
3183
+ ##### `auditDepsOptions`<sup>Optional</sup> <a name="auditDepsOptions" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.auditDepsOptions"></a>
3184
+
3185
+ ```typescript
3186
+ public readonly auditDepsOptions: AuditOptions;
3187
+ ```
3188
+
3189
+ - *Type:* projen.javascript.AuditOptions
3190
+ - *Default:* default options
3191
+
3192
+ Security audit options.
3193
+
3194
+ ---
3195
+
3020
3196
  ##### `autoApproveUpgrades`<sup>Optional</sup> <a name="autoApproveUpgrades" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.autoApproveUpgrades"></a>
3021
3197
 
3022
3198
  ```typescript
@@ -3026,12 +3202,38 @@ public readonly autoApproveUpgrades: boolean;
3026
3202
  - *Type:* boolean
3027
3203
  - *Default:* true
3028
3204
 
3029
- Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
3205
+ Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configured).
3030
3206
 
3031
3207
  Throw if set to true but `autoApproveOptions` are not defined.
3032
3208
 
3033
3209
  ---
3034
3210
 
3211
+ ##### `biome`<sup>Optional</sup> <a name="biome" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.biome"></a>
3212
+
3213
+ ```typescript
3214
+ public readonly biome: boolean;
3215
+ ```
3216
+
3217
+ - *Type:* boolean
3218
+ - *Default:* false
3219
+
3220
+ Setup Biome.
3221
+
3222
+ ---
3223
+
3224
+ ##### `biomeOptions`<sup>Optional</sup> <a name="biomeOptions" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.biomeOptions"></a>
3225
+
3226
+ ```typescript
3227
+ public readonly biomeOptions: BiomeOptions;
3228
+ ```
3229
+
3230
+ - *Type:* projen.javascript.BiomeOptions
3231
+ - *Default:* default options
3232
+
3233
+ Biome options.
3234
+
3235
+ ---
3236
+
3035
3237
  ##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@cdktn/provider-project.CdktnProviderProjectOptions.property.buildWorkflow"></a>
3036
3238
 
3037
3239
  ```typescript
@@ -3108,7 +3310,7 @@ public readonly codeCov: boolean;
3108
3310
  - *Type:* boolean
3109
3311
  - *Default:* false
3110
3312
 
3111
- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`.
3313
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`.
3112
3314
 
3113
3315
  ---
3114
3316
 
@@ -3119,9 +3321,9 @@ public readonly codeCovTokenSecret: string;
3119
3321
  ```
3120
3322
 
3121
3323
  - *Type:* string
3122
- - *Default:* if this option is not specified, only public repositories are supported
3324
+ - *Default:* OIDC auth is used
3123
3325
 
3124
- Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
3326
+ Define the secret name for a specified https://codecov.io/ token.
3125
3327
 
3126
3328
  ---
3127
3329
 
@@ -3186,7 +3388,7 @@ public readonly depsUpgrade: boolean;
3186
3388
  ```
3187
3389
 
3188
3390
  - *Type:* boolean
3189
- - *Default:* true
3391
+ - *Default:* `true` for root projects, `false` for subprojects
3190
3392
 
3191
3393
  Use tasks and github workflows to handle dependency upgrades.
3192
3394
 
@@ -3483,7 +3685,7 @@ public readonly workflowGitIdentity: GitIdentity;
3483
3685
  ```
3484
3686
 
3485
3687
  - *Type:* projen.github.GitIdentity
3486
- - *Default:* GitHub Actions
3688
+ - *Default:* default GitHub Actions user
3487
3689
 
3488
3690
  The git identity to use in workflows.
3489
3691
 
@@ -3496,9 +3698,11 @@ public readonly workflowNodeVersion: string;
3496
3698
  ```
3497
3699
 
3498
3700
  - *Type:* string
3499
- - *Default:* same as `minNodeVersion`
3701
+ - *Default:* `minNodeVersion` if set, otherwise `lts/*`.
3702
+
3703
+ The node version used in GitHub Actions workflows.
3500
3704
 
3501
- The node version to use in GitHub workflows.
3705
+ Always use this option if your GitHub Actions workflows require a specific to run.
3502
3706
 
3503
3707
  ---
3504
3708
 
@@ -3587,7 +3791,7 @@ public readonly eslint: boolean;
3587
3791
  ```
3588
3792
 
3589
3793
  - *Type:* boolean
3590
- - *Default:* true
3794
+ - *Default:* true, unless biome is enabled
3591
3795
 
3592
3796
  Setup eslint.
3593
3797
 
@@ -3886,7 +4090,7 @@ public readonly jsiiVersion: string;
3886
4090
  ```
3887
4091
 
3888
4092
  - *Type:* string
3889
- - *Default:* "1.x"
4093
+ - *Default:* "~5.8.0"
3890
4094
 
3891
4095
  Version of the jsii compiler to use.
3892
4096
 
package/README.md CHANGED
@@ -76,7 +76,5 @@ For local development, [yarn link](https://classic.yarnpkg.com/en/docs/cli/link/
76
76
 
77
77
  ## CAVEATS
78
78
 
79
- 1. Maven is disabled
80
- 1. Java package: com.Io.Cdktn - unusual capitalization, typically should be io.cdktn or com.cdktn
81
- 1. Nuget is disabled
82
- 1. .NET namespace: Io.Cdktn.Cdktn.Providers.Random - has "Cdktn" duplicated
79
+ 1. Maven publishing is disabled (TODO: re-enable when requested and infra available)
80
+ 1. NuGet publishing is disabled (TODO: re-enable when requested and infra available)
@@ -67,6 +67,8 @@ class AutoApprove {
67
67
  pullRequests: workflows_model_1.JobPermission.WRITE,
68
68
  },
69
69
  env: {
70
+ PROJEN_APP_ID: "${{ secrets.PROJEN_APP_ID }}",
71
+ PROJEN_APP_PRIVATE_KEY: "${{ secrets.PROJEN_APP_PRIVATE_KEY }}",
70
72
  GIT_REF: "${{ github.event.pull_request.head.ref }}",
71
73
  GIT_REPO: "${{ github.event.pull_request.head.repo.full_name }}",
72
74
  PR_ID: "${{ github.event.pull_request.number }}",
@@ -76,4 +78,4 @@ class AutoApprove {
76
78
  }
77
79
  }
78
80
  exports.AutoApprove = AutoApprove;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1hcHByb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F1dG8tYXBwcm92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBa0U7QUFFbEU7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUErQjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV0RCxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ1YsaUJBQWlCLEVBQUU7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDO2FBQzdEO1NBQ0YsQ0FBQyxDQUFDO1FBRUYsUUFBUSxDQUFDLFdBQW1CLEdBQUc7WUFDOUIsS0FBSyxFQUFFLCtDQUErQztTQUN2RCxDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxpREFBaUQsQ0FBQztRQUM3RSxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ2YsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsRUFBRSxFQUFFLCtHQUErRztnQkFDbkgsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7d0JBQ3BCLElBQUksRUFBRSxpQ0FBaUM7d0JBQ3ZDLElBQUksRUFBRTs0QkFDSixRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxhQUFhLEVBQUUsbUNBQW1DO3lCQUNuRDtxQkFDRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsYUFBYTt3QkFDbkIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFOzRCQUNKLEdBQUcsRUFBRSxvQkFBb0I7NEJBQ3pCLFVBQVUsRUFBRSxxQkFBcUI7eUJBQ2xDO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxxREFBcUQ7d0JBQzNELEVBQUUsRUFBRSxnRkFBZ0Ysa0JBQWtCLHVGQUF1Rjt3QkFDN0wsR0FBRyxFQUFFLCtCQUErQjt3QkFDcEMsR0FBRyxFQUFFOzRCQUNILFFBQVEsRUFBRSwyQ0FBMkM7eUJBQ3REO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxrRUFBa0U7d0JBQ3hFLEVBQUUsRUFBRSxpRUFBaUU7d0JBQ3JFLEdBQUcsRUFBRSwrQkFBK0I7d0JBQ3BDLEdBQUcsRUFBRTs0QkFDSCxRQUFRLEVBQUUsNkJBQTZCO3lCQUN4QztxQkFDRjtpQkFDRjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtvQkFDNUIsWUFBWSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDbEM7Z0JBQ0QsR0FBRyxFQUFFO29CQUNILE9BQU8sRUFBRSwyQ0FBMkM7b0JBQ3BELFFBQVEsRUFBRSxzREFBc0Q7b0JBQ2hFLEtBQUssRUFBRSx5Q0FBeUM7aUJBQ2pEO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwRUQsa0NBb0VDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcblxuLyoqXG4gKiBBcHByb3ZlcyBQUnMgd2l0aCB0aGUgXCJhdXRvLWFwcHJvdmVcIiBsYWJlbFxuICovXG5leHBvcnQgY2xhc3MgQXV0b0FwcHJvdmUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0KSB7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSBwcm9qZWN0LmdpdGh1Yj8uYWRkV29ya2Zsb3coXCJhdXRvLWFwcHJvdmVcIik7XG5cbiAgICBpZiAoIXdvcmtmbG93KSB0aHJvdyBuZXcgRXJyb3IoXCJubyB3b3JrZmxvdyBkZWZpbmVkXCIpO1xuXG4gICAgd29ya2Zsb3cub24oe1xuICAgICAgcHVsbFJlcXVlc3RUYXJnZXQ6IHtcbiAgICAgICAgdHlwZXM6IFtcIm9wZW5lZFwiLCBcImxhYmVsZWRcIiwgXCJyZWFkeV9mb3JfcmV2aWV3XCIsIFwicmVvcGVuZWRcIl0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgKHdvcmtmbG93LmNvbmN1cnJlbmN5IGFzIGFueSkgPSB7XG4gICAgICBncm91cDogXCIke3sgZ2l0aHViLndvcmtmbG93IH19LSR7eyBnaXRodWIuaGVhZF9yZWYgfX1cIixcbiAgICB9O1xuXG4gICAgY29uc3QgbWFpbnRhaW5lclN0YXR1c2VzID0gYGZyb21KU09OKCdbXCJPV05FUlwiLCBcIk1FTUJFUlwiLCBcIkNPTExBQk9SQVRPUlwiXScpYDtcbiAgICB3b3JrZmxvdy5hZGRKb2JzKHtcbiAgICAgIGFwcHJvdmU6IHtcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBpZjogXCJjb250YWlucyhnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmxhYmVscy4qLm5hbWUsICdhdXRvLWFwcHJvdmUnKSAmJiBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmRyYWZ0ID09IGZhbHNlXCIsXG4gICAgICAgIHN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJHZW5lcmF0ZSB0b2tlblwiLFxuICAgICAgICAgICAgaWQ6IFwiZ2VuZXJhdGVfdG9rZW5cIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jcmVhdGUtZ2l0aHViLWFwcC10b2tlblwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBcImFwcC1pZFwiOiBcIiR7eyBlbnYuUFJPSkVOX0FQUF9JRCB9fVwiLFxuICAgICAgICAgICAgICBcInByaXZhdGUta2V5XCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX1BSSVZBVEVfS0VZIH19XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDaGVja291dCBQUlwiLFxuICAgICAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0XCIsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIHJlZjogXCIke3sgZW52LkdJVF9SRUYgfX1cIixcbiAgICAgICAgICAgICAgcmVwb3NpdG9yeTogXCIke3sgZW52LkdJVF9SRVBPIH19XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJBdXRvLWFwcHJvdmUgUFJzIGJ5IG90aGVyIHVzZXJzIGFzIHRlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgICAgICAgIGlmOiBgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC51c2VyLmxvZ2luICE9ICd0ZWFtLWNkay10ZXJyYWluW2JvdF0nICYmIChjb250YWlucygke21haW50YWluZXJTdGF0dXNlc30sIGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuYXV0aG9yX2Fzc29jaWF0aW9uKSB8fCBnaXRodWIuYWN0b3IgPT0gJ2RlcGVuZGFib3RbYm90XScpYCxcbiAgICAgICAgICAgIHJ1bjogXCJnaCBwciByZXZpZXcgJFBSX0lEIC0tYXBwcm92ZVwiLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgIEdIX1RPS0VOOiBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLnRva2VuIH19XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJBdXRvLWFwcHJvdmUgUFJzIGJ5IHRlYW0tY2RrLXRlcnJhaW5bYm90XSBhcyBnaXRodWItYWN0aW9uc1tib3RdXCIsXG4gICAgICAgICAgICBpZjogXCJnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnVzZXIubG9naW4gPT0gJ3RlYW0tY2RrLXRlcnJhaW5bYm90XSdcIixcbiAgICAgICAgICAgIHJ1bjogXCJnaCBwciByZXZpZXcgJFBSX0lEIC0tYXBwcm92ZVwiLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgIEdIX1RPS0VOOiBcIiR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICB9LFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBHSVRfUkVGOiBcIiR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVmIH19XCIsXG4gICAgICAgICAgR0lUX1JFUE86IFwiJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZXBvLmZ1bGxfbmFtZSB9fVwiLFxuICAgICAgICAgIFBSX0lEOiBcIiR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1hcHByb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F1dG8tYXBwcm92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBa0U7QUFFbEU7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUErQjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV0RCxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ1YsaUJBQWlCLEVBQUU7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDO2FBQzdEO1NBQ0YsQ0FBQyxDQUFDO1FBRUYsUUFBUSxDQUFDLFdBQW1CLEdBQUc7WUFDOUIsS0FBSyxFQUFFLCtDQUErQztTQUN2RCxDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxpREFBaUQsQ0FBQztRQUM3RSxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ2YsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsRUFBRSxFQUFFLCtHQUErRztnQkFDbkgsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7d0JBQ3BCLElBQUksRUFBRSxpQ0FBaUM7d0JBQ3ZDLElBQUksRUFBRTs0QkFDSixRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxhQUFhLEVBQUUsbUNBQW1DO3lCQUNuRDtxQkFDRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsYUFBYTt3QkFDbkIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFOzRCQUNKLEdBQUcsRUFBRSxvQkFBb0I7NEJBQ3pCLFVBQVUsRUFBRSxxQkFBcUI7eUJBQ2xDO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxxREFBcUQ7d0JBQzNELEVBQUUsRUFBRSxnRkFBZ0Ysa0JBQWtCLHVGQUF1Rjt3QkFDN0wsR0FBRyxFQUFFLCtCQUErQjt3QkFDcEMsR0FBRyxFQUFFOzRCQUNILFFBQVEsRUFBRSwyQ0FBMkM7eUJBQ3REO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxrRUFBa0U7d0JBQ3hFLEVBQUUsRUFBRSxpRUFBaUU7d0JBQ3JFLEdBQUcsRUFBRSwrQkFBK0I7d0JBQ3BDLEdBQUcsRUFBRTs0QkFDSCxRQUFRLEVBQUUsNkJBQTZCO3lCQUN4QztxQkFDRjtpQkFDRjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtvQkFDNUIsWUFBWSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDbEM7Z0JBQ0QsR0FBRyxFQUFFO29CQUNILGFBQWEsRUFBRSw4QkFBOEI7b0JBQzdDLHNCQUFzQixFQUFFLHVDQUF1QztvQkFDL0QsT0FBTyxFQUFFLDJDQUEyQztvQkFDcEQsUUFBUSxFQUFFLHNEQUFzRDtvQkFDaEUsS0FBSyxFQUFFLHlDQUF5QztpQkFDakQ7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRFRCxrQ0FzRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuXG4vKipcbiAqIEFwcHJvdmVzIFBScyB3aXRoIHRoZSBcImF1dG8tYXBwcm92ZVwiIGxhYmVsXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRvQXBwcm92ZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGphdmFzY3JpcHQuTm9kZVByb2plY3QpIHtcbiAgICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy5hZGRXb3JrZmxvdyhcImF1dG8tYXBwcm92ZVwiKTtcblxuICAgIGlmICghd29ya2Zsb3cpIHRocm93IG5ldyBFcnJvcihcIm5vIHdvcmtmbG93IGRlZmluZWRcIik7XG5cbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBwdWxsUmVxdWVzdFRhcmdldDoge1xuICAgICAgICB0eXBlczogW1wib3BlbmVkXCIsIFwibGFiZWxlZFwiLCBcInJlYWR5X2Zvcl9yZXZpZXdcIiwgXCJyZW9wZW5lZFwiXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAod29ya2Zsb3cuY29uY3VycmVuY3kgYXMgYW55KSA9IHtcbiAgICAgIGdyb3VwOiBcIiR7eyBnaXRodWIud29ya2Zsb3cgfX0tJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fVwiLFxuICAgIH07XG5cbiAgICBjb25zdCBtYWludGFpbmVyU3RhdHVzZXMgPSBgZnJvbUpTT04oJ1tcIk9XTkVSXCIsIFwiTUVNQkVSXCIsIFwiQ09MTEFCT1JBVE9SXCJdJylgO1xuICAgIHdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgYXBwcm92ZToge1xuICAgICAgICBydW5zT246IFtcInVidW50dS1sYXRlc3RcIl0sXG4gICAgICAgIGlmOiBcImNvbnRhaW5zKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSwgJ2F1dG8tYXBwcm92ZScpICYmIGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuZHJhZnQgPT0gZmFsc2VcIixcbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkdlbmVyYXRlIHRva2VuXCIsXG4gICAgICAgICAgICBpZDogXCJnZW5lcmF0ZV90b2tlblwiLFxuICAgICAgICAgICAgdXNlczogXCJhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuXCIsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIFwiYXBwLWlkXCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX0lEIH19XCIsXG4gICAgICAgICAgICAgIFwicHJpdmF0ZS1rZXlcIjogXCIke3sgZW52LlBST0pFTl9BUFBfUFJJVkFURV9LRVkgfX1cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNoZWNrb3V0IFBSXCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgcmVmOiBcIiR7eyBlbnYuR0lUX1JFRiB9fVwiLFxuICAgICAgICAgICAgICByZXBvc2l0b3J5OiBcIiR7eyBlbnYuR0lUX1JFUE8gfX1cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkF1dG8tYXBwcm92ZSBQUnMgYnkgb3RoZXIgdXNlcnMgYXMgdGVhbS1jZGstdGVycmFpblwiLFxuICAgICAgICAgICAgaWY6IGBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnVzZXIubG9naW4gIT0gJ3RlYW0tY2RrLXRlcnJhaW5bYm90XScgJiYgKGNvbnRhaW5zKCR7bWFpbnRhaW5lclN0YXR1c2VzfSwgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5hdXRob3JfYXNzb2NpYXRpb24pIHx8IGdpdGh1Yi5hY3RvciA9PSAnZGVwZW5kYWJvdFtib3RdJylgLFxuICAgICAgICAgICAgcnVuOiBcImdoIHByIHJldmlldyAkUFJfSUQgLS1hcHByb3ZlXCIsXG4gICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkF1dG8tYXBwcm92ZSBQUnMgYnkgdGVhbS1jZGstdGVycmFpbltib3RdIGFzIGdpdGh1Yi1hY3Rpb25zW2JvdF1cIixcbiAgICAgICAgICAgIGlmOiBcImdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudXNlci5sb2dpbiA9PSAndGVhbS1jZGstdGVycmFpbltib3RdJ1wiLFxuICAgICAgICAgICAgcnVuOiBcImdoIHByIHJldmlldyAkUFJfSUQgLS1hcHByb3ZlXCIsXG4gICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgICBwdWxsUmVxdWVzdHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIFBST0pFTl9BUFBfSUQ6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9JRCB9fVwiLFxuICAgICAgICAgIFBST0pFTl9BUFBfUFJJVkFURV9LRVk6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICAgIEdJVF9SRUY6IFwiJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZWYgfX1cIixcbiAgICAgICAgICBHSVRfUkVQTzogXCIke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnJlcG8uZnVsbF9uYW1lIH19XCIsXG4gICAgICAgICAgUFJfSUQ6IFwiJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubnVtYmVyIH19XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
package/lib/automerge.js CHANGED
@@ -64,6 +64,8 @@ class Automerge {
64
64
  contents: workflows_model_1.JobPermission.READ,
65
65
  },
66
66
  env: {
67
+ PROJEN_APP_ID: "${{ secrets.PROJEN_APP_ID }}",
68
+ PROJEN_APP_PRIVATE_KEY: "${{ secrets.PROJEN_APP_PRIVATE_KEY }}",
67
69
  GIT_REF: "${{ github.event.pull_request.head.ref }}",
68
70
  GIT_REPO: "${{ github.event.pull_request.head.repo.full_name }}",
69
71
  PR_ID: "${{ github.event.pull_request.number }}",
@@ -73,4 +75,4 @@ class Automerge {
73
75
  }
74
76
  }
75
77
  exports.Automerge = Automerge;
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21lcmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F1dG9tZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBa0U7QUFFbEU7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFDcEIsWUFBWSxPQUErQjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV0RCxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ1YsaUJBQWlCLEVBQUU7Z0JBQ2pCLEtBQUssRUFBRTtvQkFDTCxRQUFRO29CQUNSLFNBQVM7b0JBQ1Qsa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGFBQWE7aUJBQ2Q7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVGLFFBQVEsQ0FBQyxXQUFtQixHQUFHO1lBQzlCLEtBQUssRUFBRSwrQ0FBK0M7U0FDdkQsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsaURBQWlELENBQUM7UUFDN0UsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNmLFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQ3pCLEVBQUUsRUFBRSxrTEFBa0w7Z0JBQ3RMLEtBQUssRUFBRTtvQkFDTDt3QkFDRSxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFOzRCQUNKLEdBQUcsRUFBRSxvQkFBb0I7NEJBQ3pCLFVBQVUsRUFBRSxxQkFBcUI7eUJBQ2xDO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7d0JBQ3BCLElBQUksRUFBRSxpQ0FBaUM7d0JBQ3ZDLElBQUksRUFBRTs0QkFDSixRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxhQUFhLEVBQUUsbUNBQW1DO3lCQUNuRDtxQkFDRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsd0RBQXdEO3dCQUM5RCxFQUFFLEVBQUUsK0VBQStFLGtCQUFrQixzRkFBc0Y7d0JBQzNMLEdBQUcsRUFBRSxvQ0FBb0M7d0JBQ3pDLEdBQUcsRUFBRTs0QkFDSCxRQUFRLEVBQUUsMkNBQTJDO3lCQUN0RDtxQkFDRjtpQkFDRjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtpQkFDN0I7Z0JBQ0QsR0FBRyxFQUFFO29CQUNILE9BQU8sRUFBRSwyQ0FBMkM7b0JBQ3BELFFBQVEsRUFBRSxzREFBc0Q7b0JBQ2hFLEtBQUssRUFBRSx5Q0FBeUM7aUJBQ2pEO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqRUQsOEJBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcblxuLyoqXG4gKiBFbmFibGVzIEdpdEh1YidzIGJ1aWx0LWluIGF1dG9tZXJnZSBmb3IgUFJzIHdpdGggdGhlIFwiYXV0b21lcmdlXCIgbGFiZWxcbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9tZXJnZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGphdmFzY3JpcHQuTm9kZVByb2plY3QpIHtcbiAgICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy5hZGRXb3JrZmxvdyhcImF1dG9tZXJnZVwiKTtcblxuICAgIGlmICghd29ya2Zsb3cpIHRocm93IG5ldyBFcnJvcihcIm5vIHdvcmtmbG93IGRlZmluZWRcIik7XG5cbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBwdWxsUmVxdWVzdFRhcmdldDoge1xuICAgICAgICB0eXBlczogW1xuICAgICAgICAgIFwib3BlbmVkXCIsXG4gICAgICAgICAgXCJsYWJlbGVkXCIsXG4gICAgICAgICAgXCJyZWFkeV9mb3JfcmV2aWV3XCIsXG4gICAgICAgICAgXCJyZW9wZW5lZFwiLFxuICAgICAgICAgIFwic3luY2hyb25pemVcIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAod29ya2Zsb3cuY29uY3VycmVuY3kgYXMgYW55KSA9IHtcbiAgICAgIGdyb3VwOiBcIiR7eyBnaXRodWIud29ya2Zsb3cgfX0tJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fVwiLFxuICAgIH07XG5cbiAgICBjb25zdCBtYWludGFpbmVyU3RhdHVzZXMgPSBgZnJvbUpTT04oJ1tcIk9XTkVSXCIsIFwiTUVNQkVSXCIsIFwiQ09MTEFCT1JBVE9SXCJdJylgO1xuICAgIHdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgYXV0b21lcmdlOiB7XG4gICAgICAgIHJ1bnNPbjogW1widWJ1bnR1LWxhdGVzdFwiXSxcbiAgICAgICAgaWY6IFwiY29udGFpbnMoZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5sYWJlbHMuKi5uYW1lLCAnYXV0b21lcmdlJykgJiYgIWNvbnRhaW5zKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSwgJ2RvLW5vdC1tZXJnZScpICYmIGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuZHJhZnQgPT0gZmFsc2VcIixcbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgcmVmOiBcIiR7eyBlbnYuR0lUX1JFRiB9fVwiLFxuICAgICAgICAgICAgICByZXBvc2l0b3J5OiBcIiR7eyBlbnYuR0lUX1JFUE8gfX1cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkdlbmVyYXRlIHRva2VuXCIsXG4gICAgICAgICAgICBpZDogXCJnZW5lcmF0ZV90b2tlblwiLFxuICAgICAgICAgICAgdXNlczogXCJhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuXCIsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIFwiYXBwLWlkXCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX0lEIH19XCIsXG4gICAgICAgICAgICAgIFwicHJpdmF0ZS1rZXlcIjogXCIke3sgZW52LlBST0pFTl9BUFBfUFJJVkFURV9LRVkgfX1cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlR1cm4gb24gYXV0b21lcmdlIGZvciB0aGlzIFBSIGJ5IGEgdHJ1c3RlZCB1c2VyIG9yIGJvdFwiLFxuICAgICAgICAgICAgaWY6IGBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnVzZXIubG9naW4gPT0gJ3RlYW0tY2RrLXRlcnJhaW5bYm90XScgfHwgY29udGFpbnMoJHttYWludGFpbmVyU3RhdHVzZXN9LCBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmF1dGhvcl9hc3NvY2lhdGlvbikgfHwgZ2l0aHViLmFjdG9yID09ICdkZXBlbmRhYm90W2JvdF0nYCxcbiAgICAgICAgICAgIHJ1bjogXCJnaCBwciBtZXJnZSAtLWF1dG8gLS1zcXVhc2ggJFBSX0lEXCIsXG4gICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICB9LFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBHSVRfUkVGOiBcIiR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVmIH19XCIsXG4gICAgICAgICAgR0lUX1JFUE86IFwiJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZXBvLmZ1bGxfbmFtZSB9fVwiLFxuICAgICAgICAgIFBSX0lEOiBcIiR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21lcmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F1dG9tZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBa0U7QUFFbEU7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFDcEIsWUFBWSxPQUErQjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV0RCxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ1YsaUJBQWlCLEVBQUU7Z0JBQ2pCLEtBQUssRUFBRTtvQkFDTCxRQUFRO29CQUNSLFNBQVM7b0JBQ1Qsa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGFBQWE7aUJBQ2Q7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVGLFFBQVEsQ0FBQyxXQUFtQixHQUFHO1lBQzlCLEtBQUssRUFBRSwrQ0FBK0M7U0FDdkQsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsaURBQWlELENBQUM7UUFDN0UsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNmLFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQ3pCLEVBQUUsRUFBRSxrTEFBa0w7Z0JBQ3RMLEtBQUssRUFBRTtvQkFDTDt3QkFDRSxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFOzRCQUNKLEdBQUcsRUFBRSxvQkFBb0I7NEJBQ3pCLFVBQVUsRUFBRSxxQkFBcUI7eUJBQ2xDO3FCQUNGO29CQUNEO3dCQUNFLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7d0JBQ3BCLElBQUksRUFBRSxpQ0FBaUM7d0JBQ3ZDLElBQUksRUFBRTs0QkFDSixRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxhQUFhLEVBQUUsbUNBQW1DO3lCQUNuRDtxQkFDRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsd0RBQXdEO3dCQUM5RCxFQUFFLEVBQUUsK0VBQStFLGtCQUFrQixzRkFBc0Y7d0JBQzNMLEdBQUcsRUFBRSxvQ0FBb0M7d0JBQ3pDLEdBQUcsRUFBRTs0QkFDSCxRQUFRLEVBQUUsMkNBQTJDO3lCQUN0RDtxQkFDRjtpQkFDRjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtpQkFDN0I7Z0JBQ0QsR0FBRyxFQUFFO29CQUNILGFBQWEsRUFBRSw4QkFBOEI7b0JBQzdDLHNCQUFzQixFQUFFLHVDQUF1QztvQkFDL0QsT0FBTyxFQUFFLDJDQUEyQztvQkFDcEQsUUFBUSxFQUFFLHNEQUFzRDtvQkFDaEUsS0FBSyxFQUFFLHlDQUF5QztpQkFDakQ7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQW5FRCw4QkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuXG4vKipcbiAqIEVuYWJsZXMgR2l0SHViJ3MgYnVpbHQtaW4gYXV0b21lcmdlIGZvciBQUnMgd2l0aCB0aGUgXCJhdXRvbWVyZ2VcIiBsYWJlbFxuICovXG5leHBvcnQgY2xhc3MgQXV0b21lcmdlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCkge1xuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LmFkZFdvcmtmbG93KFwiYXV0b21lcmdlXCIpO1xuXG4gICAgaWYgKCF3b3JrZmxvdykgdGhyb3cgbmV3IEVycm9yKFwibm8gd29ya2Zsb3cgZGVmaW5lZFwiKTtcblxuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0VGFyZ2V0OiB7XG4gICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAgXCJvcGVuZWRcIixcbiAgICAgICAgICBcImxhYmVsZWRcIixcbiAgICAgICAgICBcInJlYWR5X2Zvcl9yZXZpZXdcIixcbiAgICAgICAgICBcInJlb3BlbmVkXCIsXG4gICAgICAgICAgXCJzeW5jaHJvbml6ZVwiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgICh3b3JrZmxvdy5jb25jdXJyZW5jeSBhcyBhbnkpID0ge1xuICAgICAgZ3JvdXA6IFwiJHt7IGdpdGh1Yi53b3JrZmxvdyB9fS0ke3sgZ2l0aHViLmhlYWRfcmVmIH19XCIsXG4gICAgfTtcblxuICAgIGNvbnN0IG1haW50YWluZXJTdGF0dXNlcyA9IGBmcm9tSlNPTignW1wiT1dORVJcIiwgXCJNRU1CRVJcIiwgXCJDT0xMQUJPUkFUT1JcIl0nKWA7XG4gICAgd29ya2Zsb3cuYWRkSm9icyh7XG4gICAgICBhdXRvbWVyZ2U6IHtcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBpZjogXCJjb250YWlucyhnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmxhYmVscy4qLm5hbWUsICdhdXRvbWVyZ2UnKSAmJiAhY29udGFpbnMoZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5sYWJlbHMuKi5uYW1lLCAnZG8tbm90LW1lcmdlJykgJiYgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5kcmFmdCA9PSBmYWxzZVwiLFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICByZWY6IFwiJHt7IGVudi5HSVRfUkVGIH19XCIsXG4gICAgICAgICAgICAgIHJlcG9zaXRvcnk6IFwiJHt7IGVudi5HSVRfUkVQTyB9fVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJhdGUgdG9rZW5cIixcbiAgICAgICAgICAgIGlkOiBcImdlbmVyYXRlX3Rva2VuXCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgXCJhcHAtaWRcIjogXCIke3sgZW52LlBST0pFTl9BUFBfSUQgfX1cIixcbiAgICAgICAgICAgICAgXCJwcml2YXRlLWtleVwiOiBcIiR7eyBlbnYuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiVHVybiBvbiBhdXRvbWVyZ2UgZm9yIHRoaXMgUFIgYnkgYSB0cnVzdGVkIHVzZXIgb3IgYm90XCIsXG4gICAgICAgICAgICBpZjogYGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudXNlci5sb2dpbiA9PSAndGVhbS1jZGstdGVycmFpbltib3RdJyB8fCBjb250YWlucygke21haW50YWluZXJTdGF0dXNlc30sIGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuYXV0aG9yX2Fzc29jaWF0aW9uKSB8fCBnaXRodWIuYWN0b3IgPT0gJ2RlcGVuZGFib3RbYm90XSdgLFxuICAgICAgICAgICAgcnVuOiBcImdoIHByIG1lcmdlIC0tYXV0byAtLXNxdWFzaCAkUFJfSURcIixcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy50b2tlbiB9fVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIH0sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIFBST0pFTl9BUFBfSUQ6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9JRCB9fVwiLFxuICAgICAgICAgIFBST0pFTl9BUFBfUFJJVkFURV9LRVk6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICAgIEdJVF9SRUY6IFwiJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZWYgfX1cIixcbiAgICAgICAgICBHSVRfUkVQTzogXCIke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnJlcG8uZnVsbF9uYW1lIH19XCIsXG4gICAgICAgICAgUFJfSUQ6IFwiJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubnVtYmVyIH19XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -72,7 +72,8 @@ class DeprecatePackages {
72
72
  ].join("\n"),
73
73
  env: {
74
74
  NPM_REGISTRY: project.package.npmRegistry,
75
- NPM_TOKEN: "${{ secrets." + `${project.package.npmTokenSecret} }}`,
75
+ NPM_TOKEN: "${{ secrets." +
76
+ `${project.package.npmTokenSecret ?? "NPM_TOKEN"} }}`,
76
77
  },
77
78
  },
78
79
  // Unfortunately, PyPi has no mechanism to mark a package as deprecated: https://github.com/pypi/warehouse/issues/345
@@ -88,4 +89,4 @@ class DeprecatePackages {
88
89
  }
89
90
  }
90
91
  exports.DeprecatePackages = DeprecatePackages;
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlLXBhY2thZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcHJlY2F0ZS1wYWNrYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBMkU7QUFTM0UsTUFBYSxpQkFBaUI7SUFDNUIsWUFBWSxPQUFvQixFQUFFLE9BQWlDO1FBQ2pFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUU1RCxNQUFNLHdCQUF3QixHQUFHO1lBQy9CLHdFQUF3RSxZQUFZLFdBQVc7WUFDL0YsZ0ZBQWdGO1NBQ2pGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osaURBQWlEO1FBQ2pELE1BQU0sdUJBQXVCLEdBQUc7WUFDOUIsOEZBQThGLFlBQVksR0FBRztZQUM3RywySEFBMkg7WUFDM0gsZ0hBQWdIO1lBQ2hILGtDQUFrQyxZQUFZLDRFQUE0RTtZQUMxSCxnR0FBZ0c7WUFDaEcsRUFBRTtTQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWQsTUFBTSxlQUFlLEdBQVk7WUFDL0IsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxHQUFHLEVBQUUsNEZBQTRGLHVCQUF1QixJQUFJO1NBQzdILENBQUM7UUFDRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDdEIsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxxREFBcUQ7Z0JBQzNELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztnQkFDakMsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUsa0JBQWtCO3FCQUN6QjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsZUFBZTt3QkFDckIsSUFBSSxFQUFFLG9CQUFvQjt3QkFDMUIsSUFBSSxFQUFFOzRCQUNKLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYzt5QkFDdkM7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsR0FBRyxFQUFFLGNBQWM7cUJBQ3BCO29CQUNEO3dCQUNFLElBQUksRUFBRSwwQkFBMEI7d0JBQ2hDLEVBQUUsRUFBRSxjQUFjO3dCQUNsQixHQUFHLEVBQUU7NEJBQ0gsK0RBQStEOzRCQUMvRCxxQ0FBcUMsRUFBRSx1QkFBdUI7NEJBQzlELHVEQUF1RDt5QkFDeEQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3FCQUNiO29CQUNEO3dCQUNFLElBQUksRUFBRSw4QkFBOEI7d0JBQ3BDLEVBQUUsRUFBRSx3R0FBd0c7d0JBQzVHLEdBQUcsRUFBRTs0QkFDSCxrREFBa0Q7NEJBQ2xELGlCQUFpQixXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyx3QkFBd0IsR0FBRzt5QkFDdEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNaLEdBQUcsRUFBRTs0QkFDSCxZQUFZLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXOzRCQUN6QyxTQUFTLEVBQ1AsY0FBYyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEtBQUs7eUJBQzFEO3FCQUNGO29CQUNELHFIQUFxSDtvQkFDckgsK0ZBQStGO29CQUMvRiw0SEFBNEg7b0JBQzVILHNFQUFzRTtpQkFDdkU7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLFFBQVEsRUFBRSwrQkFBYSxDQUFDLElBQUk7aUJBQzdCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFyRkQsOENBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBKc2lpUHJvamVjdCB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IFBhY2thZ2VJbmZvIH0gZnJvbSBcIi4vcGFja2FnZS1pbmZvXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwcmVjYXRlUGFja2FnZXNPcHRpb25zIHtcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG4gIHBhY2thZ2VJbmZvOiBQYWNrYWdlSW5mbztcbiAgaXNEZXByZWNhdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlUGFja2FnZXMge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBKc2lpUHJvamVjdCwgb3B0aW9uczogRGVwcmVjYXRlUGFja2FnZXNPcHRpb25zKSB7XG4gICAgY29uc3QgeyBwcm92aWRlck5hbWUsIHBhY2thZ2VJbmZvLCBpc0RlcHJlY2F0ZWQgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBkZXByZWNhdGlvbk1lc3NhZ2VGb3JOUE0gPSBbXG4gICAgICBgU2VlIGh0dHBzOi8vY2RrLnRmL2ltcG9ydHMgZm9yIGRldGFpbHMgb24gaG93IHRvIGNvbnRpbnVlIHRvIHVzZSB0aGUgJHtwcm92aWRlck5hbWV9IHByb3ZpZGVyYCxcbiAgICAgIGBpbiB5b3VyIENESyBmb3IgVGVycmFmb3JtIChDREtURikgcHJvamVjdHMgYnkgZ2VuZXJhdGluZyB0aGUgYmluZGluZ3MgbG9jYWxseS5gLFxuICAgIF0uam9pbihcIiBcIik7XG4gICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL2dvL2lzc3Vlcy80MDM1N1xuICAgIGNvbnN0IGRlcHJlY2F0aW9uTWVzc2FnZUZvckdvID0gW1xuICAgICAgYC8vIERlcHJlY2F0ZWQ6IEhhc2hpQ29ycCBpcyBubyBsb25nZXIgcHVibGlzaGluZyBuZXcgdmVyc2lvbnMgb2YgdGhlIHByZWJ1aWx0IHByb3ZpZGVyIGZvciAke3Byb3ZpZGVyTmFtZX0uYCxcbiAgICAgIGAvLyBQcmV2aW91c2x5LXB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIHdpbGwgc3RpbGwgY29udGludWUgdG8gYmUgYXZhaWxhYmxlIGFzIGluc3RhbGxhYmxlIEdvIG1vZHVsZXMsYCxcbiAgICAgIGAvLyBidXQgdGhlc2Ugd2lsbCBub3QgYmUgY29tcGF0aWJsZSB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIENESyBmb3IgVGVycmFmb3JtIGFuZCBhcmUgbm90IGVsaWdpYmxlIGZvciBzdXBwb3J0LmAsXG4gICAgICBgLy8gWW91IGNhbiBjb250aW51ZSB0byB1c2UgdGhlICR7cHJvdmlkZXJOYW1lfSBwcm92aWRlciBpbiB5b3VyIENESyBmb3IgVGVycmFmb3JtIHByb2plY3RzIHdpdGggbmV3ZXIgdmVyc2lvbnMgb2YgQ0RLVEYsYCxcbiAgICAgIGAvLyBidXQgeW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSB0aGUgYmluZGluZ3MgbG9jYWxseS4gU2VlIGh0dHBzOi8vY2RrLnRmL2ltcG9ydHMgZm9yIGRldGFpbHMuYCxcbiAgICAgIGBgLFxuICAgIF0uam9pbihcIlxcXFxuXCIpO1xuXG4gICAgY29uc3QgZGVwcmVjYXRpb25TdGVwOiBKb2JTdGVwID0ge1xuICAgICAgbmFtZTogXCJNYXJrIHRoZSBHbyBtb2R1bGUgYXMgZGVwcmVjYXRlZFwiLFxuICAgICAgcnVuOiBgZmluZCAnLnJlcG8vZGlzdC9nbycgLW1pbmRlcHRoIDIgLW1heGRlcHRoIDQgLXR5cGUgZiAtbmFtZSAnZ28ubW9kJyB8IHhhcmdzIHNlZCAtaSAnMXN8Xnwke2RlcHJlY2F0aW9uTWVzc2FnZUZvckdvfXwnYCxcbiAgICB9O1xuICAgIGlmIChpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5wcmVQdWJsaXNoU3RlcHM/LnNwbGljZSgtMSwgMCwgZGVwcmVjYXRpb25TdGVwKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSBwcm9qZWN0LmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKTtcbiAgICBpZiAoIXJlbGVhc2VXb3JrZmxvdykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgcmVsZWFzZSB3b3JrZmxvdywgYWJvcnRpbmdcIik7XG4gICAgfVxuXG4gICAgcmVsZWFzZVdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgZGVwcmVjYXRlOiB7XG4gICAgICAgIG5hbWU6IFwiRGVwcmVjYXRlIHRoZSBwYWNrYWdlIGluIHBhY2thZ2UgbWFuYWdlcnMgaWYgbmVlZGVkXCIsXG4gICAgICAgIHJ1bnNPbjogW1widWJ1bnR1LWxhdGVzdFwiXSxcbiAgICAgICAgbmVlZHM6IFtcInJlbGVhc2VcIiwgXCJyZWxlYXNlX25wbVwiXSxcbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2V0dXAgTm9kZS5qc1wiLFxuICAgICAgICAgICAgdXNlczogXCJhY3Rpb25zL3NldHVwLW5vZGVcIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgXCJub2RlLXZlcnNpb25cIjogcHJvamVjdC5taW5Ob2RlVmVyc2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkluc3RhbGxcIixcbiAgICAgICAgICAgIHJ1bjogXCJ5YXJuIGluc3RhbGxcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2sgZGVwcmVjYXRpb24gc3RhdHVzXCIsXG4gICAgICAgICAgICBpZDogXCJjaGVja19zdGF0dXNcIixcbiAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICBgSVNfREVQUkVDQVRFRD0kKGNhdCBwYWNrYWdlLmpzb24gfCBqcSAuY2RrdGYuaXNEZXByZWNhdGVkIC1yKWAsXG4gICAgICAgICAgICAgIGBlY2hvIFwiaXNfZGVwcmVjYXRlZD0kSVNfREVQUkVDQVRFRFwiYCwgLy8gZm9yIGVhc2llciBkZWJ1Z2dpbmdcbiAgICAgICAgICAgICAgYGVjaG8gXCJpc19kZXByZWNhdGVkPSRJU19ERVBSRUNBVEVEXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJEZXByZWNhdGUgdGhlIHBhY2thZ2Ugb24gTlBNXCIsXG4gICAgICAgICAgICBpZjogXCJzdGVwcy5jaGVja19zdGF0dXMub3V0cHV0cy5pc19kZXByZWNhdGVkID09ICd0cnVlJyB8fCBzdGVwcy5jaGVja19zdGF0dXMub3V0cHV0cy5pc19kZXByZWNhdGVkID09IHRydWVcIixcbiAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAnbnBtIHNldCBcIi8vJE5QTV9SRUdJU1RSWS86X2F1dGhUb2tlbj0kTlBNX1RPS0VOXCInLFxuICAgICAgICAgICAgICBgbnBtIGRlcHJlY2F0ZSAke3BhY2thZ2VJbmZvLm5wbS5uYW1lfSBcIiR7ZGVwcmVjYXRpb25NZXNzYWdlRm9yTlBNfVwiYCxcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICBOUE1fUkVHSVNUUlk6IHByb2plY3QucGFja2FnZS5ucG1SZWdpc3RyeSxcbiAgICAgICAgICAgICAgTlBNX1RPS0VOOlxuICAgICAgICAgICAgICAgIFwiJHt7IHNlY3JldHMuXCIgKyBgJHtwcm9qZWN0LnBhY2thZ2UubnBtVG9rZW5TZWNyZXR9IH19YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBQeVBpIGhhcyBubyBtZWNoYW5pc20gdG8gbWFyayBhIHBhY2thZ2UgYXMgZGVwcmVjYXRlZDogaHR0cHM6Ly9naXRodWIuY29tL3B5cGkvd2FyZWhvdXNlL2lzc3Vlcy8zNDVcbiAgICAgICAgICAvLyBNYXZlbiBhbHNvIG5ldmVyIG1vdmVkIHBhc3QgdGhlIHByb3Bvc2FsIHN0YWdlOiBodHRwczovL2dpdGh1Yi5jb20vcDRlbS9hcnRpZmFjdC1kZXByZWNhdGlvblxuICAgICAgICAgIC8vIE51R2V0IHN1cHBvcnRzIGRlcHJlY2F0aW9uLCBidXQgb25seSB2aWEgdGhlIHdlYiBVSTogaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL251Z2V0L251Z2V0LW9yZy9kZXByZWNhdGUtcGFja2FnZXNcbiAgICAgICAgICAvLyBHbyBkZXByZWNhdGlvbiBpcyBoYW5kbGVkIGluIHRoZSBcIlB1Ymxpc2ggdG8gR29cIiBzdGVwIChzZWUgbGluZSAzNylcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlLXBhY2thZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcHJlY2F0ZS1wYWNrYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFHSCx1RUFBMkU7QUFTM0UsTUFBYSxpQkFBaUI7SUFDNUIsWUFBWSxPQUFvQixFQUFFLE9BQWlDO1FBQ2pFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUU1RCxNQUFNLHdCQUF3QixHQUFHO1lBQy9CLHdFQUF3RSxZQUFZLFdBQVc7WUFDL0YsZ0ZBQWdGO1NBQ2pGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osaURBQWlEO1FBQ2pELE1BQU0sdUJBQXVCLEdBQUc7WUFDOUIsOEZBQThGLFlBQVksR0FBRztZQUM3RywySEFBMkg7WUFDM0gsZ0hBQWdIO1lBQ2hILGtDQUFrQyxZQUFZLDRFQUE0RTtZQUMxSCxnR0FBZ0c7WUFDaEcsRUFBRTtTQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWQsTUFBTSxlQUFlLEdBQVk7WUFDL0IsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxHQUFHLEVBQUUsNEZBQTRGLHVCQUF1QixJQUFJO1NBQzdILENBQUM7UUFDRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDdEIsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxxREFBcUQ7Z0JBQzNELE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDekIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztnQkFDakMsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUsa0JBQWtCO3FCQUN6QjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsZUFBZTt3QkFDckIsSUFBSSxFQUFFLG9CQUFvQjt3QkFDMUIsSUFBSSxFQUFFOzRCQUNKLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYzt5QkFDdkM7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsR0FBRyxFQUFFLGNBQWM7cUJBQ3BCO29CQUNEO3dCQUNFLElBQUksRUFBRSwwQkFBMEI7d0JBQ2hDLEVBQUUsRUFBRSxjQUFjO3dCQUNsQixHQUFHLEVBQUU7NEJBQ0gsK0RBQStEOzRCQUMvRCxxQ0FBcUMsRUFBRSx1QkFBdUI7NEJBQzlELHVEQUF1RDt5QkFDeEQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3FCQUNiO29CQUNEO3dCQUNFLElBQUksRUFBRSw4QkFBOEI7d0JBQ3BDLEVBQUUsRUFBRSx3R0FBd0c7d0JBQzVHLEdBQUcsRUFBRTs0QkFDSCxrREFBa0Q7NEJBQ2xELGlCQUFpQixXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyx3QkFBd0IsR0FBRzt5QkFDdEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNaLEdBQUcsRUFBRTs0QkFDSCxZQUFZLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXOzRCQUN6QyxTQUFTLEVBQ1AsY0FBYztnQ0FDZCxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLFdBQVcsS0FBSzt5QkFDeEQ7cUJBQ0Y7b0JBQ0QscUhBQXFIO29CQUNySCwrRkFBK0Y7b0JBQy9GLDRIQUE0SDtvQkFDNUgsc0VBQXNFO2lCQUN2RTtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRGRCw4Q0FzRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IEpzaWlQcm9qZWN0IH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXByZWNhdGVQYWNrYWdlc09wdGlvbnMge1xuICBwcm92aWRlck5hbWU6IHN0cmluZztcbiAgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvO1xuICBpc0RlcHJlY2F0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVQYWNrYWdlcyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEpzaWlQcm9qZWN0LCBvcHRpb25zOiBEZXByZWNhdGVQYWNrYWdlc09wdGlvbnMpIHtcbiAgICBjb25zdCB7IHByb3ZpZGVyTmFtZSwgcGFja2FnZUluZm8sIGlzRGVwcmVjYXRlZCB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGRlcHJlY2F0aW9uTWVzc2FnZUZvck5QTSA9IFtcbiAgICAgIGBTZWUgaHR0cHM6Ly9jZGsudGYvaW1wb3J0cyBmb3IgZGV0YWlscyBvbiBob3cgdG8gY29udGludWUgdG8gdXNlIHRoZSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXJgLFxuICAgICAgYGluIHlvdXIgQ0RLIGZvciBUZXJyYWZvcm0gKENES1RGKSBwcm9qZWN0cyBieSBnZW5lcmF0aW5nIHRoZSBiaW5kaW5ncyBsb2NhbGx5LmAsXG4gICAgXS5qb2luKFwiIFwiKTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9nb2xhbmcvZ28vaXNzdWVzLzQwMzU3XG4gICAgY29uc3QgZGVwcmVjYXRpb25NZXNzYWdlRm9yR28gPSBbXG4gICAgICBgLy8gRGVwcmVjYXRlZDogSGFzaGlDb3JwIGlzIG5vIGxvbmdlciBwdWJsaXNoaW5nIG5ldyB2ZXJzaW9ucyBvZiB0aGUgcHJlYnVpbHQgcHJvdmlkZXIgZm9yICR7cHJvdmlkZXJOYW1lfS5gLFxuICAgICAgYC8vIFByZXZpb3VzbHktcHVibGlzaGVkIHZlcnNpb25zIG9mIHRoaXMgcHJlYnVpbHQgcHJvdmlkZXIgd2lsbCBzdGlsbCBjb250aW51ZSB0byBiZSBhdmFpbGFibGUgYXMgaW5zdGFsbGFibGUgR28gbW9kdWxlcyxgLFxuICAgICAgYC8vIGJ1dCB0aGVzZSB3aWxsIG5vdCBiZSBjb21wYXRpYmxlIHdpdGggbmV3ZXIgdmVyc2lvbnMgb2YgQ0RLIGZvciBUZXJyYWZvcm0gYW5kIGFyZSBub3QgZWxpZ2libGUgZm9yIHN1cHBvcnQuYCxcbiAgICAgIGAvLyBZb3UgY2FuIGNvbnRpbnVlIHRvIHVzZSB0aGUgJHtwcm92aWRlck5hbWV9IHByb3ZpZGVyIGluIHlvdXIgQ0RLIGZvciBUZXJyYWZvcm0gcHJvamVjdHMgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBDREtURixgLFxuICAgICAgYC8vIGJ1dCB5b3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIHRoZSBiaW5kaW5ncyBsb2NhbGx5LiBTZWUgaHR0cHM6Ly9jZGsudGYvaW1wb3J0cyBmb3IgZGV0YWlscy5gLFxuICAgICAgYGAsXG4gICAgXS5qb2luKFwiXFxcXG5cIik7XG5cbiAgICBjb25zdCBkZXByZWNhdGlvblN0ZXA6IEpvYlN0ZXAgPSB7XG4gICAgICBuYW1lOiBcIk1hcmsgdGhlIEdvIG1vZHVsZSBhcyBkZXByZWNhdGVkXCIsXG4gICAgICBydW46IGBmaW5kICcucmVwby9kaXN0L2dvJyAtbWluZGVwdGggMiAtbWF4ZGVwdGggNCAtdHlwZSBmIC1uYW1lICdnby5tb2QnIHwgeGFyZ3Mgc2VkIC1pICcxc3xefCR7ZGVwcmVjYXRpb25NZXNzYWdlRm9yR299fCdgLFxuICAgIH07XG4gICAgaWYgKGlzRGVwcmVjYXRlZCkge1xuICAgICAgcGFja2FnZUluZm8ucHVibGlzaFRvR28/LnByZVB1Ymxpc2hTdGVwcz8uc3BsaWNlKC0xLCAwLCBkZXByZWNhdGlvblN0ZXApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VXb3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpO1xuICAgIGlmICghcmVsZWFzZVdvcmtmbG93KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCByZWxlYXNlIHdvcmtmbG93LCBhYm9ydGluZ1wiKTtcbiAgICB9XG5cbiAgICByZWxlYXNlV29ya2Zsb3cuYWRkSm9icyh7XG4gICAgICBkZXByZWNhdGU6IHtcbiAgICAgICAgbmFtZTogXCJEZXByZWNhdGUgdGhlIHBhY2thZ2UgaW4gcGFja2FnZSBtYW5hZ2VycyBpZiBuZWVkZWRcIixcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBuZWVkczogW1wicmVsZWFzZVwiLCBcInJlbGVhc2VfbnBtXCJdLFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlLmpzXCIsXG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvc2V0dXAtbm9kZVwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBcIm5vZGUtdmVyc2lvblwiOiBwcm9qZWN0Lm1pbk5vZGVWZXJzaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5zdGFsbFwiLFxuICAgICAgICAgICAgcnVuOiBcInlhcm4gaW5zdGFsbFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDaGVjayBkZXByZWNhdGlvbiBzdGF0dXNcIixcbiAgICAgICAgICAgIGlkOiBcImNoZWNrX3N0YXR1c1wiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgIGBJU19ERVBSRUNBVEVEPSQoY2F0IHBhY2thZ2UuanNvbiB8IGpxIC5jZGt0Zi5pc0RlcHJlY2F0ZWQgLXIpYCxcbiAgICAgICAgICAgICAgYGVjaG8gXCJpc19kZXByZWNhdGVkPSRJU19ERVBSRUNBVEVEXCJgLCAvLyBmb3IgZWFzaWVyIGRlYnVnZ2luZ1xuICAgICAgICAgICAgICBgZWNobyBcImlzX2RlcHJlY2F0ZWQ9JElTX0RFUFJFQ0FURURcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkRlcHJlY2F0ZSB0aGUgcGFja2FnZSBvbiBOUE1cIixcbiAgICAgICAgICAgIGlmOiBcInN0ZXBzLmNoZWNrX3N0YXR1cy5vdXRwdXRzLmlzX2RlcHJlY2F0ZWQgPT0gJ3RydWUnIHx8IHN0ZXBzLmNoZWNrX3N0YXR1cy5vdXRwdXRzLmlzX2RlcHJlY2F0ZWQgPT0gdHJ1ZVwiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICducG0gc2V0IFwiLy8kTlBNX1JFR0lTVFJZLzpfYXV0aFRva2VuPSROUE1fVE9LRU5cIicsXG4gICAgICAgICAgICAgIGBucG0gZGVwcmVjYXRlICR7cGFja2FnZUluZm8ubnBtLm5hbWV9IFwiJHtkZXByZWNhdGlvbk1lc3NhZ2VGb3JOUE19XCJgLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgIE5QTV9SRUdJU1RSWTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICAgICAgICBOUE1fVE9LRU46XG4gICAgICAgICAgICAgICAgXCIke3sgc2VjcmV0cy5cIiArXG4gICAgICAgICAgICAgICAgYCR7cHJvamVjdC5wYWNrYWdlLm5wbVRva2VuU2VjcmV0ID8/IFwiTlBNX1RPS0VOXCJ9IH19YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBQeVBpIGhhcyBubyBtZWNoYW5pc20gdG8gbWFyayBhIHBhY2thZ2UgYXMgZGVwcmVjYXRlZDogaHR0cHM6Ly9naXRodWIuY29tL3B5cGkvd2FyZWhvdXNlL2lzc3Vlcy8zNDVcbiAgICAgICAgICAvLyBNYXZlbiBhbHNvIG5ldmVyIG1vdmVkIHBhc3QgdGhlIHByb3Bvc2FsIHN0YWdlOiBodHRwczovL2dpdGh1Yi5jb20vcDRlbS9hcnRpZmFjdC1kZXByZWNhdGlvblxuICAgICAgICAgIC8vIE51R2V0IHN1cHBvcnRzIGRlcHJlY2F0aW9uLCBidXQgb25seSB2aWEgdGhlIHdlYiBVSTogaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL251Z2V0L251Z2V0LW9yZy9kZXByZWNhdGUtcGFja2FnZXNcbiAgICAgICAgICAvLyBHbyBkZXByZWNhdGlvbiBpcyBoYW5kbGVkIGluIHRoZSBcIlB1Ymxpc2ggdG8gR29cIiBzdGVwIChzZWUgbGluZSAzNylcbiAgICAgICAgXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
package/lib/index.js CHANGED
@@ -49,8 +49,6 @@ const githubActionPinnedVersions = {
49
49
  "imjohnbo/issue-bot": "572eed14422c4d6ca37e870f97e7da209422f5bd", // v3.4.4
50
50
  "peter-evans/create-pull-request": "271a8d0340265f705b14b6d32b9829c1cb33d45e", // v7.0.8
51
51
  "slackapi/slack-github-action": "485a9d42d3a73031f12ec201c457e2162c45d02d", // v2.0.0
52
- // TODO: Bump to projen >0.91.24, tibdex/github-app-token is deprecated!
53
- "tibdex/github-app-token": "3beb63f4bd073e61482598c45c71c1019b59b73a", // v2.1.0
54
52
  "actions/create-github-app-token": "29824e69f54612133e76f7eaac726eef6c875baf", // v2.2.1
55
53
  };
56
54
  class CdktnProviderProject extends projen_1.cdk.JsiiProject {
@@ -59,15 +57,15 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
59
57
  // TODO: Confirm default Author Name
60
58
  authorName = "CDK Terrain Maintainers", authorAddress = "https://cdktn.io", namespace = "cdktn", githubNamespace = "cdktn-io", mavenEndpoint = "https://central.sonatype.com", // TODO
61
59
  nugetOrg = "Io.Cdktn", // TODO
62
- mavenOrg = "Io.Cdktn", // TODO
63
- } = options;
60
+ mavenOrg = "cdktn", // TODO
61
+ npmTrustedPublishing, } = options;
64
62
  const [fqproviderName, providerVersion] = terraformProvider.split("@");
65
63
  const providerName = fqproviderName.split("/").pop();
66
64
  assert(providerName, `${terraformProvider} doesn't seem to be valid`);
67
65
  assert(!providerName.endsWith("-go"), "providerName may not end with '-go' as this can conflict with repos for go packages");
68
- const nugetName = `${nugetOrg}.${(0, change_case_1.pascalCase)(namespace)}.Providers.${(0, change_case_1.pascalCase)(providerName)}`;
69
- const mavenGroupId = options.mavenGroupId ?? `com.${mavenOrg}`;
70
- const mavenName = `${mavenGroupId}.${namespace}.providers.${getMavenName(providerName)}`;
66
+ const nugetName = `${nugetOrg}.Providers.${(0, change_case_1.pascalCase)(providerName)}`;
67
+ const mavenGroupId = options.mavenGroupId ?? `io.${mavenOrg}`;
68
+ const mavenName = `${mavenGroupId}.providers.${getMavenName(providerName)}`;
71
69
  const repository = `${githubNamespace}/${namespace}-provider-${providerName.replace(/-/g, "")}`;
72
70
  const repositoryUrl = `github.com/${repository}`;
73
71
  const packageInfo = {
@@ -179,6 +177,7 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
179
177
  workflowRunsOn,
180
178
  licensed: false, // we do supply our own license file with a custom header
181
179
  releaseToNpm: true,
180
+ npmTrustedPublishing: npmTrustedPublishing ?? false,
182
181
  name: packageInfo.npm.name,
183
182
  description: `Prebuilt ${providerName} Provider for Terraform CDK (cdktf)`,
184
183
  keywords: ["cdktf", "terraform", "cdk", "provider", providerName],
@@ -258,6 +257,12 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
258
257
  // always publish a new GitHub release, even when publishing to a particular package manager fails
259
258
  const releaseWorkflow = this.tryFindObjectFile(".github/workflows/release.yml");
260
259
  releaseWorkflow?.addOverride("jobs.release_github.needs", "release");
260
+ // Trusted publishing requires npm >=11.5.1 which ships with Node 24
261
+ if (npmTrustedPublishing) {
262
+ this.github
263
+ ?.tryFindWorkflow("release")
264
+ ?.file?.patch(projen_1.JsonPatch.replace("/jobs/release_npm/steps/0/with/node-version", "24.x"));
265
+ }
261
266
  // ensure we don't fail if the release file is not present
262
267
  const checkExistingTagStep = this.release.defaultBranch.workflow.jobs.release.steps.find((s) => "id" in s && s.id === "check_tag_exists");
263
268
  const oldExistingTagRun = checkExistingTagStep.run;
@@ -444,10 +449,10 @@ class CdktnProviderProject extends projen_1.cdk.JsiiProject {
444
449
  }
445
450
  exports.CdktnProviderProject = CdktnProviderProject;
446
451
  _a = JSII_RTTI_SYMBOL_1;
447
- CdktnProviderProject[_a] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.7.28" };
452
+ CdktnProviderProject[_a] = { fqn: "@cdktn/provider-project.CdktnProviderProject", version: "0.7.29" };
448
453
  function prettyAssertEqual(subject, expected, message) {
449
454
  if (subject !== expected) {
450
455
  throw new Error(`${message ?? "Assertion failed"}: expected ${JSON.stringify(expected)} but got ${JSON.stringify(subject)}`);
451
456
  }
452
457
  }
453
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBMEQ7QUFDMUQsaUNBQWtDO0FBQ2xDLDZDQUF5QztBQUN6QyxtQ0FBK0M7QUFFL0Msc0RBQW9FO0FBQ3BFLHFEQUFnRDtBQUNoRCxpREFBNkM7QUFDN0MsK0VBQXlFO0FBQ3pFLDJDQUF3QztBQUN4QyxpREFBNkM7QUFDN0MsMkRBQXVEO0FBQ3ZELDZEQUF5RDtBQUN6RCw2Q0FBMEM7QUFDMUMsNkRBQXlEO0FBQ3pELG1EQUErQztBQUMvQyxtREFBK0M7QUFDL0MsK0NBQTJDO0FBRTNDLHlEQUFxRDtBQUNyRCxxRUFBMEU7QUFDMUUsNkRBQW1FO0FBQ25FLG9EQUFrRTtBQUVsRSxtSEFBbUg7QUFDbkgsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFtRDVCLE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBb0IsRUFBVSxFQUFFO0lBQ3BELE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUM5QyxDQUFDLENBQUMsR0FBRyxZQUFZLFdBQVc7UUFDNUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUc7SUFDakMsa0JBQWtCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUN6RSwyQkFBMkIsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ2xGLHVCQUF1QixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDOUUsc0JBQXNCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM3RSxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLG9CQUFvQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDM0Usb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsU0FB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QUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9kSCxvREFnZUM7OztBQUVELFNBQVMsaUJBQWlCLENBQUksT0FBVSxFQUFFLFFBQVcsRUFBRSxPQUFnQjtJQUNyRSxJQUFJLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsT0FBTyxJQUFJLGtCQUFrQixjQUFjLElBQUksQ0FBQyxTQUFTLENBQzFELFFBQVEsQ0FDVCxZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDdkMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuaW1wb3J0IGFzc2VydCA9IHJlcXVpcmUoXCJhc3NlcnRcIik7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSBcImNoYW5nZS1jYXNlXCI7XG5pbXBvcnQgeyBUZXh0RmlsZSwgY2RrLCBnaXRodWIgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlIH0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQWxlcnRPcGVuUHJzIH0gZnJvbSBcIi4vYWxlcnQtb3Blbi1wcnNcIjtcbmltcG9ydCB7IEF1dG9BcHByb3ZlIH0gZnJvbSBcIi4vYXV0by1hcHByb3ZlXCI7XG5pbXBvcnQgeyBBdXRvQ2xvc2VDb21tdW5pdHlJc3N1ZXMgfSBmcm9tIFwiLi9hdXRvLWNsb3NlLWNvbW11bml0eS1pc3N1ZXNcIjtcbmltcG9ydCB7IEF1dG9tZXJnZSB9IGZyb20gXCIuL2F1dG9tZXJnZVwiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmltcG9ydCB7IENvcHlyaWdodEhlYWRlcnMgfSBmcm9tIFwiLi9jb3B5cmlnaHQtaGVhZGVyc1wiO1xuaW1wb3J0IHsgQ3VzdG9taXplZExpY2Vuc2UgfSBmcm9tIFwiLi9jdXN0b21pemVkLWxpY2Vuc2VcIjtcbmltcG9ydCB7IERlcGVuZGFib3QgfSBmcm9tIFwiLi9kZXBlbmRhYm90XCI7XG5pbXBvcnQgeyBEZXByZWNhdGVQYWNrYWdlcyB9IGZyb20gXCIuL2RlcHJlY2F0ZS1wYWNrYWdlc1wiO1xuaW1wb3J0IHsgRm9yY2VSZWxlYXNlIH0gZnJvbSBcIi4vZm9yY2UtcmVsZWFzZVwiO1xuaW1wb3J0IHsgR2l0aHViSXNzdWVzIH0gZnJvbSBcIi4vZ2l0aHViLWlzc3Vlc1wiO1xuaW1wb3J0IHsgTG9ja0lzc3VlcyB9IGZyb20gXCIuL2xvY2staXNzdWVzXCI7XG5pbXBvcnQgeyBQYWNrYWdlSW5mbyB9IGZyb20gXCIuL3BhY2thZ2UtaW5mb1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJVcGdyYWRlIH0gZnJvbSBcIi4vcHJvdmlkZXItdXBncmFkZVwiO1xuaW1wb3J0IHsgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGUgfSBmcm9tIFwiLi9zY3JpcHRzL2NoZWNrLWZvci11cGdyYWRlc1wiO1xuaW1wb3J0IHsgU2hvdWxkUmVsZWFzZVNjcmlwdEZpbGUgfSBmcm9tIFwiLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVJhbmRvbUNyb24sIFNjaGVkdWxlIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG4vLyBlbnN1cmUgbmV3IHByb2plY3RzIHN0YXJ0IHdpdGggMS4wLjAgc28gdGhhdCBldmVyeSBmb2xsb3dpbmcgYnJlYWtpbmcgY2hhbmdlIGxlYWRzIHRvIGFuIGluY3JlYXNlZCBtYWpvciB2ZXJzaW9uXG5jb25zdCBNSU5fTUFKT1JfVkVSU0lPTiA9IDE7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrdG5Qcm92aWRlclByb2plY3RPcHRpb25zIGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHVzZUN1c3RvbUdpdGh1YlJ1bm5lcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRlcnJhZm9ybVByb3ZpZGVyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBjb25zdHJ1Y3RzVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBmb3JjZU1ham9yVmVyc2lvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0bi1pb1wiXG4gICAqIHByZXZpb3VzbHkgd2FzIFwiY2RrdGZcIi4gVXNlZCBmb3IgR2l0SHViIG9yZyBuYW1lIGFuZCBwYWNrYWdlIHNjb3BpbmdcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yk5hbWVzcGFjZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbWF2ZW5FbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiSW8uQ2RrdG5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbnVnZXRPcmc/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuT3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJpby4ke21hdmVuT3JnfVwiXG4gICAqL1xuICByZWFkb25seSBtYXZlbkdyb3VwSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgeWVhciBvZiB0aGUgY3JlYXRpb24gb2YgdGhlIHJlcG9zaXRvcnksIGZvciBjb3B5cmlnaHQgcHVycG9zZXMuXG4gICAqIFdpbGwgZmFsbCBiYWNrIHRvIHRoZSBjdXJyZW50IHllYXIgaWYgbm90IHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0aW9uWWVhcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgcHJlYnVpbHQgcHJvdmlkZXIgaXMgZGVwcmVjYXRlZC5cbiAgICogSWYgdHJ1ZSwgbm8gbmV3IHZlcnNpb25zIHdpbGwgYmUgcHVibGlzaGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZXByZWNhdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGRhdGUgd2hlbiB0aGUgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBkZXByZWNhdGVkLCB0byBiZSB1c2VkIGluIHRoZSBSRUFETUUgdGV4dC5cbiAgICogSWYgbm8gZGF0ZSBpcyBwcm92aWRlZCwgdGhlbiB0aGUgZGF0ZSBvZiB0aGUgYnVpbGQgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBkZXByZWNhdGlvbkRhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcIkhhc2hpQ29ycCwgSW5jLlwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlZT86IHN0cmluZztcbn1cblxuY29uc3QgZ2V0TWF2ZW5OYW1lID0gKHByb3ZpZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIFtcIm51bGxcIiwgXCJyYW5kb21cIl0uaW5jbHVkZXMocHJvdmlkZXJOYW1lKVxuICAgID8gYCR7cHJvdmlkZXJOYW1lfV9wcm92aWRlcmBcbiAgICA6IHByb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG59O1xuXG5jb25zdCBnaXRodWJBY3Rpb25QaW5uZWRWZXJzaW9ucyA9IHtcbiAgXCJhY3Rpb25zL2NoZWNrb3V0XCI6IFwiMTFiZDcxOTAxYmJlNWIxNjMwY2VlYTczZDI3NTk3MzY0YzlhZjY4M1wiLCAvLyB2NC4yLjJcbiAgXCJhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0XCI6IFwiOTU4MTVjMzhjZjJmZjIxNjQ4NjljYmFiNzlkYThkMWY0MjJiYzg5ZVwiLCAvLyB2NC4yLjFcbiAgXCJhY3Rpb25zL2dpdGh1Yi1zY3JpcHRcIjogXCI2MGEwZDgzMDM5Yzc0YTRhZWU1NDM1MDhkMmZmY2IxYzM3OTljZGVhXCIsIC8vIHY3LjAuMVxuICBcImFjdGlvbnMvc2V0dXAtZG90bmV0XCI6IFwiNjdhMzU3M2M5YTk4NmEzZjljNTk0NTM5ZjRhYjUxMWQ1N2JiM2NlOVwiLCAvLyB2NC4zLjFcbiAgXCJhY3Rpb25zL3NldHVwLWdvXCI6IFwiMGFhY2NmZDE1MGQ1MGNjYWViNThlYmQ4OGQzNmU5MTk2N2E1ZjM1YlwiLCAvLyB2NS40LjBcbiAgXCJhY3Rpb25zL3NldHVwLWphdmFcIjogXCIzYTRmNmUxYWY1MDRjZjZhMzE4NTVmYTg5OWM2YWE1MzU1YmE2YzEyXCIsIC8vIHY0LjcuMFxuICBcImFjdGlvbnMvc2V0dXAtbm9kZVwiOiBcImNkY2E3MzY1YjJkYWRiOGFhZDBhMzNiYzc2MDE4NTZmZmFiY2M0OGVcIiwgLy8gdjQuMy4wXG4gIFwiYWN0aW9ucy9zZXR1cC1weXRob25cIjogXCI0MjM3NTUyNGUyM2M0MTJkOTNmYjY3YjQ5OTU4YjQ5MWZjZTcxYzM4XCIsIC8vIHY1LjQuMFxuICBcImFjdGlvbnMvc3RhbGVcIjogXCI1YmVmNjRmMTlkN2ZhY2ZiMjViMzdiNDE0NDgyYzcxNjRkNjM5NjM5XCIsIC8vIHY5LjEuMFxuICBcImFjdGlvbnMvdXBsb2FkLWFydGlmYWN0XCI6IFwiZWExNjVmOGQ2NWI2ZTc1YjU0MDQ0OWU5MmI0ODg2ZjQzNjA3ZmEwMlwiLCAvLyB2NC42LjJcbiAgXCJhbWFubm4vYWN0aW9uLXNlbWFudGljLXB1bGwtcmVxdWVzdFwiOlxuICAgIFwiMDcyMzM4N2ZhYWY5YjM4YWRlZjQ3NzVjZDQyY2ZkNTE1NWVkNjAxN1wiLCAvLyB2NS41LjNcbiAgXCJkZXNzYW50L2xvY2stdGhyZWFkc1wiOiBcIjFiZjdlYzI1MDUxZmU3YzAwYmRkMTdlNmE3Y2YzZDdiZmI3ZGM3NzFcIiwgLy8gdjUuMC4xXG4gIFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiOiBcIjMyNjM4ZGEyZDRlODFkNTZhMDc2NGFhMTU0Nzg4MmZjNGQyMDk2MzZcIiwgLy8gdjEuMS4zXG4gIFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiOiBcImI5Y2Q1NGEzYzM0OWQzZjM4ZTg4ODE1NTVkNjE2Y2VkMjY5ODYyZGRcIiwgLy8gdjMuMS4yXG4gIFwiaW1qb2huYm8vaXNzdWUtYm90XCI6IFwiNTcyZWVkMTQ0MjJjNGQ2Y2EzN2U4NzBmOTdlN2RhMjA5NDIyZjViZFwiLCAvLyB2My40LjRcbiAgXCJwZXRlci1ldmFucy9jcmVhdGUtcHVsbC1yZXF1ZXN0XCI6IFwiMjcxYThkMDM0MDI2NWY3MDViMTRiNmQzMmI5ODI5YzFjYjMzZDQ1ZVwiLCAvLyB2Ny4wLjhcbiAgXCJzbGFja2FwaS9zbGFjay1naXRodWItYWN0aW9uXCI6IFwiNDg1YTlkNDJkM2E3MzAzMWYxMmVjMjAxYzQ1N2UyMTYyYzQ1ZDAyZFwiLCAvLyB2Mi4wLjBcbiAgLy8gVE9ETzogQnVtcCB0byBwcm9qZW4gPjAuOTEuMjQsIHRpYmRleC9naXRodWItYXBwLXRva2VuIGlzIGRlcHJlY2F0ZWQhXG4gIFwidGliZGV4L2dpdGh1Yi1hcHAtdG9rZW5cIjogXCIzYmViNjNmNGJkMDczZTYxNDgyNTk4YzQ1YzcxYzEwMTliNTliNzNhXCIsIC8vIHYyLjEuMFxuICBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIjogXCIyOTgyNGU2OWY1NDYxMjEzM2U3NmY3ZWFhYzcyNmVlZjZjODc1YmFmXCIsIC8vIHYyLjIuMVxufTtcblxuZXhwb3J0IGNsYXNzIENka3RuUHJvdmlkZXJQcm9qZWN0IGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrdG5Qcm92aWRlclByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXIsXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgY2RrdGZWZXJzaW9uLFxuICAgICAgY29uc3RydWN0c1ZlcnNpb24sXG4gICAgICBtaW5Ob2RlVmVyc2lvbixcbiAgICAgIGpzaWlWZXJzaW9uLFxuICAgICAgdHlwZXNjcmlwdFZlcnNpb24sXG4gICAgICBpc0RlcHJlY2F0ZWQsXG4gICAgICBkZXByZWNhdGlvbkRhdGUsXG4gICAgICAvLyBUT0RPOiBDb25maXJtIGRlZmF1bHQgQXV0aG9yIE5hbWVcbiAgICAgIGF1dGhvck5hbWUgPSBcIkNESyBUZXJyYWluIE1haW50YWluZXJzXCIsXG4gICAgICBhdXRob3JBZGRyZXNzID0gXCJodHRwczovL2Nka3RuLmlvXCIsXG4gICAgICBuYW1lc3BhY2UgPSBcImNka3RuXCIsXG4gICAgICBnaXRodWJOYW1lc3BhY2UgPSBcImNka3RuLWlvXCIsXG4gICAgICBtYXZlbkVuZHBvaW50ID0gXCJodHRwczovL2NlbnRyYWwuc29uYXR5cGUuY29tXCIsIC8vIFRPRE9cbiAgICAgIG51Z2V0T3JnID0gXCJJby5DZGt0blwiLCAvLyBUT0RPXG4gICAgICBtYXZlbk9yZyA9IFwiSW8uQ2RrdG5cIiwgLy8gVE9ET1xuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgW2ZxcHJvdmlkZXJOYW1lLCBwcm92aWRlclZlcnNpb25dID0gdGVycmFmb3JtUHJvdmlkZXIuc3BsaXQoXCJAXCIpO1xuICAgIGNvbnN0IHByb3ZpZGVyTmFtZSA9IGZxcHJvdmlkZXJOYW1lLnNwbGl0KFwiL1wiKS5wb3AoKTtcbiAgICBhc3NlcnQocHJvdmlkZXJOYW1lLCBgJHt0ZXJyYWZvcm1Qcm92aWRlcn0gZG9lc24ndCBzZWVtIHRvIGJlIHZhbGlkYCk7XG4gICAgYXNzZXJ0KFxuICAgICAgIXByb3ZpZGVyTmFtZS5lbmRzV2l0aChcIi1nb1wiKSxcbiAgICAgIFwicHJvdmlkZXJOYW1lIG1heSBub3QgZW5kIHdpdGggJy1nbycgYXMgdGhpcyBjYW4gY29uZmxpY3Qgd2l0aCByZXBvcyBmb3IgZ28gcGFja2FnZXNcIlxuICAgICk7XG5cbiAgICBjb25zdCBudWdldE5hbWUgPSBgJHtudWdldE9yZ30uJHtwYXNjYWxDYXNlKFxuICAgICAgbmFtZXNwYWNlXG4gICAgKX0uUHJvdmlkZXJzLiR7cGFzY2FsQ2FzZShwcm92aWRlck5hbWUpfWA7XG4gICAgY29uc3QgbWF2ZW5Hcm91cElkID0gb3B0aW9ucy5tYXZlbkdyb3VwSWQgPz8gYGNvbS4ke21hdmVuT3JnfWA7XG4gICAgY29uc3QgbWF2ZW5OYW1lID0gYCR7bWF2ZW5Hcm91cElkfS4ke25hbWVzcGFjZX0ucHJvdmlkZXJzLiR7Z2V0TWF2ZW5OYW1lKFxuICAgICAgcHJvdmlkZXJOYW1lXG4gICAgKX1gO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBgJHtnaXRodWJOYW1lc3BhY2V9LyR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgLy0vZyxcbiAgICAgIFwiXCJcbiAgICApfWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeVVybCA9IGBnaXRodWIuY29tLyR7cmVwb3NpdG9yeX1gO1xuXG4gICAgY29uc3QgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvID0ge1xuICAgICAgbnBtOiB7XG4gICAgICAgIG5hbWU6IGBAJHtuYW1lc3BhY2V9L3Byb3ZpZGVyLSR7cHJvdmlkZXJOYW1lfWAsXG4gICAgICB9LFxuICAgICAgcHl0aG9uOiB7XG4gICAgICAgIC8vIGRpc3ROYW1lOiBgJHtnaXRodWJOYW1lc3BhY2V9LSR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBkaXN0TmFtZTogYCR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIil9YCxcbiAgICAgICAgLy8gbW9kdWxlOiBgJHtnaXRodWJOYW1lc3BhY2V9XyR7bmFtZXNwYWNlfV9wcm92aWRlcl8ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBtb2R1bGU6IGAke25hbWVzcGFjZX1fcHJvdmlkZXJfJHtwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpfWAsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvTnVnZXQ6IHtcbiAgICAgICAgZG90TmV0TmFtZXNwYWNlOiBudWdldE5hbWUsXG4gICAgICAgIHBhY2thZ2VJZDogbnVnZXROYW1lLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiB7XG4gICAgICAgIGphdmFQYWNrYWdlOiBtYXZlbk5hbWUsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogbWF2ZW5Hcm91cElkLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IGAke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWV9YCxcbiAgICAgICAgbWF2ZW5FbmRwb2ludCxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9Hbzoge1xuICAgICAgICBtb2R1bGVOYW1lOiBgJHtyZXBvc2l0b3J5VXJsfS1nb2AsXG4gICAgICAgIGdpdFVzZXJFbWFpbDogXCJnaXRodWItdGVhbS1jZGstdGVycmFpbkBjZGt0bi5pb1wiLFxuICAgICAgICBnaXRVc2VyTmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBwcm92aWRlck5hbWUucmVwbGFjZSgvLS9nLCBcIlwiKSxcbiAgICAgICAgLy8gSW4gb3JkZXIgdG8gdXNlIHRoZSBjb3B5d3JpdGUgYWN0aW9uLCB3ZSBuZWVkIHRvIHJlYnVpbGQgdGhlIGZ1bGwgcHJlLXB1Ymxpc2ggc3RlcHMgd29ya2Zsb3cgdW5mb3J0dW5hdGVseVxuICAgICAgICAvLyBJZiBzb21lb25lIGtub3dzIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIG11dGF0aW9uIHdpdGggbWluaW1hbCBjdXN0b20gY29kZSwgcGxlYXNlIGRvIHNvXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBwYXRoOiBcIi5yZXBvXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsIERlcGVuZGVuY2llc1wiLFxuICAgICAgICAgICAgcnVuOiBcImNkIC5yZXBvICYmIHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkV4dHJhY3QgYnVpbGQgYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJ0YXIgLS1zdHJpcC1jb21wb25lbnRzPTEgLXh6dmYgZGlzdC9qcy8qLnRneiAtQyAucmVwb1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5XCIsXG4gICAgICAgICAgICBydW46IFwibXYgZGlzdCBkaXN0Lm9sZFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDcmVhdGUgZ28gYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwbyAmJiBucHggcHJvamVuIHBhY2thZ2U6Z29cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IGNvcHl3cml0ZSBoY2wgZmlsZVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvLy5jb3B5d3JpdGUuaGNsIC5yZXBvL2Rpc3QvZ28vLmNvcHl3cml0ZS5oY2xcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwby9kaXN0L2dvICYmIGNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBjb3B5d3JpdGUgaGNsIGZpbGVcIixcbiAgICAgICAgICAgIHJ1bjogXCJybSAtZiAucmVwby9kaXN0L2dvLy5jb3B5d3JpdGUuaGNsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBzb21lIHRleHQgZnJvbSB0aGUgUkVBRE1FIHRoYXQgZG9lc24ndCBhcHBseSB0byBHb1wiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgIFwic2VkIC1pICdzLyMgQ0RLVEYgcHJlYnVpbHQgYmluZGluZ3MgZm9yLyMgQ0RLVEYgR28gYmluZGluZ3MgZm9yLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80OTUxMTk0OVxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgICAgIGBzZWQgLWkgLWUgJy8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJBdmFpbGFibGVcIn0gUGFja2FnZXMvLC8jIyMgR28vIWInIC1lICcvIyMjIEdvLyFkO3A7IHMvIyMjIEdvLyMjIEdvIFBhY2thZ2UvJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIHNlZCAtZSBpcyBibGFjayBtYWdpYyBhbmQgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGUgc3RyaW5nIHJlcGxhY2UgZG9lc24ndCB3b3JrIHNvIGxldCdzIHRyeSBpdCBhZ2FpbjpcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgICAgICBgc2VkIC1pICdzLyMjIyBHby8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJHb1wifSBQYWNrYWdlLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnL0FQSS50eXBlc2NyaXB0Lm1kLywvWW91IGNhbiBhbHNvIHZpc2l0IGEgaG9zdGVkIHZlcnNpb24vIWInIC1lICdkJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICAgIGBzZWQgLWkgJ3N8RmluZCBhdXRvLWdlbmVyYXRlZCBkb2NzIGZvciB0aGlzIHByb3ZpZGVyIGhlcmU6fEZpbmQgYXV0by1nZW5lcmF0ZWQgZG9jcyBmb3IgdGhpcyBwcm92aWRlciBbaGVyZV0oaHR0cHM6Ly8ke3JlcG9zaXRvcnlVcmx9L2Jsb2IvbWFpbi9kb2NzL0FQSS5nby5tZCkufCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnLyMjIyBQcm92aWRlciBWZXJzaW9uLywvVGhlIHByb3ZpZGVyIHZlcnNpb24gY2FuIGJlIGFkanVzdGVkLyFiJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IHRoZSBSRUFETUUgZmlsZSB0byB0aGUgcGFyZW50IGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWQgLnJlcG8vZGlzdC9nby9SRUFETUUubWRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29sbGVjdCBnbyBBcnRpZmFjdFwiLFxuICAgICAgICAgICAgcnVuOiBcIm12IC5yZXBvL2Rpc3QgZGlzdFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JrZmxvd1J1bnNPbiA9IG9wdGlvbnMudXNlQ3VzdG9tR2l0aHViUnVubmVyXG4gICAgICA/IFtcImRlcG90LXVidW50dS0yNC4wNC04XCJdIC8vIDggY29yZSwgMzIgR0JcbiAgICAgIDogW1widWJ1bnR1LWxhdGVzdFwiXTsgLy8gNyBHQlxuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGF1dGhvckFkZHJlc3MsXG4gICAgICBhdXRob3JOYW1lLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgd29ya2Zsb3dSdW5zT24sXG4gICAgICBsaWNlbnNlZDogZmFsc2UsIC8vIHdlIGRvIHN1cHBseSBvdXIgb3duIGxpY2Vuc2UgZmlsZSB3aXRoIGEgY3VzdG9tIGhlYWRlclxuICAgICAgcmVsZWFzZVRvTnBtOiB0cnVlLFxuICAgICAgbmFtZTogcGFja2FnZUluZm8ubnBtLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYFByZWJ1aWx0ICR7cHJvdmlkZXJOYW1lfSBQcm92aWRlciBmb3IgVGVycmFmb3JtIENESyAoY2RrdGYpYCxcbiAgICAgIGtleXdvcmRzOiBbXCJjZGt0ZlwiLCBcInRlcnJhZm9ybVwiLCBcImNka1wiLCBcInByb3ZpZGVyXCIsIHByb3ZpZGVyTmFtZV0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICAgICAgcmVwb3NpdG9yeTogYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnl9LmdpdGAsXG4gICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBkZXBzVXBncmFkZTogIWlzRGVwcmVjYXRlZCxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbHM6IFtcImF1dG9tZXJnZVwiLCBcImF1dG8tYXBwcm92ZVwiLCBcImRlcGVuZGVuY2llc1wiXSxcbiAgICAgICAgICBzY2hlZHVsZTogVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLldFRUtMWSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBweXRob246IHBhY2thZ2VJbmZvLnB5dGhvbixcbiAgICAgIC8vIFRPRE86IFJlLWVuYWJsZSBpZiByZXF1ZXN0ZWQgYW5kIHdoZW4gYXZhaWxhYmxlXG4gICAgICAvLyBwdWJsaXNoVG9OdWdldDogcGFja2FnZUluZm8ucHVibGlzaFRvTnVnZXQsXG4gICAgICAvLyBwdWJsaXNoVG9NYXZlbjogcGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4sXG4gICAgICBwdWJsaXNoVG9HbzogcGFja2FnZUluZm8ucHVibGlzaFRvR28sXG4gICAgICByZWxlYXNlRmFpbHVyZUlzc3VlOiB0cnVlLFxuICAgICAgcGVlckRlcGVuZGVuY3lPcHRpb25zOiB7XG4gICAgICAgIHBpbm5lZERldkRlcGVuZGVuY3k6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHdvcmtmbG93R2l0SWRlbnRpdHk6IHtcbiAgICAgICAgbmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIGVtYWlsOiBcImdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICB9LFxuICAgICAgbWluTWFqb3JWZXJzaW9uOiBNSU5fTUFKT1JfVkVSU0lPTixcbiAgICAgIHN0YWxlOiB0cnVlLFxuICAgICAgc3RhbGVPcHRpb25zOiB7XG4gICAgICAgIGlzc3Vlczoge1xuICAgICAgICAgIHN0YWxlTGFiZWw6IFwic3RhbGVcIixcbiAgICAgICAgICBkYXlzQmVmb3JlU3RhbGU6IDQ1LFxuICAgICAgICAgIHN0YWxlTWVzc2FnZTpcbiAgICAgICAgICAgIFwiNDUgZGF5cyBoYXZlIHBhc3NlZCBzaW5jZSB0aGlzIGlzc3VlIHdhcyBvcGVuZWQsIGFuZCBJIGFzc3VtZSBvdGhlciBwdWJsaXNoZXMgaGF2ZSBzdWNjZWVkZWQgaW4gdGhlIG1lYW50aW1lLiBcIiArXG4gICAgICAgICAgICBcIklmIG5vIG9uZSByZW1vdmVzIHRoZSBgc3RhbGVgIGxhYmVsIG9yIGNvbW1lbnRzLCBJJ20gZ29pbmcgdG8gYXV0by1jbG9zZSB0aGlzIGlzc3VlIGluIDE0IGRheXMuXCIsXG4gICAgICAgICAgZGF5c0JlZm9yZUNsb3NlOiAxNCxcbiAgICAgICAgICBjbG9zZU1lc3NhZ2U6XG4gICAgICAgICAgICBcIjIgbW9udGhzIGhhdmUgcGFzc2VkLCBzbyBJJ20gY2xvc2luZyB0aGlzIGlzc3VlIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBvdGhlciBwdWJsaXNoZXMgaGF2ZSBzdWNjZWVkZWQgaW4gdGhlIG1lYW50aW1lLlwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWxsUmVxdWVzdDoge1xuICAgICAgICAgIHN0YWxlTGFiZWw6IFwic3RhbGVcIixcbiAgICAgICAgICBkYXlzQmVmb3JlU3RhbGU6IDEsXG4gICAgICAgICAgc3RhbGVNZXNzYWdlOiBgQ2xvc2luZyB0aGlzIFBSLCBpZiBpdCBoYXMgbm90IG1lcmdlZCB0aGVyZSBpcyBtb3N0IGxpa2VseSBhIENJIG9yIENES1RGIGlzc3VlIHByZXZlbnRpbmcgaXQgZnJvbSBtZXJnaW5nLiBJZiB0aGlzIGhhcyBiZWVuIGEgbWFudWFsIFBSLCBwbGVhc2UgcmVvcGVuIGl0IGFuZCBhZGQgdGhlIFxcYG5vLWF1dG8tY2xvc2VcXGAgbGFiZWwgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nIGFnYWluLmAsXG4gICAgICAgICAgZGF5c0JlZm9yZUNsb3NlOiAwLFxuICAgICAgICAgIGV4ZW1wdExhYmVsczogW1wibm8tYXV0by1jbG9zZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlOiBmYWxzZSxcbiAgICAgIGRvY2dlbjogZmFsc2UsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIFwiZG90LXByb3BAXjUuMi4wXCIsXG4gICAgICBcIkBhY3Rpb25zL2NvcmVAXjEuMS4wXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NvcmVcIixcbiAgICAgIFwiQGFjdGlvbi12YWxpZGF0b3IvY2xpXCJcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBtZW1vcnkgaXMgN0dCOiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlc1xuICAgIC8vIEN1c3RvbSBSdW5uZXJzIHdlIHVzZSBoYXZlIDMyR0Igb2YgbWVtb3J5XG4gICAgLy8gVGhlIGJlbG93IG51bWJlcnMgc2V0IGhlYXAgbGltaXRzIHRoYXQgYXJlIH4xZ2IgYW5kIH4wLjVnYiBsZXNzLCByZXNwZWN0aXZlbHksIHRoYW4gdGhlIHRvdGFsIGF2YWlsYWJsZSBtZW1vcnlcbiAgICBjb25zdCBtYXhPbGRTcGFjZVNpemUgPSBvcHRpb25zLnVzZUN1c3RvbUdpdGh1YlJ1bm5lciA/IFwiMzE3NDRcIiA6IFwiNjY1NlwiO1xuXG4gICAgLy8gR29sYW5nIG5lZWRzIG1vcmUgbWVtb3J5IHRvIGJ1aWxkXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiTk9ERV9PUFRJT05TXCIsXG4gICAgICBgLS1tYXgtb2xkLXNwYWNlLXNpemU9JHttYXhPbGRTcGFjZVNpemV9YFxuICAgICk7XG5cbiAgICB0aGlzLnRhc2tzLmFkZEVudmlyb25tZW50KFwiQ0hFQ0tQT0lOVF9ESVNBQkxFXCIsIFwiMVwiKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVGFzayA9IHRoaXMuYWRkVGFzayhcInZhbGlkYXRlLXdvcmtmbG93c1wiLCB7XG4gICAgICBleGVjOiBgZmluZCAuLy5naXRodWIvd29ya2Zsb3dzIC10eXBlIGYgLW5hbWUgXCIqLnltbFwiIC1wcmludDAgfCB4YXJncyAtMCAtbiAxIG5weCBhY3Rpb24tdmFsaWRhdG9yYCxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVRhc2suZGVzY3JpcHRpb24gPVxuICAgICAgXCJMaW50IHRoZSBZQU1MIGZpbGVzIGdlbmVyYXRlZCBieSBQcm9qZW4gdG8gZGVmaW5lIEdpdEh1YiBBY3Rpb25zIGFuZCBXb3JrZmxvd3MsIGNoZWNraW5nIHRoZW0gYWdhaW5zdCBwdWJsaXNoZWQgSlNPTiBzY2hlbWFzXCI7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odmFsaWRhdGVUYXNrKTtcblxuICAgIHRoaXMucGFja2FnZS5hZGRQYWNrYWdlUmVzb2x1dGlvbnMoXCJAdHlwZXMveWFyZ3NAMTcuMC4xM1wiKTtcblxuICAgIGNvbnN0IHNldFNhZmVEaXJlY3RvcnkgPSB7XG4gICAgICBuYW1lOiBcIlNldCBnaXQgY29uZmlnIHNhZmUuZGlyZWN0b3J5XCIsXG4gICAgICBydW46IFwiZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLWFkZCBzYWZlLmRpcmVjdG9yeSAkKHB3ZClcIixcbiAgICB9O1xuXG4gICAgKCh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXSkucHVzaChcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuICAgICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5zcGxpY2UoXG4gICAgICAxLFxuICAgICAgMCxcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuXG4gICAgLy8gYWx3YXlzIHB1Ymxpc2ggYSBuZXcgR2l0SHViIHJlbGVhc2UsIGV2ZW4gd2hlbiBwdWJsaXNoaW5nIHRvIGEgcGFydGljdWxhciBwYWNrYWdlIG1hbmFnZXIgZmFpbHNcbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFwiXG4gICAgKTtcbiAgICByZWxlYXNlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwiam9icy5yZWxlYXNlX2dpdGh1Yi5uZWVkc1wiLCBcInJlbGVhc2VcIik7XG5cbiAgICAvLyBlbnN1cmUgd2UgZG9uJ3QgZmFpbCBpZiB0aGUgcmVsZWFzZSBmaWxlIGlzIG5vdCBwcmVzZW50XG4gICAgY29uc3QgY2hlY2tFeGlzdGluZ1RhZ1N0ZXAgPSAoXG4gICAgICB0aGlzLnJlbGVhc2UgYXMgYW55XG4gICAgKS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5maW5kKFxuICAgICAgKHM6IG9iamVjdCkgPT4gXCJpZFwiIGluIHMgJiYgcy5pZCA9PT0gXCJjaGVja190YWdfZXhpc3RzXCJcbiAgICApO1xuICAgIGNvbnN0IG9sZEV4aXN0aW5nVGFnUnVuOiBzdHJpbmcgPSBjaGVja0V4aXN0aW5nVGFnU3RlcC5ydW47XG4gICAgcHJldHR5QXNzZXJ0RXF1YWwoXG4gICAgICBvbGRFeGlzdGluZ1RhZ1J1bi5zcGxpdChcIlxcblwiKVswXSxcbiAgICAgIFwiVEFHPSQoY2F0IGRpc3QvcmVsZWFzZXRhZy50eHQpXCIsXG4gICAgICBcInJlbGVhc2Ugc3RlcCBjaGFuZ2VkLCBwbGVhc2UgY2hlY2sgaWYgdGhlIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICApO1xuICAgIGNoZWNrRXhpc3RpbmdUYWdTdGVwLnJ1biA9IGBpZiBbICEgLWYgZGlzdC9yZWxlYXNldGFnLnR4dCBdOyB0aGVuIChlY2hvIFwiZXhpc3RzPXRydWVcIiA+PiAkR0lUSFVCX09VVFBVVCkgJiYgZXhpdCAwOyBmaVxcbiR7b2xkRXhpc3RpbmdUYWdSdW59YDtcblxuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBjb25zdCB7IHVwZ3JhZGUsIHByIH0gPSAodGhpcy51cGdyYWRlV29ya2Zsb3cgYXMgYW55KS53b3JrZmxvd3NbMF0uam9icztcbiAgICAgIHVwZ3JhZGUuc3RlcHMuc3BsaWNlKDEsIDAsIHNldFNhZmVEaXJlY3RvcnkpO1xuICAgICAgcHIuc3RlcHMuc3BsaWNlKDEsIDAsIHNldFNhZmVEaXJlY3RvcnkpO1xuICAgIH1cblxuICAgIC8vIC8vIFRPRE86IFJlLWVuYWJsZSB3aGVuIE1hdmVuIHJlcXVlc3RlZCBhbmQgaW5mcmEgYXZhaWxhYmxlXG4gICAgLy8gLy8gRml4IG1hdmVuIGlzc3VlIChodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9wdWJsaWIvcHVsbC83NzcpXG4gICAgLy8gZ2l0aHViLkdpdEh1Yi5vZih0aGlzKT8udHJ5RmluZFdvcmtmbG93KFwicmVsZWFzZVwiKT8uZmlsZT8ucGF0Y2goXG4gICAgLy8gICBKc29uUGF0Y2guYWRkKFxuICAgIC8vICAgICBcIi9qb2JzL3JlbGVhc2VfbWF2ZW4vc3RlcHMvMTAvZW52L01BVkVOX09QVFNcIixcbiAgICAvLyAgICAgLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzcwMTUzOTYyL25leHVzLXN0YWdpbmctbWF2ZW4tcGx1Z2luLW1hdmVuLWRlcGxveS1mYWlsZWQtYW4tYXBpLWluY29tcGF0aWJpbGl0eS13YXMtZW5jb1xuICAgIC8vICAgICBcIi0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZhLnV0aWw9QUxMLVVOTkFNRUQgLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0PUFMTC1VTk5BTUVEIC0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZhLnRleHQ9QUxMLVVOTkFNRUQgLS1hZGQtb3BlbnM9amF2YS5kZXNrdG9wL2phdmEuYXd0LmZvbnQ9QUxMLVVOTkFNRURcIlxuICAgIC8vICAgKVxuICAgIC8vICk7XG5cbiAgICB0aGlzLnBpbkdpdGh1YkFjdGlvblZlcnNpb25zKGdpdGh1YkFjdGlvblBpbm5lZFZlcnNpb25zKTtcblxuICAgIG5ldyBDZGt0ZkNvbmZpZyh0aGlzLCB7XG4gICAgICB0ZXJyYWZvcm1Qcm92aWRlcixcbiAgICAgIHByb3ZpZGVyTmFtZSxcbiAgICAgIGZxcHJvdmlkZXJOYW1lLFxuICAgICAgcHJvdmlkZXJWZXJzaW9uLFxuICAgICAgY2RrdGZWZXJzaW9uLFxuICAgICAgY29uc3RydWN0c1ZlcnNpb24sXG4gICAgICBqc2lpVmVyc2lvbixcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uLFxuICAgICAgcGFja2FnZUluZm8sXG4gICAgICBnaXRodWJOYW1lc3BhY2UsXG4gICAgICBkZXByZWNhdGlvbkRhdGUsXG4gICAgICBpc0RlcHJlY2F0ZWQ6ICEhaXNEZXByZWNhdGVkLFxuICAgIH0pO1xuICAgIG5ldyBDdXN0b21pemVkTGljZW5zZSh0aGlzLCBvcHRpb25zLmNyZWF0aW9uWWVhciwgb3B0aW9ucy5saWNlbnNlZSk7XG4gICAgbmV3IEdpdGh1Yklzc3Vlcyh0aGlzLCB7IHByb3ZpZGVyTmFtZSB9KTtcbiAgICBuZXcgQXV0b0FwcHJvdmUodGhpcyk7XG4gICAgbmV3IEF1dG9DbG9zZUNvbW11bml0eUlzc3Vlcyh0aGlzLCB7IHByb3ZpZGVyTmFtZSB9KTtcbiAgICBuZXcgQXV0b21lcmdlKHRoaXMpO1xuICAgIG5ldyBMb2NrSXNzdWVzKHRoaXMpO1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIGNvbnN0IHVwZ3JhZGVTY3JpcHQgPSBuZXcgQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGUodGhpcywge1xuICAgICAgICBwcm92aWRlclZlcnNpb24sXG4gICAgICAgIGZxcHJvdmlkZXJOYW1lLFxuICAgICAgfSk7XG4gICAgICBuZXcgUHJvdmlkZXJVcGdyYWRlKHRoaXMsIHtcbiAgICAgICAgY2hlY2tGb3JVcGdyYWRlc1NjcmlwdFBhdGg6IHVwZ3JhZGVTY3JpcHQucGF0aCxcbiAgICAgICAgd29ya2Zsb3dSdW5zT24sXG4gICAgICAgIG5vZGVIZWFwU2l6ZTogbWF4T2xkU3BhY2VTaXplLFxuICAgICAgfSk7XG4gICAgICBuZXcgQWxlcnRPcGVuUHJzKHRoaXMsIHtcbiAgICAgICAgc2xhY2tXZWJob29rVXJsOiBcIiR7eyBzZWNyZXRzLkFMRVJUX1BSU19TTEFDS19XRUJIT09LX1VSTCB9fVwiLFxuICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgfSk7XG4gICAgICBuZXcgRGVwZW5kYWJvdCh0aGlzKTtcbiAgICB9XG5cbiAgICBuZXcgVGV4dEZpbGUodGhpcywgXCIuZ2l0aHViL0NPREVPV05FUlNcIiwge1xuICAgICAgbGluZXM6IFtcbiAgICAgICAgXCIjIFRoZXNlIG93bmVycyB3aWxsIGJlIHRoZSBkZWZhdWx0IG93bmVycyBmb3IgZXZlcnl0aGluZyBpbiBcIixcbiAgICAgICAgXCIjIHRoZSByZXBvLiBVbmxlc3MgYSBsYXRlciBtYXRjaCB0YWtlcyBwcmVjZWRlbmNlLCBcIixcbiAgICAgICAgXCIjIHRoZXkgd2lsbCBiZSByZXF1ZXN0ZWQgZm9yIHJldmlldyB3aGVuIHNvbWVvbmUgb3BlbnMgYSBcIixcbiAgICAgICAgXCIjIHB1bGwgcmVxdWVzdC5cIixcbiAgICAgICAgXCIqICAgICAgIEBjZGt0bi1pby90ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIG5ldyBTaG91bGRSZWxlYXNlU2NyaXB0RmlsZSh0aGlzLCB7fSk7XG5cbiAgICAgIGNvbnN0IHJlbGVhc2VUYXNrID0gdGhpcy50YXNrcy50cnlGaW5kKFwicmVsZWFzZVwiKSE7XG4gICAgICB0aGlzLnJlbW92ZVRhc2soXCJyZWxlYXNlXCIpO1xuICAgICAgdGhpcy5hZGRUYXNrKFwicmVsZWFzZVwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiByZWxlYXNlVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgc3RlcHM6IHJlbGVhc2VUYXNrLnN0ZXBzLFxuICAgICAgICBlbnY6IChyZWxlYXNlVGFzayBhcyBhbnkpLl9lbnYsXG4gICAgICAgIGNvbmRpdGlvbjogXCJub2RlIC4vc2NyaXB0cy9zaG91bGQtcmVsZWFzZS5qc1wiLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZFRhc2soXCJ1bmNvbmRpdGlvbmFsLXJlbGVhc2VcIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcmVsZWFzZVRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgIHN0ZXBzOiByZWxlYXNlVGFzay5zdGVwcyxcbiAgICAgICAgZW52OiAocmVsZWFzZVRhc2sgYXMgYW55KS5fZW52LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlbGVhc2VKb2JTdGVwczogYW55W10gPSAoXG4gICAgICAgIHRoaXMuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpIGFzIGFueVxuICAgICAgKS5qb2JzLnJlbGVhc2Uuc3RlcHM7XG4gICAgICBjb25zdCBnaXRSZW1vdGVKb2IgPSByZWxlYXNlSm9iU3RlcHMuZmluZCgoaXQpID0+IGl0LmlkID09PSBcImdpdF9yZW1vdGVcIik7XG4gICAgICBwcmV0dHlBc3NlcnRFcXVhbChcbiAgICAgICAgZ2l0UmVtb3RlSm9iLnJ1bixcbiAgICAgICAgJ2VjaG8gXCJsYXRlc3RfY29tbWl0PSQoZ2l0IGxzLXJlbW90ZSBvcmlnaW4gLWggJHt7IGdpdGh1Yi5yZWYgfX0gfCBjdXQgLWYxKVwiID4+ICRHSVRIVUJfT1VUUFVUXFxuY2F0ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgICAgXCJnaXRfcmVtb3RlIHN0ZXAgaW4gcmVsZWFzZSB3b3JrZmxvdyBkaWQgbm90IG1hdGNoIGV4cGVjdGVkIHN0cmluZywgcGxlYXNlIGNoZWNrIGlmIHRoZSB3b3JrYXJvdW5kIHN0aWxsIHdvcmtzIVwiXG4gICAgICApO1xuICAgICAgY29uc3QgcHJldmlvdXNDb21tYW5kID0gZ2l0UmVtb3RlSm9iLnJ1bi5yZXBsYWNlKFwiXFxuXCIsIFwiICYmIFwiKTtcblxuICAgICAgY29uc3QgY2FuY2VsQ29tbWFuZCA9XG4gICAgICAgICdlY2hvIFwibGF0ZXN0X2NvbW1pdD1yZWxlYXNlX2NhbmNlbGxlZFwiID4+ICRHSVRIVUJfT1VUUFVUJzsgLy8gdGhpcyBjYW5jZWxzIHRoZSByZWxlYXNlIHZpYSBhIG5vbi1tYXRjaGluZyBTSEE7XG4gICAgICBnaXRSZW1vdGVKb2IucnVuID0gYG5vZGUgLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlLmpzICYmICgke3ByZXZpb3VzQ29tbWFuZH0pIHx8ICR7Y2FuY2VsQ29tbWFuZH1gO1xuICAgICAgZ2l0UmVtb3RlSm9iLm5hbWUgKz1cbiAgICAgICAgXCIgb3IgY2FuY2VsIHZpYSBmYWtpbmcgYSBTSEEgaWYgcmVsZWFzZSB3YXMgY2FuY2VsbGVkXCI7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhbGVXb3JrZmxvdyA9IHRoaXMudHJ5RmluZE9iamVjdEZpbGUoXCIuZ2l0aHViL3dvcmtmbG93cy9zdGFsZS55bWxcIik7XG4gICAgc3RhbGVXb3JrZmxvdz8uYWRkT3ZlcnJpZGUoXCJvbi5zY2hlZHVsZVwiLCBbXG4gICAgICB7XG4gICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7IHByb2plY3Q6IHRoaXMsIG1heEhvdXI6IDQsIGhvdXJPZmZzZXQ6IDEgfSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgdXBncmFkZVdvcmtmbG93ID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZShcbiAgICAgIFwiLmdpdGh1Yi93b3JrZmxvd3MvdXBncmFkZS1tYWluLnltbFwiXG4gICAgKTtcbiAgICB1cGdyYWRlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwib24uc2NoZWR1bGVcIiwgW1xuICAgICAge1xuICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oe1xuICAgICAgICAgIHByb2plY3Q6IHRoaXMsXG4gICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICBob3VyT2Zmc2V0OiAxLFxuICAgICAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5XZWVrbHksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIC8vIFN1Ym1vZHVsZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb25cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiQVBJLm1kXCIpOyAvLyBpZ25vcmUgdGhlIG9sZCBmaWxlLCB3ZSBub3cgZ2VuZXJhdGUgaXQgaW4gdGhlIGRvY3MgZm9sZGVyXG4gICAgdGhpcy5hZGREZXZEZXBzKFwianNpaS1kb2NnZW5AXjEwLjIuM1wiKTtcbiAgICBpZiAoanNpaVZlcnNpb24pIHtcbiAgICAgIC8vIE5PVEU6IHRoZSBiZWxvdyBpcyBtYWtpbmcgYSBicm9hZCBhc3N1bXB0aW9uIHRoYXQgeW91J3JlIHBhc3NpbmcgYSByYW5nZSBsaWtlIFwifjUuMy4wXCIgdG8ganNpaVZlcnNpb25cbiAgICAgIC8vIElmIHlvdSB1c2UgdGhhdCBmaWVsZCB0byBwYXNzIGEgdmVyeSBzcGVjaWZpYyB2ZXJzaW9uIChlLmcuIFwiNS4zLjExXCIpIHRoZW4gdGhpcyBtaWdodCBicmVha1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFAJHtqc2lpVmVyc2lvbn1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGREZXZEZXBzKGBqc2lpLXJvc2V0dGFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLmFkZFRhc2soXCJkb2NnZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHByb2plY3RcIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBbXG4gICAgICAgICAgICBcInJtIC1yZiBkb2NzXCIsXG4gICAgICAgICAgICBcInJtIC1mIEFQSS5tZFwiLFxuICAgICAgICAgICAgXCJta2RpciBkb2NzXCIsXG4gICAgICAgICAgICAvLyBUT0RPOiBSZS1lbmFibGUgamF2YSAvIGNzaGFycFxuICAgICAgICAgICAgLy8gXCJqc2lpLWRvY2dlbiAtLXNwbGl0LWJ5LXN1Ym1vZHVsZSAtbCB0eXBlc2NyaXB0IC1sIHB5dGhvbiAtbCBqYXZhIC1sIGNzaGFycCAtbCBnb1wiLFxuICAgICAgICAgICAgXCJqc2lpLWRvY2dlbiAtLXNwbGl0LWJ5LXN1Ym1vZHVsZSAtbCB0eXBlc2NyaXB0IC1sIHB5dGhvbiAtbCBnb1wiLFxuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gbmljZSB3YXkgdG8gdGVsbCBqc2lpLWRvY2dlbiB0byBnZW5lcmF0ZSBkb2NzIGludG8gYSBmb2xkZXIgc28gSSB3ZW50IHRoaXMgcm91dGVcbiAgICAgICAgICAgIFwibXYgKi4qLm1kIGRvY3NcIixcbiAgICAgICAgICAgIC8vIFNvbWUgcGFydCBvZiB0aGUgZG9jdW1lbnRhdGlvbiBhcmUgdG9vIGxvbmcsIHdlIG5lZWQgdG8gdHJ1bmNhdGUgdGhlbSB0byB+MTBNQlxuICAgICAgICAgICAgXCJjZCBkb2NzXCIsXG4gICAgICAgICAgICBcImxzIC4vIHwgeGFyZ3Mgc2VkIC1pICcxNTAwMDAsJCBkJyAkMVwiLFxuICAgICAgICAgIF0uam9pbihcIiAmJiBcIiksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIHRoaXMucG9zdENvbXBpbGVUYXNrLnNwYXduKGRvY2dlbik7XG4gICAgdGhpcy5naXRpZ25vcmUuaW5jbHVkZShgL2RvY3MvKi5tZGApO1xuICAgIHRoaXMuYW5ub3RhdGVHZW5lcmF0ZWQoYC9kb2NzLyoubWRgKTtcblxuICAgIC8vIFNldHRpbmcgdGhlIHZlcnNpb24gaW4gcGFja2FnZS5qc29uIHNvIHRoZSBnb2xhbmcgZG9jcyBoYXZlIHRoZSBjb3JyZWN0IHZlcnNpb25cbiAgICBjb25zdCB1bmNvbmRpdGlvbmFsQnVtcCA9IHRoaXMuYWRkVGFzayhcInVuY29uZGl0aW9uYWwtYnVtcFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJTZXQgdGhlIHZlcnNpb24gaW4gcGFja2FnZS5qc29uIHRvIHRoZSBjdXJyZW50IHZlcnNpb25cIixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkNsZWFyIHRoZSBjaGFuZ2Vsb2cgc28gdGhhdCBpdCBkb2Vzbid0IGdldCBwdWJsaXNoZWQgdHdpY2VcIixcbiAgICAgICAgICBleGVjOiBcInJtIC1mICRDSEFOR0VMT0dcIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBidWlsdGluOiBcInJlbGVhc2UvYnVtcC12ZXJzaW9uXCIgfSxcbiAgICAgIF0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgT1VURklMRTogXCJwYWNrYWdlLmpzb25cIixcbiAgICAgICAgQ0hBTkdFTE9HOiBcImRpc3QvY2hhbmdlbG9nLm1kXCIsXG4gICAgICAgIEJVTVBGSUxFOiBcImRpc3QvdmVyc2lvbi50eHRcIixcbiAgICAgICAgUkVMRUFTRVRBRzogXCJkaXN0L3JlbGVhc2V0YWcudHh0XCIsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogXCJcIixcbiAgICAgICAgTUlOX01BSk9SOiBTdHJpbmcoTUlOX01BSk9SX1ZFUlNJT04pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLnNwYXduKHVuY29uZGl0aW9uYWxCdW1wKTtcbiAgICAvLyBUbyBidW1wIGNvcnJlY3RseSB3ZSBuZWVkIHRvIGhhdmUgdGhlIGNvbXBsZXRlbHkgY2xvbmVkIHJlcG9cbiAgICAodGhpcy5idWlsZFdvcmtmbG93IGFzIGFueSkud29ya2Zsb3cuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwiam9icy5idWlsZC5zdGVwcy4wLndpdGguZmV0Y2gtZGVwdGhcIixcbiAgICAgIDBcbiAgICApO1xuICAgIC8vIFVuZG8gdGhlIGNoYW5nZXMgYWZ0ZXIgY29tcGlsYXRpb25cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3c/LmFkZFBvc3RCdWlsZFN0ZXBzKHtcbiAgICAgIG5hbWU6IFwiUmV2ZXJ0IHBhY2thZ2UuanNvbiB2ZXJzaW9uIGJ1bXBcIixcbiAgICAgIHJ1bjogXCJnaXQgY2hlY2tvdXQgcGFja2FnZS5qc29uXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgQ29weXJpZ2h0SGVhZGVycyh0aGlzKTtcbiAgICBuZXcgRGVwcmVjYXRlUGFja2FnZXModGhpcywge1xuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgcGFja2FnZUluZm8sXG4gICAgICBpc0RlcHJlY2F0ZWQ6ICEhaXNEZXByZWNhdGVkLFxuICAgIH0pO1xuICAgIGlmICghaXNEZXByZWNhdGVkKSB7XG4gICAgICBuZXcgRm9yY2VSZWxlYXNlKHRoaXMsIHsgd29ya2Zsb3dSdW5zT24gfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwaW5HaXRodWJBY3Rpb25WZXJzaW9ucyhwaW5uZWRWZXJzaW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIC8vIFVzZSBwaW5uZWQgdmVyc2lvbnMgb2YgZ2l0aHViIGFjdGlvbnNcbiAgICBPYmplY3QuZW50cmllcyhwaW5uZWRWZXJzaW9ucykuZm9yRWFjaCgoW25hbWUsIHNoYV0pID0+IHtcbiAgICAgIHRoaXMuZ2l0aHViPy5hY3Rpb25zLnNldChuYW1lLCBgJHtuYW1lfUAke3NoYX1gKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmV0dHlBc3NlcnRFcXVhbDxUPihzdWJqZWN0OiBULCBleHBlY3RlZDogVCwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQge1xuICBpZiAoc3ViamVjdCAhPT0gZXhwZWN0ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHttZXNzYWdlID8/IFwiQXNzZXJ0aW9uIGZhaWxlZFwifTogZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgZXhwZWN0ZWRcbiAgICAgICl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShzdWJqZWN0KX1gXG4gICAgKTtcbiAgfVxufVxuIl19
458
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBMEQ7QUFDMUQsaUNBQWtDO0FBQ2xDLDZDQUF5QztBQUN6QyxtQ0FBMEQ7QUFFMUQsc0RBQW9FO0FBQ3BFLHFEQUFnRDtBQUNoRCxpREFBNkM7QUFDN0MsK0VBQXlFO0FBQ3pFLDJDQUF3QztBQUN4QyxpREFBNkM7QUFDN0MsMkRBQXVEO0FBQ3ZELDZEQUF5RDtBQUN6RCw2Q0FBMEM7QUFDMUMsNkRBQXlEO0FBQ3pELG1EQUErQztBQUMvQyxtREFBK0M7QUFDL0MsK0NBQTJDO0FBRTNDLHlEQUFxRDtBQUNyRCxxRUFBMEU7QUFDMUUsNkRBQW1FO0FBQ25FLG9EQUFrRTtBQUVsRSxtSEFBbUg7QUFDbkgsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7QUFtRDVCLE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBb0IsRUFBVSxFQUFFO0lBQ3BELE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUM5QyxDQUFDLENBQUMsR0FBRyxZQUFZLFdBQVc7UUFDNUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUc7SUFDakMsa0JBQWtCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUN6RSwyQkFBMkIsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ2xGLHVCQUF1QixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDOUUsc0JBQXNCLEVBQUUsMENBQTBDLEVBQUUsU0FBUztJQUM3RSxrQkFBa0IsRUFBRSwwQ0FBMEMsRUFBRSxTQUFTO0lBQ3pFLG9CQUFvQixFQUFFLDBDQUEwQyxFQUFFLFNBQVM7SUFDM0Usb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsU0FB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LElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxjQUFzQztRQUNwRSx3Q0FBd0M7UUFDeEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBemVILG9EQTBlQzs7O0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxPQUFVLEVBQUUsUUFBVyxFQUFFLE9BQWdCO0lBQ3JFLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxPQUFPLElBQUksa0JBQWtCLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FDMUQsUUFBUSxDQUNULFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN2QyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKTtcbmltcG9ydCB7IHBhc2NhbENhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcbmltcG9ydCB7IFRleHRGaWxlLCBjZGssIGdpdGh1YiwgSnNvblBhdGNoIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZSB9IGZyb20gXCJwcm9qZW4vbGliL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IEFsZXJ0T3BlblBycyB9IGZyb20gXCIuL2FsZXJ0LW9wZW4tcHJzXCI7XG5pbXBvcnQgeyBBdXRvQXBwcm92ZSB9IGZyb20gXCIuL2F1dG8tYXBwcm92ZVwiO1xuaW1wb3J0IHsgQXV0b0Nsb3NlQ29tbXVuaXR5SXNzdWVzIH0gZnJvbSBcIi4vYXV0by1jbG9zZS1jb21tdW5pdHktaXNzdWVzXCI7XG5pbXBvcnQgeyBBdXRvbWVyZ2UgfSBmcm9tIFwiLi9hdXRvbWVyZ2VcIjtcbmltcG9ydCB7IENka3RmQ29uZmlnIH0gZnJvbSBcIi4vY2RrdGYtY29uZmlnXCI7XG5pbXBvcnQgeyBDb3B5cmlnaHRIZWFkZXJzIH0gZnJvbSBcIi4vY29weXJpZ2h0LWhlYWRlcnNcIjtcbmltcG9ydCB7IEN1c3RvbWl6ZWRMaWNlbnNlIH0gZnJvbSBcIi4vY3VzdG9taXplZC1saWNlbnNlXCI7XG5pbXBvcnQgeyBEZXBlbmRhYm90IH0gZnJvbSBcIi4vZGVwZW5kYWJvdFwiO1xuaW1wb3J0IHsgRGVwcmVjYXRlUGFja2FnZXMgfSBmcm9tIFwiLi9kZXByZWNhdGUtcGFja2FnZXNcIjtcbmltcG9ydCB7IEZvcmNlUmVsZWFzZSB9IGZyb20gXCIuL2ZvcmNlLXJlbGVhc2VcIjtcbmltcG9ydCB7IEdpdGh1Yklzc3VlcyB9IGZyb20gXCIuL2dpdGh1Yi1pc3N1ZXNcIjtcbmltcG9ydCB7IExvY2tJc3N1ZXMgfSBmcm9tIFwiLi9sb2NrLWlzc3Vlc1wiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcbmltcG9ydCB7IFByb3ZpZGVyVXBncmFkZSB9IGZyb20gXCIuL3Byb3ZpZGVyLXVwZ3JhZGVcIjtcbmltcG9ydCB7IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlIH0gZnJvbSBcIi4vc2NyaXB0cy9jaGVjay1mb3ItdXBncmFkZXNcIjtcbmltcG9ydCB7IFNob3VsZFJlbGVhc2VTY3JpcHRGaWxlIH0gZnJvbSBcIi4vc2NyaXB0cy9zaG91bGQtcmVsZWFzZVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21Dcm9uLCBTY2hlZHVsZSB9IGZyb20gXCIuL3V0aWwvcmFuZG9tLWNyb25cIjtcblxuLy8gZW5zdXJlIG5ldyBwcm9qZWN0cyBzdGFydCB3aXRoIDEuMC4wIHNvIHRoYXQgZXZlcnkgZm9sbG93aW5nIGJyZWFraW5nIGNoYW5nZSBsZWFkcyB0byBhbiBpbmNyZWFzZWQgbWFqb3IgdmVyc2lvblxuY29uc3QgTUlOX01BSk9SX1ZFUlNJT04gPSAxO1xuXG5leHBvcnQgaW50ZXJmYWNlIENka3RuUHJvdmlkZXJQcm9qZWN0T3B0aW9ucyBleHRlbmRzIGNkay5Kc2lpUHJvamVjdE9wdGlvbnMge1xuICByZWFkb25seSB1c2VDdXN0b21HaXRodWJSdW5uZXI/OiBib29sZWFuO1xuICByZWFkb25seSB0ZXJyYWZvcm1Qcm92aWRlcjogc3RyaW5nO1xuICByZWFkb25seSBjZGt0ZlZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgY29uc3RydWN0c1ZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgZm9yY2VNYWpvclZlcnNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcImNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiY2RrdG4taW9cIlxuICAgKiBwcmV2aW91c2x5IHdhcyBcImNka3RmXCIuIFVzZWQgZm9yIEdpdEh1YiBvcmcgbmFtZSBhbmQgcGFja2FnZSBzY29waW5nXG4gICAqL1xuICByZWFkb25seSBnaXRodWJOYW1lc3BhY2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hdmVuRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBkZWZhdWx0cyB0byBcIklvLkNka3RuXCJcbiAgICovXG4gIHJlYWRvbmx5IG51Z2V0T3JnPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJjZGt0blwiXG4gICAqL1xuICByZWFkb25seSBtYXZlbk9yZz86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRzIHRvIFwiaW8uJHttYXZlbk9yZ31cIlxuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5Hcm91cElkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHllYXIgb2YgdGhlIGNyZWF0aW9uIG9mIHRoZSByZXBvc2l0b3J5LCBmb3IgY29weXJpZ2h0IHB1cnBvc2VzLlxuICAgKiBXaWxsIGZhbGwgYmFjayB0byB0aGUgY3VycmVudCB5ZWFyIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGlvblllYXI/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIGlzIGRlcHJlY2F0ZWQuXG4gICAqIElmIHRydWUsIG5vIG5ldyB2ZXJzaW9ucyB3aWxsIGJlIHB1Ymxpc2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzRGVwcmVjYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkYXRlIHdoZW4gdGhlIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCwgdG8gYmUgdXNlZCBpbiB0aGUgUkVBRE1FIHRleHQuXG4gICAqIElmIG5vIGRhdGUgaXMgcHJvdmlkZWQsIHRoZW4gdGhlIGRhdGUgb2YgdGhlIGJ1aWxkIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwcmVjYXRpb25EYXRlPzogc3RyaW5nO1xuICAvKipcbiAgICogZGVmYXVsdHMgdG8gXCJIYXNoaUNvcnAsIEluYy5cIlxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGdldE1hdmVuTmFtZSA9IChwcm92aWRlck5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBbXCJudWxsXCIsIFwicmFuZG9tXCJdLmluY2x1ZGVzKHByb3ZpZGVyTmFtZSlcbiAgICA/IGAke3Byb3ZpZGVyTmFtZX1fcHJvdmlkZXJgXG4gICAgOiBwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpO1xufTtcblxuY29uc3QgZ2l0aHViQWN0aW9uUGlubmVkVmVyc2lvbnMgPSB7XG4gIFwiYWN0aW9ucy9jaGVja291dFwiOiBcIjExYmQ3MTkwMWJiZTViMTYzMGNlZWE3M2QyNzU5NzM2NGM5YWY2ODNcIiwgLy8gdjQuMi4yXG4gIFwiYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdFwiOiBcIjk1ODE1YzM4Y2YyZmYyMTY0ODY5Y2JhYjc5ZGE4ZDFmNDIyYmM4OWVcIiwgLy8gdjQuMi4xXG4gIFwiYWN0aW9ucy9naXRodWItc2NyaXB0XCI6IFwiNjBhMGQ4MzAzOWM3NGE0YWVlNTQzNTA4ZDJmZmNiMWMzNzk5Y2RlYVwiLCAvLyB2Ny4wLjFcbiAgXCJhY3Rpb25zL3NldHVwLWRvdG5ldFwiOiBcIjY3YTM1NzNjOWE5ODZhM2Y5YzU5NDUzOWY0YWI1MTFkNTdiYjNjZTlcIiwgLy8gdjQuMy4xXG4gIFwiYWN0aW9ucy9zZXR1cC1nb1wiOiBcIjBhYWNjZmQxNTBkNTBjY2FlYjU4ZWJkODhkMzZlOTE5NjdhNWYzNWJcIiwgLy8gdjUuNC4wXG4gIFwiYWN0aW9ucy9zZXR1cC1qYXZhXCI6IFwiM2E0ZjZlMWFmNTA0Y2Y2YTMxODU1ZmE4OTljNmFhNTM1NWJhNmMxMlwiLCAvLyB2NC43LjBcbiAgXCJhY3Rpb25zL3NldHVwLW5vZGVcIjogXCJjZGNhNzM2NWIyZGFkYjhhYWQwYTMzYmM3NjAxODU2ZmZhYmNjNDhlXCIsIC8vIHY0LjMuMFxuICBcImFjdGlvbnMvc2V0dXAtcHl0aG9uXCI6IFwiNDIzNzU1MjRlMjNjNDEyZDkzZmI2N2I0OTk1OGI0OTFmY2U3MWMzOFwiLCAvLyB2NS40LjBcbiAgXCJhY3Rpb25zL3N0YWxlXCI6IFwiNWJlZjY0ZjE5ZDdmYWNmYjI1YjM3YjQxNDQ4MmM3MTY0ZDYzOTYzOVwiLCAvLyB2OS4xLjBcbiAgXCJhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdFwiOiBcImVhMTY1ZjhkNjViNmU3NWI1NDA0NDllOTJiNDg4NmY0MzYwN2ZhMDJcIiwgLy8gdjQuNi4yXG4gIFwiYW1hbm5uL2FjdGlvbi1zZW1hbnRpYy1wdWxsLXJlcXVlc3RcIjpcbiAgICBcIjA3MjMzODdmYWFmOWIzOGFkZWY0Nzc1Y2Q0MmNmZDUxNTVlZDYwMTdcIiwgLy8gdjUuNS4zXG4gIFwiZGVzc2FudC9sb2NrLXRocmVhZHNcIjogXCIxYmY3ZWMyNTA1MWZlN2MwMGJkZDE3ZTZhN2NmM2Q3YmZiN2RjNzcxXCIsIC8vIHY1LjAuMVxuICBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIjogXCIzMjYzOGRhMmQ0ZTgxZDU2YTA3NjRhYTE1NDc4ODJmYzRkMjA5NjM2XCIsIC8vIHYxLjEuM1xuICBcImhhc2hpY29ycC9zZXR1cC10ZXJyYWZvcm1cIjogXCJiOWNkNTRhM2MzNDlkM2YzOGU4ODgxNTU1ZDYxNmNlZDI2OTg2MmRkXCIsIC8vIHYzLjEuMlxuICBcImltam9obmJvL2lzc3VlLWJvdFwiOiBcIjU3MmVlZDE0NDIyYzRkNmNhMzdlODcwZjk3ZTdkYTIwOTQyMmY1YmRcIiwgLy8gdjMuNC40XG4gIFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdFwiOiBcIjI3MWE4ZDAzNDAyNjVmNzA1YjE0YjZkMzJiOTgyOWMxY2IzM2Q0NWVcIiwgLy8gdjcuMC44XG4gIFwic2xhY2thcGkvc2xhY2stZ2l0aHViLWFjdGlvblwiOiBcIjQ4NWE5ZDQyZDNhNzMwMzFmMTJlYzIwMWM0NTdlMjE2MmM0NWQwMmRcIiwgLy8gdjIuMC4wXG4gIFwiYWN0aW9ucy9jcmVhdGUtZ2l0aHViLWFwcC10b2tlblwiOiBcIjI5ODI0ZTY5ZjU0NjEyMTMzZTc2ZjdlYWFjNzI2ZWVmNmM4NzViYWZcIiwgLy8gdjIuMi4xXG59O1xuXG5leHBvcnQgY2xhc3MgQ2RrdG5Qcm92aWRlclByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGt0blByb3ZpZGVyUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCB7XG4gICAgICB0ZXJyYWZvcm1Qcm92aWRlcixcbiAgICAgIHdvcmtmbG93Q29udGFpbmVySW1hZ2UsXG4gICAgICBjZGt0ZlZlcnNpb24sXG4gICAgICBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICAgIG1pbk5vZGVWZXJzaW9uLFxuICAgICAganNpaVZlcnNpb24sXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbixcbiAgICAgIGlzRGVwcmVjYXRlZCxcbiAgICAgIGRlcHJlY2F0aW9uRGF0ZSxcbiAgICAgIC8vIFRPRE86IENvbmZpcm0gZGVmYXVsdCBBdXRob3IgTmFtZVxuICAgICAgYXV0aG9yTmFtZSA9IFwiQ0RLIFRlcnJhaW4gTWFpbnRhaW5lcnNcIixcbiAgICAgIGF1dGhvckFkZHJlc3MgPSBcImh0dHBzOi8vY2RrdG4uaW9cIixcbiAgICAgIG5hbWVzcGFjZSA9IFwiY2RrdG5cIixcbiAgICAgIGdpdGh1Yk5hbWVzcGFjZSA9IFwiY2RrdG4taW9cIixcbiAgICAgIG1hdmVuRW5kcG9pbnQgPSBcImh0dHBzOi8vY2VudHJhbC5zb25hdHlwZS5jb21cIiwgLy8gVE9ET1xuICAgICAgbnVnZXRPcmcgPSBcIklvLkNka3RuXCIsIC8vIFRPRE9cbiAgICAgIG1hdmVuT3JnID0gXCJjZGt0blwiLCAvLyBUT0RPXG4gICAgICBucG1UcnVzdGVkUHVibGlzaGluZyxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IFtmcXByb3ZpZGVyTmFtZSwgcHJvdmlkZXJWZXJzaW9uXSA9IHRlcnJhZm9ybVByb3ZpZGVyLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBmcXByb3ZpZGVyTmFtZS5zcGxpdChcIi9cIikucG9wKCk7XG4gICAgYXNzZXJ0KHByb3ZpZGVyTmFtZSwgYCR7dGVycmFmb3JtUHJvdmlkZXJ9IGRvZXNuJ3Qgc2VlbSB0byBiZSB2YWxpZGApO1xuICAgIGFzc2VydChcbiAgICAgICFwcm92aWRlck5hbWUuZW5kc1dpdGgoXCItZ29cIiksXG4gICAgICBcInByb3ZpZGVyTmFtZSBtYXkgbm90IGVuZCB3aXRoICctZ28nIGFzIHRoaXMgY2FuIGNvbmZsaWN0IHdpdGggcmVwb3MgZm9yIGdvIHBhY2thZ2VzXCJcbiAgICApO1xuXG4gICAgY29uc3QgbnVnZXROYW1lID0gYCR7bnVnZXRPcmd9LlByb3ZpZGVycy4ke3Bhc2NhbENhc2UocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IG1hdmVuR3JvdXBJZCA9IG9wdGlvbnMubWF2ZW5Hcm91cElkID8/IGBpby4ke21hdmVuT3JnfWA7XG4gICAgY29uc3QgbWF2ZW5OYW1lID0gYCR7bWF2ZW5Hcm91cElkfS5wcm92aWRlcnMuJHtnZXRNYXZlbk5hbWUocHJvdmlkZXJOYW1lKX1gO1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBgJHtnaXRodWJOYW1lc3BhY2V9LyR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgLy0vZyxcbiAgICAgIFwiXCJcbiAgICApfWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeVVybCA9IGBnaXRodWIuY29tLyR7cmVwb3NpdG9yeX1gO1xuXG4gICAgY29uc3QgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvID0ge1xuICAgICAgbnBtOiB7XG4gICAgICAgIG5hbWU6IGBAJHtuYW1lc3BhY2V9L3Byb3ZpZGVyLSR7cHJvdmlkZXJOYW1lfWAsXG4gICAgICB9LFxuICAgICAgcHl0aG9uOiB7XG4gICAgICAgIC8vIGRpc3ROYW1lOiBgJHtnaXRodWJOYW1lc3BhY2V9LSR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBkaXN0TmFtZTogYCR7bmFtZXNwYWNlfS1wcm92aWRlci0ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIil9YCxcbiAgICAgICAgLy8gbW9kdWxlOiBgJHtnaXRodWJOYW1lc3BhY2V9XyR7bmFtZXNwYWNlfV9wcm92aWRlcl8ke3Byb3ZpZGVyTmFtZS5yZXBsYWNlKFxuICAgICAgICBtb2R1bGU6IGAke25hbWVzcGFjZX1fcHJvdmlkZXJfJHtwcm92aWRlck5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpfWAsXG4gICAgICB9LFxuICAgICAgcHVibGlzaFRvTnVnZXQ6IHtcbiAgICAgICAgZG90TmV0TmFtZXNwYWNlOiBudWdldE5hbWUsXG4gICAgICAgIHBhY2thZ2VJZDogbnVnZXROYW1lLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiB7XG4gICAgICAgIGphdmFQYWNrYWdlOiBtYXZlbk5hbWUsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogbWF2ZW5Hcm91cElkLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IGAke25hbWVzcGFjZX0tcHJvdmlkZXItJHtwcm92aWRlck5hbWV9YCxcbiAgICAgICAgbWF2ZW5FbmRwb2ludCxcbiAgICAgIH0sXG4gICAgICBwdWJsaXNoVG9Hbzoge1xuICAgICAgICBtb2R1bGVOYW1lOiBgJHtyZXBvc2l0b3J5VXJsfS1nb2AsXG4gICAgICAgIGdpdFVzZXJFbWFpbDogXCJnaXRodWItdGVhbS1jZGstdGVycmFpbkBjZGt0bi5pb1wiLFxuICAgICAgICBnaXRVc2VyTmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBwcm92aWRlck5hbWUucmVwbGFjZSgvLS9nLCBcIlwiKSxcbiAgICAgICAgLy8gSW4gb3JkZXIgdG8gdXNlIHRoZSBjb3B5d3JpdGUgYWN0aW9uLCB3ZSBuZWVkIHRvIHJlYnVpbGQgdGhlIGZ1bGwgcHJlLXB1Ymxpc2ggc3RlcHMgd29ya2Zsb3cgdW5mb3J0dW5hdGVseVxuICAgICAgICAvLyBJZiBzb21lb25lIGtub3dzIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIG11dGF0aW9uIHdpdGggbWluaW1hbCBjdXN0b20gY29kZSwgcGxlYXNlIGRvIHNvXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBwYXRoOiBcIi5yZXBvXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsIERlcGVuZGVuY2llc1wiLFxuICAgICAgICAgICAgcnVuOiBcImNkIC5yZXBvICYmIHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkV4dHJhY3QgYnVpbGQgYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJ0YXIgLS1zdHJpcC1jb21wb25lbnRzPTEgLXh6dmYgZGlzdC9qcy8qLnRneiAtQyAucmVwb1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5XCIsXG4gICAgICAgICAgICBydW46IFwibXYgZGlzdCBkaXN0Lm9sZFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDcmVhdGUgZ28gYXJ0aWZhY3RcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwbyAmJiBucHggcHJvamVuIHBhY2thZ2U6Z29cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IGNvcHl3cml0ZSBoY2wgZmlsZVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvLy5jb3B5d3JpdGUuaGNsIC5yZXBvL2Rpc3QvZ28vLmNvcHl3cml0ZS5oY2xcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgICAgIHJ1bjogXCJjZCAucmVwby9kaXN0L2dvICYmIGNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBjb3B5d3JpdGUgaGNsIGZpbGVcIixcbiAgICAgICAgICAgIHJ1bjogXCJybSAtZiAucmVwby9kaXN0L2dvLy5jb3B5d3JpdGUuaGNsXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlJlbW92ZSBzb21lIHRleHQgZnJvbSB0aGUgUkVBRE1FIHRoYXQgZG9lc24ndCBhcHBseSB0byBHb1wiLFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgIFwic2VkIC1pICdzLyMgQ0RLVEYgcHJlYnVpbHQgYmluZGluZ3MgZm9yLyMgQ0RLVEYgR28gYmluZGluZ3MgZm9yLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80OTUxMTk0OVxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICAgICAgICAgIGBzZWQgLWkgLWUgJy8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJBdmFpbGFibGVcIn0gUGFja2FnZXMvLC8jIyMgR28vIWInIC1lICcvIyMjIEdvLyFkO3A7IHMvIyMjIEdvLyMjIEdvIFBhY2thZ2UvJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIHNlZCAtZSBpcyBibGFjayBtYWdpYyBhbmQgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGUgc3RyaW5nIHJlcGxhY2UgZG9lc24ndCB3b3JrIHNvIGxldCdzIHRyeSBpdCBhZ2FpbjpcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG4gICAgICAgICAgICAgIC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgICAgICAgICBgc2VkIC1pICdzLyMjIyBHby8jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJHb1wifSBQYWNrYWdlLycgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnL0FQSS50eXBlc2NyaXB0Lm1kLywvWW91IGNhbiBhbHNvIHZpc2l0IGEgaG9zdGVkIHZlcnNpb24vIWInIC1lICdkJyAucmVwby9kaXN0L2dvLyovUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICAgIGBzZWQgLWkgJ3N8RmluZCBhdXRvLWdlbmVyYXRlZCBkb2NzIGZvciB0aGlzIHByb3ZpZGVyIGhlcmU6fEZpbmQgYXV0by1nZW5lcmF0ZWQgZG9jcyBmb3IgdGhpcyBwcm92aWRlciBbaGVyZV0oaHR0cHM6Ly8ke3JlcG9zaXRvcnlVcmx9L2Jsb2IvbWFpbi9kb2NzL0FQSS5nby5tZCkufCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZGAsXG4gICAgICAgICAgICAgIC8vIEp1c3Qgc3RyYWlnaHQgdXAgZGVsZXRlIHRoZXNlIGZ1bGwgbGluZXMgYW5kIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB0aGVtOlxuICAgICAgICAgICAgICBcInNlZCAtaSAtZSAnLyMjIyBQcm92aWRlciBWZXJzaW9uLywvVGhlIHByb3ZpZGVyIHZlcnNpb24gY2FuIGJlIGFkanVzdGVkLyFiJyAtZSAnZCcgLnJlcG8vZGlzdC9nby8qL1JFQURNRS5tZFwiLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJDb3B5IHRoZSBSRUFETUUgZmlsZSB0byB0aGUgcGFyZW50IGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcnVuOiBcImNwIC5yZXBvL2Rpc3QvZ28vKi9SRUFETUUubWQgLnJlcG8vZGlzdC9nby9SRUFETUUubWRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiQ29sbGVjdCBnbyBBcnRpZmFjdFwiLFxuICAgICAgICAgICAgcnVuOiBcIm12IC5yZXBvL2Rpc3QgZGlzdFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JrZmxvd1J1bnNPbiA9IG9wdGlvbnMudXNlQ3VzdG9tR2l0aHViUnVubmVyXG4gICAgICA/IFtcImRlcG90LXVidW50dS0yNC4wNC04XCJdIC8vIDggY29yZSwgMzIgR0JcbiAgICAgIDogW1widWJ1bnR1LWxhdGVzdFwiXTsgLy8gNyBHQlxuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGF1dGhvckFkZHJlc3MsXG4gICAgICBhdXRob3JOYW1lLFxuICAgICAgbWluTm9kZVZlcnNpb24sXG4gICAgICB3b3JrZmxvd0NvbnRhaW5lckltYWdlLFxuICAgICAgd29ya2Zsb3dSdW5zT24sXG4gICAgICBsaWNlbnNlZDogZmFsc2UsIC8vIHdlIGRvIHN1cHBseSBvdXIgb3duIGxpY2Vuc2UgZmlsZSB3aXRoIGEgY3VzdG9tIGhlYWRlclxuICAgICAgcmVsZWFzZVRvTnBtOiB0cnVlLFxuICAgICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc6IG5wbVRydXN0ZWRQdWJsaXNoaW5nID8/IGZhbHNlLFxuICAgICAgbmFtZTogcGFja2FnZUluZm8ubnBtLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYFByZWJ1aWx0ICR7cHJvdmlkZXJOYW1lfSBQcm92aWRlciBmb3IgVGVycmFmb3JtIENESyAoY2RrdGYpYCxcbiAgICAgIGtleXdvcmRzOiBbXCJjZGt0ZlwiLCBcInRlcnJhZm9ybVwiLCBcImNka1wiLCBcInByb3ZpZGVyXCIsIHByb3ZpZGVyTmFtZV0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICAgICAgcmVwb3NpdG9yeTogYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnl9LmdpdGAsXG4gICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBkZXBzVXBncmFkZTogIWlzRGVwcmVjYXRlZCxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbHM6IFtcImF1dG9tZXJnZVwiLCBcImF1dG8tYXBwcm92ZVwiLCBcImRlcGVuZGVuY2llc1wiXSxcbiAgICAgICAgICBzY2hlZHVsZTogVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLldFRUtMWSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBweXRob246IHBhY2thZ2VJbmZvLnB5dGhvbixcbiAgICAgIC8vIFRPRE86IFJlLWVuYWJsZSBpZiByZXF1ZXN0ZWQgYW5kIHdoZW4gYXZhaWxhYmxlXG4gICAgICAvLyBwdWJsaXNoVG9OdWdldDogcGFja2FnZUluZm8ucHVibGlzaFRvTnVnZXQsXG4gICAgICAvLyBwdWJsaXNoVG9NYXZlbjogcGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4sXG4gICAgICBwdWJsaXNoVG9HbzogcGFja2FnZUluZm8ucHVibGlzaFRvR28sXG4gICAgICByZWxlYXNlRmFpbHVyZUlzc3VlOiB0cnVlLFxuICAgICAgcGVlckRlcGVuZGVuY3lPcHRpb25zOiB7XG4gICAgICAgIHBpbm5lZERldkRlcGVuZGVuY3k6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHdvcmtmbG93R2l0SWRlbnRpdHk6IHtcbiAgICAgICAgbmFtZTogXCJ0ZWFtLWNkay10ZXJyYWluXCIsXG4gICAgICAgIGVtYWlsOiBcImdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICB9LFxuICAgICAgbWluTWFqb3JWZXJzaW9uOiBNSU5fTUFKT1JfVkVSU0lPTixcbiAgICAgIHN0YWxlOiB0cnVlLFxuICAgICAgc3RhbGVPcHRpb25zOiB7XG4gICAgICAgIGlzc3Vlczoge1xuICAgICAgICAgIHN0YWxlTGFiZWw6IFwic3RhbGVcIixcbiAgICAgICAgICBkYXlzQmVmb3JlU3RhbGU6IDQ1LFxuICAgICAgICAgIHN0YWxlTWVzc2FnZTpcbiAgICAgICAgICAgIFwiNDUgZGF5cyBoYXZlIHBhc3NlZCBzaW5jZSB0aGlzIGlzc3VlIHdhcyBvcGVuZWQsIGFuZCBJIGFzc3VtZSBvdGhlciBwdWJsaXNoZXMgaGF2ZSBzdWNjZWVkZWQgaW4gdGhlIG1lYW50aW1lLiBcIiArXG4gICAgICAgICAgICBcIklmIG5vIG9uZSByZW1vdmVzIHRoZSBgc3RhbGVgIGxhYmVsIG9yIGNvbW1lbnRzLCBJJ20gZ29pbmcgdG8gYXV0by1jbG9zZSB0aGlzIGlzc3VlIGluIDE0IGRheXMuXCIsXG4gICAgICAgICAgZGF5c0JlZm9yZUNsb3NlOiAxNCxcbiAgICAgICAgICBjbG9zZU1lc3NhZ2U6XG4gICAgICAgICAgICBcIjIgbW9udGhzIGhhdmUgcGFzc2VkLCBzbyBJJ20gY2xvc2luZyB0aGlzIGlzc3VlIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBvdGhlciBwdWJsaXNoZXMgaGF2ZSBzdWNjZWVkZWQgaW4gdGhlIG1lYW50aW1lLlwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWxsUmVxdWVzdDoge1xuICAgICAgICAgIHN0YWxlTGFiZWw6IFwic3RhbGVcIixcbiAgICAgICAgICBkYXlzQmVmb3JlU3RhbGU6IDEsXG4gICAgICAgICAgc3RhbGVNZXNzYWdlOiBgQ2xvc2luZyB0aGlzIFBSLCBpZiBpdCBoYXMgbm90IG1lcmdlZCB0aGVyZSBpcyBtb3N0IGxpa2VseSBhIENJIG9yIENES1RGIGlzc3VlIHByZXZlbnRpbmcgaXQgZnJvbSBtZXJnaW5nLiBJZiB0aGlzIGhhcyBiZWVuIGEgbWFudWFsIFBSLCBwbGVhc2UgcmVvcGVuIGl0IGFuZCBhZGQgdGhlIFxcYG5vLWF1dG8tY2xvc2VcXGAgbGFiZWwgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nIGFnYWluLmAsXG4gICAgICAgICAgZGF5c0JlZm9yZUNsb3NlOiAwLFxuICAgICAgICAgIGV4ZW1wdExhYmVsczogW1wibm8tYXV0by1jbG9zZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlOiBmYWxzZSxcbiAgICAgIGRvY2dlbjogZmFsc2UsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIFwiZG90LXByb3BAXjUuMi4wXCIsXG4gICAgICBcIkBhY3Rpb25zL2NvcmVAXjEuMS4wXCIsXG4gICAgICBcIkBhY3Rpb24tdmFsaWRhdG9yL2NvcmVcIixcbiAgICAgIFwiQGFjdGlvbi12YWxpZGF0b3IvY2xpXCJcbiAgICApO1xuXG4gICAgLy8gRGVmYXVsdCBtZW1vcnkgaXMgN0dCOiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3VzaW5nLWdpdGh1Yi1ob3N0ZWQtcnVubmVycy9hYm91dC1naXRodWItaG9zdGVkLXJ1bm5lcnMjc3VwcG9ydGVkLXJ1bm5lcnMtYW5kLWhhcmR3YXJlLXJlc291cmNlc1xuICAgIC8vIEN1c3RvbSBSdW5uZXJzIHdlIHVzZSBoYXZlIDMyR0Igb2YgbWVtb3J5XG4gICAgLy8gVGhlIGJlbG93IG51bWJlcnMgc2V0IGhlYXAgbGltaXRzIHRoYXQgYXJlIH4xZ2IgYW5kIH4wLjVnYiBsZXNzLCByZXNwZWN0aXZlbHksIHRoYW4gdGhlIHRvdGFsIGF2YWlsYWJsZSBtZW1vcnlcbiAgICBjb25zdCBtYXhPbGRTcGFjZVNpemUgPSBvcHRpb25zLnVzZUN1c3RvbUdpdGh1YlJ1bm5lciA/IFwiMzE3NDRcIiA6IFwiNjY1NlwiO1xuXG4gICAgLy8gR29sYW5nIG5lZWRzIG1vcmUgbWVtb3J5IHRvIGJ1aWxkXG4gICAgdGhpcy50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiTk9ERV9PUFRJT05TXCIsXG4gICAgICBgLS1tYXgtb2xkLXNwYWNlLXNpemU9JHttYXhPbGRTcGFjZVNpemV9YFxuICAgICk7XG5cbiAgICB0aGlzLnRhc2tzLmFkZEVudmlyb25tZW50KFwiQ0hFQ0tQT0lOVF9ESVNBQkxFXCIsIFwiMVwiKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVGFzayA9IHRoaXMuYWRkVGFzayhcInZhbGlkYXRlLXdvcmtmbG93c1wiLCB7XG4gICAgICBleGVjOiBgZmluZCAuLy5naXRodWIvd29ya2Zsb3dzIC10eXBlIGYgLW5hbWUgXCIqLnltbFwiIC1wcmludDAgfCB4YXJncyAtMCAtbiAxIG5weCBhY3Rpb24tdmFsaWRhdG9yYCxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVRhc2suZGVzY3JpcHRpb24gPVxuICAgICAgXCJMaW50IHRoZSBZQU1MIGZpbGVzIGdlbmVyYXRlZCBieSBQcm9qZW4gdG8gZGVmaW5lIEdpdEh1YiBBY3Rpb25zIGFuZCBXb3JrZmxvd3MsIGNoZWNraW5nIHRoZW0gYWdhaW5zdCBwdWJsaXNoZWQgSlNPTiBzY2hlbWFzXCI7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odmFsaWRhdGVUYXNrKTtcblxuICAgIHRoaXMucGFja2FnZS5hZGRQYWNrYWdlUmVzb2x1dGlvbnMoXCJAdHlwZXMveWFyZ3NAMTcuMC4xM1wiKTtcblxuICAgIGNvbnN0IHNldFNhZmVEaXJlY3RvcnkgPSB7XG4gICAgICBuYW1lOiBcIlNldCBnaXQgY29uZmlnIHNhZmUuZGlyZWN0b3J5XCIsXG4gICAgICBydW46IFwiZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLWFkZCBzYWZlLmRpcmVjdG9yeSAkKHB3ZClcIixcbiAgICB9O1xuXG4gICAgKCh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXSkucHVzaChcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuICAgICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnMucmVsZWFzZS5zdGVwcy5zcGxpY2UoXG4gICAgICAxLFxuICAgICAgMCxcbiAgICAgIHNldFNhZmVEaXJlY3RvcnlcbiAgICApO1xuXG4gICAgLy8gYWx3YXlzIHB1Ymxpc2ggYSBuZXcgR2l0SHViIHJlbGVhc2UsIGV2ZW4gd2hlbiBwdWJsaXNoaW5nIHRvIGEgcGFydGljdWxhciBwYWNrYWdlIG1hbmFnZXIgZmFpbHNcbiAgICBjb25zdCByZWxlYXNlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFwiXG4gICAgKTtcbiAgICByZWxlYXNlV29ya2Zsb3c/LmFkZE92ZXJyaWRlKFwiam9icy5yZWxlYXNlX2dpdGh1Yi5uZWVkc1wiLCBcInJlbGVhc2VcIik7XG5cbiAgICAvLyBUcnVzdGVkIHB1Ymxpc2hpbmcgcmVxdWlyZXMgbnBtID49MTEuNS4xIHdoaWNoIHNoaXBzIHdpdGggTm9kZSAyNFxuICAgIGlmIChucG1UcnVzdGVkUHVibGlzaGluZykge1xuICAgICAgdGhpcy5naXRodWJcbiAgICAgICAgPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpXG4gICAgICAgID8uZmlsZT8ucGF0Y2goXG4gICAgICAgICAgSnNvblBhdGNoLnJlcGxhY2UoXG4gICAgICAgICAgICBcIi9qb2JzL3JlbGVhc2VfbnBtL3N0ZXBzLzAvd2l0aC9ub2RlLXZlcnNpb25cIixcbiAgICAgICAgICAgIFwiMjQueFwiXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIGVuc3VyZSB3ZSBkb24ndCBmYWlsIGlmIHRoZSByZWxlYXNlIGZpbGUgaXMgbm90IHByZXNlbnRcbiAgICBjb25zdCBjaGVja0V4aXN0aW5nVGFnU3RlcCA9IChcbiAgICAgIHRoaXMucmVsZWFzZSBhcyBhbnlcbiAgICApLmRlZmF1bHRCcmFuY2gud29ya2Zsb3cuam9icy5yZWxlYXNlLnN0ZXBzLmZpbmQoXG4gICAgICAoczogb2JqZWN0KSA9PiBcImlkXCIgaW4gcyAmJiBzLmlkID09PSBcImNoZWNrX3RhZ19leGlzdHNcIlxuICAgICk7XG4gICAgY29uc3Qgb2xkRXhpc3RpbmdUYWdSdW46IHN0cmluZyA9IGNoZWNrRXhpc3RpbmdUYWdTdGVwLnJ1bjtcbiAgICBwcmV0dHlBc3NlcnRFcXVhbChcbiAgICAgIG9sZEV4aXN0aW5nVGFnUnVuLnNwbGl0KFwiXFxuXCIpWzBdLFxuICAgICAgXCJUQUc9JChjYXQgZGlzdC9yZWxlYXNldGFnLnR4dClcIixcbiAgICAgIFwicmVsZWFzZSBzdGVwIGNoYW5nZWQsIHBsZWFzZSBjaGVjayBpZiB0aGUgd29ya2Fyb3VuZCBzdGlsbCB3b3JrcyFcIlxuICAgICk7XG4gICAgY2hlY2tFeGlzdGluZ1RhZ1N0ZXAucnVuID0gYGlmIFsgISAtZiBkaXN0L3JlbGVhc2V0YWcudHh0IF07IHRoZW4gKGVjaG8gXCJleGlzdHM9dHJ1ZVwiID4+ICRHSVRIVUJfT1VUUFVUKSAmJiBleGl0IDA7IGZpXFxuJHtvbGRFeGlzdGluZ1RhZ1J1bn1gO1xuXG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIGNvbnN0IHsgdXBncmFkZSwgcHIgfSA9ICh0aGlzLnVwZ3JhZGVXb3JrZmxvdyBhcyBhbnkpLndvcmtmbG93c1swXS5qb2JzO1xuICAgICAgdXBncmFkZS5zdGVwcy5zcGxpY2UoMSwgMCwgc2V0U2FmZURpcmVjdG9yeSk7XG4gICAgICBwci5zdGVwcy5zcGxpY2UoMSwgMCwgc2V0U2FmZURpcmVjdG9yeSk7XG4gICAgfVxuXG4gICAgLy8gLy8gVE9ETzogUmUtZW5hYmxlIHdoZW4gTWF2ZW4gcmVxdWVzdGVkIGFuZCBpbmZyYSBhdmFpbGFibGVcbiAgICAvLyAvLyBGaXggbWF2ZW4gaXNzdWUgKGh0dHBzOi8vZ2l0aHViLmNvbS9jZGtsYWJzL3B1YmxpYi9wdWxsLzc3NylcbiAgICAvLyBnaXRodWIuR2l0SHViLm9mKHRoaXMpPy50cnlGaW5kV29ya2Zsb3coXCJyZWxlYXNlXCIpPy5maWxlPy5wYXRjaChcbiAgICAvLyAgIEpzb25QYXRjaC5hZGQoXG4gICAgLy8gICAgIFwiL2pvYnMvcmVsZWFzZV9tYXZlbi9zdGVwcy8xMC9lbnYvTUFWRU5fT1BUU1wiLFxuICAgIC8vICAgICAvLyBTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzAxNTM5NjIvbmV4dXMtc3RhZ2luZy1tYXZlbi1wbHVnaW4tbWF2ZW4tZGVwbG95LWZhaWxlZC1hbi1hcGktaW5jb21wYXRpYmlsaXR5LXdhcy1lbmNvXG4gICAgLy8gICAgIFwiLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEudXRpbD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmJhc2UvamF2YS5sYW5nLnJlZmxlY3Q9QUxMLVVOTkFNRUQgLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEudGV4dD1BTEwtVU5OQU1FRCAtLWFkZC1vcGVucz1qYXZhLmRlc2t0b3AvamF2YS5hd3QuZm9udD1BTEwtVU5OQU1FRFwiXG4gICAgLy8gICApXG4gICAgLy8gKTtcblxuICAgIHRoaXMucGluR2l0aHViQWN0aW9uVmVyc2lvbnMoZ2l0aHViQWN0aW9uUGlubmVkVmVyc2lvbnMpO1xuXG4gICAgbmV3IENka3RmQ29uZmlnKHRoaXMsIHtcbiAgICAgIHRlcnJhZm9ybVByb3ZpZGVyLFxuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgZnFwcm92aWRlck5hbWUsXG4gICAgICBwcm92aWRlclZlcnNpb24sXG4gICAgICBjZGt0ZlZlcnNpb24sXG4gICAgICBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICAgIGpzaWlWZXJzaW9uLFxuICAgICAgdHlwZXNjcmlwdFZlcnNpb24sXG4gICAgICBwYWNrYWdlSW5mbyxcbiAgICAgIGdpdGh1Yk5hbWVzcGFjZSxcbiAgICAgIGRlcHJlY2F0aW9uRGF0ZSxcbiAgICAgIGlzRGVwcmVjYXRlZDogISFpc0RlcHJlY2F0ZWQsXG4gICAgfSk7XG4gICAgbmV3IEN1c3RvbWl6ZWRMaWNlbnNlKHRoaXMsIG9wdGlvbnMuY3JlYXRpb25ZZWFyLCBvcHRpb25zLmxpY2Vuc2VlKTtcbiAgICBuZXcgR2l0aHViSXNzdWVzKHRoaXMsIHsgcHJvdmlkZXJOYW1lIH0pO1xuICAgIG5ldyBBdXRvQXBwcm92ZSh0aGlzKTtcbiAgICBuZXcgQXV0b0Nsb3NlQ29tbXVuaXR5SXNzdWVzKHRoaXMsIHsgcHJvdmlkZXJOYW1lIH0pO1xuICAgIG5ldyBBdXRvbWVyZ2UodGhpcyk7XG4gICAgbmV3IExvY2tJc3N1ZXModGhpcyk7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgY29uc3QgdXBncmFkZVNjcmlwdCA9IG5ldyBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZSh0aGlzLCB7XG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbixcbiAgICAgICAgZnFwcm92aWRlck5hbWUsXG4gICAgICB9KTtcbiAgICAgIG5ldyBQcm92aWRlclVwZ3JhZGUodGhpcywge1xuICAgICAgICBjaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aDogdXBncmFkZVNjcmlwdC5wYXRoLFxuICAgICAgICB3b3JrZmxvd1J1bnNPbixcbiAgICAgICAgbm9kZUhlYXBTaXplOiBtYXhPbGRTcGFjZVNpemUsXG4gICAgICB9KTtcbiAgICAgIG5ldyBBbGVydE9wZW5QcnModGhpcywge1xuICAgICAgICBzbGFja1dlYmhvb2tVcmw6IFwiJHt7IHNlY3JldHMuQUxFUlRfUFJTX1NMQUNLX1dFQkhPT0tfVVJMIH19XCIsXG4gICAgICAgIHJlcG9zaXRvcnksXG4gICAgICB9KTtcbiAgICAgIG5ldyBEZXBlbmRhYm90KHRoaXMpO1xuICAgIH1cblxuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCBcIi5naXRodWIvQ09ERU9XTkVSU1wiLCB7XG4gICAgICBsaW5lczogW1xuICAgICAgICBcIiMgVGhlc2Ugb3duZXJzIHdpbGwgYmUgdGhlIGRlZmF1bHQgb3duZXJzIGZvciBldmVyeXRoaW5nIGluIFwiLFxuICAgICAgICBcIiMgdGhlIHJlcG8uIFVubGVzcyBhIGxhdGVyIG1hdGNoIHRha2VzIHByZWNlZGVuY2UsIFwiLFxuICAgICAgICBcIiMgdGhleSB3aWxsIGJlIHJlcXVlc3RlZCBmb3IgcmV2aWV3IHdoZW4gc29tZW9uZSBvcGVucyBhIFwiLFxuICAgICAgICBcIiMgcHVsbCByZXF1ZXN0LlwiLFxuICAgICAgICBcIiogICAgICAgQGNka3RuLWlvL3RlYW0tY2RrLXRlcnJhaW5cIixcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBpZiAoIWlzRGVwcmVjYXRlZCkge1xuICAgICAgbmV3IFNob3VsZFJlbGVhc2VTY3JpcHRGaWxlKHRoaXMsIHt9KTtcblxuICAgICAgY29uc3QgcmVsZWFzZVRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQoXCJyZWxlYXNlXCIpITtcbiAgICAgIHRoaXMucmVtb3ZlVGFzayhcInJlbGVhc2VcIik7XG4gICAgICB0aGlzLmFkZFRhc2soXCJyZWxlYXNlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IHJlbGVhc2VUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdGVwczogcmVsZWFzZVRhc2suc3RlcHMsXG4gICAgICAgIGVudjogKHJlbGVhc2VUYXNrIGFzIGFueSkuX2VudixcbiAgICAgICAgY29uZGl0aW9uOiBcIm5vZGUgLi9zY3JpcHRzL3Nob3VsZC1yZWxlYXNlLmpzXCIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkVGFzayhcInVuY29uZGl0aW9uYWwtcmVsZWFzZVwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiByZWxlYXNlVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgc3RlcHM6IHJlbGVhc2VUYXNrLnN0ZXBzLFxuICAgICAgICBlbnY6IChyZWxlYXNlVGFzayBhcyBhbnkpLl9lbnYsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVsZWFzZUpvYlN0ZXBzOiBhbnlbXSA9IChcbiAgICAgICAgdGhpcy5naXRodWI/LnRyeUZpbmRXb3JrZmxvdyhcInJlbGVhc2VcIikgYXMgYW55XG4gICAgICApLmpvYnMucmVsZWFzZS5zdGVwcztcbiAgICAgIGNvbnN0IGdpdFJlbW90ZUpvYiA9IHJlbGVhc2VKb2JTdGVwcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IFwiZ2l0X3JlbW90ZVwiKTtcbiAgICAgIHByZXR0eUFzc2VydEVxdWFsKFxuICAgICAgICBnaXRSZW1vdGVKb2IucnVuLFxuICAgICAgICAnZWNobyBcImxhdGVzdF9jb21taXQ9JChnaXQgbHMtcmVtb3RlIG9yaWdpbiAtaCAke3sgZ2l0aHViLnJlZiB9fSB8IGN1dCAtZjEpXCIgPj4gJEdJVEhVQl9PVVRQVVRcXG5jYXQgJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICBcImdpdF9yZW1vdGUgc3RlcCBpbiByZWxlYXNlIHdvcmtmbG93IGRpZCBub3QgbWF0Y2ggZXhwZWN0ZWQgc3RyaW5nLCBwbGVhc2UgY2hlY2sgaWYgdGhlIHdvcmthcm91bmQgc3RpbGwgd29ya3MhXCJcbiAgICAgICk7XG4gICAgICBjb25zdCBwcmV2aW91c0NvbW1hbmQgPSBnaXRSZW1vdGVKb2IucnVuLnJlcGxhY2UoXCJcXG5cIiwgXCIgJiYgXCIpO1xuXG4gICAgICBjb25zdCBjYW5jZWxDb21tYW5kID1cbiAgICAgICAgJ2VjaG8gXCJsYXRlc3RfY29tbWl0PXJlbGVhc2VfY2FuY2VsbGVkXCIgPj4gJEdJVEhVQl9PVVRQVVQnOyAvLyB0aGlzIGNhbmNlbHMgdGhlIHJlbGVhc2UgdmlhIGEgbm9uLW1hdGNoaW5nIFNIQTtcbiAgICAgIGdpdFJlbW90ZUpvYi5ydW4gPSBgbm9kZSAuL3NjcmlwdHMvc2hvdWxkLXJlbGVhc2UuanMgJiYgKCR7cHJldmlvdXNDb21tYW5kfSkgfHwgJHtjYW5jZWxDb21tYW5kfWA7XG4gICAgICBnaXRSZW1vdGVKb2IubmFtZSArPVxuICAgICAgICBcIiBvciBjYW5jZWwgdmlhIGZha2luZyBhIFNIQSBpZiByZWxlYXNlIHdhcyBjYW5jZWxsZWRcIjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFsZVdvcmtmbG93ID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZShcIi5naXRodWIvd29ya2Zsb3dzL3N0YWxlLnltbFwiKTtcbiAgICBzdGFsZVdvcmtmbG93Py5hZGRPdmVycmlkZShcIm9uLnNjaGVkdWxlXCIsIFtcbiAgICAgIHtcbiAgICAgICAgY3JvbjogZ2VuZXJhdGVSYW5kb21Dcm9uKHsgcHJvamVjdDogdGhpcywgbWF4SG91cjogNCwgaG91ck9mZnNldDogMSB9KSxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICBjb25zdCB1cGdyYWRlV29ya2Zsb3cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKFxuICAgICAgXCIuZ2l0aHViL3dvcmtmbG93cy91cGdyYWRlLW1haW4ueW1sXCJcbiAgICApO1xuICAgIHVwZ3JhZGVXb3JrZmxvdz8uYWRkT3ZlcnJpZGUoXCJvbi5zY2hlZHVsZVwiLCBbXG4gICAgICB7XG4gICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7XG4gICAgICAgICAgcHJvamVjdDogdGhpcyxcbiAgICAgICAgICBtYXhIb3VyOiAwLFxuICAgICAgICAgIGhvdXJPZmZzZXQ6IDEsXG4gICAgICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLldlZWtseSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgLy8gU3VibW9kdWxlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvblxuICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoXCJBUEkubWRcIik7IC8vIGlnbm9yZSB0aGUgb2xkIGZpbGUsIHdlIG5vdyBnZW5lcmF0ZSBpdCBpbiB0aGUgZG9jcyBmb2xkZXJcbiAgICB0aGlzLmFkZERldkRlcHMoXCJqc2lpLWRvY2dlbkBeMTAuMi4zXCIpO1xuICAgIGlmIChqc2lpVmVyc2lvbikge1xuICAgICAgLy8gTk9URTogdGhlIGJlbG93IGlzIG1ha2luZyBhIGJyb2FkIGFzc3VtcHRpb24gdGhhdCB5b3UncmUgcGFzc2luZyBhIHJhbmdlIGxpa2UgXCJ+NS4zLjBcIiB0byBqc2lpVmVyc2lvblxuICAgICAgLy8gSWYgeW91IHVzZSB0aGF0IGZpZWxkIHRvIHBhc3MgYSB2ZXJ5IHNwZWNpZmljIHZlcnNpb24gKGUuZy4gXCI1LjMuMTFcIikgdGhlbiB0aGlzIG1pZ2h0IGJyZWFrXG4gICAgICB0aGlzLmFkZERldkRlcHMoYGpzaWktcm9zZXR0YUAke2pzaWlWZXJzaW9ufWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZERldkRlcHMoYGpzaWktcm9zZXR0YWApO1xuICAgIH1cblxuICAgIGNvbnN0IGRvY2dlbiA9IHRoaXMuYWRkVGFzayhcImRvY2dlblwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgcHJvamVjdFwiLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IFtcbiAgICAgICAgICAgIFwicm0gLXJmIGRvY3NcIixcbiAgICAgICAgICAgIFwicm0gLWYgQVBJLm1kXCIsXG4gICAgICAgICAgICBcIm1rZGlyIGRvY3NcIixcbiAgICAgICAgICAgIC8vIFRPRE86IFJlLWVuYWJsZSBqYXZhIC8gY3NoYXJwXG4gICAgICAgICAgICAvLyBcImpzaWktZG9jZ2VuIC0tc3BsaXQtYnktc3VibW9kdWxlIC1sIHR5cGVzY3JpcHQgLWwgcHl0aG9uIC1sIGphdmEgLWwgY3NoYXJwIC1sIGdvXCIsXG4gICAgICAgICAgICBcImpzaWktZG9jZ2VuIC0tc3BsaXQtYnktc3VibW9kdWxlIC1sIHR5cGVzY3JpcHQgLWwgcHl0aG9uIC1sIGdvXCIsXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBuaWNlIHdheSB0byB0ZWxsIGpzaWktZG9jZ2VuIHRvIGdlbmVyYXRlIGRvY3MgaW50byBhIGZvbGRlciBzbyBJIHdlbnQgdGhpcyByb3V0ZVxuICAgICAgICAgICAgXCJtdiAqLioubWQgZG9jc1wiLFxuICAgICAgICAgICAgLy8gU29tZSBwYXJ0IG9mIHRoZSBkb2N1bWVudGF0aW9uIGFyZSB0b28gbG9uZywgd2UgbmVlZCB0byB0cnVuY2F0ZSB0aGVtIHRvIH4xME1CXG4gICAgICAgICAgICBcImNkIGRvY3NcIixcbiAgICAgICAgICAgIFwibHMgLi8gfCB4YXJncyBzZWQgLWkgJzE1MDAwMCwkIGQnICQxXCIsXG4gICAgICAgICAgXS5qb2luKFwiICYmIFwiKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24oZG9jZ2VuKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5pbmNsdWRlKGAvZG9jcy8qLm1kYCk7XG4gICAgdGhpcy5hbm5vdGF0ZUdlbmVyYXRlZChgL2RvY3MvKi5tZGApO1xuXG4gICAgLy8gU2V0dGluZyB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gc28gdGhlIGdvbGFuZyBkb2NzIGhhdmUgdGhlIGNvcnJlY3QgdmVyc2lvblxuICAgIGNvbnN0IHVuY29uZGl0aW9uYWxCdW1wID0gdGhpcy5hZGRUYXNrKFwidW5jb25kaXRpb25hbC1idW1wXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCB0aGUgdmVyc2lvbiBpbiBwYWNrYWdlLmpzb24gdG8gdGhlIGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiQ2xlYXIgdGhlIGNoYW5nZWxvZyBzbyB0aGF0IGl0IGRvZXNuJ3QgZ2V0IHB1Ymxpc2hlZCB0d2ljZVwiLFxuICAgICAgICAgIGV4ZWM6IFwicm0gLWYgJENIQU5HRUxPR1wiLFxuICAgICAgICB9LFxuICAgICAgICB7IGJ1aWx0aW46IFwicmVsZWFzZS9idW1wLXZlcnNpb25cIiB9LFxuICAgICAgXSxcbiAgICAgIGVudjoge1xuICAgICAgICBPVVRGSUxFOiBcInBhY2thZ2UuanNvblwiLFxuICAgICAgICBDSEFOR0VMT0c6IFwiZGlzdC9jaGFuZ2Vsb2cubWRcIixcbiAgICAgICAgQlVNUEZJTEU6IFwiZGlzdC92ZXJzaW9uLnR4dFwiLFxuICAgICAgICBSRUxFQVNFVEFHOiBcImRpc3QvcmVsZWFzZXRhZy50eHRcIixcbiAgICAgICAgUkVMRUFTRV9UQUdfUFJFRklYOiBcIlwiLFxuICAgICAgICBNSU5fTUFKT1I6IFN0cmluZyhNSU5fTUFKT1JfVkVSU0lPTiksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucHJlQ29tcGlsZVRhc2suc3Bhd24odW5jb25kaXRpb25hbEJ1bXApO1xuICAgIC8vIFRvIGJ1bXAgY29ycmVjdGx5IHdlIG5lZWQgdG8gaGF2ZSB0aGUgY29tcGxldGVseSBjbG9uZWQgcmVwb1xuICAgICh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS53b3JrZmxvdy5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgXCJqb2JzLmJ1aWxkLnN0ZXBzLjAud2l0aC5mZXRjaC1kZXB0aFwiLFxuICAgICAgMFxuICAgICk7XG4gICAgLy8gVW5kbyB0aGUgY2hhbmdlcyBhZnRlciBjb21waWxhdGlvblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdz8uYWRkUG9zdEJ1aWxkU3RlcHMoe1xuICAgICAgbmFtZTogXCJSZXZlcnQgcGFja2FnZS5qc29uIHZlcnNpb24gYnVtcFwiLFxuICAgICAgcnVuOiBcImdpdCBjaGVja291dCBwYWNrYWdlLmpzb25cIixcbiAgICB9KTtcblxuICAgIG5ldyBDb3B5cmlnaHRIZWFkZXJzKHRoaXMpO1xuICAgIG5ldyBEZXByZWNhdGVQYWNrYWdlcyh0aGlzLCB7XG4gICAgICBwcm92aWRlck5hbWUsXG4gICAgICBwYWNrYWdlSW5mbyxcbiAgICAgIGlzRGVwcmVjYXRlZDogISFpc0RlcHJlY2F0ZWQsXG4gICAgfSk7XG4gICAgaWYgKCFpc0RlcHJlY2F0ZWQpIHtcbiAgICAgIG5ldyBGb3JjZVJlbGVhc2UodGhpcywgeyB3b3JrZmxvd1J1bnNPbiB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBpbkdpdGh1YkFjdGlvblZlcnNpb25zKHBpbm5lZFZlcnNpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgLy8gVXNlIHBpbm5lZCB2ZXJzaW9ucyBvZiBnaXRodWIgYWN0aW9uc1xuICAgIE9iamVjdC5lbnRyaWVzKHBpbm5lZFZlcnNpb25zKS5mb3JFYWNoKChbbmFtZSwgc2hhXSkgPT4ge1xuICAgICAgdGhpcy5naXRodWI/LmFjdGlvbnMuc2V0KG5hbWUsIGAke25hbWV9QCR7c2hhfWApO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByZXR0eUFzc2VydEVxdWFsPFQ+KHN1YmplY3Q6IFQsIGV4cGVjdGVkOiBULCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChzdWJqZWN0ICE9PSBleHBlY3RlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke21lc3NhZ2UgPz8gXCJBc3NlcnRpb24gZmFpbGVkXCJ9OiBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBleHBlY3RlZFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHN1YmplY3QpfWBcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -118,9 +118,9 @@ class ProviderUpgrade {
118
118
  {
119
119
  name: "Get GitHub App User ID",
120
120
  id: "get_user_id",
121
- run: 'echo "id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"',
121
+ run: 'echo "id=$(gh api "/users/${{ steps.generate_token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"',
122
122
  env: {
123
- GH_TOKEN: "${{ steps.app-token.outputs.token }}",
123
+ GH_TOKEN: "${{ steps.generate_token.outputs.token }}",
124
124
  },
125
125
  },
126
126
  {
@@ -135,8 +135,8 @@ class ProviderUpgrade {
135
135
  labels: "automerge,auto-approve",
136
136
  "delete-branch": true,
137
137
  token: "${{ steps.generate_token.outputs.token }}",
138
- author: "${{ steps.app-token.outputs.app-slug }}[bot] <${{ steps.get_user_id.outputs.id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>",
139
- committer: "${{ steps.app-token.outputs.app-slug }}[bot] <${{ steps.get_user_id.outputs.id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>",
138
+ author: "${{ steps.generate_token.outputs.app-slug }}[bot] <${{ steps.get_user_id.outputs.id }}+${{ steps.generate_token.outputs.app-slug }}[bot]@users.noreply.github.com>",
139
+ committer: "${{ steps.generate_token.outputs.app-slug }}[bot] <${{ steps.get_user_id.outputs.id }}+${{ steps.generate_token.outputs.app-slug }}[bot]@users.noreply.github.com>",
140
140
  signoff: true,
141
141
  },
142
142
  },
@@ -145,6 +145,8 @@ class ProviderUpgrade {
145
145
  upgrade: {
146
146
  runsOn: options.workflowRunsOn,
147
147
  env: {
148
+ PROJEN_APP_ID: "${{ secrets.PROJEN_APP_ID }}",
149
+ PROJEN_APP_PRIVATE_KEY: "${{ secrets.PROJEN_APP_PRIVATE_KEY }}",
148
150
  NODE_OPTIONS: `--max-old-space-size=${options.nodeHeapSize}`,
149
151
  },
150
152
  steps,
@@ -159,4 +161,4 @@ class ProviderUpgrade {
159
161
  }
160
162
  }
161
163
  exports.ProviderUpgrade = ProviderUpgrade;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJB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UCxNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQzlCLEdBQUcsRUFBRTtvQkFDSCxZQUFZLEVBQUUsd0JBQXdCLE9BQU8sQ0FBQyxZQUFZLEVBQUU7aUJBQzdEO2dCQUNELEtBQUs7Z0JBQ0wsV0FBVyxFQUFFO29CQUNYLFlBQVksRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQ2pDLE1BQU0sRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzNCLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzdCLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7aUJBQzlCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5SkQsMENBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmFuZG9tQ3JvbiB9IGZyb20gXCIuL3V0aWwvcmFuZG9tLWNyb25cIjtcblxuaW50ZXJmYWNlIFByb3ZpZGVyVXBncmFkZU9wdGlvbnMge1xuICBjaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd1J1bnNPbjogc3RyaW5nW107XG4gIG5vZGVIZWFwU2l6ZTogc3RyaW5nO1xufVxuLyoqXG4gKiBDaGVja3MgZm9yIG5ldyB2ZXJzaW9ucyBvZiB0aGUgZ2l2ZW4gcHJvdmlkZXIgYW5kIGNyZWF0ZXMgYSBQUiB3aXRoIGFuIHVwZ3JhZGUgY2hhbmdlIGlmIHRoZXJlIGFyZSBjaGFuZ2VzLlxuICovXG5leHBvcnQgY2xhc3MgUHJvdmlkZXJVcGdyYWRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCxcbiAgICBvcHRpb25zOiBQcm92aWRlclVwZ3JhZGVPcHRpb25zXG4gICkge1xuICAgIHByb2plY3QuYWRkVGFzayhcImNoZWNrLWlmLW5ldy1wcm92aWRlci12ZXJzaW9uXCIsIHtcbiAgICAgIGV4ZWM6IGBub2RlIC4vJHtvcHRpb25zLmNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRofWAsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy5hZGRXb3JrZmxvdyhcInByb3ZpZGVyLXVwZ3JhZGVcIik7XG5cbiAgICBpZiAoIXdvcmtmbG93KSB0aHJvdyBuZXcgRXJyb3IoXCJubyB3b3JrZmxvdyBkZWZpbmVkXCIpO1xuXG4gICAgd29ya2Zsb3cub24oe1xuICAgICAgc2NoZWR1bGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNyb246IGdlbmVyYXRlUmFuZG9tQ3Jvbih7XG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgbWF4SG91cjogMCxcbiAgICAgICAgICAgIGhvdXJPZmZzZXQ6IDMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLCAvLyBSdW4gZXZlcnkgZGF5IHNvbWV0aW1lIGJldHdlZW4gMyBhbmQgNGFtXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSwgLy8gYWxsb3cgbWFudWFsIHRyaWdnZXJpbmdcbiAgICB9KTtcblxuICAgIGNvbnN0IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSA9XG4gICAgICBcIiR7eyBzdGVwcy5jaGVja192ZXJzaW9uLm91dHB1dHMubmV3X3ZlcnNpb24gPT0gJ2F2YWlsYWJsZScgfX1cIjtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IFwiJHt7IHN0ZXBzLmN1cnJlbnRfdmVyc2lvbi5vdXRwdXRzLnZhbHVlIH19XCI7XG4gICAgY29uc3QgbmV3VmVyc2lvbiA9IFwiJHt7IHN0ZXBzLm5ld192ZXJzaW9uLm91dHB1dHMudmFsdWUgfX1cIjtcbiAgICBjb25zdCBzZW1hbnRpY1R5cGUgPSBcIiR7eyBzdGVwcy5yZWxlYXNlLm91dHB1dHMudHlwZSB9fVwiO1xuXG4gICAgY29uc3Qgc3RlcHM6IEpvYlN0ZXBbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDaGVja291dFwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgVGVycmFmb3JtXCIsXG4gICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgdGVycmFmb3JtX3dyYXBwZXI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlLmpzXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcIm5vZGUtdmVyc2lvblwiOiBwcm9qZWN0Lm1pbk5vZGVWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC1jb3B5d3JpdGVcIixcbiAgICAgIH0sXG4gICAgICB7IHJ1bjogXCJ5YXJuIGluc3RhbGxcIiB9LFxuICAgICAge1xuICAgICAgICBpZDogXCJjaGVja192ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogXCJ5YXJuIGNoZWNrLWlmLW5ldy1wcm92aWRlci12ZXJzaW9uXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImdldCBwcm92aWRlciBjdXJyZW50IHZlcnNpb25cIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwiY3VycmVudF92ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogYGVjaG8gXCJ2YWx1ZT0kKGpxIC1yICcuY2RrdGYucHJvdmlkZXIudmVyc2lvbicgcGFja2FnZS5qc29uKVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bjogXCJ5YXJuIGZldGNoXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENIRUNLUE9JTlRfRElTQUJMRTogXCIxXCIsXG4gICAgICAgICAgR0hfVE9LRU46IFwiJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBCZWNhdXNlIHlhcm4gZmV0Y2ggbnVrZXMgdGhlIGNvbnRlbnRzIG9mIC9zcmMsIHdlJ3ZlIGxvc3Qgb3VyIGF1dG8tZ2VuZXJhdGVkIGNvcHlyaWdodCBoZWFkZXJzXG4gICAgICAgIG5hbWU6IFwiQWRkIGhlYWRlcnMgdXNpbmcgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgcnVuOiBcImNvcHl3cml0ZSBoZWFkZXJzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImdldCBwcm92aWRlciB1cGRhdGVkIHZlcnNpb25cIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwibmV3X3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBgZWNobyBcInZhbHVlPSQoanEgLXIgJy4gfCB0b19lbnRyaWVzW10gfCAudmFsdWUnIHNyYy92ZXJzaW9uLmpzb24pXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIG1pbm9yIG9yIHBhdGNoIHJlbGVhc2VcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgaWQ6IFwicmVsZWFzZVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDVVJSRU5UX1ZFUlNJT046IGN1cnJlbnRWZXJzaW9uLFxuICAgICAgICAgIE5FV19WRVJTSU9OOiBuZXdWZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgICBydW46IFtcbiAgICAgICAgICBgQ1VSUkVOVF9WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJENVUlJFTlRfVkVSU0lPTlwiKWAsXG4gICAgICAgICAgYE5FV19WRVJTSU9OX01JTk9SPSQoY3V0IC1kIFwiLlwiIC1mIDIgPDw8IFwiJE5FV19WRVJTSU9OXCIpYCxcbiAgICAgICAgICBgW1sgXCIkQ1VSUkVOVF9WRVJTSU9OX01JTk9SXCIgIT0gXCIkTkVXX1ZFUlNJT05fTUlOT1JcIiBdXSAmJiBJU19NSU5PUl9SRUxFQVNFPXRydWUgfHwgSVNfTUlOT1JfUkVMRUFTRT1mYWxzZWAsXG4gICAgICAgICAgYFtbIFwiJElTX01JTk9SX1JFTEVBU0VcIiA9PSBcInRydWVcIiBdXSAmJiBTRU1BTlRJQ19UWVBFPWZlYXQgfHwgU0VNQU5USUNfVFlQRT1maXhgLFxuICAgICAgICAgIGBlY2hvIFwiaXNfbWlub3I9JElTX01JTk9SX1JFTEVBU0VcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgICAgYGVjaG8gXCJ0eXBlPSRTRU1BTlRJQ19UWVBFXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgICAgLy8gc3VibWl0IGEgUFJcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZW5lcmF0ZSB0b2tlblwiLFxuICAgICAgICBpZDogXCJnZW5lcmF0ZV90b2tlblwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5cIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwiYXBwLWlkXCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX0lEIH19XCIsXG4gICAgICAgICAgXCJwcml2YXRlLWtleVwiOiBcIiR7eyBlbnYuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHZXQgR2l0SHViIEFwcCBVc2VyIElEXCIsXG4gICAgICAgIGlkOiBcImdldF91c2VyX2lkXCIsXG4gICAgICAgIHJ1bjogJ2VjaG8gXCJpZD0kKGdoIGFwaSBcIi91c2Vycy8ke3sgc3RlcHMuYXBwLXRva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XVwiIC0tanEgLmlkKVwiID4+IFwiJEdJVEhVQl9PVVRQVVRcIicsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIEdIX1RPS0VOOiBcIiR7eyBzdGVwcy5hcHAtdG9rZW4ub3V0cHV0cy50b2tlbiB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDcmVhdGUgUHVsbCBSZXF1ZXN0XCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIHVzZXM6IFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdFwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgYnJhbmNoOiBcImF1dG8vcHJvdmlkZXItdXBncmFkZVwiLFxuICAgICAgICAgIFwiY29tbWl0LW1lc3NhZ2VcIjogYCR7c2VtYW50aWNUeXBlfTogdXBncmFkZSBwcm92aWRlciBmcm9tIFxcYCR7Y3VycmVudFZlcnNpb259XFxgIHRvIHZlcnNpb24gXFxgJHtuZXdWZXJzaW9ufVxcYGAsXG4gICAgICAgICAgdGl0bGU6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIGJvZHk6IGBUaGlzIFBSIHVwZ3JhZGVzIHRoZSB1bmRlcmx5aW5nIFRlcnJhZm9ybSBwcm92aWRlciB0byB2ZXJzaW9uICR7bmV3VmVyc2lvbn1gLFxuICAgICAgICAgIGxhYmVsczogXCJhdXRvbWVyZ2UsYXV0by1hcHByb3ZlXCIsXG4gICAgICAgICAgXCJkZWxldGUtYnJhbmNoXCI6IHRydWUsXG4gICAgICAgICAgdG9rZW46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgICBhdXRob3I6XG4gICAgICAgICAgICBcIiR7eyBzdGVwcy5hcHAtdG9rZW4ub3V0cHV0cy5hcHAtc2x1ZyB9fVtib3RdIDwke3sgc3RlcHMuZ2V0X3VzZXJfaWQub3V0cHV0cy5pZCB9fSske3sgc3RlcHMuYXBwLXRva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+XCIsXG4gICAgICAgICAgY29tbWl0dGVyOlxuICAgICAgICAgICAgXCIke3sgc3RlcHMuYXBwLXRva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XSA8JHt7IHN0ZXBzLmdldF91c2VyX2lkLm91dHB1dHMuaWQgfX0rJHt7IHN0ZXBzLmFwcC10b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIuY29tPlwiLFxuICAgICAgICAgIHNpZ25vZmY6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB3b3JrZmxvdy5hZGRKb2JzKHtcbiAgICAgIHVwZ3JhZGU6IHtcbiAgICAgICAgcnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBOT0RFX09QVElPTlM6IGAtLW1heC1vbGQtc3BhY2Utc2l6ZT0ke29wdGlvbnMubm9kZUhlYXBTaXplfWAsXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgc3RhdHVzZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJB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UCxNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQzlCLEdBQUcsRUFBRTtvQkFDSCxhQUFhLEVBQUUsOEJBQThCO29CQUM3QyxzQkFBc0IsRUFBRSx1Q0FBdUM7b0JBQy9ELFlBQVksRUFBRSx3QkFBd0IsT0FBTyxDQUFDLFlBQVksRUFBRTtpQkFDN0Q7Z0JBQ0QsS0FBSztnQkFDTCxXQUFXLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDakMsTUFBTSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDM0IsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDN0IsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDOUI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhLRCwwQ0FnS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21Dcm9uIH0gZnJvbSBcIi4vdXRpbC9yYW5kb20tY3JvblwiO1xuXG5pbnRlcmZhY2UgUHJvdmlkZXJVcGdyYWRlT3B0aW9ucyB7XG4gIGNoZWNrRm9yVXBncmFkZXNTY3JpcHRQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93UnVuc09uOiBzdHJpbmdbXTtcbiAgbm9kZUhlYXBTaXplOiBzdHJpbmc7XG59XG4vKipcbiAqIENoZWNrcyBmb3IgbmV3IHZlcnNpb25zIG9mIHRoZSBnaXZlbiBwcm92aWRlciBhbmQgY3JlYXRlcyBhIFBSIHdpdGggYW4gdXBncmFkZSBjaGFuZ2UgaWYgdGhlcmUgYXJlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm92aWRlclVwZ3JhZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0LFxuICAgIG9wdGlvbnM6IFByb3ZpZGVyVXBncmFkZU9wdGlvbnNcbiAgKSB7XG4gICAgcHJvamVjdC5hZGRUYXNrKFwiY2hlY2staWYtbmV3LXByb3ZpZGVyLXZlcnNpb25cIiwge1xuICAgICAgZXhlYzogYG5vZGUgLi8ke29wdGlvbnMuY2hlY2tGb3JVcGdyYWRlc1NjcmlwdFBhdGh9YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LmFkZFdvcmtmbG93KFwicHJvdmlkZXItdXBncmFkZVwiKTtcblxuICAgIGlmICghd29ya2Zsb3cpIHRocm93IG5ldyBFcnJvcihcIm5vIHdvcmtmbG93IGRlZmluZWRcIik7XG5cbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBzY2hlZHVsZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY3JvbjogZ2VuZXJhdGVSYW5kb21Dcm9uKHtcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICBtYXhIb3VyOiAwLFxuICAgICAgICAgICAgaG91ck9mZnNldDogMyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sIC8vIFJ1biBldmVyeSBkYXkgc29tZXRpbWUgYmV0d2VlbiAzIGFuZCA0YW1cbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LCAvLyBhbGxvdyBtYW51YWwgdHJpZ2dlcmluZ1xuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3ZXJWZXJzaW9uQXZhaWxhYmxlID1cbiAgICAgIFwiJHt7IHN0ZXBzLmNoZWNrX3ZlcnNpb24ub3V0cHV0cy5uZXdfdmVyc2lvbiA9PSAnYXZhaWxhYmxlJyB9fVwiO1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gXCIke3sgc3RlcHMuY3VycmVudF92ZXJzaW9uLm91dHB1dHMudmFsdWUgfX1cIjtcbiAgICBjb25zdCBuZXdWZXJzaW9uID0gXCIke3sgc3RlcHMubmV3X3ZlcnNpb24ub3V0cHV0cy52YWx1ZSB9fVwiO1xuICAgIGNvbnN0IHNlbWFudGljVHlwZSA9IFwiJHt7IHN0ZXBzLnJlbGVhc2Uub3V0cHV0cy50eXBlIH19XCI7XG5cbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBUZXJyYWZvcm1cIixcbiAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtdGVycmFmb3JtXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICB0ZXJyYWZvcm1fd3JhcHBlcjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIE5vZGUuanNcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL3NldHVwLW5vZGVcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwibm9kZS12ZXJzaW9uXCI6IHByb2plY3QubWluTm9kZVZlcnNpb24sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLWNvcHl3cml0ZVwiLFxuICAgICAgfSxcbiAgICAgIHsgcnVuOiBcInlhcm4gaW5zdGFsbFwiIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiBcImNoZWNrX3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBcInlhcm4gY2hlY2staWYtbmV3LXByb3ZpZGVyLXZlcnNpb25cIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZ2V0IHByb3ZpZGVyIGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBpZDogXCJjdXJyZW50X3ZlcnNpb25cIixcbiAgICAgICAgcnVuOiBgZWNobyBcInZhbHVlPSQoanEgLXIgJy5jZGt0Zi5wcm92aWRlci52ZXJzaW9uJyBwYWNrYWdlLmpzb24pXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVuOiBcInlhcm4gZmV0Y2hcIixcbiAgICAgICAgaWY6IG5ld2VyVmVyc2lvbkF2YWlsYWJsZSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0hFQ0tQT0lOVF9ESVNBQkxFOiBcIjFcIixcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJlY2F1c2UgeWFybiBmZXRjaCBudWtlcyB0aGUgY29udGVudHMgb2YgL3NyYywgd2UndmUgbG9zdCBvdXIgYXV0by1nZW5lcmF0ZWQgY29weXJpZ2h0IGhlYWRlcnNcbiAgICAgICAgbmFtZTogXCJBZGQgaGVhZGVycyB1c2luZyBDb3B5d3JpdGUgdG9vbFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBydW46IFwiY29weXdyaXRlIGhlYWRlcnNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZ2V0IHByb3ZpZGVyIHVwZGF0ZWQgdmVyc2lvblwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBpZDogXCJuZXdfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnLiB8IHRvX2VudHJpZXNbXSB8IC52YWx1ZScgc3JjL3ZlcnNpb24uanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkRldGVybWluZSBpZiB0aGlzIGlzIGEgbWlub3Igb3IgcGF0Y2ggcmVsZWFzZVwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBpZDogXCJyZWxlYXNlXCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENVUlJFTlRfVkVSU0lPTjogY3VycmVudFZlcnNpb24sXG4gICAgICAgICAgTkVXX1ZFUlNJT046IG5ld1ZlcnNpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bjogW1xuICAgICAgICAgIGBDVVJSRU5UX1ZFUlNJT05fTUlOT1I9JChjdXQgLWQgXCIuXCIgLWYgMiA8PDwgXCIkQ1VSUkVOVF9WRVJTSU9OXCIpYCxcbiAgICAgICAgICBgTkVXX1ZFUlNJT05fTUlOT1I9JChjdXQgLWQgXCIuXCIgLWYgMiA8PDwgXCIkTkVXX1ZFUlNJT05cIilgLFxuICAgICAgICAgIGBbWyBcIiRDVVJSRU5UX1ZFUlNJT05fTUlOT1JcIiAhPSBcIiRORVdfVkVSU0lPTl9NSU5PUlwiIF1dICYmIElTX01JTk9SX1JFTEVBU0U9dHJ1ZSB8fCBJU19NSU5PUl9SRUxFQVNFPWZhbHNlYCxcbiAgICAgICAgICBgW1sgXCIkSVNfTUlOT1JfUkVMRUFTRVwiID09IFwidHJ1ZVwiIF1dICYmIFNFTUFOVElDX1RZUEU9ZmVhdCB8fCBTRU1BTlRJQ19UWVBFPWZpeGAsXG4gICAgICAgICAgYGVjaG8gXCJpc19taW5vcj0kSVNfTUlOT1JfUkVMRUFTRVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgICAgICBgZWNobyBcInR5cGU9JFNFTUFOVElDX1RZUEVcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgIH0sXG4gICAgICAvLyBzdWJtaXQgYSBQUlxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdlbmVyYXRlIHRva2VuXCIsXG4gICAgICAgIGlkOiBcImdlbmVyYXRlX3Rva2VuXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9jcmVhdGUtZ2l0aHViLWFwcC10b2tlblwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgXCJhcHAtaWRcIjogXCIke3sgZW52LlBST0pFTl9BUFBfSUQgfX1cIixcbiAgICAgICAgICBcInByaXZhdGUta2V5XCI6IFwiJHt7IGVudi5QUk9KRU5fQVBQX1BSSVZBVEVfS0VZIH19XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdldCBHaXRIdWIgQXBwIFVzZXIgSURcIixcbiAgICAgICAgaWQ6IFwiZ2V0X3VzZXJfaWRcIixcbiAgICAgICAgcnVuOiAnZWNobyBcImlkPSQoZ2ggYXBpIFwiL3VzZXJzLyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1cIiAtLWpxIC5pZClcIiA+PiBcIiRHSVRIVUJfT1VUUFVUXCInLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBHSF9UT0tFTjogXCIke3sgc3RlcHMuZ2VuZXJhdGVfdG9rZW4ub3V0cHV0cy50b2tlbiB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDcmVhdGUgUHVsbCBSZXF1ZXN0XCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIHVzZXM6IFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdFwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgYnJhbmNoOiBcImF1dG8vcHJvdmlkZXItdXBncmFkZVwiLFxuICAgICAgICAgIFwiY29tbWl0LW1lc3NhZ2VcIjogYCR7c2VtYW50aWNUeXBlfTogdXBncmFkZSBwcm92aWRlciBmcm9tIFxcYCR7Y3VycmVudFZlcnNpb259XFxgIHRvIHZlcnNpb24gXFxgJHtuZXdWZXJzaW9ufVxcYGAsXG4gICAgICAgICAgdGl0bGU6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIGJvZHk6IGBUaGlzIFBSIHVwZ3JhZGVzIHRoZSB1bmRlcmx5aW5nIFRlcnJhZm9ybSBwcm92aWRlciB0byB2ZXJzaW9uICR7bmV3VmVyc2lvbn1gLFxuICAgICAgICAgIGxhYmVsczogXCJhdXRvbWVyZ2UsYXV0by1hcHByb3ZlXCIsXG4gICAgICAgICAgXCJkZWxldGUtYnJhbmNoXCI6IHRydWUsXG4gICAgICAgICAgdG9rZW46IFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX1cIixcbiAgICAgICAgICBhdXRob3I6XG4gICAgICAgICAgICBcIiR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF0gPCR7eyBzdGVwcy5nZXRfdXNlcl9pZC5vdXRwdXRzLmlkIH19KyR7eyBzdGVwcy5nZW5lcmF0ZV90b2tlbi5vdXRwdXRzLmFwcC1zbHVnIH19W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIuY29tPlwiLFxuICAgICAgICAgIGNvbW1pdHRlcjpcbiAgICAgICAgICAgIFwiJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XSA8JHt7IHN0ZXBzLmdldF91c2VyX2lkLm91dHB1dHMuaWQgfX0rJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMuYXBwLXNsdWcgfX1bYm90XUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+XCIsXG4gICAgICAgICAgc2lnbm9mZjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgdXBncmFkZToge1xuICAgICAgICBydW5zT246IG9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIFBST0pFTl9BUFBfSUQ6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9JRCB9fVwiLFxuICAgICAgICAgIFBST0pFTl9BUFBfUFJJVkFURV9LRVk6IFwiJHt7IHNlY3JldHMuUFJPSkVOX0FQUF9QUklWQVRFX0tFWSB9fVwiLFxuICAgICAgICAgIE5PREVfT1BUSU9OUzogYC0tbWF4LW9sZC1zcGFjZS1zaXplPSR7b3B0aW9ucy5ub2RlSGVhcFNpemV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcHMsXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBzdGF0dXNlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -42,32 +42,32 @@
42
42
  "@types/glob": "^8.1.0",
43
43
  "@types/jest": "^29",
44
44
  "@types/node": "^20",
45
- "@typescript-eslint/eslint-plugin": "^7",
46
- "@typescript-eslint/parser": "^7",
45
+ "@typescript-eslint/eslint-plugin": "^8",
46
+ "@typescript-eslint/parser": "^8",
47
47
  "commit-and-tag-version": "^12",
48
48
  "constructs": "10.4.2",
49
- "eslint": "^8",
49
+ "eslint": "^9",
50
50
  "eslint-config-prettier": "^8.10.2",
51
51
  "eslint-import-resolver-typescript": "^2.7.1",
52
52
  "eslint-plugin-import": "^2.32.0",
53
53
  "eslint-plugin-prettier": "^4.2.5",
54
54
  "glob": "^7.2.3",
55
55
  "jest": "^29",
56
- "jest-junit": "^15",
57
- "jsii": "~5.8.0",
56
+ "jest-junit": "^16",
57
+ "jsii": "~5.9.0",
58
58
  "jsii-diff": "^1.114.1",
59
59
  "jsii-docgen": "^10.5.0",
60
60
  "jsii-pacmak": "^1.114.1",
61
- "jsii-rosetta": "~5.8.0",
61
+ "jsii-rosetta": "~5.9.0",
62
62
  "prettier": "^2.8.8",
63
- "projen": "0.87.4",
63
+ "projen": "0.99.0",
64
64
  "ts-jest": "^29",
65
65
  "ts-node": "^10.9.2",
66
- "typescript": "~5.8.0"
66
+ "typescript": "~5.9.0"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "constructs": "^10.4.2",
70
- "projen": "^0.87.4"
70
+ "projen": "^0.99.0"
71
71
  },
72
72
  "dependencies": {
73
73
  "change-case": "^4.1.2",
@@ -78,14 +78,14 @@
78
78
  "fs-extra"
79
79
  ],
80
80
  "engines": {
81
- "node": ">= 20.9.0"
81
+ "node": ">= 20.16.0"
82
82
  },
83
83
  "main": "lib/index.js",
84
84
  "license": "MPL-2.0",
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "version": "0.7.28",
88
+ "version": "0.7.29",
89
89
  "jest": {
90
90
  "coverageProvider": "v8",
91
91
  "testMatch": [