projen 0.58.15 → 0.58.18
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 +98 -83
- package/README.md +2 -2
- package/docs/api/API.md +1 -0
- package/lib/awscdk/auto-discover.js +5 -5
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +2 -2
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +1 -1
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.js +1 -1
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose.js +2 -2
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +1 -1
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/jest.d.ts +3 -0
- package/lib/javascript/jest.js +4 -6
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +1 -1
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +3 -2
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/semver.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-runtime.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +6 -6
- package/lib/version.js +1 -1
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +4 -4
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +2 -2
package/lib/release/publisher.js
CHANGED
|
@@ -93,6 +93,7 @@ class Publisher extends component_1.Component {
|
|
|
93
93
|
PROJECT_CHANGELOG_FILE: projectChangelogFile ?? "",
|
|
94
94
|
VERSION_FILE: versionFile,
|
|
95
95
|
},
|
|
96
|
+
condition: '! git log --oneline -1 | grep -q "chore(release):"',
|
|
96
97
|
});
|
|
97
98
|
if (projectChangelogFile) {
|
|
98
99
|
publishTask.builtin("release/update-changelog");
|
|
@@ -417,7 +418,7 @@ class Publisher extends component_1.Component {
|
|
|
417
418
|
}
|
|
418
419
|
exports.Publisher = Publisher;
|
|
419
420
|
_a = JSII_RTTI_SYMBOL_1;
|
|
420
|
-
Publisher[_a] = { fqn: "projen.release.Publisher", version: "0.58.
|
|
421
|
+
Publisher[_a] = { fqn: "projen.release.Publisher", version: "0.58.18" };
|
|
421
422
|
Publisher.PUBLISH_GIT_TASK_NAME = "publish:git";
|
|
422
423
|
function secret(secretName) {
|
|
423
424
|
return `\${{ secrets.${secretName} }}`;
|
|
@@ -431,4 +432,4 @@ function isAwsCodeArtifactRegistry(registryUrl) {
|
|
|
431
432
|
return registryUrl && AWS_CODEARTIFACT_REGISTRY_REGEX.test(registryUrl);
|
|
432
433
|
}
|
|
433
434
|
exports.isAwsCodeArtifactRegistry = isAwsCodeArtifactRegistry;
|
|
434
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlbGVhc2UvcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQXlDO0FBQ3pDLG1EQUc2QjtBQUM3QiwrREFNbUM7QUFDbkMsNkRBQTZEO0FBSTdELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQUNoQyxNQUFNLHdCQUF3QixHQUFHLG9CQUFvQixDQUFDO0FBQ3RELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLE1BQU0sZ0NBQWdDLEdBQUcsOEJBQThCLENBQUM7QUFDeEUsTUFBTSxnQ0FBZ0MsR0FBRyw4QkFBOEIsQ0FBQztBQUN4RSxNQUFNLCtCQUErQixHQUFHLCtCQUErQixDQUFDO0FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsRUFBRSxFQUFFLEVBQUU7SUFDTixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDbkMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQ3RDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRTtJQUNsQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7Q0FDdkMsQ0FBQztBQWdGRjs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEscUJBQVM7SUF1QnRDLFlBQVksT0FBZ0IsRUFBRSxPQUF5QjtRQUNyRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFSakIsK0RBQStEO1FBQzlDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUV4Qyx5QkFBb0IsR0FBYyxFQUFFLENBQUM7UUFPcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElB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QUUsQ0FBQyxDQUFDO2FBQ3ZEO1lBRUQsT0FBTztnQkFDTCxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO3dCQUN6QixHQUFHLElBQUksQ0FBQyxZQUFZO3FCQUNyQjtvQkFDRCxJQUFJLEVBQUUsY0FBYyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUN2QyxXQUFXLEVBQUUsS0FBSztvQkFDbEIsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUNsQixLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLEtBQUs7aUJBQ047YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQWU7UUFDbkMsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxRCxDQUFDOztBQTlmSCw4QkErZkM7OztBQTlmd0IsK0JBQXFCLEdBQUcsYUFBYSxDQUFDO0FBZ2dCL0QsU0FBUyxNQUFNLENBQUMsVUFBa0I7SUFDaEMsT0FBTyxnQkFBZ0IsVUFBVSxLQUFLLENBQUM7QUFDekMsQ0FBQztBQTRYRDs7OztHQUlHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsV0FBK0I7SUFDdkUsT0FBTyxXQUFXLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFGRCw4REFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gIEJVSUxEX0FSVElGQUNUX05BTUUsXG4gIERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUixcbn0gZnJvbSBcIi4uL2dpdGh1Yi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIEpvYixcbiAgSm9iUGVybWlzc2lvbixcbiAgSm9iUGVybWlzc2lvbnMsXG4gIEpvYlN0ZXAsXG4gIFRvb2xzLFxufSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZGVmYXVsdE5wbVRva2VuIH0gZnJvbSBcIi4uL2phdmFzY3JpcHQvbm9kZS1wYWNrYWdlXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IEJyYW5jaE9wdGlvbnMgfSBmcm9tIFwiLi9yZWxlYXNlXCI7XG5cbmNvbnN0IFBVQkxJQl9WRVJTSU9OID0gXCJsYXRlc3RcIjtcbmNvbnN0IEdJVEhVQl9QQUNLQUdFU19SRUdJU1RSWSA9IFwibnBtLnBrZy5naXRodWIuY29tXCI7XG5jb25zdCBBUlRJRkFDVFNfRE9XTkxPQURfRElSID0gXCJkaXN0XCI7XG5jb25zdCBHSVRIVUJfUEFDS0FHRVNfTUFWRU5fUkVQT1NJVE9SWSA9IFwiaHR0cHM6Ly9tYXZlbi5wa2cuZ2l0aHViLmNvbVwiO1xuY29uc3QgR0lUSFVCX1BBQ0tBR0VTX05VR0VUX1JFUE9TSVRPUlkgPSBcImh0dHBzOi8vbnVnZXQucGtnLmdpdGh1Yi5jb21cIjtcbmNvbnN0IEFXU19DT0RFQVJUSUZBQ1RfUkVHSVNUUllfUkVHRVggPSAvLmNvZGVhcnRpZmFjdC4qLmFtYXpvbmF3cy5jb20vO1xuY29uc3QgUFVCTElCX1RPT0xDSEFJTiA9IHtcbiAganM6IHt9LFxuICBqYXZhOiB7IGphdmE6IHsgdmVyc2lvbjogXCIxMS54XCIgfSB9LFxuICBweXRob246IHsgcHl0aG9uOiB7IHZlcnNpb246IFwiMy54XCIgfSB9LFxuICBnbzogeyBnbzogeyB2ZXJzaW9uOiBcIl4xLjE2LjBcIiB9IH0sXG4gIGRvdG5ldDogeyBkb3RuZXQ6IHsgdmVyc2lvbjogXCIzLnhcIiB9IH0sXG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBQdWJsaXNoZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGpvYiBJRCB0aGF0IHByb2R1Y2VzIHRoZSBidWlsZCBhcnRpZmFjdHMuIEFsbCBwdWJsaXNoIGpvYnMgd2lsbCB0YWtlIGEgZGVwZW5kZW5jeSBvbiB0aGlzIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSm9iSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSBHaXRIdWIgd29ya2Zsb3cgZXhwcmVzc2lvbiB1c2VkIGFzIGEgY29uZGl0aW9uIGZvciBwdWJsaXNoZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbmRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXJ0aWZhY3QgdG8gZG93bmxvYWQgKGUuZy4gYGRpc3RgKS5cbiAgICpcbiAgICogVGhlIGFydGlmYWN0IGlzIGV4cGVjdGVkIHRvIGluY2x1ZGUgYSBzdWJkaXJlY3RvcnkgZm9yIGVhY2ggcmVsZWFzZSB0YXJnZXQ6XG4gICAqIGBnb2AgKEdpdEh1YiksIGBkb3RuZXRgIChOdUdldCksIGBqYXZhYCAoTWF2ZW4pLCBganNgIChucG0pLCBgcHl0aG9uYFxuICAgKiAoUHlQSSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9wdWJsaWJcbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYHB1YmxpYlZlcnNpb25gIGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlSZWxlYXNlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiByZXF1aXJlbWVudCBmb3IgYHB1YmxpYmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpYlZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpc3N1ZSB3aGVuIGEgcHVibGlzaCB0YXNrIGZhaWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUlzc3VlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGFwcGx5IHRvIHRoZSBpc3N1ZSBtYXJraW5nIGZhaWxlZCBwdWJsaXNoIHRhc2tzLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYGZhaWx1cmVJc3N1ZWAgaXMgdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJmYWlsZWQtcmVsZWFzZVwiXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlSXNzdWVMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzXG4gICAqIEBkZWZhdWx0IFtcInVidW50dS1sYXRlc3RcIl1cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93UnVuc09uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIERlZmluZSBwdWJsaXNoaW5nIHRhc2tzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIG1hbnVhbGx5IGFzIHdlbGwgYXMgd29ya2Zsb3dzLlxuICAgKlxuICAgKiBOb3JtYWxseSwgcHVibGlzaGluZyBvbmx5IGhhcHBlbnMgd2l0aGluIGF1dG9tYXRlZCB3b3JrZmxvd3MuIEVuYWJsZSB0aGlzXG4gICAqIGluIG9yZGVyIHRvIGNyZWF0ZSBhIHB1Ymxpc2hpbmcgdGFzayBmb3IgZWFjaCBwdWJsaXNoaW5nIGFjdGl2aXR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRhc2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRG8gbm90IGFjdHVhbGx5IHB1Ymxpc2gsIG9ubHkgcHJpbnQgdGhlIGNvbW1hbmRzIHRoYXQgd291bGQgYmUgZXhlY3V0ZWQgaW5zdGVhZC5cbiAgICpcbiAgICogVXNlZnVsIGlmIHlvdSB3aXNoIHRvIGJsb2NrIGFsbCBwdWJsaXNoaW5nIGZyb20gYSBzaW5nbGUgb3B0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZHJ5UnVuPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRzIEdpdEh1YiBqb2JzIGZvciBwdWJsaXNoaW5nIG1vZHVsZXMgdG8gcGFja2FnZSBtYW5hZ2Vycy5cbiAqXG4gKiBVbmRlciB0aGUgaG9vZCwgaXQgdXNlcyBodHRwczovL2dpdGh1Yi5jb20vYXdzL3B1YmxpYlxuICovXG5leHBvcnQgY2xhc3MgUHVibGlzaGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQVUJMSVNIX0dJVF9UQVNLX05BTUUgPSBcInB1Ymxpc2g6Z2l0XCI7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkSm9iSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFydGlmYWN0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGliVmVyc2lvbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHB1YmxpYlZlcnNpb25gICovXG4gIHB1YmxpYyByZWFkb25seSBqc2lpUmVsZWFzZVZlcnNpb246IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGZhaWx1cmVJc3N1ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBmYWlsdXJlSXNzdWVMYWJlbDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bnNPbjogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcHVibGlzaFRhc2tzOiBib29sZWFuO1xuXG4gIC8vIGZ1bmN0aW9ucyB0aGF0IGNyZWF0ZSBqb2JzIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGJyYW5jaFxuICBwcml2YXRlIHJlYWRvbmx5IF9qb2JGYWN0b3JpZXM6IFB1Ymxpc2hKb2JGYWN0b3J5W10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9naXRIdWJQcmVQdWJsaXNoaW5nOiBKb2JTdGVwW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyeVJ1bjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBQdWJsaXNoZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmJ1aWxkSm9iSWQgPSBvcHRpb25zLmJ1aWxkSm9iSWQ7XG4gICAgdGhpcy5hcnRpZmFjdE5hbWUgPSBvcHRpb25zLmFydGlmYWN0TmFtZTtcbiAgICB0aGlzLnB1YmxpYlZlcnNpb24gPVxuICAgICAgb3B0aW9ucy5wdWJsaWJWZXJzaW9uID8/IG9wdGlvbnMuanNpaVJlbGVhc2VWZXJzaW9uID8/IFBVQkxJQl9WRVJTSU9OO1xuICAgIHRoaXMuanNpaVJlbGVhc2VWZXJzaW9uID0gdGhpcy5wdWJsaWJWZXJzaW9uO1xuICAgIHRoaXMuY29uZGl0aW9uID0gb3B0aW9ucy5jb25kaXRpb247XG4gICAgdGhpcy5kcnlSdW4gPSBvcHRpb25zLmRyeVJ1biA/PyBmYWxzZTtcblxuICAgIHRoaXMuZmFpbHVyZUlzc3VlID0gb3B0aW9ucy5mYWlsdXJlSXNzdWUgPz8gZmFsc2U7XG4gICAgdGhpcy5mYWlsdXJlSXNzdWVMYWJlbCA9IG9wdGlvbnMuZmFpbHVyZUlzc3VlTGFiZWwgPz8gXCJmYWlsZWQtcmVsZWFzZVwiO1xuICAgIHRoaXMucnVuc09uID0gb3B0aW9ucy53b3JrZmxvd1J1bnNPbiA/PyBbXCJ1YnVudHUtbGF0ZXN0XCJdO1xuICAgIHRoaXMucHVibGlzaFRhc2tzID0gb3B0aW9ucy5wdWJsaXNoVGFza3MgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IGBSZWxlYXNlYCB0byBhZGQgdGhlIHB1Ymxpc2hpbmcgam9icyB0byBhIHJlbGVhc2Ugd29ya2Zsb3dcbiAgICogYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYnJhbmNoLlxuICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBicmFuY2ggbmFtZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBCcmFuY2ggb3B0aW9uc1xuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVySm9ic0ZvckJyYW5jaChcbiAgICBicmFuY2g6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEJyYW5jaE9wdGlvbnM+XG4gICk6IFJlY29yZDxzdHJpbmcsIEpvYj4ge1xuICAgIGxldCBqb2JzOiBSZWNvcmQ8c3RyaW5nLCBKb2I+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGZhY3Rvcnkgb2YgdGhpcy5fam9iRmFjdG9yaWVzKSB7XG4gICAgICBqb2JzID0ge1xuICAgICAgICAuLi5qb2JzLFxuICAgICAgICAuLi5mYWN0b3J5KGJyYW5jaCwgb3B0aW9ucyksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBqb2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgcHJlIHB1Ymxpc2hpbmcgc3RlcHMgZm9yIHRoZSBHaXRIdWIgcmVsZWFzZSBqb2IuXG4gICAqXG4gICAqIEBwYXJhbSBzdGVwcyBUaGUgc3RlcHMuXG4gICAqL1xuICBwdWJsaWMgYWRkR2l0SHViUHJlUHVibGlzaGluZ1N0ZXBzKC4uLnN0ZXBzOiBKb2JTdGVwW10pIHtcbiAgICB0aGlzLl9naXRIdWJQcmVQdWJsaXNoaW5nLnB1c2goLi4uc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gZ2l0LlxuICAgKlxuICAgKiBUaGlzIGluY2x1ZGVzIGdlbmVyYXRpbmcgYSBwcm9qZWN0LWxldmVsIGNoYW5nZWxvZyBhbmQgcmVsZWFzZSB0YWdzLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvR2l0KG9wdGlvbnM6IEdpdFB1Ymxpc2hPcHRpb25zKSB7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBvcHRpb25zLnJlbGVhc2VUYWdGaWxlO1xuICAgIGNvbnN0IHZlcnNpb25GaWxlID0gb3B0aW9ucy52ZXJzaW9uRmlsZTtcbiAgICBjb25zdCBjaGFuZ2Vsb2cgPSBvcHRpb25zLmNoYW5nZWxvZ0ZpbGU7XG4gICAgY29uc3QgcHJvamVjdENoYW5nZWxvZ0ZpbGUgPSBvcHRpb25zLnByb2plY3RDaGFuZ2Vsb2dGaWxlO1xuICAgIGNvbnN0IGdpdEJyYW5jaCA9IG9wdGlvbnMuZ2l0QnJhbmNoID8/IFwibWFpblwiO1xuXG4gICAgY29uc3QgdGFza05hbWUgPVxuICAgICAgZ2l0QnJhbmNoID09PSBcIm1haW5cIiB8fCBnaXRCcmFuY2ggPT09IFwibWFzdGVyXCJcbiAgICAgICAgPyBQdWJsaXNoZXIuUFVCTElTSF9HSVRfVEFTS19OQU1FXG4gICAgICAgIDogYCR7UHVibGlzaGVyLlBVQkxJU0hfR0lUX1RBU0tfTkFNRX06JHtnaXRCcmFuY2h9YDtcblxuICAgIGNvbnN0IHB1Ymxpc2hUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlByZXBlbmRzIHRoZSByZWxlYXNlIGNoYW5nZWxvZyBvbnRvIHRoZSBwcm9qZWN0IGNoYW5nZWxvZywgY3JlYXRlcyBhIHJlbGVhc2UgY29tbWl0LCBhbmQgdGFncyB0aGUgcmVsZWFzZVwiLFxuICAgICAgZW52OiB7XG4gICAgICAgIENIQU5HRUxPRzogY2hhbmdlbG9nLFxuICAgICAgICBSRUxFQVNFX1RBR19GSUxFOiByZWxlYXNlVGFnRmlsZSxcbiAgICAgICAgUFJPSkVDVF9DSEFOR0VMT0dfRklMRTogcHJvamVjdENoYW5nZWxvZ0ZpbGUgPz8gXCJcIixcbiAgICAgICAgVkVSU0lPTl9GSUxFOiB2ZXJzaW9uRmlsZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKHByb2plY3RDaGFuZ2Vsb2dGaWxlKSB7XG4gICAgICBwdWJsaXNoVGFzay5idWlsdGluKFwicmVsZWFzZS91cGRhdGUtY2hhbmdlbG9nXCIpO1xuICAgIH1cbiAgICBwdWJsaXNoVGFzay5idWlsdGluKFwicmVsZWFzZS90YWctdmVyc2lvblwiKTtcblxuICAgIGlmIChvcHRpb25zLmdpdFB1c2hDb21tYW5kICE9PSBcIlwiKSB7XG4gICAgICBjb25zdCBnaXRQdXNoQ29tbWFuZCA9XG4gICAgICAgIG9wdGlvbnMuZ2l0UHVzaENvbW1hbmQgfHwgYGdpdCBwdXNoIC0tZm9sbG93LXRhZ3Mgb3JpZ2luICR7Z2l0QnJhbmNofWA7XG4gICAgICBwdWJsaXNoVGFzay5leGVjKGdpdFB1c2hDb21tYW5kKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHVibGlzaFRhc2s7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEdpdEh1YiBSZWxlYXNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvR2l0SHViUmVsZWFzZXMob3B0aW9uczogR2l0SHViUmVsZWFzZXNQdWJsaXNoT3B0aW9ucykge1xuICAgIGNvbnN0IGNoYW5nZWxvZ0ZpbGUgPSBvcHRpb25zLmNoYW5nZWxvZ0ZpbGU7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBvcHRpb25zLnJlbGVhc2VUYWdGaWxlO1xuXG4gICAgLy8gY3JlYXRlIGEgZ2l0aHViIHJlbGVhc2VcbiAgICBjb25zdCByZWxlYXNlVGFnID0gYCQoY2F0ICR7cmVsZWFzZVRhZ0ZpbGV9KWA7XG5cbiAgICBjb25zdCBnaFJlbGVhc2UgPSBbXG4gICAgICBgZ2ggcmVsZWFzZSBjcmVhdGUgJHtyZWxlYXNlVGFnfWAsXG4gICAgICBcIi1SICRHSVRIVUJfUkVQT1NJVE9SWVwiLFxuICAgICAgYC1GICR7Y2hhbmdlbG9nRmlsZX1gLFxuICAgICAgYC10ICR7cmVsZWFzZVRhZ31gLFxuICAgICAgXCItLXRhcmdldCAkR0lUSFVCX1JFRlwiLFxuICAgIF0uam9pbihcIiBcIik7XG5cbiAgICAvLyByZWxlYXNlIHNjcmlwdCB0aGF0IGRvZXMgbm90IGVycm9yIHdoZW4gcmUtcmVsZWFzaW5nIGEgZ2l2ZW4gdmVyc2lvblxuICAgIGNvbnN0IGlkZW1wb3RlbnRSZWxlYXNlID0gW1xuICAgICAgXCJlcnJvdXQ9JChta3RlbXApO1wiLFxuICAgICAgYCR7Z2hSZWxlYXNlfSAyPiAkZXJyb3V0ICYmIHRydWU7YCxcbiAgICAgIFwiZXhpdGNvZGU9JD87XCIsXG4gICAgICAnaWYgWyAkZXhpdGNvZGUgLW5lIDAgXSAmJiAhIGdyZXAgLXEgXCJSZWxlYXNlLnRhZ19uYW1lIGFscmVhZHkgZXhpc3RzXCIgJGVycm91dDsgdGhlbicsXG4gICAgICBcImNhdCAkZXJyb3V0O1wiLFxuICAgICAgXCJleGl0ICRleGl0Y29kZTtcIixcbiAgICAgIFwiZmlcIixcbiAgICBdLmpvaW4oXCIgXCIpO1xuXG4gICAgdGhpcy5hZGRQdWJsaXNoSm9iKCgpOiBQdWJsaXNoSm9iT3B0aW9ucyA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBcImdpdGh1YlwiLFxuICAgICAgICByZWdpc3RyeU5hbWU6IFwiR2l0SHViIFJlbGVhc2VzXCIsXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogb3B0aW9ucy5wcmVQdWJsaXNoU3RlcHMgPz8gdGhpcy5fZ2l0SHViUHJlUHVibGlzaGluZyxcbiAgICAgICAgcHVibGlzaFRvb2xzOiBvcHRpb25zLnB1Ymxpc2hUb29scyxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dFbnY6IHtcbiAgICAgICAgICBHSVRIVUJfVE9LRU46IFwiJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19XCIsXG4gICAgICAgICAgR0lUSFVCX1JFUE9TSVRPUlk6IFwiJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19XCIsXG4gICAgICAgICAgR0lUSFVCX1JFRjogXCIke3sgZ2l0aHViLnJlZiB9fVwiLFxuICAgICAgICB9LFxuICAgICAgICBydW46IGlkZW1wb3RlbnRSZWxlYXNlLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXMgYXJ0aWZhY3RzIGZyb20gYGpzLyoqYCB0byBucG0uXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBwdWJsaXNoVG9OcG0ob3B0aW9uczogTnBtUHVibGlzaE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGlzR2l0SHViUGFja2FnZXMgPSBvcHRpb25zLnJlZ2lzdHJ5Py5zdGFydHNXaXRoKFxuICAgICAgR0lUSFVCX1BBQ0tBR0VTX1JFR0lTVFJZXG4gICAgKTtcbiAgICBjb25zdCBpc0F3c0NvZGVBcnRpZmFjdCA9IGlzQXdzQ29kZUFydGlmYWN0UmVnaXN0cnkob3B0aW9ucy5yZWdpc3RyeSk7XG4gICAgY29uc3QgbnBtVG9rZW4gPSBkZWZhdWx0TnBtVG9rZW4ob3B0aW9ucy5ucG1Ub2tlblNlY3JldCwgb3B0aW9ucy5yZWdpc3RyeSk7XG5cbiAgICBpZiAob3B0aW9ucy5kaXN0VGFnKSB7XG4gICAgICB0aGlzLnByb2plY3QubG9nZ2VyLndhcm4oXG4gICAgICAgIFwiVGhlIGBkaXN0VGFnYCBvcHRpb24gaXMgZGVwcmVjYXRlZC4gVXNlIHRoZSBucG1EaXN0VGFnIG9wdGlvbiBpbnN0ZWFkLlwiXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYWRkUHVibGlzaEpvYigoX2JyYW5jaCwgYnJhbmNoT3B0aW9ucyk6IFB1Ymxpc2hKb2JPcHRpb25zID0+IHtcbiAgICAgIGlmIChicmFuY2hPcHRpb25zLm5wbURpc3RUYWcgJiYgb3B0aW9ucy5kaXN0VGFnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcImNhbm5vdCBzZXQgYnJhbmNoLWxldmVsIG5wbURpc3RUYWcgYW5kIG5wbURpc3RUYWcgaW4gcHVibGlzaFRvTnBtKClcIlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBcIm5wbVwiLFxuICAgICAgICBwdWJsaXNoVG9vbHM6IFBVQkxJQl9UT09MQ0hBSU4uanMsXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogb3B0aW9ucy5wcmVQdWJsaXNoU3RlcHMgPz8gW10sXG4gICAgICAgIHJ1bjogdGhpcy5wdWJsaWJDb21tYW5kKFwicHVibGliLW5wbVwiKSxcbiAgICAgICAgcmVnaXN0cnlOYW1lOiBcIm5wbVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBOUE1fRElTVF9UQUc6IGJyYW5jaE9wdGlvbnMubnBtRGlzdFRhZyA/PyBvcHRpb25zLmRpc3RUYWcgPz8gXCJsYXRlc3RcIixcbiAgICAgICAgICBOUE1fUkVHSVNUUlk6IG9wdGlvbnMucmVnaXN0cnksXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgICBwYWNrYWdlczogaXNHaXRIdWJQYWNrYWdlcyA/IEpvYlBlcm1pc3Npb24uV1JJVEUgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHdvcmtmbG93RW52OiB7XG4gICAgICAgICAgTlBNX1RPS0VOOiBucG1Ub2tlbiA/IHNlY3JldChucG1Ub2tlbikgOiB1bmRlZmluZWQsXG4gICAgICAgICAgLy8gaWYgd2UgYXJlIHB1Ymxpc2hpbmcgdG8gQVdTIENvZGVBcnRpZmFjdCwgcGFzcyBBV1MgYWNjZXNzIGtleXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgTlBNX1RPS0VOIHVzaW5nIEFXUyBDTEkuXG4gICAgICAgICAgQVdTX0FDQ0VTU19LRVlfSUQ6IGlzQXdzQ29kZUFydGlmYWN0XG4gICAgICAgICAgICA/IHNlY3JldChcbiAgICAgICAgICAgICAgICBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LmFjY2Vzc0tleUlkU2VjcmV0ID8/XG4gICAgICAgICAgICAgICAgICBcIkFXU19BQ0NFU1NfS0VZX0lEXCJcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBpc0F3c0NvZGVBcnRpZmFjdFxuICAgICAgICAgICAgPyBzZWNyZXQoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5zZWNyZXRBY2Nlc3NLZXlTZWNyZXQgPz9cbiAgICAgICAgICAgICAgICAgIFwiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXCJcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgQVdTX1JPTEVfVE9fQVNTVU1FOiBpc0F3c0NvZGVBcnRpZmFjdFxuICAgICAgICAgICAgPyBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LnJvbGVUb0Fzc3VtZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBhcnRpZmFjdHMgZnJvbSBgZG90bmV0LyoqYCB0byBOdUdldCBHYWxsZXJ5LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvTnVnZXQob3B0aW9uczogTnVnZXRQdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgaXNHaXRIdWJQYWNrYWdlcyA9IG9wdGlvbnMubnVnZXRTZXJ2ZXI/LnN0YXJ0c1dpdGgoXG4gICAgICBHSVRIVUJfUEFDS0FHRVNfTlVHRVRfUkVQT1NJVE9SWVxuICAgICk7XG4gICAgdGhpcy5hZGRQdWJsaXNoSm9iKFxuICAgICAgKF9icmFuY2gsIF9icmFuY2hPcHRpb25zKTogUHVibGlzaEpvYk9wdGlvbnMgPT4gKHtcbiAgICAgICAgbmFtZTogXCJudWdldFwiLFxuICAgICAgICBwdWJsaXNoVG9vbHM6IFBVQkxJQl9UT09MQ0hBSU4uZG90bmV0LFxuICAgICAgICBwcmVQdWJsaXNoU3RlcHM6IG9wdGlvbnMucHJlUHVibGlzaFN0ZXBzID8/IFtdLFxuICAgICAgICBydW46IHRoaXMucHVibGliQ29tbWFuZChcInB1YmxpYi1udWdldFwiKSxcbiAgICAgICAgcmVnaXN0cnlOYW1lOiBcIk51R2V0IEdhbGxlcnlcIixcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIHBhY2thZ2VzOiBpc0dpdEh1YlBhY2thZ2VzID8gSm9iUGVybWlzc2lvbi5XUklURSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dFbnY6IHtcbiAgICAgICAgICBOVUdFVF9BUElfS0VZOiBzZWNyZXQoXG4gICAgICAgICAgICBpc0dpdEh1YlBhY2thZ2VzXG4gICAgICAgICAgICAgID8gXCJHSVRIVUJfVE9LRU5cIlxuICAgICAgICAgICAgICA6IG9wdGlvbnMubnVnZXRBcGlLZXlTZWNyZXQgPz8gXCJOVUdFVF9BUElfS0VZXCJcbiAgICAgICAgICApLFxuICAgICAgICAgIE5VR0VUX1NFUlZFUjogb3B0aW9ucy5udWdldFNlcnZlciA/PyB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaGVzIGFydGlmYWN0cyBmcm9tIGBqYXZhLyoqYCB0byBNYXZlbi5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHB1Ymxpc2hUb01hdmVuKG9wdGlvbnM6IE1hdmVuUHVibGlzaE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGlzR2l0SHViUGFja2FnZXMgPSBvcHRpb25zLm1hdmVuUmVwb3NpdG9yeVVybD8uc3RhcnRzV2l0aChcbiAgICAgIEdJVEhVQl9QQUNLQUdFU19NQVZFTl9SRVBPU0lUT1JZXG4gICAgKTtcbiAgICBjb25zdCBpc0dpdEh1YkFjdG9yID1cbiAgICAgIGlzR2l0SHViUGFja2FnZXMgJiYgb3B0aW9ucy5tYXZlblVzZXJuYW1lID09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXZlblNlcnZlcklkID1cbiAgICAgIG9wdGlvbnMubWF2ZW5TZXJ2ZXJJZCA/PyAoaXNHaXRIdWJQYWNrYWdlcyA/IFwiZ2l0aHViXCIgOiB1bmRlZmluZWQpO1xuXG4gICAgaWYgKGlzR2l0SHViUGFja2FnZXMgJiYgbWF2ZW5TZXJ2ZXJJZCAhPSBcImdpdGh1YlwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdwdWJsaXNoaW5nIHRvIEdpdEh1YiBQYWNrYWdlcyByZXF1aXJlcyB0aGUgXCJtYXZlblNlcnZlcklkXCIgdG8gYmUgXCJnaXRodWJcIidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRQdWJsaXNoSm9iKFxuICAgICAgKF9icmFuY2gsIF9icmFuY2hPcHRpb25zKTogUHVibGlzaEpvYk9wdGlvbnMgPT4gKHtcbiAgICAgICAgbmFtZTogXCJtYXZlblwiLFxuICAgICAgICByZWdpc3RyeU5hbWU6IFwiTWF2ZW4gQ2VudHJhbFwiLFxuICAgICAgICBwdWJsaXNoVG9vbHM6IFBVQkxJQl9UT09MQ0hBSU4uamF2YSxcbiAgICAgICAgcHJlUHVibGlzaFN0ZXBzOiBvcHRpb25zLnByZVB1Ymxpc2hTdGVwcyA/PyBbXSxcbiAgICAgICAgcnVuOiB0aGlzLnB1YmxpYkNvbW1hbmQoXCJwdWJsaWItbWF2ZW5cIiksXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIE1BVkVOX0VORFBPSU5UOiBvcHRpb25zLm1hdmVuRW5kcG9pbnQsXG4gICAgICAgICAgTUFWRU5fU0VSVkVSX0lEOiBtYXZlblNlcnZlcklkLFxuICAgICAgICAgIE1BVkVOX1JFUE9TSVRPUllfVVJMOiBvcHRpb25zLm1hdmVuUmVwb3NpdG9yeVVybCxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dFbnY6IHtcbiAgICAgICAgICBNQVZFTl9HUEdfUFJJVkFURV9LRVk6IGlzR2l0SHViUGFja2FnZXNcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IHNlY3JldChcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1hdmVuR3BnUHJpdmF0ZUtleVNlY3JldCA/PyBcIk1BVkVOX0dQR19QUklWQVRFX0tFWVwiXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgTUFWRU5fR1BHX1BSSVZBVEVfS0VZX1BBU1NQSFJBU0U6IGlzR2l0SHViUGFja2FnZXNcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IHNlY3JldChcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1hdmVuR3BnUHJpdmF0ZUtleVBhc3NwaHJhc2UgPz9cbiAgICAgICAgICAgICAgICAgIFwiTUFWRU5fR1BHX1BSSVZBVEVfS0VZX1BBU1NQSFJBU0VcIlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIE1BVkVOX1BBU1NXT1JEOiBzZWNyZXQoXG4gICAgICAgICAgICBvcHRpb25zLm1hdmVuUGFzc3dvcmQgPz9cbiAgICAgICAgICAgICAgKGlzR2l0SHViUGFja2FnZXMgPyBcIkdJVEhVQl9UT0tFTlwiIDogXCJNQVZFTl9QQVNTV09SRFwiKVxuICAgICAgICAgICksXG4gICAgICAgICAgTUFWRU5fVVNFUk5BTUU6IGlzR2l0SHViQWN0b3JcbiAgICAgICAgICAgID8gXCIke3sgZ2l0aHViLmFjdG9yIH19XCJcbiAgICAgICAgICAgIDogc2VjcmV0KG9wdGlvbnMubWF2ZW5Vc2VybmFtZSA/PyBcIk1BVkVOX1VTRVJOQU1FXCIpLFxuICAgICAgICAgIE1BVkVOX1NUQUdJTkdfUFJPRklMRV9JRDogaXNHaXRIdWJQYWNrYWdlc1xuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogc2VjcmV0KFxuICAgICAgICAgICAgICAgIG9wdGlvbnMubWF2ZW5TdGFnaW5nUHJvZmlsZUlkID8/IFwiTUFWRU5fU1RBR0lOR19QUk9GSUxFX0lEXCJcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIHBhY2thZ2VzOiBpc0dpdEh1YlBhY2thZ2VzID8gSm9iUGVybWlzc2lvbi5XUklURSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXMgd2hlZWwgYXJ0aWZhY3RzIGZyb20gYHB5dGhvbmAgdG8gUHlQSS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHB1Ymxpc2hUb1B5UGkob3B0aW9uczogUHlQaVB1Ymxpc2hPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmFkZFB1Ymxpc2hKb2IoXG4gICAgICAoX2JyYW5jaCwgX2JyYW5jaE9wdGlvbnMpOiBQdWJsaXNoSm9iT3B0aW9ucyA9PiAoe1xuICAgICAgICBuYW1lOiBcInB5cGlcIixcbiAgICAgICAgcmVnaXN0cnlOYW1lOiBcIlB5UElcIixcbiAgICAgICAgcHVibGlzaFRvb2xzOiBQVUJMSUJfVE9PTENIQUlOLnB5dGhvbixcbiAgICAgICAgcHJlUHVibGlzaFN0ZXBzOiBvcHRpb25zLnByZVB1Ymxpc2hTdGVwcyA/PyBbXSxcbiAgICAgICAgcnVuOiB0aGlzLnB1YmxpYkNvbW1hbmQoXCJwdWJsaWItcHlwaVwiKSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgVFdJTkVfUkVQT1NJVE9SWV9VUkw6IG9wdGlvbnMudHdpbmVSZWdpc3RyeVVybCxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dFbnY6IHtcbiAgICAgICAgICBUV0lORV9VU0VSTkFNRTogc2VjcmV0KFxuICAgICAgICAgICAgb3B0aW9ucy50d2luZVVzZXJuYW1lU2VjcmV0ID8/IFwiVFdJTkVfVVNFUk5BTUVcIlxuICAgICAgICAgICksXG4gICAgICAgICAgVFdJTkVfUEFTU1dPUkQ6IHNlY3JldChcbiAgICAgICAgICAgIG9wdGlvbnMudHdpbmVQYXNzd29yZFNlY3JldCA/PyBcIlRXSU5FX1BBU1NXT1JEXCJcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBnbyBwdWJsaXNoaW5nIGpvYi5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHB1Ymxpc2hUb0dvKG9wdGlvbnM6IEdvUHVibGlzaE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHByZVB1Ymxpc2hTdGVwcyA9IG9wdGlvbnMucHJlUHVibGlzaFN0ZXBzID8/IFtdO1xuICAgIGNvbnN0IHdvcmtmbG93RW52OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHt9O1xuICAgIGlmIChvcHRpb25zLmdpdGh1YlVzZVNzaCkge1xuICAgICAgd29ya2Zsb3dFbnYuR0lUSFVCX1VTRV9TU0ggPSBcInRydWVcIjtcbiAgICAgIHdvcmtmbG93RW52LlNTSF9BVVRIX1NPQ0sgPSBcIi90bXAvc3NoX2FnZW50LnNvY2tcIjtcbiAgICAgIHByZVB1Ymxpc2hTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBHaXRIdWIgZGVwbG95IGtleVwiLFxuICAgICAgICBydW46ICdzc2gtYWdlbnQgLWEgJHtTU0hfQVVUSF9TT0NLfSAmJiBzc2gtYWRkIC0gPDw8IFwiJHtHSVRIVUJfREVQTE9ZX0tFWX1cIicsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIEdJVEhVQl9ERVBMT1lfS0VZOiBzZWNyZXQoXG4gICAgICAgICAgICBvcHRpb25zLmdpdGh1YkRlcGxveUtleVNlY3JldCA/PyBcIkdPX0dJVEhVQl9ERVBMT1lfS0VZXCJcbiAgICAgICAgICApLFxuICAgICAgICAgIFNTSF9BVVRIX1NPQ0s6IHdvcmtmbG93RW52LlNTSF9BVVRIX1NPQ0ssXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgd29ya2Zsb3dFbnYuR0lUSFVCX1RPS0VOID0gc2VjcmV0KFxuICAgICAgICBvcHRpb25zLmdpdGh1YlRva2VuU2VjcmV0ID8/IFwiR09fR0lUSFVCX1RPS0VOXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRQdWJsaXNoSm9iKFxuICAgICAgKF9icmFuY2gsIF9icmFuY2hPcHRpb25zKTogUHVibGlzaEpvYk9wdGlvbnMgPT4gKHtcbiAgICAgICAgbmFtZTogXCJnb2xhbmdcIixcbiAgICAgICAgcHVibGlzaFRvb2xzOiBQVUJMSUJfVE9PTENIQUlOLmdvLFxuICAgICAgICBwcmVQdWJsaXNoU3RlcHM6IHByZVB1Ymxpc2hTdGVwcyxcbiAgICAgICAgcnVuOiB0aGlzLnB1YmxpYkNvbW1hbmQoXCJwdWJsaWItZ29sYW5nXCIpLFxuICAgICAgICByZWdpc3RyeU5hbWU6IFwiR2l0SHViIEdvIE1vZHVsZSBSZXBvc2l0b3J5XCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIEdJVEhVQl9SRVBPOiBvcHRpb25zLmdpdGh1YlJlcG8sXG4gICAgICAgICAgR0lUX0JSQU5DSDogb3B0aW9ucy5naXRCcmFuY2gsXG4gICAgICAgICAgR0lUX1VTRVJfTkFNRTpcbiAgICAgICAgICAgIG9wdGlvbnMuZ2l0VXNlck5hbWUgPz8gREVGQVVMVF9HSVRIVUJfQUNUSU9OU19VU0VSLm5hbWUsXG4gICAgICAgICAgR0lUX1VTRVJfRU1BSUw6XG4gICAgICAgICAgICBvcHRpb25zLmdpdFVzZXJFbWFpbCA/PyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIuZW1haWwsXG4gICAgICAgICAgR0lUX0NPTU1JVF9NRVNTQUdFOiBvcHRpb25zLmdpdENvbW1pdE1lc3NhZ2UsXG4gICAgICAgIH0sXG4gICAgICAgIHdvcmtmbG93RW52OiB3b3JrZmxvd0VudixcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUHVibGlzaEpvYihcbiAgICBmYWN0b3J5OiAoXG4gICAgICBicmFuY2g6IHN0cmluZyxcbiAgICAgIGJyYW5jaE9wdGlvbnM6IFBhcnRpYWw8QnJhbmNoT3B0aW9ucz5cbiAgICApID0+IFB1Ymxpc2hKb2JPcHRpb25zXG4gICkge1xuICAgIHRoaXMuX2pvYkZhY3Rvcmllcy5wdXNoKChicmFuY2gsIGJyYW5jaE9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSBmYWN0b3J5KGJyYW5jaCwgYnJhbmNoT3B0aW9ucyk7XG4gICAgICBjb25zdCBqb2JuYW1lID0gYHJlbGVhc2VfJHtvcHRzLm5hbWV9YDtcbiAgICAgIGlmIChqb2JuYW1lIGluIHRoaXMuX2pvYkZhY3Rvcmllcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBqb2Igd2l0aCBuYW1lIFwiJHtqb2JuYW1lfVwiYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1hbmRUb1J1biA9IHRoaXMuZHJ5UnVuXG4gICAgICAgID8gYGVjaG8gXCJEUlkgUlVOOiAke29wdHMucnVufVwiYFxuICAgICAgICA6IG9wdHMucnVuO1xuICAgICAgY29uc3QgcmVxdWlyZWRFbnYgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICAvLyBqb2JFbnYgaXMgdGhlIGVudiB3ZSBwYXNzIHRvIHRoZSBnaXRodWIgam9iICh0YXNrIGVudmlyb25tZW50ICsgc2VjcmV0cy9leHByZXNzaW9ucykuXG4gICAgICBjb25zdCBqb2JFbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7IC4uLm9wdHMuZW52IH07XG4gICAgICBjb25zdCB3b3JrZmxvd0VudkVudHJpZXMgPSBPYmplY3QuZW50cmllcyhvcHRzLndvcmtmbG93RW52ID8/IHt9KS5maWx0ZXIoXG4gICAgICAgIChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPSB1bmRlZmluZWRcbiAgICAgICkgYXMgc3RyaW5nW11bXTtcbiAgICAgIGZvciAoY29uc3QgW25hbWUsIGV4cHJlc3Npb25dIG9mIHdvcmtmbG93RW52RW50cmllcykge1xuICAgICAgICByZXF1aXJlZEVudi5wdXNoKG5hbWUpO1xuICAgICAgICBqb2JFbnZbbmFtZV0gPSBleHByZXNzaW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wdWJsaXNoVGFza3MpIHtcbiAgICAgICAgY29uc3QgYnJhbmNoU3VmZml4ID1cbiAgICAgICAgICBicmFuY2ggPT09IFwibWFpblwiIHx8IGJyYW5jaCA9PT0gXCJtYXN0ZXJcIiA/IFwiXCIgOiBgOiR7YnJhbmNofWA7XG5cbiAgICAgICAgLy8gZGVmaW5lIGEgdGFzayB3aGljaCBjYW4gYmUgdXNlZCB0aHJvdWdoIGBwcm9qZW4gcHVibGlzaDp4eHhgLlxuICAgICAgICBjb25zdCB0YXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soXG4gICAgICAgICAgYHB1Ymxpc2g6JHtvcHRzLm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKX0ke2JyYW5jaFN1ZmZpeH1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUHVibGlzaCB0aGlzIHBhY2thZ2UgdG8gJHtvcHRzLnJlZ2lzdHJ5TmFtZX1gLFxuICAgICAgICAgICAgZW52OiBvcHRzLmVudixcbiAgICAgICAgICAgIHJlcXVpcmVkRW52OiByZXF1aXJlZEVudixcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gZmlyc3QgdmVyaWZ5IHRoYXQgd2UgYXJlIG9uIHRoZSBjb3JyZWN0IGJyYW5jaFxuICAgICAgICB0YXNrLmV4ZWMoYHRlc3QgXCIkKGdpdCBicmFuY2ggLS1zaG93LWN1cnJlbnQpXCIgPSBcIiR7YnJhbmNofVwiYCk7XG5cbiAgICAgICAgLy8gcnVuIGNvbW1hbmRzXG4gICAgICAgIHRhc2suZXhlYyhjb21tYW5kVG9SdW4pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJEb3dubG9hZCBidWlsZCBhcnRpZmFjdHNcIixcbiAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RAdjNcIixcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBuYW1lOiBCVUlMRF9BUlRJRkFDVF9OQU1FLFxuICAgICAgICAgICAgcGF0aDogQVJUSUZBQ1RTX0RPV05MT0FEX0RJUiwgLy8gdGhpcyBtdXN0IGJlIFwiZGlzdFwiIGZvciBwdWJsaWJcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi5vcHRzLnByZVB1Ymxpc2hTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiUmVsZWFzZVwiLFxuICAgICAgICAgIC8vIGl0IHdvdWxkIGhhdmUgYmVlbiBuaWNlIGlmIHdlIGNvdWxkIGp1c3QgcnVuIFwicHJvamVuIHB1Ymxpc2g6eHh4XCIgaGVyZSBidXQgdGhhdCBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB0aGlzIGpvYiBkb2VzIG5vdCBjaGVja291dCBzb3VyY2VzXG4gICAgICAgICAgcnVuOiBjb21tYW5kVG9SdW4sXG4gICAgICAgICAgZW52OiBqb2JFbnYsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBwZXJtcyA9IG9wdHMucGVybWlzc2lvbnMgPz8geyBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFEIH07XG5cbiAgICAgIGlmICh0aGlzLmZhaWx1cmVJc3N1ZSkge1xuICAgICAgICBzdGVwcy5wdXNoKFxuICAgICAgICAgIC4uLltcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJFeHRyYWN0IFZlcnNpb25cIixcbiAgICAgICAgICAgICAgaWY6IFwiJHt7IGZhaWx1cmUoKSB9fVwiLFxuICAgICAgICAgICAgICBpZDogXCJleHRyYWN0LXZlcnNpb25cIixcbiAgICAgICAgICAgICAgcnVuOiAnZWNobyBcIjo6c2V0LW91dHB1dCBuYW1lPVZFUlNJT046OiQoY2F0IGRpc3QvdmVyc2lvbi50eHQpXCInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJDcmVhdGUgSXNzdWVcIixcbiAgICAgICAgICAgICAgaWY6IFwiJHt7IGZhaWx1cmUoKSB9fVwiLFxuICAgICAgICAgICAgICB1c2VzOiBcImltam9obmJvL2lzc3VlLWJvdEB2M1wiLFxuICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgbGFiZWxzOiB0aGlzLmZhaWx1cmVJc3N1ZUxhYmVsLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBgUHVibGlzaGluZyB2XFwke3sgc3RlcHMuZXh0cmFjdC12ZXJzaW9uLm91dHB1dHMuVkVSU0lPTiB9fSB0byAke29wdHMucmVnaXN0cnlOYW1lfSBmYWlsZWRgLFxuICAgICAgICAgICAgICAgIGJvZHk6IFwiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS8ke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX0vYWN0aW9ucy9ydW5zLyR7eyBnaXRodWIucnVuX2lkIH19XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgIEdJVEhVQl9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICApO1xuICAgICAgICBPYmplY3QuYXNzaWduKHBlcm1zLCB7IGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2pvYm5hbWVdOiB7XG4gICAgICAgICAgdG9vbHM6IHtcbiAgICAgICAgICAgIG5vZGU6IHsgdmVyc2lvbjogXCIxNC54XCIgfSxcbiAgICAgICAgICAgIC4uLm9wdHMucHVibGlzaFRvb2xzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbmFtZTogYFB1Ymxpc2ggdG8gJHtvcHRzLnJlZ2lzdHJ5TmFtZX1gLFxuICAgICAgICAgIHBlcm1pc3Npb25zOiBwZXJtcyxcbiAgICAgICAgICBpZjogdGhpcy5jb25kaXRpb24sXG4gICAgICAgICAgbmVlZHM6IFt0aGlzLmJ1aWxkSm9iSWRdLFxuICAgICAgICAgIHJ1bnNPbjogdGhpcy5ydW5zT24sXG4gICAgICAgICAgc3RlcHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwdWJsaWJDb21tYW5kKGNvbW1hbmQ6IHN0cmluZykge1xuICAgIHJldHVybiBgbnB4IC1wIHB1YmxpYkAke3RoaXMucHVibGliVmVyc2lvbn0gJHtjb21tYW5kfWA7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2VjcmV0KHNlY3JldE5hbWU6IHN0cmluZykge1xuICByZXR1cm4gYFxcJHt7IHNlY3JldHMuJHtzZWNyZXROYW1lfSB9fWA7XG59XG5cbmludGVyZmFjZSBQdWJsaXNoSm9iT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB0byBleGVjdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHJlZ2lzdHJ5IChmb3IgZGVzY3JpcHRpb24pXG4gICAqL1xuICByZWFkb25seSByZWdpc3RyeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSm9iIHBlcm1pc3Npb25zXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IEpvYlBlcm1pc3Npb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHVibGlzaCBqb2IgKHNob3VsZCBiZSBsb3dlcmNhc2UpLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB0byBpbmNsdWRlIG9ubHkgaW4gdGhlIHdvcmtmbG93IChhbmQgbm90IHRhc2tzKS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93RW52PzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFN0ZXBzIHRvIGV4ZWN1dGUgYmVmb3JlIHRoZSByZWxlYXNlIGNvbW1hbmQgZm9yIHByZXBhcmluZyB0aGUgZGlzdC8gb3V0cHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlUHVibGlzaFN0ZXBzOiBKb2JTdGVwW107XG5cbiAgLyoqXG4gICAqIFRvb2xzIHNldHVwIGZvciB0aGUgd29ya2Zsb3cuXG4gICAqIEBkZWZhdWx0IC0gbm8gdG9vbHMgYXJlIGluc3RhbGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRvb2xzPzogVG9vbHM7XG59XG5cbi8qKlxuICogQ29tbW9uIHB1Ymxpc2hpbmcgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vblB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN0ZXBzIHRvIGV4ZWN1dGUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgcHVibGlzaGluZyBjb21tYW5kLiBUaGVzZSBjYW4gYmUgdXNlZFxuICAgKiB0byBwcmVwYXJlIHRoZSBhcnRpZmFjdCBmb3IgcHVibGlzaGluZyBpZiBuZWVkZS5cbiAgICpcbiAgICogVGhlc2Ugc3RlcHMgYXJlIGV4ZWN1dGVkIGFmdGVyIGBkaXN0L2AgaGFzIGJlZW4gcG9wdWxhdGVkIHdpdGggdGhlIGJ1aWxkXG4gICAqIG91dHB1dC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHdoZW4gdXNpbmcgdGhpcyBpbiBgcHVibGlzaFRvR2l0SHViUmVsZWFzZXNgIHRoaXMgd2lsbCBvdmVycmlkZSBzdGVwcyBhZGRlZCB2aWEgYGFkZEdpdEh1YlByZVB1Ymxpc2hpbmdTdGVwc2AuXG4gICAqL1xuICByZWFkb25seSBwcmVQdWJsaXNoU3RlcHM/OiBKb2JTdGVwW107XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgdG9vbHMgdG8gaW5zdGFsbCBpbiB0aGUgcHVibGlzaGluZyBqb2IuXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCB0b29scyBhcmUgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9vbHM/OiBUb29scztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYE5wbVB1Ymxpc2hPcHRpb25zYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlSZWxlYXNlTnBtIGV4dGVuZHMgTnBtUHVibGlzaE9wdGlvbnMge31cblxuLyoqXG4gKiBPcHRpb25zIGZvciBucG0gcmVsZWFzZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5wbVB1Ymxpc2hPcHRpb25zIGV4dGVuZHMgQ29tbW9uUHVibGlzaE9wdGlvbnMge1xuICAvKipcbiAgICogVGFncyBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGFuIGFsaWFzIGluc3RlYWQgb2YgdmVyc2lvbiBudW1iZXJzLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYSBwcm9qZWN0IG1pZ2h0IGNob29zZSB0byBoYXZlIG11bHRpcGxlIHN0cmVhbXMgb2YgZGV2ZWxvcG1lbnRcbiAgICogYW5kIHVzZSBhIGRpZmZlcmVudCB0YWcgZm9yIGVhY2ggc3RyZWFtLCBlLmcuLCBzdGFibGUsIGJldGEsIGRldiwgY2FuYXJ5LlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgYGxhdGVzdGAgdGFnIGlzIHVzZWQgYnkgbnBtIHRvIGlkZW50aWZ5IHRoZSBjdXJyZW50IHZlcnNpb25cbiAgICogb2YgYSBwYWNrYWdlLCBhbmQgYG5wbSBpbnN0YWxsIDxwa2c+YCAod2l0aG91dCBhbnkgYEA8dmVyc2lvbj5gIG9yIGBAPHRhZz5gXG4gICAqIHNwZWNpZmllcikgaW5zdGFsbHMgdGhlIGxhdGVzdCB0YWcuIFR5cGljYWxseSwgcHJvamVjdHMgb25seSB1c2UgdGhlXG4gICAqIGBsYXRlc3RgIHRhZyBmb3Igc3RhYmxlIHJlbGVhc2UgdmVyc2lvbnMsIGFuZCB1c2Ugb3RoZXIgdGFncyBmb3IgdW5zdGFibGVcbiAgICogdmVyc2lvbnMgc3VjaCBhcyBwcmVyZWxlYXNlcy5cbiAgICpcbiAgICogVGhlIGBuZXh0YCB0YWcgaXMgdXNlZCBieSBzb21lIHByb2plY3RzIHRvIGlkZW50aWZ5IHRoZSB1cGNvbWluZyB2ZXJzaW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImxhdGVzdFwiXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgbnBtRGlzdFRhZ2AgZm9yIGVhY2ggcmVsZWFzZSBicmFuY2ggaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb21haW4gbmFtZSBvZiB0aGUgbnBtIHBhY2thZ2UgcmVnaXN0cnkuXG4gICAqXG4gICAqIFRvIHB1Ymxpc2ggdG8gR2l0SHViIFBhY2thZ2VzLCBzZXQgdGhpcyB2YWx1ZSB0byBgXCJucG0ucGtnLmdpdGh1Yi5jb21cImAuIEluXG4gICAqIHRoaXMgaWYgYG5wbVRva2VuU2VjcmV0YCBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIGRlZmF1bHQgdG9cbiAgICogYEdJVEhVQl9UT0tFTmAgd2hpY2ggbWVhbnMgdGhhdCB5b3Ugd2lsbCBiZSBhYmxlIHRvIHB1Ymxpc2ggdG8gdGhlXG4gICAqIHJlcG9zaXRvcnkncyBwYWNrYWdlIHN0b3JlLiBJbiB0aGlzIGNhc2UsIG1ha2Ugc3VyZSBgcmVwb3NpdG9yeVVybGAgaXNcbiAgICogY29ycmVjdGx5IGRlZmluZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwicmVnaXN0cnkubnBtanMub3JnXCJcbiAgICogQGV4YW1wbGUgXCJucG0ucGtnLmdpdGh1Yi5jb21cIlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaXN0cnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgdGhlIE5QTSB0b2tlbiB0byB1c2Ugd2hlbiBwdWJsaXNoaW5nIHBhY2thZ2VzLlxuICAgKiBAZGVmYXVsdCAtIFwiTlBNX1RPS0VOXCIgb3IgXCJHSVRIVUJfVE9LRU5cIiBpZiBgcmVnaXN0cnlgIGlzIHNldCB0byBgbnBtLnBrZy5naXRodWIuY29tYC5cbiAgICovXG4gIHJlYWRvbmx5IG5wbVRva2VuU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBwdWJsaXNoaW5nIG5wbSBwYWNrYWdlIHRvIEFXUyBDb2RlQXJ0aWZhY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3RPcHRpb25zPzogQ29kZUFydGlmYWN0T3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlQXJ0aWZhY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgdGhlIEFXUyBhY2Nlc3Mga2V5IElEIHRvIHVzZSB3aGVuIHB1Ymxpc2hpbmcgcGFja2FnZXMgdG8gQVdTIENvZGVBcnRpZmFjdC5cbiAgICogVGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHNwZWNpZmllZCBvbmx5IHdoZW4gcHVibGlzaGluZyB0byBBV1MgQ29kZUFydGlmYWN0IChgcmVnaXN0cnlgIGNvbnRhaW5zIEFXUyBDb2RlQXJ0aWZhY3QgVVJMKS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJBV1NfQUNDRVNTX0tFWV9JRFwiXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NLZXlJZFNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCB3aGljaCBjb250YWlucyB0aGUgQVdTIHNlY3JldCBhY2Nlc3Mga2V5IHRvIHVzZSB3aGVuIHB1Ymxpc2hpbmcgcGFja2FnZXMgdG8gQVdTIENvZGVBcnRpZmFjdC5cbiAgICogVGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHNwZWNpZmllZCBvbmx5IHdoZW4gcHVibGlzaGluZyB0byBBV1MgQ29kZUFydGlmYWN0IChgcmVnaXN0cnlgIGNvbnRhaW5zIEFXUyBDb2RlQXJ0aWZhY3QgVVJMKS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJBV1NfU0VDUkVUX0FDQ0VTU19LRVlcIlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0QWNjZXNzS2V5U2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgQVdTIHJvbGUgdG8gYmUgYXNzdW1lZCBwcmlvciB0byBnZXQgYXV0aG9yaXphdGlvbiB0b2tlbiBmcm9tIEFXUyBDb2RlQXJ0aWZhY3RcbiAgICogVGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHNwZWNpZmllZCBvbmx5IHdoZW4gcHVibGlzaGluZyB0byBBV1MgQ29kZUFydGlmYWN0IChgcmVnaXN0cnlgIGNvbnRhaW5zIEFXUyBDb2RlQXJ0aWZhY3QgVVJMKS5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByb2xlVG9Bc3N1bWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBQeVBpUHVibGlzaE9wdGlvbnNgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNpaVJlbGVhc2VQeVBpIGV4dGVuZHMgUHlQaVB1Ymxpc2hPcHRpb25zIHt9XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgUHlQSSByZWxlYXNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHlQaVB1Ymxpc2hPcHRpb25zIGV4dGVuZHMgQ29tbW9uUHVibGlzaE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlZ2lzdHJ5IHVybCB0byB1c2Ugd2hlbiByZWxlYXNpbmcgcGFja2FnZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHdpbmUgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgdHdpbmVSZWdpc3RyeVVybD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgUHlQSSB1c2VyIG5hbWUuXG4gICAqIEBkZWZhdWx0IFwiVFdJTkVfVVNFUk5BTUVcIlxuICAgKi9cbiAgcmVhZG9ubHkgdHdpbmVVc2VybmFtZVNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgUHlQSSBwYXNzd29yZC5cbiAgICogQGRlZmF1bHQgXCJUV0lORV9QQVNTV09SRFwiXG4gICAqL1xuICByZWFkb25seSB0d2luZVBhc3N3b3JkU2VjcmV0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgTnVnZXRQdWJsaXNoT3B0aW9uc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc2lpUmVsZWFzZU51Z2V0IGV4dGVuZHMgTnVnZXRQdWJsaXNoT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIE51R2V0IHJlbGVhc2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnVnZXRQdWJsaXNoT3B0aW9ucyBleHRlbmRzIENvbW1vblB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgd2hpY2ggY29udGFpbnMgdGhlIEFQSSBrZXkgZm9yIE51R2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5VR0VUX0FQSV9LRVlcIlxuICAgKi9cbiAgcmVhZG9ubHkgbnVnZXRBcGlLZXlTZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBOdUdldCBTZXJ2ZXIgVVJMIChkZWZhdWx0cyB0byBudWdldC5vcmcpXG4gICAqL1xuICByZWFkb25seSBudWdldFNlcnZlcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYE1hdmVuUHVibGlzaE9wdGlvbnNgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNpaVJlbGVhc2VNYXZlbiBleHRlbmRzIE1hdmVuUHVibGlzaE9wdGlvbnMge31cblxuLyoqXG4gKiBPcHRpb25zIGZvciBNYXZlbiByZWxlYXNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdmVuUHVibGlzaE9wdGlvbnMgZXh0ZW5kcyBDb21tb25QdWJsaXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVUkwgb2YgTmV4dXMgcmVwb3NpdG9yeS4gaWYgbm90IHNldCwgZGVmYXVsdHMgdG8gaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnXCJcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZWQgaW4gbWF2ZW4gc2V0dGluZ3MgZm9yIGNyZWRlbnRpYWwgbG9va3VwIChlLmcuIHVzZSBnaXRodWIgd2hlbiBwdWJsaXNoaW5nIHRvIEdpdEh1YikuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwib3NzcmhcIiAoTWF2ZW4gQ2VudHJhbCkgb3IgXCJnaXRodWJcIiB3aGVuIHVzaW5nIEdpdEh1YiBQYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5TZXJ2ZXJJZD86IHN0cmluZztcblxuICAvKipcbiAgICogRGVwbG95bWVudCByZXBvc2l0b3J5IHdoZW4gbm90IGRlcGxveWluZyB0byBNYXZlbiBDZW50cmFsXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm90IHNldFxuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5SZXBvc2l0b3J5VXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgc2VjcmV0IG5hbWUgd2hpY2ggY29udGFpbnMgdGhlIEdQRyBwcml2YXRlIGtleSBvciBmaWxlIHRoYXQgaW5jbHVkZXNcbiAgICogaXQuIFRoaXMgaXMgdXNlZCB0byBzaWduIHlvdXIgTWF2ZW5cbiAgICogcGFja2FnZXMuIFNlZSBpbnN0cnVjdGlvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9wdWJsaWIjbWF2ZW5cbiAgICogQGRlZmF1bHQgXCJNQVZFTl9HUEdfUFJJVkFURV9LRVlcIiBvciBub3Qgc2V0IHdoZW4gdXNpbmcgR2l0SHViIFBhY2thZ2VzXG4gICAqL1xuICByZWFkb25seSBtYXZlbkdwZ1ByaXZhdGVLZXlTZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgbmFtZSB3aGljaCBjb250YWlucyB0aGUgR1BHIHByaXZhdGUga2V5IG9yIGZpbGUgdGhhdCBpbmNsdWRlc1xuICAgKiBpdC4gVGhpcyBpcyB1c2VkIHRvIHNpZ24geW91ciBNYXZlbiBwYWNrYWdlcy4gU2VlIGluc3RydWN0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL3B1YmxpYiNtYXZlblxuICAgKiBAZGVmYXVsdCBcIk1BVkVOX0dQR19QUklWQVRFX0tFWV9QQVNTUEhSQVNFXCIgb3Igbm90IHNldCB3aGVuIHVzaW5nIEdpdEh1YiBQYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5HcGdQcml2YXRlS2V5UGFzc3BocmFzZT86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCBuYW1lIHdoaWNoIGNvbnRhaW5zIHRoZSBVc2VybmFtZSBmb3IgbWF2ZW4gcmVwb3NpdG9yeS5cbiAgICpcbiAgICogRm9yIE1hdmVuIENlbnRyYWwsIHlvdSB3aWxsIG5lZWQgdG8gQ3JlYXRlIEpJUkEgYWNjb3VudCBhbmQgdGhlbiByZXF1ZXN0IGFcbiAgICogbmV3IHByb2plY3QgKHNlZSBsaW5rcykuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9pc3N1ZXMuc29uYXR5cGUub3JnL3NlY3VyZS9TaWdudXBcbiAgICogQHNlZSBodHRwczovL2lzc3Vlcy5zb25hdHlwZS5vcmcvc2VjdXJlL0NyZWF0ZUlzc3VlLmpzcGE/aXNzdWV0eXBlPTIxJnBpZD0xMDEzNFxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk1BVkVOX1VTRVJOQU1FXCIgb3IgdGhlIEdpdEh1YiBBY3RvciB3aGVuIHVzaW5nIEdpdEh1YiBQYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5Vc2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCBuYW1lIHdoaWNoIGNvbnRhaW5zIHRoZSBQYXNzd29yZCBmb3IgbWF2ZW4gcmVwb3NpdG9yeS5cbiAgICpcbiAgICogRm9yIE1hdmVuIENlbnRyYWwsIHlvdSB3aWxsIG5lZWQgdG8gQ3JlYXRlIEpJUkEgYWNjb3VudCBhbmQgdGhlbiByZXF1ZXN0IGFcbiAgICogbmV3IHByb2plY3QgKHNlZSBsaW5rcykuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9pc3N1ZXMuc29uYXR5cGUub3JnL3NlY3VyZS9TaWdudXBcbiAgICogQHNlZSBodHRwczovL2lzc3Vlcy5zb25hdHlwZS5vcmcvc2VjdXJlL0NyZWF0ZUlzc3VlLmpzcGE/aXNzdWV0eXBlPTIxJnBpZD0xMDEzNFxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk1BVkVOX1BBU1NXT1JEXCIgb3IgXCJHSVRIVUJfVE9LRU5cIiB3aGVuIHVzaW5nIEdpdEh1YiBQYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5QYXNzd29yZD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCBuYW1lIHdoaWNoIGNvbnRhaW5zIHRoZSBNYXZlbiBDZW50cmFsIChzb25hdHlwZSkgc3RhZ2luZ1xuICAgKiBwcm9maWxlIElEIChlLmcuIDY4YTA1MzYzMDgzMTc0KS4gU3RhZ2luZyBwcm9maWxlIElEIGNhbiBiZSBmb3VuZCBpbiB0aGVcbiAgICogVVJMIG9mIHRoZSBcIlJlbGVhc2VzXCIgc3RhZ2luZyBwcm9maWxlIHVuZGVyIFwiU3RhZ2luZyBQcm9maWxlc1wiIGluXG4gICAqIGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZyAoZS5nLlxuICAgKiBodHRwczovL29zcy5zb25hdHlwZS5vcmcvI3N0YWdpbmdQcm9maWxlczsxMWEzMzQ1MTIzNDUyMSlcblxuICAgKiBAZGVmYXVsdCBcIk1BVkVOX1NUQUdJTkdfUFJPRklMRV9JRFwiIG9yIG5vdCBzZXQgd2hlbiB1c2luZyBHaXRIdWIgUGFja2FnZXNcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuU3RhZ2luZ1Byb2ZpbGVJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYEdvUHVibGlzaE9wdGlvbnNgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNpaVJlbGVhc2VHbyBleHRlbmRzIEdvUHVibGlzaE9wdGlvbnMge31cblxuLyoqXG4gKiBPcHRpb25zIGZvciBHbyByZWxlYXNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb1B1Ymxpc2hPcHRpb25zIGV4dGVuZHMgQ29tbW9uUHVibGlzaE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGluY2x1ZGVzIGEgcGVyc29uYWwgR2l0SHViIGFjY2VzcyB0b2tlbiB1c2VkIHRvXG4gICAqIHB1c2ggdG8gdGhlIEdpdEh1YiByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBJZ25vcmVkIGlmIGBnaXRodWJVc2VTc2hgIGlzIGB0cnVlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJHT19HSVRIVUJfVE9LRU5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZWNyZXQgdGhhdCBpbmNsdWRlcyBhIEdpdEh1YiBkZXBsb3kga2V5IHVzZWQgdG8gcHVzaCB0byB0aGVcbiAgICogR2l0SHViIHJlcG9zaXRvcnkuXG4gICAqXG4gICAqIElnbm9yZWQgaWYgYGdpdGh1YlVzZVNzaGAgaXMgYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJHT19HSVRIVUJfREVQTE9ZX0tFWVwiXG4gICAqL1xuICByZWFkb25seSBnaXRodWJEZXBsb3lLZXlTZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZSBTU0ggdG8gcHVzaCB0byBHaXRIdWIgaW5zdGVhZCBvZiBhIHBlcnNvbmFsIGFjY3NlcyB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1YlVzZVNzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdpdEh1YiByZXBvc2l0b3J5IHRvIHB1c2ggdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIGBtb2R1bGVOYW1lYFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViUmVwbz86IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHB1c2ggdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibWFpblwiXG4gICAqL1xuICByZWFkb25seSBnaXRCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1c2VyIG5hbWUgdG8gdXNlIGZvciB0aGUgcmVsZWFzZSBnaXQgY29tbWl0LlxuICAgKiBAZGVmYXVsdCBcImdpdGh1Yi1hY3Rpb25zXCJcbiAgICovXG4gIHJlYWRvbmx5IGdpdFVzZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW1haWwgdG8gdXNlIGluIHRoZSByZWxlYXNlIGdpdCBjb21taXQuXG4gICAqIEBkZWZhdWx0IFwiZ2l0aHViLWFjdGlvbnNAZ2l0aHViLmNvbVwiXG4gICAqL1xuICByZWFkb25seSBnaXRVc2VyRW1haWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21taXQgbWVzc2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjaG9yZShyZWxlYXNlKTogJFZFUlNJT05cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0Q29tbWl0TWVzc2FnZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZlcnNpb25BcnRpZmFjdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIGEgdGV4dCBmaWxlIChyZWxhdGl2ZSB0byBgZGlzdC9gKSB0aGF0IGNvbnRhaW5zIHRoZSB2ZXJzaW9uIG51bWJlci5cbiAgICpcbiAgICogQGV4YW1wbGUgdmVyc2lvbi50eHRcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25GaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiBhIHRleHQgZmlsZSAocmVsYXRpdmUgdG8gYGRpc3QvYCkgdGhhdCBjb250YWlucyB0aGUgcmVsZWFzZSB0YWcuXG4gICAqXG4gICAqIEBleGFtcGxlIHJlbGVhc2V0YWcudHh0XG4gICAqL1xuICByZWFkb25seSByZWxlYXNlVGFnRmlsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgYW4gLm1kIGZpbGUgKHJlbGF0aXZlIHRvIGBkaXN0L2ApIHRoYXQgaW5jbHVkZXMgdGhlIGNoYW5nZWxvZyBmb3IgdGhlIHJlbGVhc2UuXG4gICAqXG4gICAqIEBleGFtcGxlIGNoYW5nZWxvZy5tZFxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlbG9nRmlsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV2YWx1YXRlcyBpZiB0aGUgYHJlZ2lzdHJ5VXJsYCBpcyBhIEFXUyBDb2RlQXJ0aWZhY3QgcmVnaXN0cnkuXG4gKiBAcGFyYW0gcmVnaXN0cnlVcmwgdXJsIG9mIHJlZ2lzdHJ5XG4gKiBAcmV0dXJucyB0cnVlIGZvciBBV1MgQ29kZUFydGlmYWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0F3c0NvZGVBcnRpZmFjdFJlZ2lzdHJ5KHJlZ2lzdHJ5VXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHJlZ2lzdHJ5VXJsICYmIEFXU19DT0RFQVJUSUZBQ1RfUkVHSVNUUllfUkVHRVgudGVzdChyZWdpc3RyeVVybCk7XG59XG5cbi8qKlxuICogUHVibGlzaGluZyBvcHRpb25zIGZvciBHaXRIdWIgcmVsZWFzZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViUmVsZWFzZXNQdWJsaXNoT3B0aW9uc1xuICBleHRlbmRzIFZlcnNpb25BcnRpZmFjdE9wdGlvbnMsXG4gICAgQ29tbW9uUHVibGlzaE9wdGlvbnMge31cblxuLyoqXG4gKiBQdWJsaXNoaW5nIG9wdGlvbnMgZm9yIEdpdCByZWxlYXNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdFB1Ymxpc2hPcHRpb25zIGV4dGVuZHMgVmVyc2lvbkFydGlmYWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgYW4gLm1kIGZpbGUgdGhhdCBpbmNsdWRlcyB0aGUgcHJvamVjdC1sZXZlbCBjaGFuZ2Vsb2cuXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0Q2hhbmdlbG9nRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIHRvIHB1c2ggdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibWFpblwiXG4gICAqL1xuICByZWFkb25seSBnaXRCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIGdpdC1wdXNoIGNvbW1hbmQuXG4gICAqXG4gICAqIFNldCB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSBwdXNoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0UHVzaENvbW1hbmQ/OiBzdHJpbmc7XG59XG5cbnR5cGUgUHVibGlzaEpvYkZhY3RvcnkgPSAoXG4gIGJyYW5jaDogc3RyaW5nLFxuICBicmFuY2hPcHRpb25zOiBQYXJ0aWFsPEJyYW5jaE9wdGlvbnM+XG4pID0+IFJlY29yZDxzdHJpbmcsIEpvYj47XG4iXX0=
|
|
435
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlbGVhc2UvcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQXlDO0FBQ3pDLG1EQUc2QjtBQUM3QiwrREFNbUM7QUFDbkMsNkRBQTZEO0FBSTdELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQUNoQyxNQUFNLHdCQUF3QixHQUFHLG9CQUFvQixDQUFDO0FBQ3RELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLE1BQU0sZ0NBQWdDLEdBQUcsOEJBQThCLENBQUM7QUFDeEUsTUFBTSxnQ0FBZ0MsR0FBRyw4QkFBOEIsQ0FBQztBQUN4RSxNQUFNLCtCQUErQixHQUFHLCtCQUErQixDQUFDO0FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsRUFBRSxFQUFFLEVBQUU7SUFDTixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDbkMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQ3RDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRTtJQUNsQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7Q0FDdkMsQ0FBQztBQWdGRjs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEscUJBQVM7SUF1QnRDLFlBQVksT0FBZ0IsRUFBRSxPQUF5QjtRQUNyRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFSakIsK0RBQStEO1FBQzlDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUV4Qyx5QkFBb0IsR0FBYyxFQUFFLENBQUM7UUFPcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElB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RUFBRSwrQkFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDdkQ7WUFFRCxPQUFPO2dCQUNMLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7d0JBQ3pCLEdBQUcsSUFBSSxDQUFDLFlBQVk7cUJBQ3JCO29CQUNELElBQUksRUFBRSxjQUFjLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3ZDLFdBQVcsRUFBRSxLQUFLO29CQUNsQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVM7b0JBQ2xCLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsS0FBSztpQkFDTjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBZTtRQUNuQyxPQUFPLGlCQUFpQixJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFELENBQUM7O0FBL2ZILDhCQWdnQkM7OztBQS9md0IsK0JBQXFCLEdBQUcsYUFBYSxDQUFDO0FBaWdCL0QsU0FBUyxNQUFNLENBQUMsVUFBa0I7SUFDaEMsT0FBTyxnQkFBZ0IsVUFBVSxLQUFLLENBQUM7QUFDekMsQ0FBQztBQTRYRDs7OztHQUlHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsV0FBK0I7SUFDdkUsT0FBTyxXQUFXLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFGRCw4REFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gIEJVSUxEX0FSVElGQUNUX05BTUUsXG4gIERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUixcbn0gZnJvbSBcIi4uL2dpdGh1Yi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIEpvYixcbiAgSm9iUGVybWlzc2lvbixcbiAgSm9iUGVybWlzc2lvbnMsXG4gIEpvYlN0ZXAsXG4gIFRvb2xzLFxufSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZGVmYXVsdE5wbVRva2VuIH0gZnJvbSBcIi4uL2phdmFzY3JpcHQvbm9kZS1wYWNrYWdlXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IEJyYW5jaE9wdGlvbnMgfSBmcm9tIFwiLi9yZWxlYXNlXCI7XG5cbmNvbnN0IFBVQkxJQl9WRVJTSU9OID0gXCJsYXRlc3RcIjtcbmNvbnN0IEdJVEhVQl9QQUNLQUdFU19SRUdJU1RSWSA9IFwibnBtLnBrZy5naXRodWIuY29tXCI7XG5jb25zdCBBUlRJRkFDVFNfRE9XTkxPQURfRElSID0gXCJkaXN0XCI7XG5jb25zdCBHSVRIVUJfUEFDS0FHRVNfTUFWRU5fUkVQT1NJVE9SWSA9IFwiaHR0cHM6Ly9tYXZlbi5wa2cuZ2l0aHViLmNvbVwiO1xuY29uc3QgR0lUSFVCX1BBQ0tBR0VTX05VR0VUX1JFUE9TSVRPUlkgPSBcImh0dHBzOi8vbnVnZXQucGtnLmdpdGh1Yi5jb21cIjtcbmNvbnN0IEFXU19DT0RFQVJUSUZBQ1RfUkVHSVNUUllfUkVHRVggPSAvLmNvZGVhcnRpZmFjdC4qLmFtYXpvbmF3cy5jb20vO1xuY29uc3QgUFVCTElCX1RPT0xDSEFJTiA9IHtcbiAganM6IHt9LFxuICBqYXZhOiB7IGphdmE6IHsgdmVyc2lvbjogXCIxMS54XCIgfSB9LFxuICBweXRob246IHsgcHl0aG9uOiB7IHZlcnNpb246IFwiMy54XCIgfSB9LFxuICBnbzogeyBnbzogeyB2ZXJzaW9uOiBcIl4xLjE2LjBcIiB9IH0sXG4gIGRvdG5ldDogeyBkb3RuZXQ6IHsgdmVyc2lvbjogXCIzLnhcIiB9IH0sXG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBQdWJsaXNoZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGpvYiBJRCB0aGF0IHByb2R1Y2VzIHRoZSBidWlsZCBhcnRpZmFjdHMuIEFsbCBwdWJsaXNoIGpvYnMgd2lsbCB0YWtlIGEgZGVwZW5kZW5jeSBvbiB0aGlzIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSm9iSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSBHaXRIdWIgd29ya2Zsb3cgZXhwcmVzc2lvbiB1c2VkIGFzIGEgY29uZGl0aW9uIGZvciBwdWJsaXNoZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbmRpdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXJ0aWZhY3QgdG8gZG93bmxvYWQgKGUuZy4gYGRpc3RgKS5cbiAgICpcbiAgICogVGhlIGFydGlmYWN0IGlzIGV4cGVjdGVkIHRvIGluY2x1ZGUgYSBzdWJkaXJlY3RvcnkgZm9yIGVhY2ggcmVsZWFzZSB0YXJnZXQ6XG4gICAqIGBnb2AgKEdpdEh1YiksIGBkb3RuZXRgIChOdUdldCksIGBqYXZhYCAoTWF2ZW4pLCBganNgIChucG0pLCBgcHl0aG9uYFxuICAgKiAoUHlQSSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9wdWJsaWJcbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYHB1YmxpYlZlcnNpb25gIGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlSZWxlYXNlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiByZXF1aXJlbWVudCBmb3IgYHB1YmxpYmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpYlZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpc3N1ZSB3aGVuIGEgcHVibGlzaCB0YXNrIGZhaWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUlzc3VlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGFwcGx5IHRvIHRoZSBpc3N1ZSBtYXJraW5nIGZhaWxlZCBwdWJsaXNoIHRhc2tzLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYGZhaWx1cmVJc3N1ZWAgaXMgdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJmYWlsZWQtcmVsZWFzZVwiXG4gICAqL1xuICByZWFkb25seSBmYWlsdXJlSXNzdWVMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzXG4gICAqIEBkZWZhdWx0IFtcInVidW50dS1sYXRlc3RcIl1cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93UnVuc09uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIERlZmluZSBwdWJsaXNoaW5nIHRhc2tzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIG1hbnVhbGx5IGFzIHdlbGwgYXMgd29ya2Zsb3dzLlxuICAgKlxuICAgKiBOb3JtYWxseSwgcHVibGlzaGluZyBvbmx5IGhhcHBlbnMgd2l0aGluIGF1dG9tYXRlZCB3b3JrZmxvd3MuIEVuYWJsZSB0aGlzXG4gICAqIGluIG9yZGVyIHRvIGNyZWF0ZSBhIHB1Ymxpc2hpbmcgdGFzayBmb3IgZWFjaCBwdWJsaXNoaW5nIGFjdGl2aXR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRhc2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRG8gbm90IGFjdHVhbGx5IHB1Ymxpc2gsIG9ubHkgcHJpbnQgdGhlIGNvbW1hbmRzIHRoYXQgd291bGQgYmUgZXhlY3V0ZWQgaW5zdGVhZC5cbiAgICpcbiAgICogVXNlZnVsIGlmIHlvdSB3aXNoIHRvIGJsb2NrIGFsbCBwdWJsaXNoaW5nIGZyb20gYSBzaW5nbGUgb3B0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZHJ5UnVuPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRzIEdpdEh1YiBqb2JzIGZvciBwdWJsaXNoaW5nIG1vZHVsZXMgdG8gcGFja2FnZSBtYW5hZ2Vycy5cbiAqXG4gKiBVbmRlciB0aGUgaG9vZCwgaXQgdXNlcyBodHRwczovL2dpdGh1Yi5jb20vYXdzL3B1YmxpYlxuICovXG5leHBvcnQgY2xhc3MgUHVibGlzaGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQVUJMSVNIX0dJVF9UQVNLX05BTUUgPSBcInB1Ymxpc2g6Z2l0XCI7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkSm9iSWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGFydGlmYWN0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGliVmVyc2lvbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHB1YmxpYlZlcnNpb25gICovXG4gIHB1YmxpYyByZWFkb25seSBqc2lpUmVsZWFzZVZlcnNpb246IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGZhaWx1cmVJc3N1ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBmYWlsdXJlSXNzdWVMYWJlbDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bnNPbjogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcHVibGlzaFRhc2tzOiBib29sZWFuO1xuXG4gIC8vIGZ1bmN0aW9ucyB0aGF0IGNyZWF0ZSBqb2JzIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGJyYW5jaFxuICBwcml2YXRlIHJlYWRvbmx5IF9qb2JGYWN0b3JpZXM6IFB1Ymxpc2hKb2JGYWN0b3J5W10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9naXRIdWJQcmVQdWJsaXNoaW5nOiBKb2JTdGVwW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRyeVJ1bjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBQdWJsaXNoZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmJ1aWxkSm9iSWQgPSBvcHRpb25zLmJ1aWxkSm9iSWQ7XG4gICAgdGhpcy5hcnRpZmFjdE5hbWUgPSBvcHRpb25zLmFydGlmYWN0TmFtZTtcbiAgICB0aGlzLnB1YmxpYlZlcnNpb24gPVxuICAgICAgb3B0aW9ucy5wdWJsaWJWZXJzaW9uID8/IG9wdGlvbnMuanNpaVJlbGVhc2VWZXJzaW9uID8/IFBVQkxJQl9WRVJTSU9OO1xuICAgIHRoaXMuanNpaVJlbGVhc2VWZXJzaW9uID0gdGhpcy5wdWJsaWJWZXJzaW9uO1xuICAgIHRoaXMuY29uZGl0aW9uID0gb3B0aW9ucy5jb25kaXRpb247XG4gICAgdGhpcy5kcnlSdW4gPSBvcHRpb25zLmRyeVJ1biA/PyBmYWxzZTtcblxuICAgIHRoaXMuZmFpbHVyZUlzc3VlID0gb3B0aW9ucy5mYWlsdXJlSXNzdWUgPz8gZmFsc2U7XG4gICAgdGhpcy5mYWlsdXJlSXNzdWVMYWJlbCA9IG9wdGlvbnMuZmFpbHVyZUlzc3VlTGFiZWwgPz8gXCJmYWlsZWQtcmVsZWFzZVwiO1xuICAgIHRoaXMucnVuc09uID0gb3B0aW9ucy53b3JrZmxvd1J1bnNPbiA/PyBbXCJ1YnVudHUtbGF0ZXN0XCJdO1xuICAgIHRoaXMucHVibGlzaFRhc2tzID0gb3B0aW9ucy5wdWJsaXNoVGFza3MgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IGBSZWxlYXNlYCB0byBhZGQgdGhlIHB1Ymxpc2hpbmcgam9icyB0byBhIHJlbGVhc2Ugd29ya2Zsb3dcbiAgICogYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYnJhbmNoLlxuICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBicmFuY2ggbmFtZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBCcmFuY2ggb3B0aW9uc1xuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVySm9ic0ZvckJyYW5jaChcbiAgICBicmFuY2g6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEJyYW5jaE9wdGlvbnM+XG4gICk6IFJlY29yZDxzdHJpbmcsIEpvYj4ge1xuICAgIGxldCBqb2JzOiBSZWNvcmQ8c3RyaW5nLCBKb2I+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGZhY3Rvcnkgb2YgdGhpcy5fam9iRmFjdG9yaWVzKSB7XG4gICAgICBqb2JzID0ge1xuICAgICAgICAuLi5qb2JzLFxuICAgICAgICAuLi5mYWN0b3J5KGJyYW5jaCwgb3B0aW9ucyksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBqb2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgcHJlIHB1Ymxpc2hpbmcgc3RlcHMgZm9yIHRoZSBHaXRIdWIgcmVsZWFzZSBqb2IuXG4gICAqXG4gICAqIEBwYXJhbSBzdGVwcyBUaGUgc3RlcHMuXG4gICAqL1xuICBwdWJsaWMgYWRkR2l0SHViUHJlUHVibGlzaGluZ1N0ZXBzKC4uLnN0ZXBzOiBKb2JTdGVwW10pIHtcbiAgICB0aGlzLl9naXRIdWJQcmVQdWJsaXNoaW5nLnB1c2goLi4uc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gZ2l0LlxuICAgKlxuICAgKiBUaGlzIGluY2x1ZGVzIGdlbmVyYXRpbmcgYSBwcm9qZWN0LWxldmVsIGNoYW5nZWxvZyBhbmQgcmVsZWFzZSB0YWdzLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvR2l0KG9wdGlvbnM6IEdpdFB1Ymxpc2hPcHRpb25zKSB7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBvcHRpb25zLnJlbGVhc2VUYWdGaWxlO1xuICAgIGNvbnN0IHZlcnNpb25GaWxlID0gb3B0aW9ucy52ZXJzaW9uRmlsZTtcbiAgICBjb25zdCBjaGFuZ2Vsb2cgPSBvcHRpb25zLmNoYW5nZWxvZ0ZpbGU7XG4gICAgY29uc3QgcHJvamVjdENoYW5nZWxvZ0ZpbGUgPSBvcHRpb25zLnByb2plY3RDaGFuZ2Vsb2dGaWxlO1xuICAgIGNvbnN0IGdpdEJyYW5jaCA9IG9wdGlvbnMuZ2l0QnJhbmNoID8/IFwibWFpblwiO1xuXG4gICAgY29uc3QgdGFza05hbWUgPVxuICAgICAgZ2l0QnJhbmNoID09PSBcIm1haW5cIiB8fCBnaXRCcmFuY2ggPT09IFwibWFzdGVyXCJcbiAgICAgICAgPyBQdWJsaXNoZXIuUFVCTElTSF9HSVRfVEFTS19OQU1FXG4gICAgICAgIDogYCR7UHVibGlzaGVyLlBVQkxJU0hfR0lUX1RBU0tfTkFNRX06JHtnaXRCcmFuY2h9YDtcblxuICAgIGNvbnN0IHB1Ymxpc2hUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlByZXBlbmRzIHRoZSByZWxlYXNlIGNoYW5nZWxvZyBvbnRvIHRoZSBwcm9qZWN0IGNoYW5nZWxvZywgY3JlYXRlcyBhIHJlbGVhc2UgY29tbWl0LCBhbmQgdGFncyB0aGUgcmVsZWFzZVwiLFxuICAgICAgZW52OiB7XG4gICAgICAgIENIQU5HRUxPRzogY2hhbmdlbG9nLFxuICAgICAgICBSRUxFQVNFX1RBR19GSUxFOiByZWxlYXNlVGFnRmlsZSxcbiAgICAgICAgUFJPSkVDVF9DSEFOR0VMT0dfRklMRTogcHJvamVjdENoYW5nZWxvZ0ZpbGUgPz8gXCJcIixcbiAgICAgICAgVkVSU0lPTl9GSUxFOiB2ZXJzaW9uRmlsZSxcbiAgICAgIH0sXG4gICAgICBjb25kaXRpb246ICchIGdpdCBsb2cgLS1vbmVsaW5lIC0xIHwgZ3JlcCAtcSBcImNob3JlKHJlbGVhc2UpOlwiJyxcbiAgICB9KTtcbiAgICBpZiAocHJvamVjdENoYW5nZWxvZ0ZpbGUpIHtcbiAgICAgIHB1Ymxpc2hUYXNrLmJ1aWx0aW4oXCJyZWxlYXNlL3VwZGF0ZS1jaGFuZ2Vsb2dcIik7XG4gICAgfVxuICAgIHB1Ymxpc2hUYXNrLmJ1aWx0aW4oXCJyZWxlYXNlL3RhZy12ZXJzaW9uXCIpO1xuXG4gICAgaWYgKG9wdGlvbnMuZ2l0UHVzaENvbW1hbmQgIT09IFwiXCIpIHtcbiAgICAgIGNvbnN0IGdpdFB1c2hDb21tYW5kID1cbiAgICAgICAgb3B0aW9ucy5naXRQdXNoQ29tbWFuZCB8fCBgZ2l0IHB1c2ggLS1mb2xsb3ctdGFncyBvcmlnaW4gJHtnaXRCcmFuY2h9YDtcbiAgICAgIHB1Ymxpc2hUYXNrLmV4ZWMoZ2l0UHVzaENvbW1hbmQpO1xuICAgIH1cblxuICAgIHJldHVybiBwdWJsaXNoVGFzaztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgR2l0SHViIFJlbGVhc2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBwdWJsaXNoVG9HaXRIdWJSZWxlYXNlcyhvcHRpb25zOiBHaXRIdWJSZWxlYXNlc1B1Ymxpc2hPcHRpb25zKSB7XG4gICAgY29uc3QgY2hhbmdlbG9nRmlsZSA9IG9wdGlvbnMuY2hhbmdlbG9nRmlsZTtcbiAgICBjb25zdCByZWxlYXNlVGFnRmlsZSA9IG9wdGlvbnMucmVsZWFzZVRhZ0ZpbGU7XG5cbiAgICAvLyBjcmVhdGUgYSBnaXRodWIgcmVsZWFzZVxuICAgIGNvbnN0IHJlbGVhc2VUYWcgPSBgJChjYXQgJHtyZWxlYXNlVGFnRmlsZX0pYDtcblxuICAgIGNvbnN0IGdoUmVsZWFzZSA9IFtcbiAgICAgIGBnaCByZWxlYXNlIGNyZWF0ZSAke3JlbGVhc2VUYWd9YCxcbiAgICAgIFwiLVIgJEdJVEhVQl9SRVBPU0lUT1JZXCIsXG4gICAgICBgLUYgJHtjaGFuZ2Vsb2dGaWxlfWAsXG4gICAgICBgLXQgJHtyZWxlYXNlVGFnfWAsXG4gICAgICBcIi0tdGFyZ2V0ICRHSVRIVUJfUkVGXCIsXG4gICAgXS5qb2luKFwiIFwiKTtcblxuICAgIC8vIHJlbGVhc2Ugc2NyaXB0IHRoYXQgZG9lcyBub3QgZXJyb3Igd2hlbiByZS1yZWxlYXNpbmcgYSBnaXZlbiB2ZXJzaW9uXG4gICAgY29uc3QgaWRlbXBvdGVudFJlbGVhc2UgPSBbXG4gICAgICBcImVycm91dD0kKG1rdGVtcCk7XCIsXG4gICAgICBgJHtnaFJlbGVhc2V9IDI+ICRlcnJvdXQgJiYgdHJ1ZTtgLFxuICAgICAgXCJleGl0Y29kZT0kPztcIixcbiAgICAgICdpZiBbICRleGl0Y29kZSAtbmUgMCBdICYmICEgZ3JlcCAtcSBcIlJlbGVhc2UudGFnX25hbWUgYWxyZWFkeSBleGlzdHNcIiAkZXJyb3V0OyB0aGVuJyxcbiAgICAgIFwiY2F0ICRlcnJvdXQ7XCIsXG4gICAgICBcImV4aXQgJGV4aXRjb2RlO1wiLFxuICAgICAgXCJmaVwiLFxuICAgIF0uam9pbihcIiBcIik7XG5cbiAgICB0aGlzLmFkZFB1Ymxpc2hKb2IoKCk6IFB1Ymxpc2hKb2JPcHRpb25zID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IFwiZ2l0aHViXCIsXG4gICAgICAgIHJlZ2lzdHJ5TmFtZTogXCJHaXRIdWIgUmVsZWFzZXNcIixcbiAgICAgICAgcHJlUHVibGlzaFN0ZXBzOiBvcHRpb25zLnByZVB1Ymxpc2hTdGVwcyA/PyB0aGlzLl9naXRIdWJQcmVQdWJsaXNoaW5nLFxuICAgICAgICBwdWJsaXNoVG9vbHM6IG9wdGlvbnMucHVibGlzaFRvb2xzLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd0Vudjoge1xuICAgICAgICAgIEdJVEhVQl9UT0tFTjogXCIke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX1cIixcbiAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWTogXCIke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX1cIixcbiAgICAgICAgICBHSVRIVUJfUkVGOiBcIiR7eyBnaXRodWIucmVmIH19XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bjogaWRlbXBvdGVudFJlbGVhc2UsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBhcnRpZmFjdHMgZnJvbSBganMvKipgIHRvIG5wbS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHB1Ymxpc2hUb05wbShvcHRpb25zOiBOcG1QdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgaXNHaXRIdWJQYWNrYWdlcyA9IG9wdGlvbnMucmVnaXN0cnk/LnN0YXJ0c1dpdGgoXG4gICAgICBHSVRIVUJfUEFDS0FHRVNfUkVHSVNUUllcbiAgICApO1xuICAgIGNvbnN0IGlzQXdzQ29kZUFydGlmYWN0ID0gaXNBd3NDb2RlQXJ0aWZhY3RSZWdpc3RyeShvcHRpb25zLnJlZ2lzdHJ5KTtcbiAgICBjb25zdCBucG1Ub2tlbiA9IGRlZmF1bHROcG1Ub2tlbihvcHRpb25zLm5wbVRva2VuU2VjcmV0LCBvcHRpb25zLnJlZ2lzdHJ5KTtcblxuICAgIGlmIChvcHRpb25zLmRpc3RUYWcpIHtcbiAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgXCJUaGUgYGRpc3RUYWdgIG9wdGlvbiBpcyBkZXByZWNhdGVkLiBVc2UgdGhlIG5wbURpc3RUYWcgb3B0aW9uIGluc3RlYWQuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRQdWJsaXNoSm9iKChfYnJhbmNoLCBicmFuY2hPcHRpb25zKTogUHVibGlzaEpvYk9wdGlvbnMgPT4ge1xuICAgICAgaWYgKGJyYW5jaE9wdGlvbnMubnBtRGlzdFRhZyAmJiBvcHRpb25zLmRpc3RUYWcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiY2Fubm90IHNldCBicmFuY2gtbGV2ZWwgbnBtRGlzdFRhZyBhbmQgbnBtRGlzdFRhZyBpbiBwdWJsaXNoVG9OcG0oKVwiXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IFwibnBtXCIsXG4gICAgICAgIHB1Ymxpc2hUb29sczogUFVCTElCX1RPT0xDSEFJTi5qcyxcbiAgICAgICAgcHJlUHVibGlzaFN0ZXBzOiBvcHRpb25zLnByZVB1Ymxpc2hTdGVwcyA/PyBbXSxcbiAgICAgICAgcnVuOiB0aGlzLnB1YmxpYkNvbW1hbmQoXCJwdWJsaWItbnBtXCIpLFxuICAgICAgICByZWdpc3RyeU5hbWU6IFwibnBtXCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIE5QTV9ESVNUX1RBRzogYnJhbmNoT3B0aW9ucy5ucG1EaXN0VGFnID8/IG9wdGlvbnMuZGlzdFRhZyA/PyBcImxhdGVzdFwiLFxuICAgICAgICAgIE5QTV9SRUdJU1RSWTogb3B0aW9ucy5yZWdpc3RyeSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICAgIHBhY2thZ2VzOiBpc0dpdEh1YlBhY2thZ2VzID8gSm9iUGVybWlzc2lvbi5XUklURSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dFbnY6IHtcbiAgICAgICAgICBOUE1fVE9LRU46IG5wbVRva2VuID8gc2VjcmV0KG5wbVRva2VuKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAvLyBpZiB3ZSBhcmUgcHVibGlzaGluZyB0byBBV1MgQ29kZUFydGlmYWN0LCBwYXNzIEFXUyBhY2Nlc3Mga2V5cyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBOUE1fVE9LRU4gdXNpbmcgQVdTIENMSS5cbiAgICAgICAgICBBV1NfQUNDRVNTX0tFWV9JRDogaXNBd3NDb2RlQXJ0aWZhY3RcbiAgICAgICAgICAgID8gc2VjcmV0KFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuY29kZUFydGlmYWN0T3B0aW9ucz8uYWNjZXNzS2V5SWRTZWNyZXQgPz9cbiAgICAgICAgICAgICAgICAgIFwiQVdTX0FDQ0VTU19LRVlfSURcIlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBBV1NfU0VDUkVUX0FDQ0VTU19LRVk6IGlzQXdzQ29kZUFydGlmYWN0XG4gICAgICAgICAgICA/IHNlY3JldChcbiAgICAgICAgICAgICAgICBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LnNlY3JldEFjY2Vzc0tleVNlY3JldCA/P1xuICAgICAgICAgICAgICAgICAgXCJBV1NfU0VDUkVUX0FDQ0VTU19LRVlcIlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBBV1NfUk9MRV9UT19BU1NVTUU6IGlzQXdzQ29kZUFydGlmYWN0XG4gICAgICAgICAgICA/IG9wdGlvbnMuY29kZUFydGlmYWN0T3B0aW9ucz8ucm9sZVRvQXNzdW1lXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaGVzIGFydGlmYWN0cyBmcm9tIGBkb3RuZXQvKipgIHRvIE51R2V0IEdhbGxlcnkuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBwdWJsaXNoVG9OdWdldChvcHRpb25zOiBOdWdldFB1Ymxpc2hPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBpc0dpdEh1YlBhY2thZ2VzID0gb3B0aW9ucy5udWdldFNlcnZlcj8uc3RhcnRzV2l0aChcbiAgICAgIEdJVEhVQl9QQUNLQUdFU19OVUdFVF9SRVBPU0lUT1JZXG4gICAgKTtcbiAgICB0aGlzLmFkZFB1Ymxpc2hKb2IoXG4gICAgICAoX2JyYW5jaCwgX2JyYW5jaE9wdGlvbnMpOiBQdWJsaXNoSm9iT3B0aW9ucyA9PiAoe1xuICAgICAgICBuYW1lOiBcIm51Z2V0XCIsXG4gICAgICAgIHB1Ymxpc2hUb29sczogUFVCTElCX1RPT0xDSEFJTi5kb3RuZXQsXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogb3B0aW9ucy5wcmVQdWJsaXNoU3RlcHMgPz8gW10sXG4gICAgICAgIHJ1bjogdGhpcy5wdWJsaWJDb21tYW5kKFwicHVibGliLW51Z2V0XCIpLFxuICAgICAgICByZWdpc3RyeU5hbWU6IFwiTnVHZXQgR2FsbGVyeVwiLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgcGFja2FnZXM6IGlzR2l0SHViUGFja2FnZXMgPyBKb2JQZXJtaXNzaW9uLldSSVRFIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd0Vudjoge1xuICAgICAgICAgIE5VR0VUX0FQSV9LRVk6IHNlY3JldChcbiAgICAgICAgICAgIGlzR2l0SHViUGFja2FnZXNcbiAgICAgICAgICAgICAgPyBcIkdJVEhVQl9UT0tFTlwiXG4gICAgICAgICAgICAgIDogb3B0aW9ucy5udWdldEFwaUtleVNlY3JldCA/PyBcIk5VR0VUX0FQSV9LRVlcIlxuICAgICAgICAgICksXG4gICAgICAgICAgTlVHRVRfU0VSVkVSOiBvcHRpb25zLm51Z2V0U2VydmVyID8/IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXMgYXJ0aWZhY3RzIGZyb20gYGphdmEvKipgIHRvIE1hdmVuLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvTWF2ZW4ob3B0aW9uczogTWF2ZW5QdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgaXNHaXRIdWJQYWNrYWdlcyA9IG9wdGlvbnMubWF2ZW5SZXBvc2l0b3J5VXJsPy5zdGFydHNXaXRoKFxuICAgICAgR0lUSFVCX1BBQ0tBR0VTX01BVkVOX1JFUE9TSVRPUllcbiAgICApO1xuICAgIGNvbnN0IGlzR2l0SHViQWN0b3IgPVxuICAgICAgaXNHaXRIdWJQYWNrYWdlcyAmJiBvcHRpb25zLm1hdmVuVXNlcm5hbWUgPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1hdmVuU2VydmVySWQgPVxuICAgICAgb3B0aW9ucy5tYXZlblNlcnZlcklkID8/IChpc0dpdEh1YlBhY2thZ2VzID8gXCJnaXRodWJcIiA6IHVuZGVmaW5lZCk7XG5cbiAgICBpZiAoaXNHaXRIdWJQYWNrYWdlcyAmJiBtYXZlblNlcnZlcklkICE9IFwiZ2l0aHViXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3B1Ymxpc2hpbmcgdG8gR2l0SHViIFBhY2thZ2VzIHJlcXVpcmVzIHRoZSBcIm1hdmVuU2VydmVySWRcIiB0byBiZSBcImdpdGh1YlwiJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFB1Ymxpc2hKb2IoXG4gICAgICAoX2JyYW5jaCwgX2JyYW5jaE9wdGlvbnMpOiBQdWJsaXNoSm9iT3B0aW9ucyA9PiAoe1xuICAgICAgICBuYW1lOiBcIm1hdmVuXCIsXG4gICAgICAgIHJlZ2lzdHJ5TmFtZTogXCJNYXZlbiBDZW50cmFsXCIsXG4gICAgICAgIHB1Ymxpc2hUb29sczogUFVCTElCX1RPT0xDSEFJTi5qYXZhLFxuICAgICAgICBwcmVQdWJsaXNoU3RlcHM6IG9wdGlvbnMucHJlUHVibGlzaFN0ZXBzID8/IFtdLFxuICAgICAgICBydW46IHRoaXMucHVibGliQ29tbWFuZChcInB1YmxpYi1tYXZlblwiKSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgTUFWRU5fRU5EUE9JTlQ6IG9wdGlvbnMubWF2ZW5FbmRwb2ludCxcbiAgICAgICAgICBNQVZFTl9TRVJWRVJfSUQ6IG1hdmVuU2VydmVySWQsXG4gICAgICAgICAgTUFWRU5fUkVQT1NJVE9SWV9VUkw6IG9wdGlvbnMubWF2ZW5SZXBvc2l0b3J5VXJsLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd0Vudjoge1xuICAgICAgICAgIE1BVkVOX0dQR19QUklWQVRFX0tFWTogaXNHaXRIdWJQYWNrYWdlc1xuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogc2VjcmV0KFxuICAgICAgICAgICAgICAgIG9wdGlvbnMubWF2ZW5HcGdQcml2YXRlS2V5U2VjcmV0ID8/IFwiTUFWRU5fR1BHX1BSSVZBVEVfS0VZXCJcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICBNQVZFTl9HUEdfUFJJVkFURV9LRVlfUEFTU1BIUkFTRTogaXNHaXRIdWJQYWNrYWdlc1xuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogc2VjcmV0KFxuICAgICAgICAgICAgICAgIG9wdGlvbnMubWF2ZW5HcGdQcml2YXRlS2V5UGFzc3BocmFzZSA/P1xuICAgICAgICAgICAgICAgICAgXCJNQVZFTl9HUEdfUFJJVkFURV9LRVlfUEFTU1BIUkFTRVwiXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgTUFWRU5fUEFTU1dPUkQ6IHNlY3JldChcbiAgICAgICAgICAgIG9wdGlvbnMubWF2ZW5QYXNzd29yZCA/P1xuICAgICAgICAgICAgICAoaXNHaXRIdWJQYWNrYWdlcyA/IFwiR0lUSFVCX1RPS0VOXCIgOiBcIk1BVkVOX1BBU1NXT1JEXCIpXG4gICAgICAgICAgKSxcbiAgICAgICAgICBNQVZFTl9VU0VSTkFNRTogaXNHaXRIdWJBY3RvclxuICAgICAgICAgICAgPyBcIiR7eyBnaXRodWIuYWN0b3IgfX1cIlxuICAgICAgICAgICAgOiBzZWNyZXQob3B0aW9ucy5tYXZlblVzZXJuYW1lID8/IFwiTUFWRU5fVVNFUk5BTUVcIiksXG4gICAgICAgICAgTUFWRU5fU1RBR0lOR19QUk9GSUxFX0lEOiBpc0dpdEh1YlBhY2thZ2VzXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBzZWNyZXQoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tYXZlblN0YWdpbmdQcm9maWxlSWQgPz8gXCJNQVZFTl9TVEFHSU5HX1BST0ZJTEVfSURcIlxuICAgICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgcGFja2FnZXM6IGlzR2l0SHViUGFja2FnZXMgPyBKb2JQZXJtaXNzaW9uLldSSVRFIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyB3aGVlbCBhcnRpZmFjdHMgZnJvbSBgcHl0aG9uYCB0byBQeVBJLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvUHlQaShvcHRpb25zOiBQeVBpUHVibGlzaE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuYWRkUHVibGlzaEpvYihcbiAgICAgIChfYnJhbmNoLCBfYnJhbmNoT3B0aW9ucyk6IFB1Ymxpc2hKb2JPcHRpb25zID0+ICh7XG4gICAgICAgIG5hbWU6IFwicHlwaVwiLFxuICAgICAgICByZWdpc3RyeU5hbWU6IFwiUHlQSVwiLFxuICAgICAgICBwdWJsaXNoVG9vbHM6IFBVQkxJQl9UT09MQ0hBSU4ucHl0aG9uLFxuICAgICAgICBwcmVQdWJsaXNoU3RlcHM6IG9wdGlvbnMucHJlUHVibGlzaFN0ZXBzID8/IFtdLFxuICAgICAgICBydW46IHRoaXMucHVibGliQ29tbWFuZChcInB1YmxpYi1weXBpXCIpLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBUV0lORV9SRVBPU0lUT1JZX1VSTDogb3B0aW9ucy50d2luZVJlZ2lzdHJ5VXJsLFxuICAgICAgICB9LFxuICAgICAgICB3b3JrZmxvd0Vudjoge1xuICAgICAgICAgIFRXSU5FX1VTRVJOQU1FOiBzZWNyZXQoXG4gICAgICAgICAgICBvcHRpb25zLnR3aW5lVXNlcm5hbWVTZWNyZXQgPz8gXCJUV0lORV9VU0VSTkFNRVwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICBUV0lORV9QQVNTV09SRDogc2VjcmV0KFxuICAgICAgICAgICAgb3B0aW9ucy50d2luZVBhc3N3b3JkU2VjcmV0ID8/IFwiVFdJTkVfUEFTU1dPUkRcIlxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGdvIHB1Ymxpc2hpbmcgam9iLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaFRvR28ob3B0aW9uczogR29QdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgcHJlUHVibGlzaFN0ZXBzID0gb3B0aW9ucy5wcmVQdWJsaXNoU3RlcHMgPz8gW107XG4gICAgY29uc3Qgd29ya2Zsb3dFbnY6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9ID0ge307XG4gICAgaWYgKG9wdGlvbnMuZ2l0aHViVXNlU3NoKSB7XG4gICAgICB3b3JrZmxvd0Vudi5HSVRIVUJfVVNFX1NTSCA9IFwidHJ1ZVwiO1xuICAgICAgd29ya2Zsb3dFbnYuU1NIX0FVVEhfU09DSyA9IFwiL3RtcC9zc2hfYWdlbnQuc29ja1wiO1xuICAgICAgcHJlUHVibGlzaFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIlNldHVwIEdpdEh1YiBkZXBsb3kga2V5XCIsXG4gICAgICAgIHJ1bjogJ3NzaC1hZ2VudCAtYSAke1NTSF9BVVRIX1NPQ0t9ICYmIHNzaC1hZGQgLSA8PDwgXCIke0dJVEhVQl9ERVBMT1lfS0VZfVwiJyxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgR0lUSFVCX0RFUExPWV9LRVk6IHNlY3JldChcbiAgICAgICAgICAgIG9wdGlvbnMuZ2l0aHViRGVwbG95S2V5U2VjcmV0ID8/IFwiR09fR0lUSFVCX0RFUExPWV9LRVlcIlxuICAgICAgICAgICksXG4gICAgICAgICAgU1NIX0FVVEhfU09DSzogd29ya2Zsb3dFbnYuU1NIX0FVVEhfU09DSyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB3b3JrZmxvd0Vudi5HSVRIVUJfVE9LRU4gPSBzZWNyZXQoXG4gICAgICAgIG9wdGlvbnMuZ2l0aHViVG9rZW5TZWNyZXQgPz8gXCJHT19HSVRIVUJfVE9LRU5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFB1Ymxpc2hKb2IoXG4gICAgICAoX2JyYW5jaCwgX2JyYW5jaE9wdGlvbnMpOiBQdWJsaXNoSm9iT3B0aW9ucyA9PiAoe1xuICAgICAgICBuYW1lOiBcImdvbGFuZ1wiLFxuICAgICAgICBwdWJsaXNoVG9vbHM6IFBVQkxJQl9UT09MQ0hBSU4uZ28sXG4gICAgICAgIHByZVB1Ymxpc2hTdGVwczogcHJlUHVibGlzaFN0ZXBzLFxuICAgICAgICBydW46IHRoaXMucHVibGliQ29tbWFuZChcInB1YmxpYi1nb2xhbmdcIiksXG4gICAgICAgIHJlZ2lzdHJ5TmFtZTogXCJHaXRIdWIgR28gTW9kdWxlIFJlcG9zaXRvcnlcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgR0lUSFVCX1JFUE86IG9wdGlvbnMuZ2l0aHViUmVwbyxcbiAgICAgICAgICBHSVRfQlJBTkNIOiBvcHRpb25zLmdpdEJyYW5jaCxcbiAgICAgICAgICBHSVRfVVNFUl9OQU1FOlxuICAgICAgICAgICAgb3B0aW9ucy5naXRVc2VyTmFtZSA/PyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIubmFtZSxcbiAgICAgICAgICBHSVRfVVNFUl9FTUFJTDpcbiAgICAgICAgICAgIG9wdGlvbnMuZ2l0VXNlckVtYWlsID8/IERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUi5lbWFpbCxcbiAgICAgICAgICBHSVRfQ09NTUlUX01FU1NBR0U6IG9wdGlvbnMuZ2l0Q29tbWl0TWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgICAgd29ya2Zsb3dFbnY6IHdvcmtmbG93RW52LFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQdWJsaXNoSm9iKFxuICAgIGZhY3Rvcnk6IChcbiAgICAgIGJyYW5jaDogc3RyaW5nLFxuICAgICAgYnJhbmNoT3B0aW9uczogUGFydGlhbDxCcmFuY2hPcHRpb25zPlxuICAgICkgPT4gUHVibGlzaEpvYk9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5fam9iRmFjdG9yaWVzLnB1c2goKGJyYW5jaCwgYnJhbmNoT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3Qgb3B0cyA9IGZhY3RvcnkoYnJhbmNoLCBicmFuY2hPcHRpb25zKTtcbiAgICAgIGNvbnN0IGpvYm5hbWUgPSBgcmVsZWFzZV8ke29wdHMubmFtZX1gO1xuICAgICAgaWYgKGpvYm5hbWUgaW4gdGhpcy5fam9iRmFjdG9yaWVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIGpvYiB3aXRoIG5hbWUgXCIke2pvYm5hbWV9XCJgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tbWFuZFRvUnVuID0gdGhpcy5kcnlSdW5cbiAgICAgICAgPyBgZWNobyBcIkRSWSBSVU46ICR7b3B0cy5ydW59XCJgXG4gICAgICAgIDogb3B0cy5ydW47XG4gICAgICBjb25zdCByZXF1aXJlZEVudiA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICAgIC8vIGpvYkVudiBpcyB0aGUgZW52IHdlIHBhc3MgdG8gdGhlIGdpdGh1YiBqb2IgKHRhc2sgZW52aXJvbm1lbnQgKyBzZWNyZXRzL2V4cHJlc3Npb25zKS5cbiAgICAgIGNvbnN0IGpvYkVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsgLi4ub3B0cy5lbnYgfTtcbiAgICAgIGNvbnN0IHdvcmtmbG93RW52RW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG9wdHMud29ya2Zsb3dFbnYgPz8ge30pLmZpbHRlcihcbiAgICAgICAgKFtfLCB2YWx1ZV0pID0+IHZhbHVlICE9IHVuZGVmaW5lZFxuICAgICAgKSBhcyBzdHJpbmdbXVtdO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgZXhwcmVzc2lvbl0gb2Ygd29ya2Zsb3dFbnZFbnRyaWVzKSB7XG4gICAgICAgIHJlcXVpcmVkRW52LnB1c2gobmFtZSk7XG4gICAgICAgIGpvYkVudltuYW1lXSA9IGV4cHJlc3Npb247XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnB1Ymxpc2hUYXNrcykge1xuICAgICAgICBjb25zdCBicmFuY2hTdWZmaXggPVxuICAgICAgICAgIGJyYW5jaCA9PT0gXCJtYWluXCIgfHwgYnJhbmNoID09PSBcIm1hc3RlclwiID8gXCJcIiA6IGA6JHticmFuY2h9YDtcblxuICAgICAgICAvLyBkZWZpbmUgYSB0YXNrIHdoaWNoIGNhbiBiZSB1c2VkIHRocm91Z2ggYHByb2plbiBwdWJsaXNoOnh4eGAuXG4gICAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhcbiAgICAgICAgICBgcHVibGlzaDoke29wdHMubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpfSR7YnJhbmNoU3VmZml4fWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBQdWJsaXNoIHRoaXMgcGFja2FnZSB0byAke29wdHMucmVnaXN0cnlOYW1lfWAsXG4gICAgICAgICAgICBlbnY6IG9wdHMuZW52LFxuICAgICAgICAgICAgcmVxdWlyZWRFbnY6IHJlcXVpcmVkRW52LFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBmaXJzdCB2ZXJpZnkgdGhhdCB3ZSBhcmUgb24gdGhlIGNvcnJlY3QgYnJhbmNoXG4gICAgICAgIHRhc2suZXhlYyhgdGVzdCBcIiQoZ2l0IGJyYW5jaCAtLXNob3ctY3VycmVudClcIiA9IFwiJHticmFuY2h9XCJgKTtcblxuICAgICAgICAvLyBydW4gY29tbWFuZHNcbiAgICAgICAgdGFzay5leGVjKGNvbW1hbmRUb1J1bik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0ZXBzOiBKb2JTdGVwW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkRvd25sb2FkIGJ1aWxkIGFydGlmYWN0c1wiLFxuICAgICAgICAgIHVzZXM6IFwiYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2M1wiLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIG5hbWU6IEJVSUxEX0FSVElGQUNUX05BTUUsXG4gICAgICAgICAgICBwYXRoOiBBUlRJRkFDVFNfRE9XTkxPQURfRElSLCAvLyB0aGlzIG11c3QgYmUgXCJkaXN0XCIgZm9yIHB1YmxpYlxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLm9wdHMucHJlUHVibGlzaFN0ZXBzLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJSZWxlYXNlXCIsXG4gICAgICAgICAgLy8gaXQgd291bGQgaGF2ZSBiZWVuIG5pY2UgaWYgd2UgY291bGQganVzdCBydW4gXCJwcm9qZW4gcHVibGlzaDp4eHhcIiBoZXJlIGJ1dCB0aGF0IGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHRoaXMgam9iIGRvZXMgbm90IGNoZWNrb3V0IHNvdXJjZXNcbiAgICAgICAgICBydW46IGNvbW1hbmRUb1J1bixcbiAgICAgICAgICBlbnY6IGpvYkVudixcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHBlcm1zID0gb3B0cy5wZXJtaXNzaW9ucyA/PyB7IGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQgfTtcblxuICAgICAgaWYgKHRoaXMuZmFpbHVyZUlzc3VlKSB7XG4gICAgICAgIHN0ZXBzLnB1c2goXG4gICAgICAgICAgLi4uW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcIkV4dHJhY3QgVmVyc2lvblwiLFxuICAgICAgICAgICAgICBpZjogXCIke3sgZmFpbHVyZSgpIH19XCIsXG4gICAgICAgICAgICAgIGlkOiBcImV4dHJhY3QtdmVyc2lvblwiLFxuICAgICAgICAgICAgICBydW46ICdlY2hvIFwiOjpzZXQtb3V0cHV0IG5hbWU9VkVSU0lPTjo6JChjYXQgZGlzdC92ZXJzaW9uLnR4dClcIicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcIkNyZWF0ZSBJc3N1ZVwiLFxuICAgICAgICAgICAgICBpZjogXCIke3sgZmFpbHVyZSgpIH19XCIsXG4gICAgICAgICAgICAgIHVzZXM6IFwiaW1qb2huYm8vaXNzdWUtYm90QHYzXCIsXG4gICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICBsYWJlbHM6IHRoaXMuZmFpbHVyZUlzc3VlTGFiZWwsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGBQdWJsaXNoaW5nIHZcXCR7eyBzdGVwcy5leHRyYWN0LXZlcnNpb24ub3V0cHV0cy5WRVJTSU9OIH19IHRvICR7b3B0cy5yZWdpc3RyeU5hbWV9IGZhaWxlZGAsXG4gICAgICAgICAgICAgICAgYm9keTogXCJTZWUgaHR0cHM6Ly9naXRodWIuY29tLyR7eyBnaXRodWIucmVwb3NpdG9yeSB9fS9hY3Rpb25zL3J1bnMvJHt7IGdpdGh1Yi5ydW5faWQgfX1cIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgR0lUSFVCX1RPS0VOOiBcIiR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGVybXMsIHsgaXNzdWVzOiBKb2JQZXJtaXNzaW9uLldSSVRFIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbam9ibmFtZV06IHtcbiAgICAgICAgICB0b29sczoge1xuICAgICAgICAgICAgbm9kZTogeyB2ZXJzaW9uOiBcIjE0LnhcIiB9LFxuICAgICAgICAgICAgLi4ub3B0cy5wdWJsaXNoVG9vbHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBuYW1lOiBgUHVibGlzaCB0byAke29wdHMucmVnaXN0cnlOYW1lfWAsXG4gICAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1zLFxuICAgICAgICAgIGlmOiB0aGlzLmNvbmRpdGlvbixcbiAgICAgICAgICBuZWVkczogW3RoaXMuYnVpbGRKb2JJZF0sXG4gICAgICAgICAgcnVuc09uOiB0aGlzLnJ1bnNPbixcbiAgICAgICAgICBzdGVwcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHB1YmxpYkNvbW1hbmQoY29tbWFuZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGBucHggLXAgcHVibGliQCR7dGhpcy5wdWJsaWJWZXJzaW9ufSAke2NvbW1hbmR9YDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZWNyZXQoc2VjcmV0TmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBgXFwke3sgc2VjcmV0cy4ke3NlY3JldE5hbWV9IH19YDtcbn1cblxuaW50ZXJmYWNlIFB1Ymxpc2hKb2JPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuXG4gICAqL1xuICByZWFkb25seSBydW46IHN0cmluZztcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcmVnaXN0cnkgKGZvciBkZXNjcmlwdGlvbilcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lzdHJ5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBKb2IgcGVybWlzc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25zPzogSm9iUGVybWlzc2lvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwdWJsaXNoIGpvYiAoc2hvdWxkIGJlIGxvd2VyY2FzZSkuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHRvIGluY2x1ZGUgb25seSBpbiB0aGUgd29ya2Zsb3cgKGFuZCBub3QgdGFza3MpLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dFbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcblxuICAvKipcbiAgICogU3RlcHMgdG8gZXhlY3V0ZSBiZWZvcmUgdGhlIHJlbGVhc2UgY29tbWFuZCBmb3IgcHJlcGFyaW5nIHRoZSBkaXN0LyBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSBwcmVQdWJsaXNoU3RlcHM6IEpvYlN0ZXBbXTtcblxuICAvKipcbiAgICogVG9vbHMgc2V0dXAgZm9yIHRoZSB3b3JrZmxvdy5cbiAgICogQGRlZmF1bHQgLSBubyB0b29scyBhcmUgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9vbHM/OiBUb29scztcbn1cblxuLyoqXG4gKiBDb21tb24gcHVibGlzaGluZyBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uUHVibGlzaE9wdGlvbnMge1xuICAvKipcbiAgICogU3RlcHMgdG8gZXhlY3V0ZSBiZWZvcmUgZXhlY3V0aW5nIHRoZSBwdWJsaXNoaW5nIGNvbW1hbmQuIFRoZXNlIGNhbiBiZSB1c2VkXG4gICAqIHRvIHByZXBhcmUgdGhlIGFydGlmYWN0IGZvciBwdWJsaXNoaW5nIGlmIG5lZWRlLlxuICAgKlxuICAgKiBUaGVzZSBzdGVwcyBhcmUgZXhlY3V0ZWQgYWZ0ZXIgYGRpc3QvYCBoYXMgYmVlbiBwb3B1bGF0ZWQgd2l0aCB0aGUgYnVpbGRcbiAgICogb3V0cHV0LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgd2hlbiB1c2luZyB0aGlzIGluIGBwdWJsaXNoVG9HaXRIdWJSZWxlYXNlc2AgdGhpcyB3aWxsIG92ZXJyaWRlIHN0ZXBzIGFkZGVkIHZpYSBgYWRkR2l0SHViUHJlUHVibGlzaGluZ1N0ZXBzYC5cbiAgICovXG4gIHJlYWRvbmx5IHByZVB1Ymxpc2hTdGVwcz86IEpvYlN0ZXBbXTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0b29scyB0byBpbnN0YWxsIGluIHRoZSBwdWJsaXNoaW5nIGpvYi5cbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIHRvb2xzIGFyZSBpbnN0YWxsZWRcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb29scz86IFRvb2xzO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgTnBtUHVibGlzaE9wdGlvbnNgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNpaVJlbGVhc2VOcG0gZXh0ZW5kcyBOcG1QdWJsaXNoT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIG5wbSByZWxlYXNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnBtUHVibGlzaE9wdGlvbnMgZXh0ZW5kcyBDb21tb25QdWJsaXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUYWdzIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgYW4gYWxpYXMgaW5zdGVhZCBvZiB2ZXJzaW9uIG51bWJlcnMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBhIHByb2plY3QgbWlnaHQgY2hvb3NlIHRvIGhhdmUgbXVsdGlwbGUgc3RyZWFtcyBvZiBkZXZlbG9wbWVudFxuICAgKiBhbmQgdXNlIGEgZGlmZmVyZW50IHRhZyBmb3IgZWFjaCBzdHJlYW0sIGUuZy4sIHN0YWJsZSwgYmV0YSwgZGV2LCBjYW5hcnkuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBgbGF0ZXN0YCB0YWcgaXMgdXNlZCBieSBucG0gdG8gaWRlbnRpZnkgdGhlIGN1cnJlbnQgdmVyc2lvblxuICAgKiBvZiBhIHBhY2thZ2UsIGFuZCBgbnBtIGluc3RhbGwgPHBrZz5gICh3aXRob3V0IGFueSBgQDx2ZXJzaW9uPmAgb3IgYEA8dGFnPmBcbiAgICogc3BlY2lmaWVyKSBpbnN0YWxscyB0aGUgbGF0ZXN0IHRhZy4gVHlwaWNhbGx5LCBwcm9qZWN0cyBvbmx5IHVzZSB0aGVcbiAgICogYGxhdGVzdGAgdGFnIGZvciBzdGFibGUgcmVsZWFzZSB2ZXJzaW9ucywgYW5kIHVzZSBvdGhlciB0YWdzIGZvciB1bnN0YWJsZVxuICAgKiB2ZXJzaW9ucyBzdWNoIGFzIHByZXJlbGVhc2VzLlxuICAgKlxuICAgKiBUaGUgYG5leHRgIHRhZyBpcyB1c2VkIGJ5IHNvbWUgcHJvamVjdHMgdG8gaWRlbnRpZnkgdGhlIHVwY29taW5nIHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBucG1EaXN0VGFnYCBmb3IgZWFjaCByZWxlYXNlIGJyYW5jaCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdFRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lIG9mIHRoZSBucG0gcGFja2FnZSByZWdpc3RyeS5cbiAgICpcbiAgICogVG8gcHVibGlzaCB0byBHaXRIdWIgUGFja2FnZXMsIHNldCB0aGlzIHZhbHVlIHRvIGBcIm5wbS5wa2cuZ2l0aHViLmNvbVwiYC4gSW5cbiAgICogdGhpcyBpZiBgbnBtVG9rZW5TZWNyZXRgIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgZGVmYXVsdCB0b1xuICAgKiBgR0lUSFVCX1RPS0VOYCB3aGljaCBtZWFucyB0aGF0IHlvdSB3aWxsIGJlIGFibGUgdG8gcHVibGlzaCB0byB0aGVcbiAgICogcmVwb3NpdG9yeSdzIHBhY2thZ2Ugc3RvcmUuIEluIHRoaXMgY2FzZSwgbWFrZSBzdXJlIGByZXBvc2l0b3J5VXJsYCBpc1xuICAgKiBjb3JyZWN0bHkgZGVmaW5lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJyZWdpc3RyeS5ucG1qcy5vcmdcIlxuICAgKiBAZXhhbXBsZSBcIm5wbS5wa2cuZ2l0aHViLmNvbVwiXG4gICAqL1xuICByZWFkb25seSByZWdpc3RyeT86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCB3aGljaCBjb250YWlucyB0aGUgTlBNIHRva2VuIHRvIHVzZSB3aGVuIHB1Ymxpc2hpbmcgcGFja2FnZXMuXG4gICAqIEBkZWZhdWx0IC0gXCJOUE1fVE9LRU5cIiBvciBcIkdJVEhVQl9UT0tFTlwiIGlmIGByZWdpc3RyeWAgaXMgc2V0IHRvIGBucG0ucGtnLmdpdGh1Yi5jb21gLlxuICAgKi9cbiAgcmVhZG9ubHkgbnBtVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHB1Ymxpc2hpbmcgbnBtIHBhY2thZ2UgdG8gQVdTIENvZGVBcnRpZmFjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVBcnRpZmFjdE9wdGlvbnM/OiBDb2RlQXJ0aWZhY3RPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVBcnRpZmFjdE9wdGlvbnMge1xuICAvKipcbiAgICogR2l0SHViIHNlY3JldCB3aGljaCBjb250YWlucyB0aGUgQVdTIGFjY2VzcyBrZXkgSUQgdG8gdXNlIHdoZW4gcHVibGlzaGluZyBwYWNrYWdlcyB0byBBV1MgQ29kZUFydGlmYWN0LlxuICAgKiBUaGlzIHByb3BlcnR5IG11c3QgYmUgc3BlY2lmaWVkIG9ubHkgd2hlbiBwdWJsaXNoaW5nIHRvIEFXUyBDb2RlQXJ0aWZhY3QgKGByZWdpc3RyeWAgY29udGFpbnMgQVdTIENvZGVBcnRpZmFjdCBVUkwpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkFXU19BQ0NFU1NfS0VZX0lEXCJcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0tleUlkU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgc2VjcmV0IHdoaWNoIGNvbnRhaW5zIHRoZSBBV1Mgc2VjcmV0IGFjY2VzcyBrZXkgdG8gdXNlIHdoZW4gcHVibGlzaGluZyBwYWNrYWdlcyB0byBBV1MgQ29kZUFydGlmYWN0LlxuICAgKiBUaGlzIHByb3BlcnR5IG11c3QgYmUgc3BlY2lmaWVkIG9ubHkgd2hlbiBwdWJsaXNoaW5nIHRvIEFXUyBDb2RlQXJ0aWZhY3QgKGByZWdpc3RyeWAgY29udGFpbnMgQVdTIENvZGVBcnRpZmFjdCBVUkwpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkFXU19TRUNSRVRfQUNDRVNTX0tFWVwiXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBY2Nlc3NLZXlTZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiBvZiBBV1Mgcm9sZSB0byBiZSBhc3N1bWVkIHByaW9yIHRvIGdldCBhdXRob3JpemF0aW9uIHRva2VuIGZyb20gQVdTIENvZGVBcnRpZmFjdFxuICAgKiBUaGlzIHByb3BlcnR5IG11c3QgYmUgc3BlY2lmaWVkIG9ubHkgd2hlbiBwdWJsaXNoaW5nIHRvIEFXUyBDb2RlQXJ0aWZhY3QgKGByZWdpc3RyeWAgY29udGFpbnMgQVdTIENvZGVBcnRpZmFjdCBVUkwpLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVUb0Fzc3VtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFB5UGlQdWJsaXNoT3B0aW9uc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc2lpUmVsZWFzZVB5UGkgZXh0ZW5kcyBQeVBpUHVibGlzaE9wdGlvbnMge31cblxuLyoqXG4gKiBPcHRpb25zIGZvciBQeVBJIHJlbGVhc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQeVBpUHVibGlzaE9wdGlvbnMgZXh0ZW5kcyBDb21tb25QdWJsaXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcmVnaXN0cnkgdXJsIHRvIHVzZSB3aGVuIHJlbGVhc2luZyBwYWNrYWdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0d2luZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSB0d2luZVJlZ2lzdHJ5VXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHNlY3JldCB3aGljaCBjb250YWlucyBQeVBJIHVzZXIgbmFtZS5cbiAgICogQGRlZmF1bHQgXCJUV0lORV9VU0VSTkFNRVwiXG4gICAqL1xuICByZWFkb25seSB0d2luZVVzZXJuYW1lU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHNlY3JldCB3aGljaCBjb250YWlucyBQeVBJIHBhc3N3b3JkLlxuICAgKiBAZGVmYXVsdCBcIlRXSU5FX1BBU1NXT1JEXCJcbiAgICovXG4gIHJlYWRvbmx5IHR3aW5lUGFzc3dvcmRTZWNyZXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBOdWdldFB1Ymxpc2hPcHRpb25zYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlSZWxlYXNlTnVnZXQgZXh0ZW5kcyBOdWdldFB1Ymxpc2hPcHRpb25zIHt9XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgTnVHZXQgcmVsZWFzZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdWdldFB1Ymxpc2hPcHRpb25zIGV4dGVuZHMgQ29tbW9uUHVibGlzaE9wdGlvbnMge1xuICAvKipcbiAgICogR2l0SHViIHNlY3JldCB3aGljaCBjb250YWlucyB0aGUgQVBJIGtleSBmb3IgTnVHZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiTlVHRVRfQVBJX0tFWVwiXG4gICAqL1xuICByZWFkb25seSBudWdldEFwaUtleVNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogIE51R2V0IFNlcnZlciBVUkwgKGRlZmF1bHRzIHRvIG51Z2V0Lm9yZylcbiAgICovXG4gIHJlYWRvbmx5IG51Z2V0U2VydmVyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgTWF2ZW5QdWJsaXNoT3B0aW9uc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc2lpUmVsZWFzZU1hdmVuIGV4dGVuZHMgTWF2ZW5QdWJsaXNoT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIE1hdmVuIHJlbGVhc2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF2ZW5QdWJsaXNoT3B0aW9ucyBleHRlbmRzIENvbW1vblB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFVSTCBvZiBOZXh1cyByZXBvc2l0b3J5LiBpZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBodHRwczovL29zcy5zb25hdHlwZS5vcmdcbiAgICpcbiAgICogQGRlZmF1bHQgXCJodHRwczovL29zcy5zb25hdHlwZS5vcmdcIlxuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5FbmRwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCBpbiBtYXZlbiBzZXR0aW5ncyBmb3IgY3JlZGVudGlhbCBsb29rdXAgKGUuZy4gdXNlIGdpdGh1YiB3aGVuIHB1Ymxpc2hpbmcgdG8gR2l0SHViKS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJvc3NyaFwiIChNYXZlbiBDZW50cmFsKSBvciBcImdpdGh1YlwiIHdoZW4gdXNpbmcgR2l0SHViIFBhY2thZ2VzXG4gICAqL1xuICByZWFkb25seSBtYXZlblNlcnZlcklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IHJlcG9zaXRvcnkgd2hlbiBub3QgZGVwbG95aW5nIHRvIE1hdmVuIENlbnRyYWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3Qgc2V0XG4gICAqL1xuICByZWFkb25seSBtYXZlblJlcG9zaXRvcnlVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgbmFtZSB3aGljaCBjb250YWlucyB0aGUgR1BHIHByaXZhdGUga2V5IG9yIGZpbGUgdGhhdCBpbmNsdWRlc1xuICAgKiBpdC4gVGhpcyBpcyB1c2VkIHRvIHNpZ24geW91ciBNYXZlblxuICAgKiBwYWNrYWdlcy4gU2VlIGluc3RydWN0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL3B1YmxpYiNtYXZlblxuICAgKiBAZGVmYXVsdCBcIk1BVkVOX0dQR19QUklWQVRFX0tFWVwiIG9yIG5vdCBzZXQgd2hlbiB1c2luZyBHaXRIdWIgUGFja2FnZXNcbiAgICovXG4gIHJlYWRvbmx5IG1hdmVuR3BnUHJpdmF0ZUtleVNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCBuYW1lIHdoaWNoIGNvbnRhaW5zIHRoZSBHUEcgcHJpdmF0ZSBrZXkgb3IgZmlsZSB0aGF0IGluY2x1ZGVzXG4gICAqIGl0LiBUaGlzIGlzIHVzZWQgdG8gc2lnbiB5b3VyIE1hdmVuIHBhY2thZ2VzLiBTZWUgaW5zdHJ1Y3Rpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvcHVibGliI21hdmVuXG4gICAqIEBkZWZhdWx0IFwiTUFWRU5fR1BHX1BSSVZBVEVfS0VZX1BBU1NQSFJBU0VcIiBvciBub3Qgc2V0IHdoZW4gdXNpbmcgR2l0SHViIFBhY2thZ2VzXG4gICAqL1xuICByZWFkb25seSBtYXZlbkdwZ1ByaXZhdGVLZXlQYXNzcGhyYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgc2VjcmV0IG5hbWUgd2hpY2ggY29udGFpbnMgdGhlIFVzZXJuYW1lIGZvciBtYXZlbiByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBGb3IgTWF2ZW4gQ2VudHJhbCwgeW91IHdpbGwgbmVlZCB0byBDcmVhdGUgSklSQSBhY2NvdW50IGFuZCB0aGVuIHJlcXVlc3QgYVxuICAgKiBuZXcgcHJvamVjdCAoc2VlIGxpbmtzKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2lzc3Vlcy5zb25hdHlwZS5vcmcvc2VjdXJlL1NpZ251cFxuICAgKiBAc2VlIGh0dHBzOi8vaXNzdWVzLnNvbmF0eXBlLm9yZy9zZWN1cmUvQ3JlYXRlSXNzdWUuanNwYT9pc3N1ZXR5cGU9MjEmcGlkPTEwMTM0XG4gICAqXG4gICAqIEBkZWZhdWx0IFwiTUFWRU5fVVNFUk5BTUVcIiBvciB0aGUgR2l0SHViIEFjdG9yIHdoZW4gdXNpbmcgR2l0SHViIFBhY2thZ2VzXG4gICAqL1xuICByZWFkb25seSBtYXZlblVzZXJuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgc2VjcmV0IG5hbWUgd2hpY2ggY29udGFpbnMgdGhlIFBhc3N3b3JkIGZvciBtYXZlbiByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBGb3IgTWF2ZW4gQ2VudHJhbCwgeW91IHdpbGwgbmVlZCB0byBDcmVhdGUgSklSQSBhY2NvdW50IGFuZCB0aGVuIHJlcXVlc3QgYVxuICAgKiBuZXcgcHJvamVjdCAoc2VlIGxpbmtzKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2lzc3Vlcy5zb25hdHlwZS5vcmcvc2VjdXJlL1NpZ251cFxuICAgKiBAc2VlIGh0dHBzOi8vaXNzdWVzLnNvbmF0eXBlLm9yZy9zZWN1cmUvQ3JlYXRlSXNzdWUuanNwYT9pc3N1ZXR5cGU9MjEmcGlkPTEwMTM0XG4gICAqXG4gICAqIEBkZWZhdWx0IFwiTUFWRU5fUEFTU1dPUkRcIiBvciBcIkdJVEhVQl9UT0tFTlwiIHdoZW4gdXNpbmcgR2l0SHViIFBhY2thZ2VzXG4gICAqL1xuICByZWFkb25seSBtYXZlblBhc3N3b3JkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgc2VjcmV0IG5hbWUgd2hpY2ggY29udGFpbnMgdGhlIE1hdmVuIENlbnRyYWwgKHNvbmF0eXBlKSBzdGFnaW5nXG4gICAqIHByb2ZpbGUgSUQgKGUuZy4gNjhhMDUzNjMwODMxNzQpLiBTdGFnaW5nIHByb2ZpbGUgSUQgY2FuIGJlIGZvdW5kIGluIHRoZVxuICAgKiBVUkwgb2YgdGhlIFwiUmVsZWFzZXNcIiBzdGFnaW5nIHByb2ZpbGUgdW5kZXIgXCJTdGFnaW5nIFByb2ZpbGVzXCIgaW5cbiAgICogaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnIChlLmcuXG4gICAqIGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy8jc3RhZ2luZ1Byb2ZpbGVzOzExYTMzNDUxMjM0NTIxKVxuXG4gICAqIEBkZWZhdWx0IFwiTUFWRU5fU1RBR0lOR19QUk9GSUxFX0lEXCIgb3Igbm90IHNldCB3aGVuIHVzaW5nIEdpdEh1YiBQYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF2ZW5TdGFnaW5nUHJvZmlsZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgR29QdWJsaXNoT3B0aW9uc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc2lpUmVsZWFzZUdvIGV4dGVuZHMgR29QdWJsaXNoT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIEdvIHJlbGVhc2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvUHVibGlzaE9wdGlvbnMgZXh0ZW5kcyBDb21tb25QdWJsaXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0IHRoYXQgaW5jbHVkZXMgYSBwZXJzb25hbCBHaXRIdWIgYWNjZXNzIHRva2VuIHVzZWQgdG9cbiAgICogcHVzaCB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuXG4gICAqXG4gICAqIElnbm9yZWQgaWYgYGdpdGh1YlVzZVNzaGAgaXMgYHRydWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkdPX0dJVEhVQl9UT0tFTlwiXG4gICAqL1xuICByZWFkb25seSBnaXRodWJUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGluY2x1ZGVzIGEgR2l0SHViIGRlcGxveSBrZXkgdXNlZCB0byBwdXNoIHRvIHRoZVxuICAgKiBHaXRIdWIgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogSWdub3JlZCBpZiBgZ2l0aHViVXNlU3NoYCBpcyBgZmFsc2VgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkdPX0dJVEhVQl9ERVBMT1lfS0VZXCJcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1YkRlcGxveUtleVNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIFNTSCB0byBwdXNoIHRvIEdpdEh1YiBpbnN0ZWFkIG9mIGEgcGVyc29uYWwgYWNjc2VzIHRva2VuLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViVXNlU3NoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2l0SHViIHJlcG9zaXRvcnkgdG8gcHVzaCB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZXJpdmVkIGZyb20gYG1vZHVsZU5hbWVgXG4gICAqL1xuICByZWFkb25seSBnaXRodWJSZXBvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gcHVzaCB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJtYWluXCJcbiAgICovXG4gIHJlYWRvbmx5IGdpdEJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVzZXIgbmFtZSB0byB1c2UgZm9yIHRoZSByZWxlYXNlIGdpdCBjb21taXQuXG4gICAqIEBkZWZhdWx0IFwiZ2l0aHViLWFjdGlvbnNcIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0VXNlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbWFpbCB0byB1c2UgaW4gdGhlIHJlbGVhc2UgZ2l0IGNvbW1pdC5cbiAgICogQGRlZmF1bHQgXCJnaXRodWItYWN0aW9uc0BnaXRodWIuY29tXCJcbiAgICovXG4gIHJlYWRvbmx5IGdpdFVzZXJFbWFpbD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbW1pdCBtZXNzYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImNob3JlKHJlbGVhc2UpOiAkVkVSU0lPTlwiXG4gICAqL1xuICByZWFkb25seSBnaXRDb21taXRNZXNzYWdlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmVyc2lvbkFydGlmYWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgYSB0ZXh0IGZpbGUgKHJlbGF0aXZlIHRvIGBkaXN0L2ApIHRoYXQgY29udGFpbnMgdGhlIHZlcnNpb24gbnVtYmVyLlxuICAgKlxuICAgKiBAZXhhbXBsZSB2ZXJzaW9uLnR4dFxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbkZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIGEgdGV4dCBmaWxlIChyZWxhdGl2ZSB0byBgZGlzdC9gKSB0aGF0IGNvbnRhaW5zIHRoZSByZWxlYXNlIHRhZy5cbiAgICpcbiAgICogQGV4YW1wbGUgcmVsZWFzZXRhZy50eHRcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUYWdGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiBhbiAubWQgZmlsZSAocmVsYXRpdmUgdG8gYGRpc3QvYCkgdGhhdCBpbmNsdWRlcyB0aGUgY2hhbmdlbG9nIGZvciB0aGUgcmVsZWFzZS5cbiAgICpcbiAgICogQGV4YW1wbGUgY2hhbmdlbG9nLm1kXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2dGaWxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIGlmIHRoZSBgcmVnaXN0cnlVcmxgIGlzIGEgQVdTIENvZGVBcnRpZmFjdCByZWdpc3RyeS5cbiAqIEBwYXJhbSByZWdpc3RyeVVybCB1cmwgb2YgcmVnaXN0cnlcbiAqIEByZXR1cm5zIHRydWUgZm9yIEFXUyBDb2RlQXJ0aWZhY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQXdzQ29kZUFydGlmYWN0UmVnaXN0cnkocmVnaXN0cnlVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gcmVnaXN0cnlVcmwgJiYgQVdTX0NPREVBUlRJRkFDVF9SRUdJU1RSWV9SRUdFWC50ZXN0KHJlZ2lzdHJ5VXJsKTtcbn1cblxuLyoqXG4gKiBQdWJsaXNoaW5nIG9wdGlvbnMgZm9yIEdpdEh1YiByZWxlYXNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJSZWxlYXNlc1B1Ymxpc2hPcHRpb25zXG4gIGV4dGVuZHMgVmVyc2lvbkFydGlmYWN0T3B0aW9ucyxcbiAgICBDb21tb25QdWJsaXNoT3B0aW9ucyB7fVxuXG4vKipcbiAqIFB1Ymxpc2hpbmcgb3B0aW9ucyBmb3IgR2l0IHJlbGVhc2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0UHVibGlzaE9wdGlvbnMgZXh0ZW5kcyBWZXJzaW9uQXJ0aWZhY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiBhbiAubWQgZmlsZSB0aGF0IGluY2x1ZGVzIHRoZSBwcm9qZWN0LWxldmVsIGNoYW5nZWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RDaGFuZ2Vsb2dGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gcHVzaCB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJtYWluXCJcbiAgICovXG4gIHJlYWRvbmx5IGdpdEJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGUgZ2l0LXB1c2ggY29tbWFuZC5cbiAgICpcbiAgICogU2V0IHRvIGFuIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlIHB1c2hpbmcuXG4gICAqL1xuICByZWFkb25seSBnaXRQdXNoQ29tbWFuZD86IHN0cmluZztcbn1cblxudHlwZSBQdWJsaXNoSm9iRmFjdG9yeSA9IChcbiAgYnJhbmNoOiBzdHJpbmcsXG4gIGJyYW5jaE9wdGlvbnM6IFBhcnRpYWw8QnJhbmNoT3B0aW9ucz5cbikgPT4gUmVjb3JkPHN0cmluZywgSm9iPjtcbiJdfQ==
|
|
@@ -72,5 +72,5 @@ class ReleaseTrigger {
|
|
|
72
72
|
}
|
|
73
73
|
exports.ReleaseTrigger = ReleaseTrigger;
|
|
74
74
|
_a = JSII_RTTI_SYMBOL_1;
|
|
75
|
-
ReleaseTrigger[_a] = { fqn: "projen.release.ReleaseTrigger", version: "0.58.
|
|
75
|
+
ReleaseTrigger[_a] = { fqn: "projen.release.ReleaseTrigger", version: "0.58.18" };
|
|
76
76
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlbGVhc2UvcmVsZWFzZS10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBb0VBOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQWlGekIsWUFBb0IsVUFBaUMsRUFBRTtRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQy9DLENBQUM7SUFyRkQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQWdDLEVBQUU7UUFDckQsSUFBSSxhQUFhLENBQUM7UUFFbEIsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUM3QixhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxjQUFjLENBQUM7U0FDekQ7UUFFRCxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLGFBQWEsRUFBRSxhQUFhO1lBQzVCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFnQztRQUN0RCxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVO1FBQ3RCLE9BQU8sSUFBSSxjQUFjLENBQUM7WUFDeEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQW1DRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQTdGSCx3Q0E4RkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlZFJlbGVhc2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIENyb24gc2NoZWR1bGUgZm9yIHJlbGVhc2VzLlxuICAgKlxuICAgKiBPbmx5IGRlZmluZWQgaWYgdGhpcyBpcyBhIHNjaGVkdWxlZCByZWxlYXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnMCAxNyAqICogKicgLSBldmVyeSBkYXkgYXQgNSBwbVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYW51YWxSZWxlYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYWludGFpbiBhIHByb2plY3QtbGV2ZWwgY2hhbmdlbG9nLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0LWxldmVsIGNoYW5nZWxvZyBmaWxlIHBhdGguXG4gICAqXG4gICAqIElnbm9yZWQgaWYgYGNoYW5nZWxvZ2AgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdDSEFOR0VMT0cubWQnXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2dQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSBnaXQtcHVzaCBjb21tYW5kLlxuICAgKlxuICAgKiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgcHVzaGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGdpdFB1c2hDb21tYW5kPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUmVsZWFzZVRyaWdnZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFByb2plY3QtbGV2ZWwgY2hhbmdlbG9nIGZpbGUgcGF0aC5cbiAgICpcbiAgICogSWdub3JlZCBpZiBgY2hhbmdlbG9nYCBpcyBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlbG9nUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogQ29udGludW91cyByZWxlYXNlcywgd2hpY2ggd2lsbCByZWxlYXNlIGV2ZXJ5IGNvbW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRpbnVvdXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcm9uIHNjaGVkdWxlIGZvciByZWxlYXNlLlxuICAgKlxuICAgKiBPbmx5IGRlZmluZWQgaWYgdGhpcyBpcyBhIHNjaGVkdWxlZCByZWxlYXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnMCAxNyAqICogKicgLSBldmVyeSBkYXkgYXQgNSBwbVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIGdpdC1wdXNoIGNvbW1hbmQuXG4gICAqXG4gICAqIFNldCB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSBwdXNoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0UHVzaENvbW1hbmQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXNlZCB0byBtYW5hZ2UgcmVsZWFzZSBzdHJhdGVnaWVzLiBUaGlzIGluY2x1ZGVzIHJlbGVhc2VcbiAqIGFuZCByZWxlYXNlIGFydGlmYWN0IGF1dG9tYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2VUcmlnZ2VyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBtYW51YWwgcmVsZWFzZSB0cmlnZ2VyLlxuICAgKlxuICAgKiBVc2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG90YWxseSBtYW51YWwgcmVsZWFzZXMuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBnaXZlIHlvdSBhIHJlbGVhc2UgdGFzayB0aGF0LCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsXG4gICAqIHJlbGVhc2UgYWN0aXZpdGllcyB3aWxsIHRyaWdnZXIgYSBgcHVibGlzaDpnaXRgIHRhc2suIFRoaXMgdGFzayB3aWxsXG4gICAqIGhhbmRsZSBwcm9qZWN0LWxldmVsIGNoYW5nZWxvZyBtYW5hZ2VtZW50LCByZWxlYXNlIHRhZ2dpbmcsIGFuZCBwdXNoaW5nXG4gICAqIHRoZXNlIGFydGlmYWN0cyB0byBvcmlnaW4uXG4gICAqXG4gICAqIFRoZSBjb21tYW5kIHVzZWQgZm9yIHB1c2hpbmcgY2FuIGJlIGN1c3RvbWlzZWQgYnkgc3BlY2lmeWluZ1xuICAgKiBgZ2l0UHVzaENvbW1hbmRgLiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgcHVzaGluZyBlbnRpcmVseS5cbiAgICpcbiAgICogU2ltcGx5IHJ1biBgeWFybiByZWxlYXNlYCB0byB0cmlnZ2VyIGEgbWFudWFsIHJlbGVhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIHJlbGVhc2Ugb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYW51YWwob3B0aW9uczogTWFudWFsUmVsZWFzZU9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjaGFuZ2Vsb2dQYXRoO1xuXG4gICAgaWYgKG9wdGlvbnMuY2hhbmdlbG9nID8/IHRydWUpIHtcbiAgICAgIGNoYW5nZWxvZ1BhdGggPSBvcHRpb25zLmNoYW5nZWxvZ1BhdGggPz8gXCJDSEFOR0VMT0cubWRcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlbGVhc2VUcmlnZ2VyKHtcbiAgICAgIGNoYW5nZWxvZ1BhdGg6IGNoYW5nZWxvZ1BhdGgsXG4gICAgICBnaXRQdXNoQ29tbWFuZDogb3B0aW9ucy5naXRQdXNoQ29tbWFuZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc2NoZWR1bGVkIHJlbGVhc2UgdHJpZ2dlci5cbiAgICpcbiAgICogQXV0b21hdGVkIHJlbGVhc2VzIHdpbGwgb2NjdXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNyb24gc2NoZWR1bGUuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIHJlbGVhc2Ugb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2NoZWR1bGVkKG9wdGlvbnM6IFNjaGVkdWxlZFJlbGVhc2VPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBSZWxlYXNlVHJpZ2dlcih7XG4gICAgICBzY2hlZHVsZTogb3B0aW9ucy5zY2hlZHVsZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY29udGludW91cyByZWxlYXNlIHRyaWdnZXIuXG4gICAqXG4gICAqIEF1dG9tYXRlZCByZWxlYXNlcyB3aWxsIG9jY3VyIG9uIGV2ZXJ5IGNvbW1pdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udGludW91cygpIHtcbiAgICByZXR1cm4gbmV3IFJlbGVhc2VUcmlnZ2VyKHtcbiAgICAgIGNvbnRpbnVvdXM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvamVjdC1sZXZlbCBjaGFuZ2Vsb2cgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWxvZ1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyb24gc2NoZWR1bGUgZm9yIHJlbGVhc2VzLlxuICAgKlxuICAgKiBPbmx5IGRlZmluZWQgaWYgdGhpcyBpcyBhIHNjaGVkdWxlZCByZWxlYXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnMCAxNyAqICogKicgLSBldmVyeSBkYXkgYXQgNSBwbVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGlzIGEgY29udGludW91cyByZWxlYXNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlzQ29udGludW91czogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgZ2l0LXB1c2ggY29tbWFuZCB1c2VkIHdoZW4gcmVsZWFzaW5nIG1hbnVhbGx5LlxuICAgKlxuICAgKiBTZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgcHVzaGluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnaXRQdXNoQ29tbWFuZD86IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFJlbGVhc2VUcmlnZ2VyT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5pc0NvbnRpbnVvdXMgPSBvcHRpb25zLmNvbnRpbnVvdXMgPz8gZmFsc2U7XG4gICAgdGhpcy5zY2hlZHVsZSA9IG9wdGlvbnMuc2NoZWR1bGU7XG4gICAgdGhpcy5jaGFuZ2Vsb2dQYXRoID0gb3B0aW9ucy5jaGFuZ2Vsb2dQYXRoO1xuICAgIHRoaXMuZ2l0UHVzaENvbW1hbmQgPSBvcHRpb25zLmdpdFB1c2hDb21tYW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgaXMgYSBtYW51YWwgcmVsZWFzZSB0cmlnZ2VyLlxuICAgKi9cbiAgcHVibGljIGdldCBpc01hbnVhbCgpIHtcbiAgICByZXR1cm4gISh0aGlzLmlzQ29udGludW91cyB8fCB0aGlzLnNjaGVkdWxlKTtcbiAgfVxufVxuIl19
|
package/lib/release/release.js
CHANGED
|
@@ -294,6 +294,6 @@ class Release extends component_1.Component {
|
|
|
294
294
|
}
|
|
295
295
|
exports.Release = Release;
|
|
296
296
|
_a = JSII_RTTI_SYMBOL_1;
|
|
297
|
-
Release[_a] = { fqn: "projen.release.Release", version: "0.58.
|
|
297
|
+
Release[_a] = { fqn: "projen.release.Release", version: "0.58.18" };
|
|
298
298
|
Release.ANTI_TAMPER_CMD = "git diff --ignore-space-at-eol --exit-code";
|
|
299
299
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWxlYXNlL3JlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsNENBQXlDO0FBQ3pDLHNDQUFnRjtBQUNoRixtREFBMEQ7QUFDMUQsK0RBQXdFO0FBRXhFLHdDQUFxQztBQUNyQywyQ0FBd0M7QUFDeEMsdURBQW1EO0FBRW5ELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUM5QixNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQWtON0M7Ozs7R0FJRztBQUNILE1BQWEsT0FBUSxTQUFRLHFCQUFTO0lBcUNwQyxZQUFZLE9BQXNCLEVBQUUsT0FBdUI7UUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBZEEsY0FBUyxHQUFHLElBQUksS0FBSyxFQUFpQixDQUFDO1FBQ3ZDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBZTlDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FDYiwrREFBK0QsQ0FDaEUsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsSUFBSSxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixJQUFJLE1BQU0sQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7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QVM7b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWTt3QkFDcEMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQzVCLENBQUMsQ0FBQyxTQUFTO2lCQUNkO2dCQUNELFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDNUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ2hDLENBQUMsQ0FBQyxTQUFTO2dCQUNiLEdBQUcsRUFBRTtvQkFDSCxFQUFFLEVBQUUsTUFBTTtpQkFDWDtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHlEQUF5RDtvQkFDekQscUNBQXFDO29CQUNyQyxhQUFhLEVBQUUsQ0FBQztpQkFDakI7Z0JBQ0QsYUFBYTtnQkFDYixJQUFJLEVBQUUsV0FBVztnQkFDakIsY0FBYztnQkFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7YUFDNUIsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzs7QUFuWEgsMEJBb1hDOzs7QUFuWHdCLHVCQUFlLEdBQ3BDLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgR2l0SHViLCBHaXRIdWJQcm9qZWN0LCBHaXRodWJXb3JrZmxvdywgVGFza1dvcmtmbG93IH0gZnJvbSBcIi4uL2dpdGh1YlwiO1xuaW1wb3J0IHsgQlVJTERfQVJUSUZBQ1RfTkFNRSB9IGZyb20gXCIuLi9naXRodWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBKb2IsIEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5pbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSBcIi4uL3ZlcnNpb25cIjtcbmltcG9ydCB7IFB1Ymxpc2hlciB9IGZyb20gXCIuL3B1Ymxpc2hlclwiO1xuaW1wb3J0IHsgUmVsZWFzZVRyaWdnZXIgfSBmcm9tIFwiLi9yZWxlYXNlLXRyaWdnZXJcIjtcblxuY29uc3QgQlVJTERfSk9CSUQgPSBcInJlbGVhc2VcIjtcbmNvbnN0IEdJVF9SRU1PVEVfU1RFUElEID0gXCJnaXRfcmVtb3RlXCI7XG5jb25zdCBMQVRFU1RfQ09NTUlUX09VVFBVVCA9IFwibGF0ZXN0X2NvbW1pdFwiO1xuXG50eXBlIEJyYW5jaEhvb2sgPSAoYnJhbmNoOiBzdHJpbmcpID0+IHZvaWQ7XG5cbi8qKlxuICogUHJvamVjdCBvcHRpb25zIGZvciByZWxlYXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHJlbGVhc2UgbmV3IHZlcnNpb25zIGV2ZXJ5IGNvbW1pdCB0byBvbmUgb2YgYnJhbmNoZXMgaW4gYHJlbGVhc2VCcmFuY2hlc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGByZWxlYXNlVHJpZ2dlcjogUmVsZWFzZVRyaWdnZXIuY29udGludW91cygpYCBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlRXZlcnlDb21taXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDUk9OIHNjaGVkdWxlIHRvIHRyaWdnZXIgbmV3IHJlbGVhc2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNjaGVkdWxlZCByZWxlYXNlc1xuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJlbGVhc2VUcmlnZ2VyOiBSZWxlYXNlVHJpZ2dlci5zY2hlZHVsZWQoKWAgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsZWFzZSB0cmlnZ2VyIHRvIHVzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDb250aW51b3VzIHJlbGVhc2VzIChgUmVsZWFzZVRyaWdnZXIuY29udGludW91cygpYClcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUcmlnZ2VyPzogUmVsZWFzZVRyaWdnZXI7XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIHdvcmtmbG93IHN0ZXBzIHRvIGV4ZWN1dGUgaW4gb3JkZXIgdG8gc2V0dXAgdGhlIHdvcmtmbG93XG4gICAqIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHM/OiBKb2JTdGVwW107XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSB0byB1c2UgZm9yIEdpdEh1YiB3b3JrZmxvd3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dDb250YWluZXJJbWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiByZXF1aXJlbWVudCBvZiBgcHVibGliYCB3aGljaCBpcyB1c2VkIHRvIHB1Ymxpc2ggbW9kdWxlcyB0byBucG0uXG4gICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlSZWxlYXNlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogU3RlcHMgdG8gZXhlY3V0ZSBhZnRlciBidWlsZCBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHdvcmtmbG93LlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgcG9zdEJ1aWxkU3RlcHM/OiBKb2JTdGVwW107XG5cbiAgLyoqXG4gICAqIE1ham9yIHZlcnNpb24gdG8gcmVsZWFzZSBmcm9tIHRoZSBkZWZhdWx0IGJyYW5jaC5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBzcGVjaWZpZWQsIHdlIGJ1bXAgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbWFqb3IgdmVyc2lvbiBsaW5lLlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCB3ZSBidW1wIHRoZSBnbG9iYWwgbGF0ZXN0IHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTWFqb3IgdmVyc2lvbiBpcyBub3QgZW5mb3JjZWQuXG4gICAqL1xuICByZWFkb25seSBtYWpvclZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ1bXAgdmVyc2lvbnMgZnJvbSB0aGUgZGVmYXVsdCBicmFuY2ggYXMgcHJlLXJlbGVhc2VzIChlLmcuIFwiYmV0YVwiLFxuICAgKiBcImFscGhhXCIsIFwicHJlXCIpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vcm1hbCBzZW1hbnRpYyB2ZXJzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlcmVsZWFzZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5wbURpc3RUYWcgdG8gdXNlIHdoZW4gcHVibGlzaGluZyBmcm9tIHRoZSBkZWZhdWx0IGJyYW5jaC5cbiAgICpcbiAgICogVG8gc2V0IHRoZSBucG0gZGlzdC10YWcgZm9yIHJlbGVhc2UgYnJhbmNoZXMsIHNldCB0aGUgYG5wbURpc3RUYWdgIHByb3BlcnR5XG4gICAqIGZvciBlYWNoIGJyYW5jaC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJsYXRlc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgbnBtRGlzdFRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgcmVsZWFzZSB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJSZWxlYXNlXCJcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VXb3JrZmxvd05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYWRkaXRpb25hbCByZWxlYXNlIGJyYW5jaGVzLiBBIHdvcmtmbG93IHdpbGwgYmUgY3JlYXRlZCBmb3IgZWFjaFxuICAgKiByZWxlYXNlIGJyYW5jaCB3aGljaCB3aWxsIHB1Ymxpc2ggcmVsZWFzZXMgZnJvbSBjb21taXRzIGluIHRoaXMgYnJhbmNoLlxuICAgKiBFYWNoIHJlbGVhc2UgYnJhbmNoIF9tdXN0XyBiZSBhc3NpZ25lZCBhIG1ham9yIHZlcnNpb24gbnVtYmVyIHdoaWNoIGlzIHVzZWRcbiAgICogdG8gZW5mb3JjZSB0aGF0IHZlcnNpb25zIHB1Ymxpc2hlZCBmcm9tIHRoYXQgYnJhbmNoIGFsd2F5cyB1c2UgdGhhdCBtYWpvclxuICAgKiB2ZXJzaW9uLiBJZiBtdWx0aXBsZSBicmFuY2hlcyBhcmUgdXNlZCwgdGhlIGBtYWpvclZlcnNpb25gIGZpZWxkIG11c3QgYWxzb1xuICAgKiBiZSBwcm92aWRlZCBmb3IgdGhlIGRlZmF1bHQgYnJhbmNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgYnJhbmNoZXMgYXJlIHVzZWQgZm9yIHJlbGVhc2UuIHlvdSBjYW4gdXNlXG4gICAqIGBhZGRCcmFuY2goKWAgdG8gYWRkIGFkZGl0aW9uYWwgYnJhbmNoZXMuXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlQnJhbmNoZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBCcmFuY2hPcHRpb25zIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGdpdGh1YiBpc3N1ZSBvbiBldmVyeSBmYWlsZWQgcHVibGlzaGluZyB0YXNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZUZhaWx1cmVJc3N1ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBhcHBseSB0byBpc3N1ZXMgaW5kaWNhdGluZyBwdWJsaXNoIGZhaWx1cmVzLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYHJlbGVhc2VGYWlsdXJlSXNzdWVgIGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZmFpbGVkLXJlbGVhc2VcIlxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZUZhaWx1cmVJc3N1ZUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZCB0aGUgZ2l2ZW4gcHJlZml4IHRvIHJlbGVhc2UgdGFncy5cbiAgICogVXNlZnVsIGlmIHlvdSBhcmUgcmVsZWFzaW5nIG9uIG11bHRpcGxlIGJyYW5jaGVzIHdpdGggb3ZlcmxhcHBpbmdcbiAgICogdmVyc2lvbiBudW1iZXJzLlxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHByZWZpeCBpcyB1c2VkIHRvIGRldGVjdCB0aGUgbGF0ZXN0IHRhZ2dlZCB2ZXJzaW9uXG4gICAqIHdoZW4gYnVtcGluZywgc28gaWYgeW91IGNoYW5nZSB0aGlzIG9uIGEgcHJvamVjdCB3aXRoIGFuIGV4aXN0aW5nIHZlcnNpb25cbiAgICogaGlzdG9yeSwgeW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IHRhZyB5b3VyIGxhdGVzdCByZWxlYXNlXG4gICAqIHdpdGggdGhlIG5ldyBwcmVmaXguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJlZml4XG4gICAqL1xuICByZWFkb25seSByZWxlYXNlVGFnUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY29uZmlndXJhdGlvbiB1c2VkIHdoZW4gY3JlYXRpbmcgY2hhbmdlbG9nIHdpdGggc3RhbmRhcmQtdmVyc2lvbiBwYWNrYWdlLlxuICAgKiBHaXZlbiB2YWx1ZXMgZWl0aGVyIGFwcGVuZCB0byBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3Igb3ZlcndyaXRlIHZhbHVlcyBpbiBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdGFuZGFyZCBjb25maWd1cmF0aW9uIGFwcGxpY2FibGUgZm9yIEdpdEh1YiByZXBvc2l0b3JpZXNcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25yY09wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBHaXRodWIgUnVubmVyIHNlbGVjdGlvbiBsYWJlbHNcbiAgICogQGRlZmF1bHQgW1widWJ1bnR1LWxhdGVzdFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dSdW5zT24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGVmaW5lIHB1Ymxpc2hpbmcgdGFza3MgdGhhdCBjYW4gYmUgZXhlY3V0ZWQgbWFudWFsbHkgYXMgd2VsbCBhcyB3b3JrZmxvd3MuXG4gICAqXG4gICAqIE5vcm1hbGx5LCBwdWJsaXNoaW5nIG9ubHkgaGFwcGVucyB3aXRoaW4gYXV0b21hdGVkIHdvcmtmbG93cy4gRW5hYmxlIHRoaXNcbiAgICogaW4gb3JkZXIgdG8gY3JlYXRlIGEgcHVibGlzaGluZyB0YXNrIGZvciBlYWNoIHB1Ymxpc2hpbmcgYWN0aXZpdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVGFza3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0ZWFkIG9mIGFjdHVhbGx5IHB1Ymxpc2hpbmcgdG8gcGFja2FnZSBtYW5hZ2VycywganVzdCBwcmludCB0aGUgcHVibGlzaGluZyBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaERyeVJ1bj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYFJlbGVhc2VgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VPcHRpb25zIGV4dGVuZHMgUmVsZWFzZVByb2plY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRvIGV4ZWN1dGUgaW4gb3JkZXIgdG8gY3JlYXRlIHRoZSByZWxlYXNlIGFydGlmYWN0cy4gQXJ0aWZhY3RzIGFyZVxuICAgKiBleHBlY3RlZCB0byByZXNpZGUgdW5kZXIgYGFydGlmYWN0c0RpcmVjdG9yeWAgKGRlZmF1bHRzIHRvIGBkaXN0L2ApIG9uY2VcbiAgICogYnVpbGQgaXMgY29tcGxldGUuXG4gICAqL1xuICByZWFkb25seSB0YXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgb2YgYSAuanNvbiBmaWxlIHRvIHNldCB0aGUgYHZlcnNpb25gIGZpZWxkIGluIGFmdGVyIGEgYnVtcC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJwYWNrYWdlLmpzb25cIlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbkZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYnJhbmNoIG5hbWUgdG8gcmVsZWFzZSBmcm9tLlxuICAgKlxuICAgKiBVc2UgYG1ham9yVmVyc2lvbmAgdG8gcmVzdHJpY3QgdGhpcyBicmFuY2ggdG8gb25seSBwdWJsaXNoIHJlbGVhc2VzIHdpdGggYVxuICAgKiBzcGVjaWZpYyBtYWpvciB2ZXJzaW9uLlxuICAgKlxuICAgKiBZb3UgY2FuIGFkZCBhZGRpdGlvbmFsIGJyYW5jaGVzIHVzaW5nIGBhZGRCcmFuY2goKWAuXG4gICAqL1xuICByZWFkb25seSBicmFuY2g6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgR2l0SHViIHJlbGVhc2UgZm9yIGVhY2ggcmVsZWFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViUmVsZWFzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgZGlyZWN0b3J5IHdoaWNoIHdpbGwgY29udGFpbiBidWlsZCBhcnRpZmFjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZGlzdFwiXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdHNEaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNYW5hZ2VzIHJlbGVhc2VzIChjdXJyZW50bHkgdGhyb3VnaCBHaXRIdWIgd29ya2Zsb3dzKS5cbiAqXG4gKiBCeSBkZWZhdWx0LCBubyBicmFuY2hlcyBhcmUgcmVsZWFzZWQuIFRvIGFkZCBicmFuY2hlcywgY2FsbCBgYWRkQnJhbmNoKClgLlxuICovXG5leHBvcnQgY2xhc3MgUmVsZWFzZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQU5USV9UQU1QRVJfQ01EID1cbiAgICBcImdpdCBkaWZmIC0taWdub3JlLXNwYWNlLWF0LWVvbCAtLWV4aXQtY29kZVwiO1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYFJlbGVhc2VgIGNvbXBvbmVudCBvZiBhIHByb2plY3Qgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHByb2plY3RcbiAgICogZG9lcyBub3QgaGF2ZSBhIFJlbGVhc2UgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBHaXRIdWJQcm9qZWN0KTogUmVsZWFzZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNSZWxlYXNlID0gKGM6IENvbXBvbmVudCk6IGMgaXMgUmVsZWFzZSA9PiBjIGluc3RhbmNlb2YgUmVsZWFzZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNSZWxlYXNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYWNrYWdlIHB1Ymxpc2hlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwdWJsaXNoZXI6IFB1Ymxpc2hlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGJ1aWxkVGFzazogVGFzaztcbiAgcHJpdmF0ZSByZWFkb25seSB2ZXJzaW9uOiBWZXJzaW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHBvc3RCdWlsZFN0ZXBzOiBKb2JTdGVwW107XG4gIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbkZpbGU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWxlYXNlVHJpZ2dlcjogUmVsZWFzZVRyaWdnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlQnVpbGRTdGVwczogSm9iU3RlcFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lckltYWdlPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9icmFuY2hlcyA9IG5ldyBBcnJheTxSZWxlYXNlQnJhbmNoPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGpvYnM6IFJlY29yZDxzdHJpbmcsIEpvYj4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QnJhbmNoOiBSZWxlYXNlQnJhbmNoO1xuICBwcml2YXRlIHJlYWRvbmx5IGdpdGh1Yj86IEdpdEh1YjtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvd1J1bnNPbj86IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JyYW5jaEhvb2tzOiBCcmFuY2hIb29rW107XG5cbiAgLyoqXG4gICAqIExvY2F0aW9uIG9mIGJ1aWxkIGFydGlmYWN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcnRpZmFjdHNEaXJlY3Rvcnk6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBHaXRIdWJQcm9qZWN0LCBvcHRpb25zOiBSZWxlYXNlT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy5yZWxlYXNlQnJhbmNoZXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdcInJlbGVhc2VCcmFuY2hlc1wiIGlzIG5vIGxvbmdlciBhbiBhcnJheS4gU2VlIHR5cGUgYW5ub3RhdGlvbnMnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZ2l0aHViID0gcHJvamVjdC5naXRodWI7XG4gICAgdGhpcy5idWlsZFRhc2sgPSBvcHRpb25zLnRhc2s7XG4gICAgdGhpcy5wcmVCdWlsZFN0ZXBzID0gb3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dTZXR1cFN0ZXBzID8/IFtdO1xuICAgIHRoaXMucG9zdEJ1aWxkU3RlcHMgPSBvcHRpb25zLnBvc3RCdWlsZFN0ZXBzID8/IFtdO1xuICAgIHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5ID0gb3B0aW9ucy5hcnRpZmFjdHNEaXJlY3RvcnkgPz8gXCJkaXN0XCI7XG4gICAgdGhpcy52ZXJzaW9uRmlsZSA9IG9wdGlvbnMudmVyc2lvbkZpbGU7XG4gICAgdGhpcy5yZWxlYXNlVHJpZ2dlciA9IG9wdGlvbnMucmVsZWFzZVRyaWdnZXIgPz8gUmVsZWFzZVRyaWdnZXIuY29udGludW91cygpO1xuICAgIHRoaXMuY29udGFpbmVySW1hZ2UgPSBvcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2U7XG4gICAgdGhpcy53b3JrZmxvd1J1bnNPbiA9IG9wdGlvbnMud29ya2Zsb3dSdW5zT247XG4gICAgdGhpcy5fYnJhbmNoSG9va3MgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFVzZSBtYW51YWwgcmVsZWFzZXMgd2l0aCBubyBjaGFuZ2Vsb2cgaWYgcmVsZWFzZUV2ZXJ5Q29tbWl0IGlzIGV4cGxpY2l0bHlcbiAgICAgKiBkaXNhYmxlZCBhbmQgbm8gb3RoZXIgdHJpZ2dlciBpcyBzZXQuXG4gICAgICpcbiAgICAgKiBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIHJlbGVhc2VFdmVyeUNvbW1pdCBhbmQgcmVsZWFzZVNjaGVkdWxlIGFyZSByZW1vdmVkXG4gICAgICovXG4gICAgaWYgKFxuICAgICAgIShcbiAgICAgICAgKG9wdGlvbnMucmVsZWFzZUV2ZXJ5Q29tbWl0ID8/IHRydWUpIHx8XG4gICAgICAgIG9wdGlvbnMucmVsZWFzZVNjaGVkdWxlIHx8XG4gICAgICAgIG9wdGlvbnMucmVsZWFzZVRyaWdnZXJcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMucmVsZWFzZVRyaWdnZXIgPSBSZWxlYXNlVHJpZ2dlci5tYW51YWwoeyBjaGFuZ2Vsb2c6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnJlbGVhc2VTY2hlZHVsZSkge1xuICAgICAgdGhpcy5yZWxlYXNlVHJpZ2dlciA9IFJlbGVhc2VUcmlnZ2VyLnNjaGVkdWxlZCh7XG4gICAgICAgIHNjaGVkdWxlOiBvcHRpb25zLnJlbGVhc2VTY2hlZHVsZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudmVyc2lvbiA9IG5ldyBWZXJzaW9uKHByb2plY3QsIHtcbiAgICAgIHZlcnNpb25JbnB1dEZpbGU6IHRoaXMudmVyc2lvbkZpbGUsXG4gICAgICBhcnRpZmFjdHNEaXJlY3Rvcnk6IHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgdmVyc2lvbnJjT3B0aW9uczogb3B0aW9ucy52ZXJzaW9ucmNPcHRpb25zLFxuICAgICAgdGFnUHJlZml4OiBvcHRpb25zLnJlbGVhc2VUYWdQcmVmaXgsXG4gICAgfSk7XG5cbiAgICB0aGlzLnB1Ymxpc2hlciA9IG5ldyBQdWJsaXNoZXIocHJvamVjdCwge1xuICAgICAgYXJ0aWZhY3ROYW1lOiB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIGNvbmRpdGlvbjogYG5lZWRzLiR7QlVJTERfSk9CSUR9Lm91dHB1dHMuJHtMQVRFU1RfQ09NTUlUX09VVFBVVH0gPT0gZ2l0aHViLnNoYWAsXG4gICAgICBidWlsZEpvYklkOiBCVUlMRF9KT0JJRCxcbiAgICAgIGpzaWlSZWxlYXNlVmVyc2lvbjogb3B0aW9ucy5qc2lpUmVsZWFzZVZlcnNpb24sXG4gICAgICBmYWlsdXJlSXNzdWU6IG9wdGlvbnMucmVsZWFzZUZhaWx1cmVJc3N1ZSxcbiAgICAgIGZhaWx1cmVJc3N1ZUxhYmVsOiBvcHRpb25zLnJlbGVhc2VGYWlsdXJlSXNzdWVMYWJlbCxcbiAgICAgIHdvcmtmbG93UnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgcHVibGlzaFRhc2tzOiBvcHRpb25zLnB1Ymxpc2hUYXNrcyxcbiAgICAgIGRyeVJ1bjogb3B0aW9ucy5wdWJsaXNoRHJ5UnVuLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ2l0aHViUmVsZWFzZSA9IG9wdGlvbnMuZ2l0aHViUmVsZWFzZSA/PyB0cnVlO1xuICAgIGlmIChnaXRodWJSZWxlYXNlKSB7XG4gICAgICB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXRIdWJSZWxlYXNlcyh7XG4gICAgICAgIGNoYW5nZWxvZ0ZpbGU6IHBhdGgucG9zaXguam9pbihcbiAgICAgICAgICB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgICB0aGlzLnZlcnNpb24uY2hhbmdlbG9nRmlsZU5hbWVcbiAgICAgICAgKSxcbiAgICAgICAgdmVyc2lvbkZpbGU6IHBhdGgucG9zaXguam9pbihcbiAgICAgICAgICB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgICB0aGlzLnZlcnNpb24udmVyc2lvbkZpbGVOYW1lXG4gICAgICAgICksXG4gICAgICAgIHJlbGVhc2VUYWdGaWxlOiBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICAgICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgICAgdGhpcy52ZXJzaW9uLnJlbGVhc2VUYWdGaWxlTmFtZVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBkZWZhdWx0IGJyYW5jaCAod2UgbmVlZCB0aGUgaW50ZXJuYWwgbWV0aG9kIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUgbWFqb3JWZXJzaW9uKVxuICAgIHRoaXMuZGVmYXVsdEJyYW5jaCA9IHRoaXMuX2FkZEJyYW5jaChvcHRpb25zLmJyYW5jaCwge1xuICAgICAgcHJlcmVsZWFzZTogb3B0aW9ucy5wcmVyZWxlYXNlLFxuICAgICAgbWFqb3JWZXJzaW9uOiBvcHRpb25zLm1ham9yVmVyc2lvbixcbiAgICAgIHdvcmtmbG93TmFtZTogb3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dOYW1lID8/IFwicmVsZWFzZVwiLFxuICAgICAgdGFnUHJlZml4OiBvcHRpb25zLnJlbGVhc2VUYWdQcmVmaXgsXG4gICAgICBucG1EaXN0VGFnOiBvcHRpb25zLm5wbURpc3RUYWcsXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBvcHRzXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zLnJlbGVhc2VCcmFuY2hlcyA/PyB7fSkpIHtcbiAgICAgIHRoaXMuYWRkQnJhbmNoKG5hbWUsIG9wdHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBob29rIHRoYXQgc2hvdWxkIGJlIHJ1biBmb3IgZXZlcnkgYnJhbmNoIChpbmNsdWRpbmcgdGhvc2UgdGhhdCB3aWxsXG4gICAqIGJlIGFkZGVkIGJ5IGZ1dHVyZSBgYWRkQnJhbmNoYCBjYWxscykuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9mb3JFYWNoQnJhbmNoKGhvb2s6IEJyYW5jaEhvb2spIHtcbiAgICBmb3IgKGNvbnN0IGJyYW5jaCBvZiB0aGlzLl9icmFuY2hlcykge1xuICAgICAgaG9vayhicmFuY2gubmFtZSk7XG4gICAgfVxuICAgIHRoaXMuX2JyYW5jaEhvb2tzLnB1c2goaG9vayk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlbGVhc2UgYnJhbmNoLlxuICAgKlxuICAgKiBJdCBpcyBhIGdpdCBicmFuY2ggZnJvbSB3aGljaCByZWxlYXNlcyBhcmUgcHVibGlzaGVkLiBJZiBhIHByb2plY3QgaGFzIG1vcmUgdGhhbiBvbmUgcmVsZWFzZVxuICAgKiBicmFuY2gsIHdlIHJlcXVpcmUgdGhhdCBgbWFqb3JWZXJzaW9uYCBpcyBhbHNvIHNwZWNpZmllZCBmb3IgdGhlIHByaW1hcnkgYnJhbmNoIGluIG9yZGVyIHRvXG4gICAqIGVuc3VyZSBicmFuY2hlcyBhbHdheXMgcmVsZWFzZSB0aGUgY29ycmVjdCB2ZXJzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBicmFuY2ggdG8gbW9uaXRvciAoZS5nLiBgbWFpbmAsIGB2Mi54YClcbiAgICogQHBhcmFtIG9wdGlvbnMgQnJhbmNoIGRlZmluaXRpb25cbiAgICovXG4gIHB1YmxpYyBhZGRCcmFuY2goYnJhbmNoOiBzdHJpbmcsIG9wdGlvbnM6IEJyYW5jaE9wdGlvbnMpIHtcbiAgICB0aGlzLl9hZGRCcmFuY2goYnJhbmNoLCBvcHRpb25zKTtcblxuICAgIC8vIHJ1biBhbGwgYnJhbmNoIGhvb2tzXG4gICAgZm9yIChjb25zdCBob29rIG9mIHRoaXMuX2JyYW5jaEhvb2tzKSB7XG4gICAgICBob29rKGJyYW5jaCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZWxlYXNlIGJyYW5jaC5cbiAgICpcbiAgICogSXQgaXMgYSBnaXQgYnJhbmNoIGZyb20gd2hpY2ggcmVsZWFzZXMgYXJlIHB1Ymxpc2hlZC4gSWYgYSBwcm9qZWN0IGhhcyBtb3JlIHRoYW4gb25lIHJlbGVhc2VcbiAgICogYnJhbmNoLCB3ZSByZXF1aXJlIHRoYXQgYG1ham9yVmVyc2lvbmAgaXMgYWxzbyBzcGVjaWZpZWQgZm9yIHRoZSBwcmltYXJ5IGJyYW5jaCBpbiBvcmRlciB0b1xuICAgKiBlbnN1cmUgYnJhbmNoZXMgYWx3YXlzIHJlbGVhc2UgdGhlIGNvcnJlY3QgdmVyc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIGJyYW5jaCBUaGUgYnJhbmNoIHRvIG1vbml0b3IgKGUuZy4gYG1haW5gLCBgdjIueGApXG4gICAqIEBwYXJhbSBvcHRpb25zIEJyYW5jaCBkZWZpbml0aW9uXG4gICAqL1xuICBwcml2YXRlIF9hZGRCcmFuY2goXG4gICAgYnJhbmNoOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxCcmFuY2hPcHRpb25zPlxuICApOiBSZWxlYXNlQnJhbmNoIHtcbiAgICBpZiAodGhpcy5fYnJhbmNoZXMuZmluZCgoYikgPT4gYi5uYW1lID09PSBicmFuY2gpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSByZWxlYXNlIGJyYW5jaCAke2JyYW5jaH0gaXMgYWxyZWFkeSBkZWZpbmVkYCk7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgYWRkIGEgYnJhbmNoLCB3ZSByZXF1aXJlIHRoYXQgdGhlIGRlZmF1bHQgYnJhbmNoIHdpbGwgYWxzbyBkZWZpbmUgYVxuICAgIC8vIG1ham9yIHZlcnNpb24uXG4gICAgaWYgKFxuICAgICAgdGhpcy5kZWZhdWx0QnJhbmNoICYmXG4gICAgICBvcHRpb25zLm1ham9yVmVyc2lvbiAmJlxuICAgICAgdGhpcy5kZWZhdWx0QnJhbmNoLm1ham9yVmVyc2lvbiA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd5b3UgbXVzdCBzcGVjaWZ5IFwibWFqb3JWZXJzaW9uXCIgZm9yIHRoZSBkZWZhdWx0IGJyYW5jaCB3aGVuIGFkZGluZyBtdWx0aXBsZSByZWxlYXNlIGJyYW5jaGVzJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlQnJhbmNoOiBSZWxlYXNlQnJhbmNoID0ge1xuICAgICAgbmFtZTogYnJhbmNoLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdvcmtmbG93OiB0aGlzLmNyZWF0ZVdvcmtmbG93KGJyYW5jaCwgb3B0aW9ucyksXG4gICAgfTtcblxuICAgIHRoaXMuX2JyYW5jaGVzLnB1c2gocmVsZWFzZUJyYW5jaCk7XG5cbiAgICByZXR1cm4gcmVsZWFzZUJyYW5jaDtcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGZvciAoY29uc3QgYnJhbmNoIG9mIHRoaXMuX2JyYW5jaGVzKSB7XG4gICAgICBpZiAoIWJyYW5jaC53b3JrZmxvdykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgYnJhbmNoLndvcmtmbG93LmFkZEpvYnMoXG4gICAgICAgIHRoaXMucHVibGlzaGVyLl9yZW5kZXJKb2JzRm9yQnJhbmNoKGJyYW5jaC5uYW1lLCBicmFuY2gpXG4gICAgICApO1xuICAgICAgYnJhbmNoLndvcmtmbG93LmFkZEpvYnModGhpcy5qb2JzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBqb2JzIHRvIGFsbCByZWxlYXNlIHdvcmtmbG93cy5cbiAgICogQHBhcmFtIGpvYnMgVGhlIGpvYnMgdG8gYWRkIChuYW1lID0+IGpvYilcbiAgICovXG4gIHB1YmxpYyBhZGRKb2JzKGpvYnM6IFJlY29yZDxzdHJpbmcsIEpvYj4pIHtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBqb2JdIG9mIE9iamVjdC5lbnRyaWVzKGpvYnMpKSB7XG4gICAgICB0aGlzLmpvYnNbbmFtZV0gPSBqb2I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFsbCByZWxlYXNlIGJyYW5jaCBuYW1lc1xuICAgKi9cbiAgcHVibGljIGdldCBicmFuY2hlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2JyYW5jaGVzLm1hcCgoYikgPT4gYi5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBhIHdvcmtmbG93IG9yIGB1bmRlZmluZWRgIGlmIGdpdGh1YiBpbnRlZ3JhdGlvbiBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlV29ya2Zsb3coXG4gICAgYnJhbmNoTmFtZTogc3RyaW5nLFxuICAgIGJyYW5jaDogUGFydGlhbDxCcmFuY2hPcHRpb25zPlxuICApOiBUYXNrV29ya2Zsb3cgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHdvcmtmbG93TmFtZSA9IGJyYW5jaC53b3JrZmxvd05hbWUgPz8gYHJlbGVhc2UtJHticmFuY2hOYW1lfWA7XG5cbiAgICAvLyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgYmV0d2VlbiB0d28gY29tbWl0cyB0cnlpbmcgdG8gcmVsZWFzZSB0aGUgc2FtZVxuICAgIC8vIHZlcnNpb24sIHdlIGNoZWNrIGlmIHRoZSBoZWFkIHNoYSBpcyBpZGVudGljYWwgdG8gdGhlIHJlbW90ZSBzaGEuIGlmXG4gICAgLy8gbm90LCB3ZSB3aWxsIHNraXAgdGhlIHJlbGVhc2UgYW5kIGp1c3QgZmluaXNoIHRoZSBidWlsZC5cbiAgICBjb25zdCBub05ld0NvbW1pdHMgPSBgXFwke3sgc3RlcHMuJHtHSVRfUkVNT1RFX1NURVBJRH0ub3V0cHV0cy4ke0xBVEVTVF9DT01NSVRfT1VUUFVUfSA9PSBnaXRodWIuc2hhIH19YDtcblxuICAgIC8vIFRoZSBhcnJheXMgYXJlIGJlaW5nIGNsb25lZCB0byBhdm9pZCBhY2N1bXVsYXRpbmcgdmFsdWVzIGZyb20gcHJldmlvdXMgYnJhbmNoZXNcbiAgICBjb25zdCBwcmVCdWlsZFN0ZXBzID0gWy4uLnRoaXMucHJlQnVpbGRTdGVwc107XG5cbiAgICBjb25zdCBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBSRUxFQVNFOiBcInRydWVcIixcbiAgICB9O1xuXG4gICAgaWYgKGJyYW5jaC5tYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZW52Lk1BSk9SID0gYnJhbmNoLm1ham9yVmVyc2lvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmIChicmFuY2gucHJlcmVsZWFzZSkge1xuICAgICAgZW52LlBSRVJFTEVBU0UgPSBicmFuY2gucHJlcmVsZWFzZTtcbiAgICB9XG5cbiAgICBpZiAoYnJhbmNoLnRhZ1ByZWZpeCkge1xuICAgICAgZW52LlJFTEVBU0VfVEFHX1BSRUZJWCA9IGJyYW5jaC50YWdQcmVmaXg7XG4gICAgfVxuXG4gICAgLy8gdGhlIFwicmVsZWFzZVwiIHRhc2sgcHJlcGFyZXMgYSByZWxlYXNlIGJ1dCBkb2VzIG5vdCBwdWJsaXNoIGFueXRoaW5nLiB0aGVcbiAgICAvLyBvdXRwdXQgb2YgdGhlIHJlbGVhc2UgdGFzayBpczogYGRpc3RgLCBgLnZlcnNpb24udHh0YCwgYW5kXG4gICAgLy8gYC5jaGFuZ2Vsb2cubWRgLiB0aGlzIGlzIHdoYXQgcHVibGlzaCB0YXNrcyBleHBlY3QuXG5cbiAgICAvLyBpZiB0aGlzIGlzIHRoZSByZWxlYXNlIGZvciBcIm1haW5cIiBvciBcIm1hc3RlclwiLCBqdXN0IGNhbGwgaXQgXCJyZWxlYXNlXCIuXG4gICAgLy8gb3RoZXJ3aXNlLCBcInJlbGVhc2U6QlJBTkNIXCJcbiAgICBjb25zdCByZWxlYXNlVGFza05hbWUgPVxuICAgICAgYnJhbmNoTmFtZSA9PT0gXCJtYWluXCIgfHwgYnJhbmNoTmFtZSA9PT0gXCJtYXN0ZXJcIlxuICAgICAgICA/IFwicmVsZWFzZVwiXG4gICAgICAgIDogYHJlbGVhc2U6JHticmFuY2hOYW1lfWA7XG4gICAgY29uc3QgcmVsZWFzZVRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhyZWxlYXNlVGFza05hbWUsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgUHJlcGFyZSBhIHJlbGVhc2UgZnJvbSBcIiR7YnJhbmNoTmFtZX1cIiBicmFuY2hgLFxuICAgICAgZW52LFxuICAgIH0pO1xuXG4gICAgcmVsZWFzZVRhc2suZXhlYyhgcm0gLWZyICR7dGhpcy5hcnRpZmFjdHNEaXJlY3Rvcnl9YCk7XG4gICAgcmVsZWFzZVRhc2suc3Bhd24odGhpcy52ZXJzaW9uLmJ1bXBUYXNrKTtcbiAgICByZWxlYXNlVGFzay5zcGF3bih0aGlzLmJ1aWxkVGFzayk7XG4gICAgcmVsZWFzZVRhc2suc3Bhd24odGhpcy52ZXJzaW9uLnVuYnVtcFRhc2spO1xuXG4gICAgLy8gYW50aS10YW1wZXIgY2hlY2sgKGZhaWxzIGlmIHRoZXJlIHdlcmUgY2hhbmdlcyB0byBjb21taXR0ZWQgZmlsZXMpXG4gICAgLy8gdGhpcyB3aWxsIGlkZW50aWZ5IGFueSBub24tY29tbWl0dGVkIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgYnVpbGQgKGUuZy4gdGVzdCBzbmFwc2hvdHMpXG4gICAgcmVsZWFzZVRhc2suZXhlYyhSZWxlYXNlLkFOVElfVEFNUEVSX0NNRCk7XG5cbiAgICBpZiAodGhpcy5yZWxlYXNlVHJpZ2dlci5pc01hbnVhbCkge1xuICAgICAgY29uc3QgcHVibGlzaFRhc2sgPSB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXQoe1xuICAgICAgICBjaGFuZ2Vsb2dGaWxlOiBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICAgICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgICAgdGhpcy52ZXJzaW9uLmNoYW5nZWxvZ0ZpbGVOYW1lXG4gICAgICAgICksXG4gICAgICAgIHZlcnNpb25GaWxlOiBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICAgICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgICAgdGhpcy52ZXJzaW9uLnZlcnNpb25GaWxlTmFtZVxuICAgICAgICApLFxuICAgICAgICByZWxlYXNlVGFnRmlsZTogcGF0aC5wb3NpeC5qb2luKFxuICAgICAgICAgIHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICAgIHRoaXMudmVyc2lvbi5yZWxlYXNlVGFnRmlsZU5hbWVcbiAgICAgICAgKSxcbiAgICAgICAgcHJvamVjdENoYW5nZWxvZ0ZpbGU6IHRoaXMucmVsZWFzZVRyaWdnZXIuY2hhbmdlbG9nUGF0aCxcbiAgICAgICAgZ2l0QnJhbmNoOiBicmFuY2hOYW1lLFxuICAgICAgICBnaXRQdXNoQ29tbWFuZDogdGhpcy5yZWxlYXNlVHJpZ2dlci5naXRQdXNoQ29tbWFuZCxcbiAgICAgIH0pO1xuXG4gICAgICByZWxlYXNlVGFzay5zcGF3bihwdWJsaXNoVGFzayk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zdEJ1aWxkU3RlcHMgPSBbLi4udGhpcy5wb3N0QnVpbGRTdGVwc107XG5cbiAgICAvLyBjaGVjayBpZiBuZXcgY29tbWl0cyB3ZXJlIHB1c2hlZCB0byB0aGUgcmVwbyB3aGlsZSB3ZSB3ZXJlIGJ1aWxkaW5nLlxuICAgIC8vIGlmIG5ldyBjb21taXRzIGhhdmUgYmVlbiBwdXNoZWQsIHdlIHdpbGwgY2FuY2VsIHRoaXMgcmVsZWFzZVxuICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgbmFtZTogXCJDaGVjayBmb3IgbmV3IGNvbW1pdHNcIixcbiAgICAgIGlkOiBHSVRfUkVNT1RFX1NURVBJRCxcbiAgICAgIHJ1bjogYGVjaG8gOjpzZXQtb3V0cHV0IG5hbWU9JHtMQVRFU1RfQ09NTUlUX09VVFBVVH06OlwiJChnaXQgbHMtcmVtb3RlIG9yaWdpbiAtaCBcXCR7eyBnaXRodWIucmVmIH19IHwgY3V0IC1mMSlcImAsXG4gICAgfSk7XG5cbiAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgIG5hbWU6IFwiVXBsb2FkIGFydGlmYWN0XCIsXG4gICAgICBpZjogbm9OZXdDb21taXRzLFxuICAgICAgdXNlczogXCJhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2Mi4xLjFcIixcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgbmFtZTogQlVJTERfQVJUSUZBQ1RfTkFNRSxcbiAgICAgICAgcGF0aDogdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZ2l0aHViICYmICF0aGlzLnJlbGVhc2VUcmlnZ2VyLmlzTWFudWFsKSB7XG4gICAgICByZXR1cm4gbmV3IFRhc2tXb3JrZmxvdyh0aGlzLmdpdGh1Yiwge1xuICAgICAgICBuYW1lOiB3b3JrZmxvd05hbWUsXG4gICAgICAgIGpvYklkOiBCVUlMRF9KT0JJRCxcbiAgICAgICAgb3V0cHV0czoge1xuICAgICAgICAgIGxhdGVzdF9jb21taXQ6IHtcbiAgICAgICAgICAgIHN0ZXBJZDogR0lUX1JFTU9URV9TVEVQSUQsXG4gICAgICAgICAgICBvdXRwdXROYW1lOiBMQVRFU1RfQ09NTUlUX09VVFBVVCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgIHNjaGVkdWxlOiB0aGlzLnJlbGVhc2VUcmlnZ2VyLnNjaGVkdWxlXG4gICAgICAgICAgICA/IFt7IGNyb246IHRoaXMucmVsZWFzZVRyaWdnZXIuc2NoZWR1bGUgfV1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHB1c2g6IHRoaXMucmVsZWFzZVRyaWdnZXIuaXNDb250aW51b3VzXG4gICAgICAgICAgICA/IHsgYnJhbmNoZXM6IFticmFuY2hOYW1lXSB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbmVyOiB0aGlzLmNvbnRhaW5lckltYWdlXG4gICAgICAgICAgPyB7IGltYWdlOiB0aGlzLmNvbnRhaW5lckltYWdlIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0k6IFwidHJ1ZVwiLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICB9LFxuICAgICAgICBjaGVja291dFdpdGg6IHtcbiAgICAgICAgICAvLyB3ZSBtdXN0IHVzZSAnZmV0Y2gtZGVwdGg9MCcgaW4gb3JkZXIgdG8gZmV0Y2ggYWxsIHRhZ3NcbiAgICAgICAgICAvLyBvdGhlcndpc2UgdGFncyBhcmUgbm90IGNoZWNrZWQgb3V0XG4gICAgICAgICAgXCJmZXRjaC1kZXB0aFwiOiAwLFxuICAgICAgICB9LFxuICAgICAgICBwcmVCdWlsZFN0ZXBzLFxuICAgICAgICB0YXNrOiByZWxlYXNlVGFzayxcbiAgICAgICAgcG9zdEJ1aWxkU3RlcHMsXG4gICAgICAgIHJ1bnNPbjogdGhpcy53b3JrZmxvd1J1bnNPbixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgcmVsZWFzZSBicmFuY2guXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVsZWFzZSB3b3JrZmxvdy5cbiAgICogQGRlZmF1bHQgXCJyZWxlYXNlLUJSQU5DSFwiXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWpvciB2ZXJzaW9ucyByZWxlYXNlZCBmcm9tIHRoaXMgYnJhbmNoLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFqb3JWZXJzaW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ1bXAgdGhlIHZlcnNpb24gYXMgYSBwcmUtcmVsZWFzZSB0YWcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9ybWFsIHJlbGVhc2VzXG4gICAqL1xuICByZWFkb25seSBwcmVyZWxlYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZCB0aGUgZ2l2ZW4gcHJlZml4IHRvIHJlbGVhc2UgdGFncy5cbiAgICogVXNlZnVsIGlmIHlvdSBhcmUgcmVsZWFzaW5nIG9uIG11bHRpcGxlIGJyYW5jaGVzIHdpdGggb3ZlcmxhcHBpbmdcbiAgICogdmVyc2lvbiBudW1iZXJzLlxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHByZWZpeCBpcyB1c2VkIHRvIGRldGVjdCB0aGUgbGF0ZXN0IHRhZ2dlZCB2ZXJzaW9uXG4gICAqIHdoZW4gYnVtcGluZywgc28gaWYgeW91IGNoYW5nZSB0aGlzIG9uIGEgcHJvamVjdCB3aXRoIGFuIGV4aXN0aW5nIHZlcnNpb25cbiAgICogaGlzdG9yeSwgeW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IHRhZyB5b3VyIGxhdGVzdCByZWxlYXNlXG4gICAqIHdpdGggdGhlIG5ldyBwcmVmaXguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJlZml4XG4gICAqL1xuICByZWFkb25seSB0YWdQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBucG0gZGlzdHJpYnV0aW9uIHRhZyB0byB1c2UgZm9yIHRoaXMgYnJhbmNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImxhdGVzdFwiXG4gICAqL1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUmVsZWFzZUJyYW5jaCBleHRlbmRzIFBhcnRpYWw8QnJhbmNoT3B0aW9ucz4ge1xuICByZWFkb25seSB3b3JrZmxvdz86IEdpdGh1YldvcmtmbG93O1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/renovatebot.js
CHANGED
|
@@ -100,5 +100,5 @@ class Renovatebot extends component_1.Component {
|
|
|
100
100
|
}
|
|
101
101
|
exports.Renovatebot = Renovatebot;
|
|
102
102
|
_a = JSII_RTTI_SYMBOL_1;
|
|
103
|
-
Renovatebot[_a] = { fqn: "projen.Renovatebot", version: "0.58.
|
|
103
|
+
Renovatebot[_a] = { fqn: "projen.Renovatebot", version: "0.58.18" };
|
|
104
104
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVub3ZhdGVib3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVub3ZhdGVib3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsaUNBQWtDO0FBOENsQzs7Ozs7R0FLRztBQUNILElBQVksMkJBd0NYO0FBeENELFdBQVksMkJBQTJCO0lBQ3JDOztPQUVHO0lBQ0gsdURBQXdCLENBQUE7SUFFeEI7O09BRUc7SUFDSCxxRUFBc0MsQ0FBQTtJQUV0Qzs7T0FFRztJQUNILG1EQUFvQixDQUFBO0lBRXBCOztPQUVHO0lBQ0gsOERBQXNCLENBQUE7SUFFdEI7O09BRUc7SUFDSCxtRkFBb0QsQ0FBQTtJQUVwRDs7T0FFRztJQUNILHlGQUEwRCxDQUFBO0lBRTFEOztPQUVHO0lBQ0gseURBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCx5REFBMEIsQ0FBQTtBQUM1QixDQUFDLEVBeENXLDJCQUEyQixHQUEzQixtQ0FBMkIsS0FBM0IsbUNBQTJCLFFBd0N0QztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFdBQVksU0FBUSxxQkFBUztJQVN4QyxZQUFZLE9BQWdCLEVBQUUsVUFBOEIsRUFBRTtRQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJO1lBQ2xELDJCQUEyQixDQUFDLFFBQVE7U0FDckMsQ0FBQztRQUNGLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsMEZBQTBGO0lBQ25GLGFBQWE7UUFDbEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxNQUFNLGNBQWMsR0FBRztZQUNyQixHQUFHLElBQUksR0FBRyxDQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7aUJBQ25CLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztpQkFDNUIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2lCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUNoQztTQUNGLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRztZQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUMvQixPQUFPLEVBQUU7Z0JBQ1AsdUJBQXVCO2dCQUN2QixhQUFhO2dCQUNiLG1CQUFtQjtnQkFDbkIsbUJBQW1CO2dCQUNuQixpQkFBaUI7YUFDbEI7WUFDRCxZQUFZLEVBQUU7Z0JBQ1o7b0JBQ0UsYUFBYSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2xDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztvQkFDcEMsU0FBUyxFQUFFLDZCQUE2QjtpQkFDekM7YUFDRjtZQUNELFVBQVUsRUFBRSxjQUFjO1NBQzNCLENBQUM7UUFFRixJQUFJLGVBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFO1lBQzVDLEdBQUcsRUFBRSxNQUFNO1lBQ1gsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE1REgsa0NBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gXCIuL2pzb25cIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgUmVub3ZhdGVib3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5vdmF0ZWJvdE9wdGlvbnMge1xuICAvKipcbiAgICogSG93IG9mdGVuIHRvIGNoZWNrIGZvciBuZXcgdmVyc2lvbnMgYW5kIHJhaXNlIHB1bGwgcmVxdWVzdHMuXG4gICAqXG4gICAqIENhbiBiZSBnaXZlbiBpbiBDUk9OIG9yIExBVEVSIGZvcm1hdCwgYW5kIHVzZSBtdWx0aXBsZSBzY2hlZHVsZXNcbiAgICogKGUuZy4gZGlmZmVyZW50IGZvciB3ZWVrZGF5cyBhbmQgd2Vla2VuZHMpLiBNdWx0aXBsZSBydWxlcyBhcmVcbiAgICogaGFuZGxlcyBhcyBPUi5cbiAgICpcbiAgICogU29tZSBub3JtYWwgc2NoZWR1bGluZyB2YWx1ZXMgZGVmaW5lZCBpbiBlbnVtIGBSZW5vdmF0ZWJvdFNjaGVkdWxlSW50ZXJ2YWxgLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vY29uZmlndXJhdGlvbi1vcHRpb25zLyNzY2hlZHVsZVxuICAgKiBAZGVmYXVsdCBbXCJhdCBhbnkgdGltZVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVJbnRlcnZhbD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIHVzZSB0aGUgYGlnbm9yZWAgb3B0aW9uIHRvIGN1c3RvbWl6ZSB3aGljaCBkZXBlbmRlbmNpZXMgYXJlIHVwZGF0ZWQuXG4gICAqIFRoZSBpZ25vcmUgb3B0aW9uIHN1cHBvcnRzIGp1c3QgcGFja2FnZSBuYW1lLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElnbm9yZXMgdXBkYXRlcyB0byBgcHJvamVuYC5cbiAgICpcbiAgICogVGhpcyBpcyByZXF1aXJlZCBzaW5jZSBwcm9qZW4gdXBkYXRlcyBtYXkgY2F1c2UgY2hhbmdlcyBpbiBjb21taXR0ZWQgZmlsZXNcbiAgICogYW5kIGFudGktdGFtcGVyIGNoZWNrcyB3aWxsIGZhaWwuXG4gICAqXG4gICAqIFByb2plbiB1cGdyYWRlcyBhcmUgY292ZXJlZCB0aHJvdWdoIHRoZSBgUHJvamVuVXBncmFkZWAgY2xhc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVByb2plbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbGFiZWxzIHRvIGFwcGx5IHRvIHRoZSBjcmVhdGVkIFBSJ3MuXG4gICAqL1xuICByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBIb3cgb2Z0ZW4gdG8gY2hlY2sgZm9yIG5ldyB2ZXJzaW9ucyBhbmQgcmFpc2UgcHVsbCByZXF1ZXN0cyBmb3IgdmVyc2lvblxuICogdXBkYXRlcy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vcHJlc2V0cy1zY2hlZHVsZS9cbiAqL1xuZXhwb3J0IGVudW0gUmVub3ZhdGVib3RTY2hlZHVsZUludGVydmFsIHtcbiAgLyoqXG4gICAqIFJ1biBhdCBhbnkgdGltZVxuICAgKi9cbiAgQU5ZX1RJTUUgPSBcImF0IGFueSB0aW1lXCIsXG5cbiAgLyoqXG4gICAqIFdlZWtseSBzY2hlZHVsZSBvbiBlYXJseSBtb25kYXkgbW9ybmluZ3NcbiAgICovXG4gIEVBUkxZX01PTkRBWVMgPSBcImJlZm9yZSAzYW0gb24gTW9uZGF5XCIsXG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlIGRhaWx5XG4gICAqL1xuICBEQUlMWSA9IFwiYmVmb3JlIDJhbVwiLFxuXG4gIC8qKlxuICAgKiBTY2hlZHVsZSB3ZWVrbHlcbiAgICovXG4gIFdFRUtMWSA9IEVBUkxZX01PTkRBWVMsXG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlIG1vbnRobHlcbiAgICovXG4gIE1PTlRITFkgPSBcImJlZm9yZSAzYW0gb24gdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGhcIixcblxuICAvKipcbiAgICogU2NoZWR1bGUgcXVhcnRlcmx5XG4gICAqL1xuICBRVUFSVEVSTFkgPSBcImV2ZXJ5IDMgbW9udGhzIG9uIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoXCIsXG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlIGZvciB3ZWVrZW5kc1xuICAgKi9cbiAgV0VFS0VORFMgPSBcImV2ZXJ5IHdlZWtlbmRcIixcblxuICAvKipcbiAgICogU2NoZWR1bGUgZm9yIHdlZWtkYXlzXG4gICAqL1xuICBXRUVLREFZUyA9IFwiZXZlcnkgd2Vla2RheVwiLFxufVxuXG4vKipcbiAqIERlZmluZXMgcmVub3ZhdGVib3QgY29uZmlndXJhdGlvbiBmb3IgcHJvamVuIHByb2plY3QuXG4gKlxuICogSWdub3JlcyB0aGUgdmVyc2lvbnMgY29udHJvbGxlZCBieSBQcm9qZW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZW5vdmF0ZWJvdCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3Q6IFByb2plY3Q7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBleHBsaWNpdElnbm9yZXM6IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZWR1bGVJbnRlcnZhbDogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBSZW5vdmF0ZWJvdE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5fcHJvamVjdCA9IHByb2plY3Q7XG4gICAgdGhpcy5leHBsaWNpdElnbm9yZXMgPSBvcHRpb25zLmlnbm9yZSA/PyBbXTtcbiAgICB0aGlzLmxhYmVscyA9IG9wdGlvbnMubGFiZWxzO1xuICAgIHRoaXMuc2NoZWR1bGVJbnRlcnZhbCA9IG9wdGlvbnMuc2NoZWR1bGVJbnRlcnZhbCA/PyBbXG4gICAgICBSZW5vdmF0ZWJvdFNjaGVkdWxlSW50ZXJ2YWwuQU5ZX1RJTUUsXG4gICAgXTtcbiAgICAob3B0aW9ucy5pZ25vcmVQcm9qZW4gPz8gdHJ1ZSkgJiYgdGhpcy5leHBsaWNpdElnbm9yZXMucHVzaChcInByb2plblwiKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSBhY3R1YWwgZmlsZSBvbmx5IGhlcmUsIHNvIHdlIGtub3cgdGhhdCBhbGwgZGVwZW5kZW5jaWVzIGFyZSBhZGRlZCB0byB0aGUgcHJvamVjdFxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICB0aGlzLmNyZWF0ZVJlbm92YXRlQ29uZmlndXJhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZW5vdmF0ZUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgY29uc3QgcmVub3ZhdGVJZ25vcmUgPSBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICB0aGlzLl9wcm9qZWN0LmRlcHMuYWxsXG4gICAgICAgICAgLmZpbHRlcigoZGVwKSA9PiBkZXAudmVyc2lvbilcbiAgICAgICAgICAubWFwKChkZXApID0+IGRlcC5uYW1lKVxuICAgICAgICAgIC5jb25jYXQodGhpcy5leHBsaWNpdElnbm9yZXMpXG4gICAgICApLFxuICAgIF07XG5cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBsYWJlbHM6IHRoaXMubGFiZWxzLFxuICAgICAgc2NoZWR1bGU6IHRoaXMuc2NoZWR1bGVJbnRlcnZhbCxcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgXCI6cHJlc2VydmVTZW12ZXJSYW5nZXNcIixcbiAgICAgICAgXCJjb25maWc6YmFzZVwiLFxuICAgICAgICBcImdyb3VwOmFsbE5vbk1ham9yXCIsXG4gICAgICAgIFwiZ3JvdXA6cmVjb21tZW5kZWRcIixcbiAgICAgICAgXCJncm91cDptb25vcmVwb3NcIixcbiAgICAgIF0sXG4gICAgICBwYWNrYWdlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1hdGNoRGVwVHlwZXM6IFtcImRldkRlcGVuZGVuY2llc1wiXSxcbiAgICAgICAgICBtYXRjaFVwZGF0ZVR5cGVzOiBbXCJwYXRjaFwiLCBcIm1pbm9yXCJdLFxuICAgICAgICAgIGdyb3VwTmFtZTogXCJkZXZEZXBlbmRlbmNpZXMgKG5vbi1tYWpvcilcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBpZ25vcmVEZXBzOiByZW5vdmF0ZUlnbm9yZSxcbiAgICB9O1xuXG4gICAgbmV3IEpzb25GaWxlKHRoaXMuX3Byb2plY3QsIFwicmVub3ZhdGUuanNvbjVcIiwge1xuICAgICAgb2JqOiBjb25maWcsXG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/sample-file.js
CHANGED
|
@@ -58,7 +58,7 @@ class SampleFile extends component_1.Component {
|
|
|
58
58
|
}
|
|
59
59
|
exports.SampleFile = SampleFile;
|
|
60
60
|
_a = JSII_RTTI_SYMBOL_1;
|
|
61
|
-
SampleFile[_a] = { fqn: "projen.SampleFile", version: "0.58.
|
|
61
|
+
SampleFile[_a] = { fqn: "projen.SampleFile", version: "0.58.18" };
|
|
62
62
|
/**
|
|
63
63
|
* Renders the given files into the directory if the directory does not exist. Use this to create sample code files
|
|
64
64
|
*/
|
|
@@ -104,5 +104,5 @@ class SampleDir extends component_1.Component {
|
|
|
104
104
|
}
|
|
105
105
|
exports.SampleDir = SampleDir;
|
|
106
106
|
_b = JSII_RTTI_SYMBOL_1;
|
|
107
|
-
SampleDir[_b] = { fqn: "projen.SampleDir", version: "0.58.
|
|
107
|
+
SampleDir[_b] = { fqn: "projen.SampleDir", version: "0.58.18" };
|
|
108
108
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2FtcGxlLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QiwyQ0FBd0M7QUFFeEMsaUNBQXVEO0FBeUJ2RDs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBUztJQUl2Qzs7Ozs7T0FLRztJQUNILFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFFLE9BQTBCO1FBQ3hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztTQUN4RTtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDekU7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN6QixRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDbEM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ2xDLFFBQVEsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUNuQixJQUFJLENBQUMsUUFBUSxFQUNiLFFBQVEsSUFBSSxFQUFFLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0sscUJBQXFCLENBQUMsR0FBVyxFQUFFLFFBQWdCLEVBQUUsUUFBYTtRQUN4RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBQ0QsZ0JBQVMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7QUFuREgsZ0NBb0RDOzs7QUEyQkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUztJQUl0Qzs7Ozs7T0FLRztJQUNILFlBQVksT0FBZ0IsRUFBRSxHQUFXLEVBQUUsT0FBeUI7UUFDbEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztTQUN0RTtRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDNUIsR0FBRyxFQUFFLE9BQU87Z0JBQ1osS0FBSyxFQUFFLElBQUk7Z0JBQ1gsR0FBRyxFQUFFLElBQUk7YUFDVixDQUFDLENBQUMsQ0FBQyxvREFBb0Q7WUFFeEQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFL0MsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN4QyxFQUFFLENBQUMsU0FBUyxDQUNWLFVBQVUsRUFDVix5QkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQzNELENBQUM7YUFDSDtTQUNGO1FBRUQsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN6QyxnQkFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDMUU7SUFDSCxDQUFDOztBQWxESCw4QkFtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIGdsb2IgZnJvbSBcImdsb2JcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmltcG9ydCB7IGdldEZpbGVQZXJtaXNzaW9ucywgd3JpdGVGaWxlIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBTYW1wbGVGaWxlIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW1wbGVGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudHMgb2YgdGhlIGZpbGUgdG8gd3JpdGUuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50cz86IHN0cmluZztcblxuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCB0byBhIGZpbGUgdG8gY29weSB0aGUgY29udGVudHMgZnJvbSAoZG9lcyBub3QgbmVlZCB0byBiZVxuICAgKiBhIHRleHQgZmlsZSkuXG4gICAqXG4gICAqIElmIHlvdXIgcHJvamVjdCBpcyBUeXBlc2NyaXB0LWJhc2VkIGFuZCBoYXMgY29uZmlndXJlZCBgdGVzdGRpcmAgdG8gYmUgYVxuICAgKiBzdWJkaXJlY3Rvcnkgb2YgYHNyY2AsIHNhbXBsZSBmaWxlcyBzaG91bGQgb3V0c2lkZSBvZiB0aGUgYHNyY2AgZGlyZWN0b3J5LFxuICAgKiBvdGhlcndpc2UgdGhleSBtYXkgbm90IGJlIGNvcGllZC4gRm9yIGV4YW1wbGU6XG4gICAqIGBgYFxuICAgKiBuZXcgU2FtcGxlRmlsZSh0aGlzLCAnYXNzZXRzL2ljb24ucG5nJywgeyBzb3VyY2U6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdzYW1wbGUtYXNzZXRzJywgJ2ljb24ucG5nJykgfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9kdWNlcyBhIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gY29udGVudHMgYnV0IG9ubHkgb25jZSwgaWYgdGhlIGZpbGUgZG9lc24ndCBhbHJlYWR5IGV4aXN0LlxuICogVXNlIHRoaXMgZm9yIGNyZWF0aW5nIGV4YW1wbGUgY29kZSBmaWxlcyBvciBvdGhlciByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYW1wbGVGaWxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFNhbXBsZUZpbGVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFNhbXBsZUZpbGUgb2JqZWN0XG4gICAqIEBwYXJhbSBwcm9qZWN0IC0gdGhlIHByb2plY3QgdG8gdGllIHRoaXMgZmlsZSB0by5cbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gdGhlIHJlbGF0aXZlIHBhdGggaW4gdGhlIHByb2plY3QgdG8gcHV0IHRoZSBmaWxlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gdGhlIG9wdGlvbnMgZm9yIHRoZSBmaWxlLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgb3B0aW9uczogU2FtcGxlRmlsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGlmIChvcHRpb25zLmNvbnRlbnRzICYmIG9wdGlvbnMuc291cmNlUGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNwZWNpZnkgYm90aCAnY29udGVudHMnIGFuZCAnc291cmNlJyBmaWVsZHMuXCIpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuY29udGVudHMgJiYgIW9wdGlvbnMuc291cmNlUGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBvZiAnY29udGVudHMnIG9yICdzb3VyY2UnLlwiKTtcbiAgICB9XG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZSgpIHtcbiAgICBsZXQgY29udGVudHM7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5jb250ZW50cykge1xuICAgICAgY29udGVudHMgPSB0aGlzLm9wdGlvbnMuY29udGVudHM7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc291cmNlUGF0aCkge1xuICAgICAgY29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmModGhpcy5vcHRpb25zLnNvdXJjZVBhdGgpO1xuICAgIH1cbiAgICB0aGlzLndyaXRlT25jZUZpbGVDb250ZW50cyhcbiAgICAgIHRoaXMucHJvamVjdC5vdXRkaXIsXG4gICAgICB0aGlzLmZpbGVQYXRoLFxuICAgICAgY29udGVudHMgPz8gXCJcIlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB3aWxsIHdyaXRlIHRoZSBmaWxlIG9uY2UgYW5kIHJldHVybiBpZiBpdCB3YXMgd3JpdHRlbiBvciBub3QuXG4gICAqIEBwYXJhbSBkaXIgLSB0aGUgZGlyZWN0b3J5IGZvciB0aGUgbmV3IGZpbGVcbiAgICogQHBhcmFtIGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIGZvciB0aGUgbmV3IGZpbGVcbiAgICogQHBhcmFtIGNvbnRlbnRzIC0gdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIHRvIHdyaXRlXG4gICAqIEByZXR1cm4gYm9vbGVhbiAtIHdoZXRoZXIgYSBuZXcgZmlsZSB3YXMgd3JpdHRlbiBvciBub3QuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHdyaXRlT25jZUZpbGVDb250ZW50cyhkaXI6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZywgY29udGVudHM6IGFueSkge1xuICAgIGNvbnN0IGZ1bGxGaWxlbmFtZSA9IHBhdGguam9pbihkaXIsIGZpbGVuYW1lKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhmdWxsRmlsZW5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdyaXRlRmlsZShmdWxsRmlsZW5hbWUsIGNvbnRlbnRzLCB7IHJlYWRvbmx5OiBmYWxzZSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFNhbXBsZURpciBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FtcGxlRGlyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZXMgdG8gcmVuZGVyIGludG8gdGhlIGRpcmVjdG9yeS4gVGhlc2UgZmlsZXMgZ2V0IGFkZGVkIGFmdGVyXG4gICAqIGFueSBmaWxlcyBmcm9tIGBzb3VyY2VgIGlmIHRoYXQgb3B0aW9uIGlzIHNwZWNpZmllZCAocmVwbGFjaW5nIGlmIG5hbWVzXG4gICAqIG92ZXJsYXApLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXM/OiB7IFtmaWxlTmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEFic29sdXRlIHBhdGggdG8gYSBkaXJlY3RvcnkgdG8gY29weSBmaWxlcyBmcm9tIChkb2VzIG5vdCBuZWVkIHRvIGJlIHRleHRcbiAgICogZmlsZXMpLlxuICAgKlxuICAgKiBJZiB5b3VyIHByb2plY3QgaXMgdHlwZXNjcmlwdC1iYXNlZCBhbmQgaGFzIGNvbmZpZ3VyZWQgYHRlc3RkaXJgIHRvIGJlIGFcbiAgICogc3ViZGlyZWN0b3J5IG9mIGBzcmNgLCBzYW1wbGUgZmlsZXMgc2hvdWxkIG91dHNpZGUgb2YgdGhlIGBzcmNgIGRpcmVjdG9yeVxuICAgKiBvdGhlcndpc2UgdGhleSBtYXkgbm90IGJlIGNvcGllZC4gRm9yIGV4YW1wbGU6XG4gICAqIGBgYFxuICAgKiBuZXcgU2FtcGxlRGlyKHRoaXMsICdwdWJsaWMnLCB7IHNvdXJjZTogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ3NhbXBsZS1hc3NldHMnKSB9KTtcbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VEaXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgZ2l2ZW4gZmlsZXMgaW50byB0aGUgZGlyZWN0b3J5IGlmIHRoZSBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuIFVzZSB0aGlzIHRvIGNyZWF0ZSBzYW1wbGUgY29kZSBmaWxlc1xuICovXG5leHBvcnQgY2xhc3MgU2FtcGxlRGlyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBTYW1wbGVEaXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgc2FtcGxlIGZpbGVzIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkgaWYgdGhlIGdpdmVuIGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdFxuICAgKiBAcGFyYW0gcHJvamVjdCBQYXJlbnQgcHJvamVjdCB0byBhZGQgZmlsZXMgdG8uXG4gICAqIEBwYXJhbSBkaXIgZGlyZWN0b3J5IHRvIGFkZCBmaWxlcyB0by4gSWYgZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzLCBub3RoaW5nIGlzIGFkZGVkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIGZvciB3aGljaCBmaWxlcyB0byBjcmVhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBkaXI6IHN0cmluZywgb3B0aW9uczogU2FtcGxlRGlyT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIGlmICghb3B0aW9ucy5maWxlcyAmJiAhb3B0aW9ucy5zb3VyY2VEaXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgb2YgJ2ZpbGVzJyBvciAnc291cmNlJy5cIik7XG4gICAgfVxuXG4gICAgdGhpcy5kaXIgPSBkaXI7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBzeW50aGVzaXplKCkge1xuICAgIGNvbnN0IGZ1bGxPdXRkaXIgPSBwYXRoLmpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5kaXIpO1xuICAgIGlmIChmcy5wYXRoRXhpc3RzU3luYyhmdWxsT3V0ZGlyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlRGlyKSB7XG4gICAgICBjb25zdCBiYXNlZGlyID0gdGhpcy5vcHRpb25zLnNvdXJjZURpcjtcbiAgICAgIGNvbnN0IGZpbGVzID0gZ2xvYi5zeW5jKFwiKipcIiwge1xuICAgICAgICBjd2Q6IGJhc2VkaXIsXG4gICAgICAgIG5vZGlyOiB0cnVlLFxuICAgICAgICBkb3Q6IHRydWUsXG4gICAgICB9KTsgLy8gcmV0dXJucyByZWxhdGl2ZSBmaWxlIHBhdGhzIHdpdGggUE9TSVggc2VwYXJhdG9yc1xuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgY29uc3Qgc291cmNlUGF0aCA9IHBhdGguam9pbihiYXNlZGlyLCBmaWxlKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UGF0aCA9IHBhdGguam9pbihmdWxsT3V0ZGlyLCBmaWxlKTtcblxuICAgICAgICBmcy5ta2RpcnBTeW5jKHBhdGguZGlybmFtZSh0YXJnZXRQYXRoKSk7XG4gICAgICAgIGZzLmNvcHlGaWxlU3luYyhzb3VyY2VQYXRoLCB0YXJnZXRQYXRoKTtcbiAgICAgICAgZnMuY2htb2RTeW5jKFxuICAgICAgICAgIHRhcmdldFBhdGgsXG4gICAgICAgICAgZ2V0RmlsZVBlcm1pc3Npb25zKHsgcmVhZG9ubHk6IGZhbHNlLCBleGVjdXRhYmxlOiBmYWxzZSB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgaW4gdGhpcy5vcHRpb25zLmZpbGVzKSB7XG4gICAgICB3cml0ZUZpbGUocGF0aC5qb2luKGZ1bGxPdXRkaXIsIGZpbGVuYW1lKSwgdGhpcy5vcHRpb25zLmZpbGVzW2ZpbGVuYW1lXSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/semver.js
CHANGED
|
@@ -52,5 +52,5 @@ class Semver {
|
|
|
52
52
|
}
|
|
53
53
|
exports.Semver = Semver;
|
|
54
54
|
_a = JSII_RTTI_SYMBOL_1;
|
|
55
|
-
Semver[_a] = { fqn: "projen.Semver", version: "0.58.
|
|
55
|
+
Semver[_a] = { fqn: "projen.Semver", version: "0.58.18" };
|
|
56
56
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlbXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFpQztBQUVqQzs7OztHQUlHO0FBQ0gsTUFBYSxNQUFNO0lBeUNqQixZQUFvQyxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtJQUFHLENBQUM7SUF4QzdDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFlO1FBQ2xDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFlO1FBQ2pDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBZTtRQUNqQyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBTUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQy9DLENBQUM7O0FBN0NILHdCQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBjbGFzcyB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgcmVsZWFzZXMuIGlmIHlvdSB3aXNoIHRvXG4gKiBzcGVjaWZ5IHNlbXZlciByZXF1aXJlbWVudHMgaW4gYGRlcHNgLCBgZGV2RGVwc2AsIGV0Yywgc3BlY2lmeSB0aGVtIGxpa2Ugc29cbiAqIGBleHByZXNzQF4yLjFgLlxuICovXG5leHBvcnQgY2xhc3MgU2VtdmVyIHtcbiAgcHVibGljIHN0YXRpYyBvZihzcGVjOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFNlbXZlcihzcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXRlc3QgdmVyc2lvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbGF0ZXN0KCkge1xuICAgIHJldHVybiBuZXcgU2VtdmVyKFwiKlwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2NlcHQgb25seSBhbiBleGFjdCB2ZXJzaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBpbm5lZCh2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFNlbXZlcih2ZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY2NlcHQgYW55IG1pbm9yIHZlcnNpb24uXG4gICAqXG4gICAqID49IHZlcnNpb25cbiAgICogPCBuZXh0IG1ham9yIHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2FyZXQodmVyc2lvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBTZW12ZXIoYF4ke3ZlcnNpb259YCk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0IHBhdGNoZXMuXG4gICAqXG4gICAqID49IHZlcnNpb25cbiAgICogPCBuZXh0IG1pbm9yIHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGlsZGUodmVyc2lvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBTZW12ZXIoYH4ke3ZlcnNpb259YCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgbW9kZT86IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzcGVjOiBzdHJpbmcpIHt9XG5cbiAgcHVibGljIGdldCB2ZXJzaW9uKCkge1xuICAgIHJldHVybiBzZW12ZXIubWluVmVyc2lvbih0aGlzLnNwZWMpPy52ZXJzaW9uO1xuICB9XG59XG4iXX0=
|
package/lib/source-code.js
CHANGED
|
@@ -58,5 +58,5 @@ class SourceCode extends component_1.Component {
|
|
|
58
58
|
}
|
|
59
59
|
exports.SourceCode = SourceCode;
|
|
60
60
|
_a = JSII_RTTI_SYMBOL_1;
|
|
61
|
-
SourceCode[_a] = { fqn: "projen.SourceCode", version: "0.58.
|
|
61
|
+
SourceCode[_a] = { fqn: "projen.SourceCode", version: "0.58.18" };
|
|
62
62
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc291cmNlLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBd0M7QUFFeEMseUNBQXNDO0FBb0J0Qzs7R0FFRztBQUNILE1BQWEsVUFBVyxTQUFRLHFCQUFTO0lBS3ZDLFlBQ0UsT0FBZ0IsRUFDQSxRQUFnQixFQUNoQyxVQUE2QixFQUFFO1FBRS9CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFMMUIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFTdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksbUJBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQzFDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUk7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLElBQUksQ0FBQyxJQUFhO1FBQ3ZCLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN0RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLElBQUksQ0FBQyxJQUFhO1FBQ3ZCLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFhO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUM7O0FBMURILGdDQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSBcIi4vdGV4dGZpbGVcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgU291cmNlQ29kZUZpbGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUNvZGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEluZGVudGF0aW9uIHNpemUuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGluZGVudD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2VuZXJhdGVkIGZpbGUgc2hvdWxkIGJlIHJlYWRvbmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZWFkb25seT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNvdXJjZSBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgU291cmNlQ29kZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZTogVGV4dEZpbGU7XG4gIHByaXZhdGUgaW5kZW50TGV2ZWwgPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IGluZGVudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IFByb2plY3QsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGVQYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9uczogU291cmNlQ29kZU9wdGlvbnMgPSB7fVxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLmluZGVudCA9IG9wdGlvbnMuaW5kZW50ID8/IDI7XG4gICAgdGhpcy5maWxlID0gbmV3IFRleHRGaWxlKHByb2plY3QsIGZpbGVQYXRoLCB7XG4gICAgICByZWFkb25seTogb3B0aW9ucy5yZWFkb25seSA/PyB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXJrZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5maWxlLm1hcmtlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IGEgbGluZSBvZiBjb2RlLlxuICAgKiBAcGFyYW0gY29kZSBUaGUgY29udGVudHMsIGlmIG5vdCBzcGVjaWZpZWQsIGp1c3QgYWRkcyBhIG5ld2xpbmVcbiAgICovXG4gIHB1YmxpYyBsaW5lKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzcGFjZXM6IG51bWJlciA9IHRoaXMuaW5kZW50ICogdGhpcy5pbmRlbnRMZXZlbDtcbiAgICBjb25zdCBwcmVmaXggPSBcIiBcIi5yZXBlYXQoc3BhY2VzKTtcbiAgICB0aGlzLmZpbGUuYWRkTGluZSgocHJlZml4ICsgKGNvZGUgPz8gXCJcIikpLnRyaW1FbmQoKSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBjb2RlIGJsb2NrIGFuZCBpbmNyZWFzZXMgdGhlIGluZGVudGF0aW9uIGxldmVsLlxuICAgKlxuICAgKiBAcGFyYW0gY29kZSBUaGUgY29kZSBiZWZvcmUgdGhlIGJsb2NrIHN0YXJ0cyAoZS5nLiBgZXhwb3J0IGNsYXNzIHtgKS5cbiAgICovXG4gIHB1YmxpYyBvcGVuKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBpZiAoY29kZSkge1xuICAgICAgdGhpcy5saW5lKGNvZGUpO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZW50TGV2ZWwrKztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNyZWFzZXMgdGhlIGluZGVudGF0aW9uIGxldmVsIGFuZCBjbG9zZXMgYSBjb2RlIGJsb2NrLlxuICAgKlxuICAgKiBAcGFyYW0gY29kZSBUaGUgY29kZSBhZnRlciB0aGUgYmxvY2sgaXMgY2xvc2VkIChlLmcuIGB9YCkuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoY29kZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmluZGVudExldmVsID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZGVjcmVhc2UgaW5kZW50IGxldmVsIGJlbG93IHplcm9cIik7XG4gICAgfVxuICAgIHRoaXMuaW5kZW50TGV2ZWwtLTtcblxuICAgIGlmIChjb2RlKSB7XG4gICAgICB0aGlzLmxpbmUoY29kZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/task-runtime.js
CHANGED
|
@@ -53,7 +53,7 @@ class TaskRuntime {
|
|
|
53
53
|
}
|
|
54
54
|
exports.TaskRuntime = TaskRuntime;
|
|
55
55
|
_a = JSII_RTTI_SYMBOL_1;
|
|
56
|
-
TaskRuntime[_a] = { fqn: "projen.TaskRuntime", version: "0.58.
|
|
56
|
+
TaskRuntime[_a] = { fqn: "projen.TaskRuntime", version: "0.58.18" };
|
|
57
57
|
/**
|
|
58
58
|
* The project-relative path of the tasks manifest file.
|
|
59
59
|
*/
|
package/lib/task.js
CHANGED
|
@@ -185,5 +185,5 @@ class Task {
|
|
|
185
185
|
}
|
|
186
186
|
exports.Task = Task;
|
|
187
187
|
_a = JSII_RTTI_SYMBOL_1;
|
|
188
|
-
Task[_a] = { fqn: "projen.Task", version: "0.58.
|
|
188
|
+
Task[_a] = { fqn: "projen.Task", version: "0.58.18" };
|
|
189
189
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBb0JBOzs7R0FHRztBQUNILE1BQWEsSUFBSTtJQW1CZixZQUFZLElBQVksRUFBRSxRQUFxQixFQUFFO1FBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFFckMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFdBQVcsQ0FBQyxJQUF3QjtR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O0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNkLHFFQUFxRTtRQUNyRSw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7O0FBck5ILG9CQXNOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFRhc2tDb21tb25PcHRpb25zLFxuICBUYXNrU3BlYyxcbiAgVGFza1N0ZXAsXG4gIFRhc2tTdGVwT3B0aW9ucyxcbn0gZnJvbSBcIi4vdGFzay1tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tPcHRpb25zIGV4dGVuZHMgVGFza0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogU2hlbGwgY29tbWFuZCB0byBleGVjdXRlIGFzIHRoZSBmaXJzdCBjb21tYW5kIG9mIHRoZSB0YXNrLlxuICAgKiBAZGVmYXVsdCAtIGFkZCBzdGVwcyB1c2luZyBgdGFzay5leGVjKGNvbW1hbmQpYCBvciBgdGFzay5zcGF3bihzdWJ0YXNrKWBcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdGFzayBzdGVwcyB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IFRhc2tTdGVwW107XG59XG5cbi8qKlxuICogQSB0YXNrIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgcHJvamVjdC4gTW9kZWxlZCBhcyBhIHNlcmllcyBvZiBzaGVsbFxuICogY29tbWFuZHMgYW5kIHN1YnRhc2tzLlxuICovXG5leHBvcnQgY2xhc3MgVGFzayB7XG4gIC8qKlxuICAgKiBUYXNrIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1hbmQgdG8gZXhlY3V0ZSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHNob3VsZCBiZSBza2lwcGVkLiBJZiBpdFxuICAgKiByZXR1cm5zIGEgemVybyBleGl0IGNvZGUsIHRoZSB0YXNrIHdpbGwgbm90IGJlIGV4ZWN1dGVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGVwczogVGFza1N0ZXBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZW52OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWlyZWRFbnY/OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfbG9ja2VkOiBib29sZWFuO1xuICBwcml2YXRlIF9kZXNjcmlwdGlvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzOiBUYXNrT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuY29uZGl0aW9uID0gcHJvcHMuY29uZGl0aW9uO1xuICAgIHRoaXMuY3dkID0gcHJvcHMuY3dkO1xuICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fZW52ID0gcHJvcHMuZW52ID8/IHt9O1xuICAgIHRoaXMuX3N0ZXBzID0gcHJvcHMuc3RlcHMgPz8gW107XG4gICAgdGhpcy5yZXF1aXJlZEVudiA9IHByb3BzLnJlcXVpcmVkRW52O1xuXG4gICAgaWYgKHByb3BzLmV4ZWMgJiYgcHJvcHMuc3RlcHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbm5vdCBzcGVjaWZ5IGJvdGggZXhlYyBhbmQgc3RlcHNcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4ZWMpIHtcbiAgICAgIHRoaXMuZXhlYyhwcm9wcy5leGVjKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yYmlkIGFkZGl0aW9uYWwgY2hhbmdlcyB0byB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgbG9jaygpIHtcbiAgICB0aGlzLl9sb2NrZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHNldCBkZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2M7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHRhc2sgc28gaXQgbm8gbG9uZ2VyIGhhcyBhbnkgY29tbWFuZHMuXG4gICAqIEBwYXJhbSBjb21tYW5kIHRoZSBmaXJzdCBjb21tYW5kIHRvIGFkZCB0byB0aGUgdGFzayBhZnRlciBpdCB3YXMgY2xlYXJlZC5cbiAgICovXG4gIHB1YmxpYyByZXNldChjb21tYW5kPzogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIHdoaWxlICh0aGlzLl9zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3N0ZXBzLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQpIHtcbiAgICAgIHRoaXMuZXhlYyhjb21tYW5kLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBzaGVsbCBjb21tYW5kXG4gICAqIEBwYXJhbSBjb21tYW5kIFNoZWxsIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGV4ZWMoY29tbWFuZDogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcbiAgICB0aGlzLl9zdGVwcy5wdXNoKHsgZXhlYzogY29tbWFuZCwgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgYnVpbHRpbiB0YXNrLlxuICAgKlxuICAgKiBCdWlsdGluIHRhc2tzIGFyZSBwcm9ncmFtcyBidW5kbGVkIGFzIHBhcnQgb2YgcHJvamVuIGl0c2VsZiBhbmQgdXNlZCBhc1xuICAgKiBoZWxwZXJzIGZvciB2YXJpb3VzIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkIHN1cHBvcnQgYnVpbHQtaW4gdGFza3MgZnJvbSBleHRlcm5hbCBtb2R1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnVpbHRpbiB0YXNrIHRvIGV4ZWN1dGUgKGUuZy5cbiAgICogYHJlbGVhc2UvcmVzb2x2ZS12ZXJzaW9uYCkuXG4gICAqL1xuICBwdWJsaWMgYnVpbHRpbihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG4gICAgdGhpcy5fc3RlcHMucHVzaCh7IGJ1aWx0aW46IG5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2F5IHNvbWV0aGluZy5cbiAgICogQHBhcmFtIG1lc3NhZ2UgWW91ciBtZXNzYWdlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzYXkobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcbiAgICB0aGlzLl9zdGVwcy5wdXNoKHsgc2F5OiBtZXNzYWdlLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21tYW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBzaGVsbCBUaGUgY29tbWFuZCB0byBhZGQuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgcHJlcGVuZEV4ZWMoKWBcbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kKHNoZWxsOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuICAgIHRoaXMucHJlcGVuZEV4ZWMoc2hlbGwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwYXducyBhIHN1Yi10YXNrLlxuICAgKiBAcGFyYW0gc3VidGFzayBUaGUgc3VidGFzayB0byBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIHNwYXduKHN1YnRhc2s6IFRhc2ssIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuICAgIHRoaXMuX3N0ZXBzLnB1c2goeyBzcGF3bjogc3VidGFzay5uYW1lLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21tYW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBzaGVsbCBUaGUgY29tbWFuZCB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZEV4ZWMoc2hlbGw6IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG4gICAgdGhpcy5fc3RlcHMudW5zaGlmdCh7XG4gICAgICBleGVjOiBzaGVsbCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHNwYXduIGluc3RydWN0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBzdWJ0YXNrIFRoZSBzdWJ0YXNrIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFNwYXduKHN1YnRhc2s6IFRhc2ssIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuICAgIHRoaXMuX3N0ZXBzLnVuc2hpZnQoe1xuICAgICAgc3Bhd246IHN1YnRhc2submFtZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2F5cyBzb21ldGhpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFzay5cbiAgICogQHBhcmFtIG1lc3NhZ2UgWW91ciBtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFNheShtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuICAgIHRoaXMuX3N0ZXBzLnVuc2hpZnQoe1xuICAgICAgc2F5OiBtZXNzYWdlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoaXMgdGFzay5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBzdXJyb3VuZGVkIGJ5IGAkKClgLCB3ZSB3aWxsXG4gICAqIGV2YWx1YXRlIGl0IHdpdGhpbiBhIHN1YnNoZWxsIGFuZCB1c2UgdGhlIHJlc3VsdCBhcyB0aGUgdmFsdWUgb2YgdGhlXG4gICAqIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcHVibGljIGVudihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG4gICAgdGhpcy5fZW52W25hbWVdID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpbW11dGFibGUgY29weSBvZiBhbGwgdGhlIHN0ZXAgc3BlY2lmaWNhdGlvbnMgb2YgdGhlIHRhc2suXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0ZXBzKCkge1xuICAgIC8vIElmIHRoZSBsaXN0IG9mIHN0ZXBzIGlzIGEgTGF6eSB2YWx1ZSwgd2UgY2FuJ3Qga25vdyB3aGF0IHRoZSBzdGVwc1xuICAgIC8vIGFyZSB1bnRpbCBzeW50aGVzaXMgb2NjdXJzLCBzbyBqdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheS5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBbLi4udGhpcy5fc3RlcHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSB0YXNrIHNwZWMgaW50byB0aGUgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZW5kZXJTcGVjKCk6IFRhc2tTcGVjIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBlbnY6IHRoaXMuX2VudixcbiAgICAgIHJlcXVpcmVkRW52OiB0aGlzLnJlcXVpcmVkRW52LFxuICAgICAgc3RlcHM6IHRoaXMuX3N0ZXBzLFxuICAgICAgY29uZGl0aW9uOiB0aGlzLmNvbmRpdGlvbixcbiAgICAgIGN3ZDogdGhpcy5jd2QsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0VW5sb2NrZWQoKSB7XG4gICAgaWYgKHRoaXMuX2xvY2tlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUYXNrIFwiJHt0aGlzLm5hbWV9XCIgaXMgbG9ja2VkIGZvciBjaGFuZ2VzYCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/tasks.js
CHANGED
|
@@ -110,5 +110,5 @@ class Tasks extends component_1.Component {
|
|
|
110
110
|
}
|
|
111
111
|
exports.Tasks = Tasks;
|
|
112
112
|
_a = JSII_RTTI_SYMBOL_1;
|
|
113
|
-
Tasks[_a] = { fqn: "projen.Tasks", version: "0.58.
|
|
113
|
+
Tasks[_a] = { fqn: "projen.Tasks", version: "0.58.18" };
|
|
114
114
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLDJDQUF3QztBQUN4QyxpQ0FBa0M7QUFFbEMsaUNBQTJDO0FBRTNDLGlEQUE2QztBQUU3Qzs7Ozs7R0FLRztBQUNILE1BQWEsS0FBTSxTQUFRLHFCQUFTO0lBSWxDLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFZixJQUFJLGVBQVEsQ0FBQyxPQUFPLEVBQUUsMEJBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDL0MsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFRO2dCQUN4QyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFRO2FBQ2I7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxHQUFHO1FBQ1osT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxJQUFZLEVBQUUsVUFBdUIsRUFBRTtRQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0JBQXdCLElBQUksc0ZBQXNGLENBQ25ILENBQUM7U0FDSDtRQUNELElBQUksQ0FB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IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tIFwiLi9qc29uXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgVGFzaywgVGFza09wdGlvbnMgfSBmcm9tIFwiLi90YXNrXCI7XG5pbXBvcnQgeyBUYXNrc01hbmlmZXN0LCBUYXNrU3BlYyB9IGZyb20gXCIuL3Rhc2stbW9kZWxcIjtcbmltcG9ydCB7IFRhc2tSdW50aW1lIH0gZnJvbSBcIi4vdGFzay1ydW50aW1lXCI7XG5cbi8qKlxuICogRGVmaW5lcyBwcm9qZWN0IHRhc2tzLlxuICpcbiAqIFRhc2tzIGV4dGVuZCB0aGUgcHJvamVuIENMSSBieSBhZGRpbmcgc3ViY29tbWFuZHMgdG8gaXQuIFRhc2sgZGVmaW5pdGlvbnMgYXJlXG4gKiBzeW50aGVzaXplZCBpbnRvIGAucHJvamVuL3Rhc2tzLmpzb25gLlxuICovXG5leHBvcnQgY2xhc3MgVGFza3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF90YXNrczogeyBbbmFtZTogc3RyaW5nXTogVGFzayB9O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnY6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuX3Rhc2tzID0ge307XG4gICAgdGhpcy5fZW52ID0ge307XG5cbiAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgVGFza1J1bnRpbWUuTUFOSUZFU1RfRklMRSwge1xuICAgICAgb21pdEVtcHR5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIHRhc2tzOiAoKCkgPT4gdGhpcy5yZW5kZXJUYXNrcygpKSBhcyBhbnksXG4gICAgICAgIGVudjogKCgpID0+IHRoaXMuX2VudikgYXMgYW55LFxuICAgICAgfSBhcyBUYXNrc01hbmlmZXN0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbCB0YXNrcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWxsKCkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX3Rhc2tzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGFzayB0byBhIHByb2plY3QuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0YXNrXG4gICAqIEBwYXJhbSBvcHRpb25zIFRhc2sgb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBhZGRUYXNrKG5hbWU6IHN0cmluZywgb3B0aW9uczogVGFza09wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHRhc2sgPSBuZXcgVGFzayhuYW1lLCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fdGFza3NbbmFtZV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEEgdGFzayB3aXRoIHRoZSBuYW1lICR7bmFtZX0gYWxyZWFkeSBleGlzdHMuIFRvIG92ZXJyaWRlIGl0LCBjYWxsIHJlbW92ZVRhc2sgZmlyc3QgYW5kIHRoZW4gY3JlYXRlIHRoZSBuZXcgdGFzay5gXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl90YXNrc1tuYW1lXSA9IHRhc2s7XG4gICAgcmV0dXJuIHRhc2s7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIHRhc2sgZnJvbSBhIHByb2plY3QuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0YXNrIHRvIHJlbW92ZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGBUYXNrYCB0aGF0IHdhcyByZW1vdmVkLCBvdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFzayhuYW1lOiBzdHJpbmcpOiB1bmRlZmluZWQgfCBUYXNrIHtcbiAgICBjb25zdCBkZXBlbmRlbnRUYXNrcyA9IHRoaXMuYWxsLmZpbHRlcigodGFzaykgPT5cbiAgICAgIHRhc2suc3RlcHMuZmluZCgoc3RlcCkgPT4gc3RlcC5zcGF3biA9PSBuYW1lKVxuICAgICk7XG4gICAgaWYgKGRlcGVuZGVudFRhc2tzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGVyckxpc3QgPSBkZXBlbmRlbnRUYXNrcy5tYXAoKGRlcFRhc2spID0+IGRlcFRhc2submFtZSkuam9pbihcIiwgXCIpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIHJlbW92ZSB0YXNrIFwiJHtuYW1lfVwiIGJlY2F1c2UgdGhlIGZvbGxvd2luZyB0YXNrcyBkZXBlbmQgb24gaXQ6ICR7ZXJyTGlzdH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHRhc2sgPSB0aGlzLl90YXNrc1tuYW1lXTtcbiAgICBpZiAodGFzaykge1xuICAgICAgZGVsZXRlIHRoaXMuX3Rhc2tzW25hbWVdO1xuICAgICAgcmV0dXJuIHRhc2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgZ2xvYmFsIGVudmlyb25tZW50LlxuICAgKiBAcGFyYW0gbmFtZSBFbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZVxuICAgKi9cbiAgcHVibGljIGFkZEVudmlyb25tZW50KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2VudltuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBjdXJyZW50bHkgZ2xvYmFsIGVudmlyb25tZW50IGZvciB0aGlzIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudigpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5fZW52LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYSB0YXNrIGJ5IG5hbWUuIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIHRhc2sgY2Fubm90IGJlIGZvdW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgdGFza1xuICAgKi9cbiAgcHVibGljIHRyeUZpbmQobmFtZTogc3RyaW5nKTogdW5kZWZpbmVkIHwgVGFzayB7XG4gICAgcmV0dXJuIHRoaXMuX3Rhc2tzW25hbWVdO1xuICB9XG5cbiAgcHVibGljIHN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvamVjdC5lamVjdGVkKSB7XG4gICAgICAvLyBJbnNlcnQgYSB0YXNrLXJ1bm5lciBzY3JpcHQgc28gdGhhdCB0YXNrcyBjYW4gYmUgcnVuIGFmdGVyIGVqZWN0aW5nXG4gICAgICBmcy5ta2RpcnBTeW5jKHBhdGguam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBcInNjcmlwdHNcIikpO1xuICAgICAgZnMuY29weUZpbGVTeW5jKFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwibGliXCIsIFwicnVuLXRhc2suanNcIiksXG4gICAgICAgIHBhdGguam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBcInNjcmlwdHNcIiwgXCJydW4tdGFza1wiKVxuICAgICAgKTtcbiAgICAgIGZzLmNobW9kU3luYyhcbiAgICAgICAgcGF0aC5qb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIFwic2NyaXB0c1wiLCBcInJ1bi10YXNrXCIpLFxuICAgICAgICBcIjc1NVwiXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyVGFza3MoKSB7XG4gICAgY29uc3QgdGFza3M6IHsgW25hbWU6IHN0cmluZ106IFRhc2tTcGVjIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLl90YXNrcykuc29ydCgoeCwgeSkgPT5cbiAgICAgIHgubmFtZS5sb2NhbGVDb21wYXJlKHkubmFtZSlcbiAgICApKSB7XG4gICAgICB0YXNrc1t0YXNrLm5hbWVdID0gdGFzay5fcmVuZGVyU3BlYygpO1xuICAgIH1cblxuICAgIHJldHVybiB0YXNrcztcbiAgfVxufVxuIl19
|
package/lib/testing.js
CHANGED
|
@@ -23,5 +23,5 @@ class Testing {
|
|
|
23
23
|
}
|
|
24
24
|
exports.Testing = Testing;
|
|
25
25
|
_a = JSII_RTTI_SYMBOL_1;
|
|
26
|
-
Testing[_a] = { fqn: "projen.Testing", version: "0.58.
|
|
26
|
+
Testing[_a] = { fqn: "projen.Testing", version: "0.58.18" };
|
|
27
27
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esd0NBQTZDO0FBRTdDOzs7OztHQUtHO0FBQ0gsTUFBYSxPQUFPO0lBVWxCLGdCQUF1QixDQUFDLENBQUMsVUFBVTtJQVRuQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFnQjtRQUNsQyxPQUFPLHFCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7QUFSSCwwQkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyBzeW50aFNuYXBzaG90IH0gZnJvbSBcIi4vdXRpbC9zeW50aFwiO1xuXG4vKipcbiAqIEEgVGVzdGluZyBzdGF0aWMgY2xhc3Mgd2l0aCBhIC5zeW50aCBoZWxwZXIgZm9yIGdldHRpbmcgYSBzbmFwc2hvdHMgb2YgY29uc3RydWN0IG91dHB1dHMuXG4gKiBVc2VmdWwgZm9yIHNuYXBzaG90IHRlc3Rpbmcgd2l0aCBKZXN0LlxuICpcbiAqIEBleGFtcGxlIGBleHBlY3QoVGVzdGluZy5zeW50aChzb21lUHJvamVjdCkpLnRvTWF0Y2hTbmFwc2hvdCgpYFxuICovXG5leHBvcnQgY2xhc3MgVGVzdGluZyB7XG4gIC8qKlxuICAgKiBQcm9kdWNlcyBhIHNpbXBsZSBKUyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBjb250ZW50cyBvZiB0aGUgcHJvamVjdHMgd2l0aCBmaWVsZCBuYW1lcyBiZWluZyBmaWxlIHBhdGhzLlxuICAgKiBAcGFyYW0gcHJvamVjdCB0aGUgcHJvamVjdCB0byBwcm9kdWNlIGEgc25hcHNob3QgZm9yXG4gICAqIEByZXR1cm4geyBbZmlsZW5hbWU6c3RyaW5nXTogYW55IH1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3ludGgocHJvamVjdDogUHJvamVjdCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiBzeW50aFNuYXBzaG90KHByb2plY3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9IC8vIHV0aWxpdHlcbn1cbiJdfQ==
|