projen 0.77.6 → 0.78.0
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 +65 -25
- 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-py.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-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.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/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.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/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration-model.d.ts +2 -2
- package/lib/gitlab/configuration-model.js +1 -1
- package/lib/gitlab/configuration.d.ts +10 -2
- package/lib/gitlab/configuration.js +26 -3
- 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.js +4 -4
- 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 +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- 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-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +2 -2
- package/lib/projenrc.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 +1 -1
- 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-ts.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +3 -3
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.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
|
@@ -31,5 +31,5 @@ class PullRequestTemplate extends textfile_1.TextFile {
|
|
|
31
31
|
}
|
|
32
32
|
exports.PullRequestTemplate = PullRequestTemplate;
|
|
33
33
|
_a = JSII_RTTI_SYMBOL_1;
|
|
34
|
-
PullRequestTemplate[_a] = { fqn: "projen.github.PullRequestTemplate", version: "0.
|
|
34
|
+
PullRequestTemplate[_a] = { fqn: "projen.github.PullRequestTemplate", version: "0.78.0" };
|
|
35
35
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHItdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL3ByLXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsMENBQXVDO0FBY3ZDOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxtQkFBUTtJQUMvQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFZLEVBQTRCLEVBQUUsQ0FDOUQsQ0FBQyxZQUFZLG1CQUFtQixDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVksTUFBYyxFQUFFLFVBQXNDLEVBQUU7UUFDbEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUU7WUFDeEQsS0FBSyxFQUNILE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUNmLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNqQixNQUFNLEVBQUUsS0FBSztZQUNiLHNFQUFzRTtZQUN0RSxTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXZCSCxrREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tIFwiLi4vdGV4dGZpbGVcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgUHVsbFJlcXVlc3RUZW1wbGF0ZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVsbFJlcXVlc3RUZW1wbGF0ZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSB0ZW1wbGF0ZS4gWW91IGNhbiB1c2UgYGFkZExpbmUoKWAgdG8gYWRkIGFkZGl0aW9uYWwgbGluZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBzdGFuZGFyZCBkZWZhdWx0IHRlbXBsYXRlIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxpbmVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGVtcGxhdGUgZm9yIEdpdEh1YiBwdWxsIHJlcXVlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgUHVsbFJlcXVlc3RUZW1wbGF0ZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBQdWxsUmVxdWVzdFRlbXBsYXRlYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmXG4gICAqIHRoZXJlIGlzIG5vIFB1bGxSZXF1ZXN0VGVtcGxhdGUuXG4gICAqIEBwYXJhbSBwcm9qZWN0IFRoZSBwcm9qZWN0XG4gICAqIEByZXR1cm5zIEEgUHVsbFJlcXVlc3RUZW1wbGF0ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogUHVsbFJlcXVlc3RUZW1wbGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNQclRlbXBsYXRlID0gKG86IENvbXBvbmVudCk6IG8gaXMgUHVsbFJlcXVlc3RUZW1wbGF0ZSA9PlxuICAgICAgbyBpbnN0YW5jZW9mIFB1bGxSZXF1ZXN0VGVtcGxhdGU7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzUHJUZW1wbGF0ZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihnaXRodWI6IEdpdEh1Yiwgb3B0aW9uczogUHVsbFJlcXVlc3RUZW1wbGF0ZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGdpdGh1Yi5wcm9qZWN0LCBcIi5naXRodWIvcHVsbF9yZXF1ZXN0X3RlbXBsYXRlLm1kXCIsIHtcbiAgICAgIGxpbmVzOlxuICAgICAgICBvcHRpb25zLmxpbmVzICYmIG9wdGlvbnMubGluZXM/Lmxlbmd0aCA+IDBcbiAgICAgICAgICA/IG9wdGlvbnMubGluZXNcbiAgICAgICAgICA6IFtcIkZpeGVzICNcIl0sXG4gICAgICBtYXJrZXI6IGZhbHNlLFxuICAgICAgLy8gR2l0SHViIG5lZWRzIHRvIHJlYWQgdGhlIGZpbGUgZnJvbSB0aGUgcmVwb3NpdG9yeSBpbiBvcmRlciB0byB3b3JrLlxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -116,7 +116,7 @@ class PullRequestLint extends component_1.Component {
|
|
|
116
116
|
}
|
|
117
117
|
exports.PullRequestLint = PullRequestLint;
|
|
118
118
|
_a = JSII_RTTI_SYMBOL_1;
|
|
119
|
-
PullRequestLint[_a] = { fqn: "projen.github.PullRequestLint", version: "0.
|
|
119
|
+
PullRequestLint[_a] = { fqn: "projen.github.PullRequestLint", version: "0.78.0" };
|
|
120
120
|
/**
|
|
121
121
|
* Helper to generate a JS script as string from a function object
|
|
122
122
|
* @returns A prettified string of the function's body
|
package/lib/github/stale.js
CHANGED
|
@@ -79,5 +79,5 @@ class Stale extends component_1.Component {
|
|
|
79
79
|
}
|
|
80
80
|
exports.Stale = Stale;
|
|
81
81
|
_a = JSII_RTTI_SYMBOL_1;
|
|
82
|
-
Stale[_a] = { fqn: "projen.github.Stale", version: "0.
|
|
82
|
+
Stale[_a] = { fqn: "projen.github.Stale", version: "0.78.0" };
|
|
83
83
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL3N0YWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNkNBQThDO0FBQzlDLHVEQUFrRDtBQUNsRCw0Q0FBeUM7QUFDekMsc0RBQThFO0FBMEY5RTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxLQUFNLFNBQVEscUJBQVM7SUFDbEMsWUFBWSxNQUFjLEVBQUUsVUFBd0IsRUFBRTtRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBQSwyQkFBYyxFQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDdkQsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxjQUFjO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsMkJBQWMsRUFBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzVDLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxZQUF1QixFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUMsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDO1FBRUYsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaLEtBQUssRUFBRTtnQkFDTCxHQUFHLElBQUEsc0NBQXFCLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUM3RCxXQUFXLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLCtCQUFhLENBQUMsS0FBSztvQkFDM0IsWUFBWSxFQUFFLCtCQUFhLENBQUMsS0FBSztpQkFDbEM7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMO3dCQUNFLElBQUksRUFBRSxrQkFBa0I7d0JBQ3hCLElBQUksRUFBRTs0QkFDSixpQkFBaUI7NEJBQ2pCLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs0QkFDdkIsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDOzRCQUV2QixnQkFBZ0I7NEJBQ2hCLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxlQUFlOzRCQUNwRCxzQkFBc0IsRUFBRSxZQUFZLENBQUMsZUFBZTs0QkFDcEQsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLFlBQVk7NEJBQzdDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxZQUFZOzRCQUM3QyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsVUFBVTs0QkFDekMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQzs0QkFFakUsU0FBUzs0QkFDVCx5QkFBeUIsRUFBRSxNQUFNLENBQUMsZUFBZTs0QkFDakQseUJBQXlCLEVBQUUsTUFBTSxDQUFDLGVBQWU7NEJBQ2pELHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxZQUFZOzRCQUMxQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsWUFBWTs0QkFDMUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLFVBQVU7NEJBQ3RDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7eUJBQy9EO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9ESCxzQkFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IHJlbmRlckJlaGF2aW9yIH0gZnJvbSBcIi4vc3RhbGUtdXRpbFwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCIuL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgR3JvdXBSdW5uZXJPcHRpb25zLCBmaWx0ZXJlZFJ1bnNPbk9wdGlvbnMgfSBmcm9tIFwiLi4vcnVubmVyLW9wdGlvbnNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgU3RhbGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb3cgdG8gaGFuZGxlIHN0YWxlIHB1bGwgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQnkgZGVmYXVsdCwgcHVsbCByZXF1ZXN0cyB3aXRoIG5vIGFjdGl2aXR5IHdpbGwgYmUgbWFya2VkIGFzXG4gICAqIHN0YWxlIGFmdGVyIDE0IGRheXMgYW5kIGNsb3NlZCB3aXRoaW4gMiBkYXlzIHdpdGggcmVsZXZhbnQgY29tbWVudHMuXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdD86IFN0YWxlQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIEhvdyB0byBoYW5kbGUgc3RhbGUgaXNzdWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJ5IGRlZmF1bHQsIHN0YWxlIGlzc3VlcyB3aXRoIG5vIGFjdGl2aXR5IHdpbGwgYmUgbWFya2VkIGFzXG4gICAqIHN0YWxlIGFmdGVyIDYwIGRheXMgYW5kIGNsb3NlZCB3aXRoaW4gNyBkYXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNzdWVzPzogU3RhbGVCZWhhdmlvcjtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzXG4gICAqIEBkZWZhdWx0IFtcInVidW50dS1sYXRlc3RcIl1cbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgYSB0YXJnZXQgUnVubmVyIGJ5IGxhYmVsc1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgYm90aCBgcnVuc09uYCBhbmQgYHJ1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBydW5zT24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBHcm91cCBzZWxlY3Rpb24gb3B0aW9uc1xuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyBhIHRhcmdldCBSdW5uZXIgR3JvdXAgYnkgbmFtZSBhbmQvb3IgbGFiZWxzXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBpZiBib3RoIGBydW5zT25gIGFuZCBgcnVuc09uR3JvdXBgIGFyZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnNPbkdyb3VwPzogR3JvdXBSdW5uZXJPcHRpb25zO1xufVxuXG4vKipcbiAqIFN0YWxlIGJlaGF2aW9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWxlQmVoYXZpb3Ige1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGJlaGF2aW9yIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIFNhbWUgYXMgc2V0dGluZyBgZGF5c0JlZm9yZVN0YWxlYCBhbmQgYGRheXNCZWZvcmVDbG9zZWAgdG8gYC0xYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IGRheXMgdW50aWwgdGhlIGlzc3VlIG9yIHB1bGwgcmVxdWVzdCBpcyBtYXJrZWQgYXMgXCJTdGFsZVwiLiBTZXQgdG8gLTEgdG8gZGlzYWJsZS5cbiAgICogQGRlZmF1bHQgLVxuICAgKi9cbiAgcmVhZG9ubHkgZGF5c0JlZm9yZVN0YWxlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEYXlzIHVudGlsIHRoZSBpc3N1ZS9QUiBpcyBjbG9zZWQgYWZ0ZXIgaXQgaXMgbWFya2VkIGFzIFwiU3RhbGVcIi4gU2V0IHRvIC0xIHRvIGRpc2FibGUuXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIHJlYWRvbmx5IGRheXNCZWZvcmVDbG9zZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBpc3N1ZS9QUiB3aGVuIGl0IGJlY29tZXMgc3RhbGUuXG4gICAqIEBkZWZhdWx0IFwiVGhpcyBwdWxsIHJlcXVlc3QgaXMgbm93IG1hcmtlZCBhcyBzdGFsZSBiZWNhdXNlIGhhc25cXCd0IHNlZW4gYWN0aXZpdHkgZm9yIGEgd2hpbGUuIEFkZCBhIGNvbW1lbnQgb3IgaXQgd2lsbCBiZSBjbG9zZWQgc29vbi5cIlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhbGVNZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIGlzc3VlL1BSIHdoZW4gaXQncyBjbG9zZWRcbiAgICpcbiAgICogQGRlZmF1bHQgXCJDbG9zaW5nIHRoaXMgcHVsbCByZXF1ZXN0IGFzIGl0IGhhc25cXCd0IHNlZW4gYWN0aXZpdHkgZm9yIGEgd2hpbGUuIFBsZWFzZSBhZGQgYSBjb21tZW50IEBtZW50aW9uaW5nIGEgbWFpbnRhaW5lciB3aGVuIHlvdSBhcmUgcmVhZHkgdG8gY29udGludWUuXCJcbiAgICovXG4gIHJlYWRvbmx5IGNsb3NlTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGFwcGx5IHRvIHRoZSBpc3N1ZS9QUiB3aGVuIGl0IGJlY29tZXMgc3RhbGUuXG4gICAqIEBkZWZhdWx0IFwic3RhbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhbGVMYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogTGFiZWwgd2hpY2ggZXhlbXB0IGFuIGlzc3VlL1BSIGZyb20gYmVjb21pbmcgc3RhbGUuIFNldCB0byBgW11gIHRvIGRpc2FibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gW1wiYmFja2xvZ1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlbXB0TGFiZWxzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV2FybnMgYW5kIHRoZW4gY2xvc2VzIGlzc3VlcyBhbmQgUFJzIHRoYXQgaGF2ZSBoYWQgbm8gYWN0aXZpdHkgZm9yIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lLlxuICpcbiAqIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gd2lsbDpcbiAqXG4gKiAgKiBBZGQgYSBcIlN0YWxlXCIgbGFiZWwgdG8gcHVsbCByZXF1ZXN0cyBhZnRlciAxNCBkYXlzIGFuZCBjbG9zZWQgYWZ0ZXIgMiBkYXlzXG4gKiAgKiBBZGQgYSBcIlN0YWxlXCIgbGFiZWwgdG8gaXNzdWVzIGFmdGVyIDYwIGRheXMgYW5kIGNsb3NlZCBhZnRlciA3IGRheXNcbiAqICAqIElmIGEgY29tbWVudCBpcyBhZGRlZCwgdGhlIGxhYmVsIHdpbGwgYmUgcmVtb3ZlZCBhbmQgdGltZXIgaXMgcmVzdGFydGVkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvc3RhbGVcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZ2l0aHViOiBHaXRIdWIsIG9wdGlvbnM6IFN0YWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoZ2l0aHViLnByb2plY3QpO1xuXG4gICAgY29uc3Qgc3RhbGUgPSBnaXRodWIuYWRkV29ya2Zsb3coXCJzdGFsZVwiKTtcbiAgICBzdGFsZS5vbih7XG4gICAgICBzY2hlZHVsZTogW3sgY3JvbjogXCIwIDEgKiAqICpcIiB9XSwgLy8gYXQgMWFtIGV2ZXJ5IGRheVxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgfSk7XG5cbiAgICBjb25zdCBwdWxsUmVxdWVzdHMgPSByZW5kZXJCZWhhdmlvcihvcHRpb25zLnB1bGxSZXF1ZXN0LCB7XG4gICAgICBzdGFsZTogMTQsXG4gICAgICBjbG9zZTogMixcbiAgICAgIHR5cGU6IFwicHVsbCByZXF1ZXN0XCIsXG4gICAgfSk7XG4gICAgY29uc3QgaXNzdWVzID0gcmVuZGVyQmVoYXZpb3Iob3B0aW9ucy5pc3N1ZXMsIHtcbiAgICAgIHN0YWxlOiA2MCxcbiAgICAgIGNsb3NlOiA3LFxuICAgICAgdHlwZTogXCJpc3N1ZVwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVuZGVyRXhlbXB0TGFiZWxzID0gKGV4ZW1wdExhYmVscz86IHN0cmluZ1tdKSA9PiB7XG4gICAgICBpZiAoIWV4ZW1wdExhYmVscyB8fCBleGVtcHRMYWJlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhlbXB0TGFiZWxzLmpvaW4oXCIsXCIpO1xuICAgIH07XG5cbiAgICBzdGFsZS5hZGRKb2JzKHtcbiAgICAgIHN0YWxlOiB7XG4gICAgICAgIC4uLmZpbHRlcmVkUnVuc09uT3B0aW9ucyhvcHRpb25zLnJ1bnNPbiwgb3B0aW9ucy5ydW5zT25Hcm91cCksXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgaXNzdWVzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1c2VzOiBcImFjdGlvbnMvc3RhbGVAdjRcIixcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgLy8gZGlzYWJsZSBnbG9iYWxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1zdGFsZVwiOiAtMSxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1jbG9zZVwiOiAtMSxcblxuICAgICAgICAgICAgICAvLyBwdWxsIHJlcXVlc3RzXG4gICAgICAgICAgICAgIFwiZGF5cy1iZWZvcmUtcHItc3RhbGVcIjogcHVsbFJlcXVlc3RzLmRheXNCZWZvcmVTdGFsZSxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1wci1jbG9zZVwiOiBwdWxsUmVxdWVzdHMuZGF5c0JlZm9yZUNsb3NlLFxuICAgICAgICAgICAgICBcInN0YWxlLXByLW1lc3NhZ2VcIjogcHVsbFJlcXVlc3RzLnN0YWxlTWVzc2FnZSxcbiAgICAgICAgICAgICAgXCJjbG9zZS1wci1tZXNzYWdlXCI6IHB1bGxSZXF1ZXN0cy5jbG9zZU1lc3NhZ2UsXG4gICAgICAgICAgICAgIFwic3RhbGUtcHItbGFiZWxcIjogcHVsbFJlcXVlc3RzLnN0YWxlTGFiZWwsXG4gICAgICAgICAgICAgIFwiZXhlbXB0LXByLWxhYmVsc1wiOiByZW5kZXJFeGVtcHRMYWJlbHMocHVsbFJlcXVlc3RzLmV4ZW1wdExhYmVscyksXG5cbiAgICAgICAgICAgICAgLy8gaXNzdWVzXG4gICAgICAgICAgICAgIFwiZGF5cy1iZWZvcmUtaXNzdWUtc3RhbGVcIjogaXNzdWVzLmRheXNCZWZvcmVTdGFsZSxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1pc3N1ZS1jbG9zZVwiOiBpc3N1ZXMuZGF5c0JlZm9yZUNsb3NlLFxuICAgICAgICAgICAgICBcInN0YWxlLWlzc3VlLW1lc3NhZ2VcIjogaXNzdWVzLnN0YWxlTWVzc2FnZSxcbiAgICAgICAgICAgICAgXCJjbG9zZS1pc3N1ZS1tZXNzYWdlXCI6IGlzc3Vlcy5jbG9zZU1lc3NhZ2UsXG4gICAgICAgICAgICAgIFwic3RhbGUtaXNzdWUtbGFiZWxcIjogaXNzdWVzLnN0YWxlTGFiZWwsXG4gICAgICAgICAgICAgIFwiZXhlbXB0LWlzc3VlLWxhYmVsc1wiOiByZW5kZXJFeGVtcHRMYWJlbHMoaXNzdWVzLmV4ZW1wdExhYmVscyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -83,5 +83,5 @@ class TaskWorkflow extends workflows_1.GithubWorkflow {
|
|
|
83
83
|
}
|
|
84
84
|
exports.TaskWorkflow = TaskWorkflow;
|
|
85
85
|
_a = JSII_RTTI_SYMBOL_1;
|
|
86
|
-
TaskWorkflow[_a] = { fqn: "projen.github.TaskWorkflow", version: "0.
|
|
86
|
+
TaskWorkflow[_a] = { fqn: "projen.github.TaskWorkflow", version: "0.78.0" };
|
|
87
87
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvdGFzay13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUEwRDtBQUUxRCx5REFBcUQ7QUFDckQsMkNBQTZDO0FBUzdDLHNEQUE4RTtBQUc5RSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUF1SC9COztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsMEJBQWM7SUFLOUMsWUFBWSxNQUFjLEVBQUUsT0FBNEI7UUFDdEQsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBRXJELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO2dCQUNqQyx5SUFBeUk7Z0JBQ3pJLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNOLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBRXhELE1BQU0sWUFBWSxHQUF3QixFQUFFLENBQUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDN0MsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDekI7UUFDRCxvQ0FBb0M7UUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLHVDQUEyQixDQUFDO1FBRXZFLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLElBQUksRUFBRSw0QkFBNEI7Z0JBQ2xDLGdFQUFnRTtnQkFDaEUsMkVBQTJFO2dCQUMzRSxFQUFFLEVBQUUsVUFBVTtnQkFDZCxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7b0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCO2lCQUM5QjthQUNGLENBQUMsQ0FBQztTQUNKO1FBRUQsTUFBTSxHQUFHLEdBQVE7WUFDZixHQUFHLElBQUEsc0NBQXFCLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQzdELFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUztZQUNyQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEdBQUcsZ0JBQWdCO2dCQUVuQixxQkFBcUI7Z0JBQ3JCO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDdEMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTt3QkFDeEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDUjtnQkFFRCx5Q0FBeUM7Z0JBQ3pDLEdBQUcsa0NBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7Z0JBRWhELEdBQUcsYUFBYTtnQkFFaEIsMEJBQTBCO2dCQUMxQjtvQkFDRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJO29CQUN2QixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7aUJBQ3REO2dCQUVELEdBQUcsY0FBYzthQUNsQjtTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQXhGSCxvQ0F5RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEdpdEh1YiB9IGZyb20gXCIuL2dpdGh1YlwiO1xuaW1wb3J0IHsgV29ya2Zsb3dBY3Rpb25zIH0gZnJvbSBcIi4vd29ya2Zsb3ctYWN0aW9uc1wiO1xuaW1wb3J0IHsgR2l0aHViV29ya2Zsb3cgfSBmcm9tIFwiLi93b3JrZmxvd3NcIjtcbmltcG9ydCB7XG4gIENvbnRhaW5lck9wdGlvbnMsXG4gIEpvYixcbiAgSm9iUGVybWlzc2lvbnMsXG4gIEpvYlN0ZXAsXG4gIEpvYlN0ZXBPdXRwdXQsXG4gIFRyaWdnZXJzLFxufSBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IEdyb3VwUnVubmVyT3B0aW9ucywgZmlsdGVyZWRSdW5zT25PcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuY29uc3QgREVGQVVMVF9KT0JfSUQgPSBcImJ1aWxkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1dvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2Zsb3cgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgam9iIGlkLlxuICAgKiBAZGVmYXVsdCBcImJ1aWxkXCJcbiAgICovXG4gIHJlYWRvbmx5IGpvYklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lcj86IENvbnRhaW5lck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gJ2lmJyBjb25kaXRpb24gdG8gdGhlIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRpcmVjdG9yeSBuYW1lIHdoaWNoIGNvbnRhaW5zIGFydGlmYWN0cyB0byBiZSB1cGxvYWRlZCAoZS5nLiBgZGlzdGApLlxuICAgKiBJZiB0aGlzIGlzIHNldCwgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZGlyZWN0b3J5IHdpbGwgYmUgdXBsb2FkZWQgYXMgYW5cbiAgICogYXJ0aWZhY3QgYXQgdGhlIGVuZCBvZiB0aGUgd29ya2Zsb3cgcnVuLCBldmVuIGlmIG90aGVyIHN0ZXBzIGZhaWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm90IHNldFxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHJpZ2dlcnMgZm9yIHRoZSB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBieSBkZWZhdWx0IHdvcmtmbG93cyBjYW4gb25seSBiZSB0cmlnZ2VyZWQgYnkgbWFudWFsbHkuXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2Vycz86IFRyaWdnZXJzO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHN0ZXBzIHRvIHJ1biBiZWZvcmUgdGhlIHNvdXJjZSBjb2RlIGNoZWNrb3V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdCBzZXRcbiAgICovXG4gIHJlYWRvbmx5IHByZUNoZWNrb3V0U3RlcHM/OiBKb2JTdGVwW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIGZvciB0aGUgYHdpdGhgIHByb3BlcnR5IG9mIHRoZSBzb3VyY2UgY29kZSBjaGVja291dCBzdGVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdCBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrb3V0V2l0aD86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIFN0ZXBzIHRvIHJ1biBiZWZvcmUgdGhlIG1haW4gYnVpbGQgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3Qgc2V0XG4gICAqL1xuICByZWFkb25seSBwcmVCdWlsZFN0ZXBzPzogSm9iU3RlcFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFpbiB0YXNrIHRvIGJlIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFzazogVGFzaztcblxuICAvKipcbiAgICogQWN0aW9ucyB0byBydW4gYWZ0ZXIgdGhlIG1haW4gYnVpbGQgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3Qgc2V0XG4gICAqL1xuICByZWFkb25seSBwb3N0QnVpbGRTdGVwcz86IEpvYlN0ZXBbXTtcblxuICAvKipcbiAgICogV29ya2Zsb3cgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgZm9yIHRoZSBidWlsZCBqb2IuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uczogSm9iUGVybWlzc2lvbnM7XG5cbiAgLyoqXG4gICAqIE1hcHBpbmcgb2Ygam9iIG91dHB1dCBuYW1lcyB0byB2YWx1ZXMvZXhwcmVzc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzPzogeyBbbmFtZTogc3RyaW5nXTogSm9iU3RlcE91dHB1dCB9O1xuXG4gIC8qKlxuICAgKiBUaGUgZ2l0IGlkZW50aXR5IHRvIHVzZSBpbiB0aGlzIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0SWRlbnRpdHk/OiBHaXRJZGVudGl0eTtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzXG4gICAqIEBkZWZhdWx0IFtcInVidW50dS1sYXRlc3RcIl1cbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgYSB0YXJnZXQgUnVubmVyIGJ5IGxhYmVsc1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgYm90aCBgcnVuc09uYCBhbmQgYHJ1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBydW5zT24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBHcm91cCBzZWxlY3Rpb24gb3B0aW9uc1xuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyBhIHRhcmdldCBSdW5uZXIgR3JvdXAgYnkgbmFtZSBhbmQvb3IgbGFiZWxzXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBpZiBib3RoIGBydW5zT25gIGFuZCBgcnVuc09uR3JvdXBgIGFyZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnNPbkdyb3VwPzogR3JvdXBSdW5uZXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRvd25sb2FkIGZpbGVzIGZyb20gR2l0IExGUyBmb3IgdGhpcyB3b3JrZmxvd1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSB0aGUgc2V0dGluZyBvbiB0aGUgY29ycmVzcG9uZGluZyBHaXRIdWIgcHJvamVjdFxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRMZnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgR2l0SHViIHdvcmtmbG93IGZvciBjb21tb24gYnVpbGQgdGFza3Mgd2l0aGluIGEgcHJvamVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhc2tXb3JrZmxvdyBleHRlbmRzIEdpdGh1YldvcmtmbG93IHtcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRodWI6IEdpdEh1YjtcbiAgcHVibGljIHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcnRpZmFjdHNEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZ2l0aHViOiBHaXRIdWIsIG9wdGlvbnM6IFRhc2tXb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihnaXRodWIsIG9wdGlvbnMubmFtZSk7XG4gICAgdGhpcy5qb2JJZCA9IG9wdGlvbnMuam9iSWQgPz8gREVGQVVMVF9KT0JfSUQ7XG4gICAgdGhpcy5naXRodWIgPSBnaXRodWI7XG4gICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnkgPSBvcHRpb25zLmFydGlmYWN0c0RpcmVjdG9yeTtcblxuICAgIGlmIChvcHRpb25zLnRyaWdnZXJzKSB7XG4gICAgICBpZiAob3B0aW9ucy50cmlnZ2Vycy5pc3N1ZUNvbW1lbnQpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9sZWFybi1naXRodWItYWN0aW9ucy9zZWN1cml0eS1oYXJkZW5pbmctZm9yLWdpdGh1Yi1hY3Rpb25zI3BvdGVudGlhbC1pbXBhY3Qtb2YtYS1jb21wcm9taXNlZC1ydW5uZXJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdUcmlnZ2VyIFwiaXNzdWVDb21tZW50XCIgc2hvdWxkIG5vdCBiZSB1c2VkIGR1ZSB0byBhIHNlY3VyaXR5IGNvbmNlcm4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMub24ob3B0aW9ucy50cmlnZ2Vycyk7XG4gICAgfVxuXG4gICAgdGhpcy5vbih7XG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSwgLy8gYWxsb3cgbWFudWFsIHRyaWdnZXJpbmdcbiAgICB9KTtcblxuICAgIGNvbnN0IHByZUNoZWNrb3V0U3RlcHMgPSBvcHRpb25zLnByZUNoZWNrb3V0U3RlcHMgPz8gW107XG5cbiAgICBjb25zdCBjaGVja291dFdpdGg6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBpZiAob3B0aW9ucy5kb3dubG9hZExmcyA/PyBnaXRodWIuZG93bmxvYWRMZnMpIHtcbiAgICAgIGNoZWNrb3V0V2l0aC5sZnMgPSB0cnVlO1xuICAgIH1cbiAgICAvLyAnY2hlY2tvdXRXaXRoJyBjYW4gb3ZlcnJpZGUgJ2xmcydcbiAgICBPYmplY3QuYXNzaWduKGNoZWNrb3V0V2l0aCwgb3B0aW9ucy5jaGVja291dFdpdGggPz8ge30pO1xuXG4gICAgY29uc3QgcHJlQnVpbGRTdGVwcyA9IG9wdGlvbnMucHJlQnVpbGRTdGVwcyA/PyBbXTtcbiAgICBjb25zdCBwb3N0QnVpbGRTdGVwcyA9IG9wdGlvbnMucG9zdEJ1aWxkU3RlcHMgPz8gW107XG4gICAgY29uc3QgZ2l0SWRlbnRpdHkgPSBvcHRpb25zLmdpdElkZW50aXR5ID8/IERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUjtcblxuICAgIGlmICh0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSkge1xuICAgICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiVXBsb2FkIGFydGlmYWN0XCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAdjNcIixcbiAgICAgICAgLy8gU2V0dGluZyB0byBhbHdheXMgd2lsbCBlbnN1cmUgdGhhdCB0aGlzIHN0ZXAgd2lsbCBydW4gZXZlbiBpZlxuICAgICAgICAvLyB0aGUgcHJldmlvdXMgb25lcyBoYXZlIGZhaWxlZCAoZS5nLiBjb3ZlcmFnZSByZXBvcnQsIGludGVybmFsIGxvZ3MsIGV0YylcbiAgICAgICAgaWY6IFwiYWx3YXlzKClcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIG5hbWU6IHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICAgIHBhdGg6IHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgam9iOiBKb2IgPSB7XG4gICAgICAuLi5maWx0ZXJlZFJ1bnNPbk9wdGlvbnMob3B0aW9ucy5ydW5zT24sIG9wdGlvbnMucnVuc09uR3JvdXApLFxuICAgICAgY29udGFpbmVyOiBvcHRpb25zLmNvbnRhaW5lcixcbiAgICAgIGVudjogb3B0aW9ucy5lbnYsXG4gICAgICBwZXJtaXNzaW9uczogb3B0aW9ucy5wZXJtaXNzaW9ucyxcbiAgICAgIGlmOiBvcHRpb25zLmNvbmRpdGlvbixcbiAgICAgIG91dHB1dHM6IG9wdGlvbnMub3V0cHV0cyxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLnByZUNoZWNrb3V0U3RlcHMsXG5cbiAgICAgICAgLy8gY2hlY2sgb3V0IHNvdXJjZXMuXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIkNoZWNrb3V0XCIsXG4gICAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0QHYzXCIsXG4gICAgICAgICAgLi4uKE9iamVjdC5rZXlzKGNoZWNrb3V0V2l0aCkubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyB7IHdpdGg6IGNoZWNrb3V0V2l0aCB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBzZXRzIGdpdCBpZGVudGl0eSBzbyB3ZSBjYW4gcHVzaCBsYXRlclxuICAgICAgICAuLi5Xb3JrZmxvd0FjdGlvbnMuc2V0dXBHaXRJZGVudGl0eShnaXRJZGVudGl0eSksXG5cbiAgICAgICAgLi4ucHJlQnVpbGRTdGVwcyxcblxuICAgICAgICAvLyBydW4gdGhlIG1haW4gYnVpbGQgdGFza1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogb3B0aW9ucy50YXNrLm5hbWUsXG4gICAgICAgICAgcnVuOiB0aGlzLmdpdGh1Yi5wcm9qZWN0LnJ1blRhc2tDb21tYW5kKG9wdGlvbnMudGFzayksXG4gICAgICAgIH0sXG5cbiAgICAgICAgLi4ucG9zdEJ1aWxkU3RlcHMsXG4gICAgICBdLFxuICAgIH07XG5cbiAgICB0aGlzLmFkZEpvYnMoeyBbdGhpcy5qb2JJZF06IGpvYiB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGdpdCBpZGVudGl0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdXNlci5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIGdpdCB1c2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -157,5 +157,5 @@ class WorkflowActions {
|
|
|
157
157
|
}
|
|
158
158
|
exports.WorkflowActions = WorkflowActions;
|
|
159
159
|
_a = JSII_RTTI_SYMBOL_1;
|
|
160
|
-
WorkflowActions[_a] = { fqn: "projen.github.WorkflowActions", version: "0.
|
|
160
|
+
WorkflowActions[_a] = { fqn: "projen.github.WorkflowActions", version: "0.78.0" };
|
|
161
161
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvd29ya2Zsb3ctYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDJDQUEwRDtBQUcxRCxTQUFTLE9BQU8sQ0FBQyxLQUFhO0lBQzVCLE9BQU8sUUFBUSxLQUFLLEtBQUssQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2hELE1BQU0sT0FBTyxHQUFHLEdBQUcsVUFBVSxJQUFJLElBQUksaUJBQWlCLE1BQU0sRUFBRSxDQUFDO0FBQy9ELE1BQU0sc0JBQXNCLEdBQUcsYUFBYSxDQUFDO0FBQzdDLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXpDOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUN6RCxNQUFNLGVBQWUsR0FBRyxTQUFTLE9BQU8sQ0FBQyxNQUFNLFlBQVksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hGLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksc0JBQXNCLENBQUM7UUFFbkUsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxnQkFBZ0I7Z0JBQzFDLEdBQUcsRUFBRTtvQkFDSCxXQUFXO29CQUNYLDJDQUEyQyxjQUFjLGFBQWEsT0FBTyxDQUFDLFVBQVUsMEJBQTBCO2lCQUNuSCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtZ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LENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztRQUVuRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsTUFBTSxXQUFXLEdBQUc7WUFDbEIsR0FBRyxzQkFBc0IsaUNBQWlDO1lBQzFELEVBQUU7WUFDRixtQkFBbUIsT0FBTyxFQUFFO1lBQzVCLEVBQUU7WUFDRixRQUFRO1lBQ1IsRUFBRTtZQUNGLDZDQUE2QyxZQUFZLGFBQWE7U0FDdkUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFYixPQUFPO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsRUFBRSxFQUFFLE1BQU07Z0JBQ1YsSUFBSSxFQUFFLG9DQUFvQztnQkFDMUMsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVE7b0JBQ3BDLGdCQUFnQixFQUFFLEdBQUcsS0FBSyxPQUFPLFdBQVcsRUFBRTtvQkFDOUMsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVTtvQkFDeEIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVM7b0JBQzlDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTO29CQUNwRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLFNBQVMsRUFBRSxTQUFTO29CQUNwQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJO2lCQUNqQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBdEpILDBDQXVKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdpdElkZW50aXR5LCBHaXRodWJDcmVkZW50aWFscyB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEpvYlN0ZXAgfSBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcblxuZnVuY3Rpb24gY29udGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gIHJldHVybiBgXFwke3sgJHt2YWx1ZX0gfX1gO1xufVxuXG5jb25zdCBSRVBPID0gY29udGV4dChcImdpdGh1Yi5yZXBvc2l0b3J5XCIpO1xuY29uc3QgUlVOX0lEID0gY29udGV4dChcImdpdGh1Yi5ydW5faWRcIik7XG5jb25zdCBTRVJWRVJfVVJMID0gY29udGV4dChcImdpdGh1Yi5zZXJ2ZXJfdXJsXCIpO1xuY29uc3QgUlVOX1VSTCA9IGAke1NFUlZFUl9VUkx9LyR7UkVQT30vYWN0aW9ucy9ydW5zLyR7UlVOX0lEfWA7XG5jb25zdCBHSVRfUEFUQ0hfRklMRV9ERUZBVUxUID0gXCIucmVwby5wYXRjaFwiO1xuY29uc3QgUlVOTkVSX1RFTVAgPSBcIiR7eyBydW5uZXIudGVtcCB9fVwiO1xuXG4vKipcbiAqIEEgc2V0IG9mIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBHaXRIdWIgYWN0aW9ucyBpbiB3b3JrZmxvd3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0FjdGlvbnMge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIC5wYXRjaCBmaWxlIGZyb20gdGhlIGN1cnJlbnQgZ2l0IGRpZmYgYW5kIHVwbG9hZHMgaXQgYXMgYW5cbiAgICogYXJ0aWZhY3QuIFVzZSBgY2hlY2tvdXRXaXRoUGF0Y2hgIHRvIGRvd25sb2FkIGFuZCBhcHBseSBpbiBhbm90aGVyIGpvYi5cbiAgICpcbiAgICogSWYgYSBwYXRjaCB3YXMgdXBsb2FkZWQsIHRoZSBhY3Rpb24gY2FuIG9wdGlvbmFsbHkgZmFpbCB0aGUgam9iLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqIEByZXR1cm5zIEpvYiBzdGVwc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1cGxvYWRHaXRQYXRjaChvcHRpb25zOiBVcGxvYWRHaXRQYXRjaE9wdGlvbnMpOiBKb2JTdGVwW10ge1xuICAgIGNvbnN0IE1VVEFUSU9OU19GT1VORCA9IGBzdGVwcy4ke29wdGlvbnMuc3RlcElkfS5vdXRwdXRzLiR7b3B0aW9ucy5vdXRwdXROYW1lfWA7XG4gICAgY29uc3QgR0lUX1BBVENIX0ZJTEUgPSBvcHRpb25zLnBhdGNoRmlsZSA/PyBHSVRfUEFUQ0hfRklMRV9ERUZBVUxUO1xuXG4gICAgY29uc3Qgc3RlcHM6IEpvYlN0ZXBbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IG9wdGlvbnMuc3RlcElkLFxuICAgICAgICBuYW1lOiBvcHRpb25zLnN0ZXBOYW1lID8/IFwiRmluZCBtdXRhdGlvbnNcIixcbiAgICAgICAgcnVuOiBbXG4gICAgICAgICAgXCJnaXQgYWRkIC5cIixcbiAgICAgICAgICBgZ2l0IGRpZmYgLS1zdGFnZWQgLS1wYXRjaCAtLWV4aXQtY29kZSA+ICR7R0lUX1BBVENIX0ZJTEV9IHx8IGVjaG8gXCIke29wdGlvbnMub3V0cHV0TmFtZX09dHJ1ZVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWY6IE1VVEFUSU9OU19GT1VORCxcbiAgICAgICAgbmFtZTogXCJVcGxvYWQgcGF0Y2hcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2M1wiLFxuICAgICAgICB3aXRoOiB7IG5hbWU6IEdJVF9QQVRDSF9GSUxFLCBwYXRoOiBHSVRfUEFUQ0hfRklMRSB9LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgaWYgKG9wdGlvbnMubXV0YXRpb25FcnJvcikge1xuICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiRmFpbCBidWlsZCBvbiBtdXRhdGlvblwiLFxuICAgICAgICBpZjogTVVUQVRJT05TX0ZPVU5ELFxuICAgICAgICBydW46IFtcbiAgICAgICAgICBgZWNobyBcIjo6ZXJyb3I6OiR7b3B0aW9ucy5tdXRhdGlvbkVycm9yfVwiYCxcbiAgICAgICAgICBgY2F0ICR7R0lUX1BBVENIX0ZJTEV9YCxcbiAgICAgICAgICBcImV4aXQgMVwiLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RlcHM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIG91dCBhIHJlcG9zaXRvcnkgYW5kIGFwcGxpZXMgYSBnaXQgcGF0Y2ggdGhhdCB3YXMgY3JlYXRlZCB1c2luZ1xuICAgKiBgdXBsb2FkR2l0UGF0Y2hgLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqIEByZXR1cm5zIEpvYiBzdGVwc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaGVja291dFdpdGhQYXRjaChcbiAgICBvcHRpb25zOiBDaGVja291dFdpdGhQYXRjaE9wdGlvbnMgPSB7fVxuICApOiBKb2JTdGVwW10ge1xuICAgIGNvbnN0IEdJVF9QQVRDSF9GSUxFID0gb3B0aW9ucy5wYXRjaEZpbGUgPz8gR0lUX1BBVENIX0ZJTEVfREVGQVVMVDtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0QHYzXCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICB0b2tlbjogb3B0aW9ucy50b2tlbixcbiAgICAgICAgICByZWY6IG9wdGlvbnMucmVmLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IG9wdGlvbnMucmVwb3NpdG9yeSxcbiAgICAgICAgICAuLi4ob3B0aW9ucy5sZnMgPyB7IGxmczogdHJ1ZSB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJEb3dubG9hZCBwYXRjaFwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RAdjNcIixcbiAgICAgICAgd2l0aDogeyBuYW1lOiBHSVRfUEFUQ0hfRklMRSwgcGF0aDogUlVOTkVSX1RFTVAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQXBwbHkgcGF0Y2hcIixcbiAgICAgICAgcnVuOiBgWyAtcyAke1JVTk5FUl9URU1QfS8ke0dJVF9QQVRDSF9GSUxFfSBdICYmIGdpdCBhcHBseSAke1JVTk5FUl9URU1QfS8ke0dJVF9QQVRDSF9GSUxFfSB8fCBlY2hvIFwiRW1wdHkgcGF0Y2guIFNraXBwaW5nLlwiYCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBnaXQgaWRlbnRpdHkgKHVzZXIgbmFtZSBhbmQgZW1haWwpLlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkZW50aXR5IHRvIHVzZVxuICAgKiBAcmV0dXJucyBKb2Igc3RlcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2V0dXBHaXRJZGVudGl0eShpZDogR2l0SWRlbnRpdHkpOiBKb2JTdGVwW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0IGdpdCBpZGVudGl0eVwiLFxuICAgICAgICBydW46IFtcbiAgICAgICAgICBgZ2l0IGNvbmZpZyB1c2VyLm5hbWUgXCIke2lkLm5hbWV9XCJgLFxuICAgICAgICAgIGBnaXQgY29uZmlnIHVzZXIuZW1haWwgXCIke2lkLmVtYWlsfVwiYCxcbiAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3RlcCB0aGF0IGNyZWF0ZXMgYSBwdWxsIHJlcXVlc3QgYmFzZWQgb24gdGhlIGN1cnJlbnQgcmVwbyBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKiBAcmV0dXJucyBKb2Igc3RlcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlUHVsbFJlcXVlc3QoXG4gICAgb3B0aW9uczogQ3JlYXRlUHVsbFJlcXVlc3RPcHRpb25zXG4gICk6IEpvYlN0ZXBbXSB7XG4gICAgY29uc3Qgd29ya2Zsb3dOYW1lID0gb3B0aW9ucy53b3JrZmxvd05hbWU7XG4gICAgY29uc3QgYnJhbmNoTmFtZSA9IG9wdGlvbnMuYnJhbmNoTmFtZSA/PyBgZ2l0aHViLWFjdGlvbnMvJHt3b3JrZmxvd05hbWV9YDtcbiAgICBjb25zdCBzdGVwSWQgPSBvcHRpb25zLnN0ZXBJZCA/PyBcImNyZWF0ZS1wclwiO1xuICAgIGNvbnN0IHN0ZXBOYW1lID0gb3B0aW9ucy5zdGVwTmFtZSA/PyBcIkNyZWF0ZSBQdWxsIFJlcXVlc3RcIjtcbiAgICBjb25zdCBnaXRJZGVudGl0eSA9IG9wdGlvbnMuZ2l0SWRlbnRpdHkgPz8gREVGQVVMVF9HSVRIVUJfQUNUSU9OU19VU0VSO1xuICAgIGNvbnN0IGNvbW1pdHRlciA9IGAke2dpdElkZW50aXR5Lm5hbWV9IDwke2dpdElkZW50aXR5LmVtYWlsfT5gO1xuICAgIGNvbnN0IHB1bGxSZXF1ZXN0RGVzY3JpcHRpb24gPSBvcHRpb25zLnB1bGxSZXF1ZXN0RGVzY3JpcHRpb25cbiAgICAgIC50cmltRW5kKClcbiAgICAgIC5lbmRzV2l0aChcIi5cIilcbiAgICAgID8gb3B0aW9ucy5wdWxsUmVxdWVzdERlc2NyaXB0aW9uLnRyaW1FbmQoKVxuICAgICAgOiBgJHtvcHRpb25zLnB1bGxSZXF1ZXN0RGVzY3JpcHRpb24udHJpbUVuZCgpfS5gO1xuXG4gICAgY29uc3QgdGl0bGUgPSBvcHRpb25zLnB1bGxSZXF1ZXN0VGl0bGU7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBbXG4gICAgICBgJHtwdWxsUmVxdWVzdERlc2NyaXB0aW9ufSBTZWUgZGV0YWlscyBpbiBbd29ya2Zsb3cgcnVuXS5gLFxuICAgICAgXCJcIixcbiAgICAgIGBbV29ya2Zsb3cgUnVuXTogJHtSVU5fVVJMfWAsXG4gICAgICBcIlwiLFxuICAgICAgXCItLS0tLS1cIixcbiAgICAgIFwiXCIsXG4gICAgICBgKkF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBwcm9qZW4gdmlhIHRoZSBcIiR7d29ya2Zsb3dOYW1lfVwiIHdvcmtmbG93KmAsXG4gICAgXS5qb2luKFwiXFxuXCIpO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogc3RlcE5hbWUsXG4gICAgICAgIGlkOiBzdGVwSWQsXG4gICAgICAgIHVzZXM6IFwicGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEB2NFwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgdG9rZW46IG9wdGlvbnMuY3JlZGVudGlhbHM/LnRva2VuUmVmLFxuICAgICAgICAgIFwiY29tbWl0LW1lc3NhZ2VcIjogYCR7dGl0bGV9XFxuXFxuJHtkZXNjcmlwdGlvbn1gLFxuICAgICAgICAgIGJyYW5jaDogYnJhbmNoTmFtZSxcbiAgICAgICAgICBiYXNlOiBvcHRpb25zLmJhc2VCcmFuY2gsXG4gICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgIGxhYmVsczogb3B0aW9ucy5sYWJlbHM/LmpvaW4oXCIsXCIpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICBhc3NpZ25lZXM6IG9wdGlvbnMuYXNzaWduZWVzPy5qb2luKFwiLFwiKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgYm9keTogZGVzY3JpcHRpb24sXG4gICAgICAgICAgYXV0aG9yOiBjb21taXR0ZXIsXG4gICAgICAgICAgY29tbWl0dGVyOiBjb21taXR0ZXIsXG4gICAgICAgICAgc2lnbm9mZjogb3B0aW9ucy5zaWdub2ZmID8/IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgY2hlY2tvdXRXaXRoUGF0Y2hgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrb3V0V2l0aFBhdGNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXJ0aWZhY3QgdGhlIHBhdGNoIGlzIHN0b3JlZCBhcy5cbiAgICogQGRlZmF1bHQgXCIucmVwby5wYXRjaFwiXG4gICAqL1xuICByZWFkb25seSBwYXRjaEZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgR2l0SHViIHRva2VuIHRvIHVzZSB3aGVuIGNoZWNraW5nIG91dCB0aGUgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogSWYgdGhlIGludGVudCBpcyB0byBwdXNoIGNoYW5nZXMgYmFjayB0byB0aGUgYnJhbmNoLCB0aGVuIHlvdSBtdXN0IHVzZSBhXG4gICAqIFBBVCB3aXRoIGByZXBvYCAoYW5kIHBvc3NpYmx5IGB3b3JrZmxvd3NgKSBwZXJtaXNzaW9ucy5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBHSVRIVUJfVE9LRU4gaXMgaW1wbGljaXRseSB1c2VkXG4gICAqL1xuICByZWFkb25seSB0b2tlbj86IHN0cmluZztcblxuICAvKipcbiAgICogQnJhbmNoIG9yIHRhZyBuYW1lLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IGJyYW5jaCBpcyBpbXBsaWNpdGx5IHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgKG93bmVyL3JlcG8pIHRvIHVzZS5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCByZXBvc2l0b3J5IGlzIGltcGxpY2l0bHkgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBMRlMgaXMgZW5hYmxlZCBmb3IgdGhlIEdpdEh1YiByZXBvc2l0b3J5XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsZnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGB1cGxvYWRHaXRQYXRjaGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkR2l0UGF0Y2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzdGVwIElEIHdoaWNoIHByb2R1Y2VzIHRoZSBvdXRwdXQgd2hpY2ggaW5kaWNhdGVzIGlmIGEgcGF0Y2ggd2FzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBzdGVwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0ZXAuXG4gICAqIEBkZWZhdWx0IFwiRmluZCBtdXRhdGlvbnNcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3RlcE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhcnRpZmFjdCB0aGUgcGF0Y2ggaXMgc3RvcmVkIGFzLlxuICAgKiBAZGVmYXVsdCBcIi5yZXBvLnBhdGNoXCJcbiAgICovXG4gIHJlYWRvbmx5IHBhdGNoRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG91dHB1dCB0byBlbWl0LiBJdCB3aWxsIGJlIHNldCB0byBgdHJ1ZWAgaWYgdGhlcmUgd2FzIGEgZGlmZi5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRmFpbCBpZiBhIG11dGF0aW9uIHdhcyBmb3VuZCBhbmQgcHJpbnQgdGhpcyBlcnJvciBtZXNzYWdlLlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBmYWlsIHVwb24gbXV0YXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG11dGF0aW9uRXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUHVsbFJlcXVlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzdGVwIElEIHdoaWNoIHByb2R1Y2VzIHRoZSBvdXRwdXQgd2hpY2ggaW5kaWNhdGVzIGlmIGEgcGF0Y2ggd2FzIGNyZWF0ZWQuXG4gICAqIEBkZWZhdWx0IFwiY3JlYXRlX3ByXCJcbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0ZXAgZGlzcGxheWVkIG9uIEdpdEh1Yi5cbiAgICogQGRlZmF1bHQgXCJDcmVhdGUgUHVsbCBSZXF1ZXN0XCJcbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgam9iIGNyZWRlbnRpYWxzIHVzZWQgdG8gY3JlYXRlIHRoZSBwdWxsIHJlcXVlc3QuXG4gICAqXG4gICAqIFByb3ZpZGVkIGNyZWRlbnRpYWxzIG11c3QgaGF2ZSBwZXJtaXNzaW9ucyB0byBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFscz86IEdpdGh1YkNyZWRlbnRpYWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cgdGhhdCB3aWxsIGNyZWF0ZSB0aGUgUFJcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbCB0aXRsZSB1c2VkIHRvIGNyZWF0ZSB0aGUgcHVsbCByZXF1ZXN0LlxuICAgKlxuICAgKiBJZiBQUiB0aXRsZXMgYXJlIHZhbGlkYXRlZCBpbiB0aGlzIHJlcG8sIHRoZSB0aXRsZSBzaG91bGQgY29tcGx5IHdpdGggdGhlIHJlc3BlY3RpdmUgcnVsZXMuXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdFRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGFkZGVkIHRvIHRoZSBwdWxsIHJlcXVlc3QuXG4gICAqXG4gICAqIFByb3ZpZGVuY2UgaW5mb3JtYXRpb24gYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQuXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdERlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1bGwgcmVxdWVzdCBiYXNlIGJyYW5jaC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgYnJhbmNoIGNoZWNrZWQgb3V0IGluIHRoZSB3b3JrZmxvdy5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwdWxsIHJlcXVlc3QgYnJhbmNoIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBnaXRodWItYWN0aW9ucy8ke29wdGlvbnMud29ya2Zsb3dOYW1lfWBcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnaXQgaWRlbnRpdHkgdXNlZCB0byBjcmVhdGUgdGhlIGNvbW1pdC5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBnaXRodWItYWN0aW9ucyB1c2VyXG4gICAqL1xuICByZWFkb25seSBnaXRJZGVudGl0eT86IEdpdElkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBBZGQgU2lnbmVkLW9mZi1ieSBsaW5lIGJ5IHRoZSBjb21taXR0ZXIgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWl0IGxvZyBtZXNzYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzaWdub2ZmPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGFiZWxzIHRvIGFwcGx5IG9uIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsYWJlbHMuXG4gICAqL1xuICByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQXNzaWduZWVzIHRvIGFkZCBvbiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXNzaWduZWVzXG4gICAqL1xuICByZWFkb25seSBhc3NpZ25lZXM/OiBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -41,5 +41,5 @@ class WorkflowJobs {
|
|
|
41
41
|
}
|
|
42
42
|
exports.WorkflowJobs = WorkflowJobs;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
WorkflowJobs[_a] = { fqn: "projen.github.WorkflowJobs", version: "0.
|
|
44
|
+
WorkflowJobs[_a] = { fqn: "projen.github.WorkflowJobs", version: "0.78.0" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctam9icy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvd29ya2Zsb3ctam9icy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdCQUtXO0FBQ1gsMkNBQTBEO0FBRTFELHNEQUE4RTtBQUU5RTs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUN2Qjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxPQUFvQztRQUVwQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLHFCQUFxQixDQUFDO1FBQ3pELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksdUNBQTJCLENBQUM7UUFFdkUsTUFBTSxLQUFLLEdBQWM7WUFDdkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMxQyxHQUFHLGtCQUFlLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuRCxHQUFHLGtCQUFlLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1lBQ2hELEdBQUcsa0JBQWUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDbkMsR0FBRyxPQUFPO2dCQUNWLFdBQVc7YUFDWixDQUFDO1NBQ0gsQ0FBQztRQUVGLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTztZQUNiLEVBQUUsRUFBRSxjQUFjLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLO1lBQzlFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzVCLFdBQVcsRUFBRTtnQkFDWCxRQUFRLEVBQUUsWUFBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJO2FBQ3ZDO1lBQ0QsR0FBRyxJQUFBLHNDQUFxQixFQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM3RCxLQUFLO1NBQ04sQ0FBQztJQUNKLENBQUM7O0FBaENILG9DQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoZWNrb3V0V2l0aFBhdGNoT3B0aW9ucyxcbiAgQ3JlYXRlUHVsbFJlcXVlc3RPcHRpb25zLFxuICBXb3JrZmxvd0FjdGlvbnMsXG4gIHdvcmtmbG93cyxcbn0gZnJvbSBcIi5cIjtcbmltcG9ydCB7IERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSm9iLCBKb2JTdGVwIH0gZnJvbSBcIi4vd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBHcm91cFJ1bm5lck9wdGlvbnMsIGZpbHRlcmVkUnVuc09uT3B0aW9ucyB9IGZyb20gXCIuLi9ydW5uZXItb3B0aW9uc1wiO1xuXG4vKipcbiAqIEEgc2V0IG9mIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBqb2JzIGluIEdpdEh1YiBXb3JrZmxvd3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0pvYnMge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHB1bGwgcmVxdWVzdCB3aXRoIHRoZSBjaGFuZ2VzIG9mIGEgcGF0Y2ggZmlsZS5cbiAgICpcbiAgICogQHJldHVybnMgSm9iXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHB1bGxSZXF1ZXN0RnJvbVBhdGNoKFxuICAgIG9wdGlvbnM6IFB1bGxSZXF1ZXN0RnJvbVBhdGNoT3B0aW9uc1xuICApOiBKb2Ige1xuICAgIGNvbnN0IGpvYk5hbWUgPSBvcHRpb25zLmpvYk5hbWUgPz8gXCJDcmVhdGUgUHVsbCBSZXF1ZXN0XCI7XG4gICAgY29uc3QgZ2l0SWRlbnRpdHkgPSBvcHRpb25zLmdpdElkZW50aXR5ID8/IERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUjtcblxuICAgIGNvbnN0IHN0ZXBzOiBKb2JTdGVwW10gPSBbXG4gICAgICAuLi4ob3B0aW9ucy5jcmVkZW50aWFscz8uc2V0dXBTdGVwcyB8fCBbXSksXG4gICAgICAuLi5Xb3JrZmxvd0FjdGlvbnMuY2hlY2tvdXRXaXRoUGF0Y2gob3B0aW9ucy5wYXRjaCksXG4gICAgICAuLi5Xb3JrZmxvd0FjdGlvbnMuc2V0dXBHaXRJZGVudGl0eShnaXRJZGVudGl0eSksXG4gICAgICAuLi5Xb3JrZmxvd0FjdGlvbnMuY3JlYXRlUHVsbFJlcXVlc3Qoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBnaXRJZGVudGl0eSxcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogam9iTmFtZSxcbiAgICAgIGlmOiBgXFwke3sgbmVlZHMuJHtvcHRpb25zLnBhdGNoLmpvYklkfS5vdXRwdXRzLiR7b3B0aW9ucy5wYXRjaC5vdXRwdXROYW1lfSB9fWAsXG4gICAgICBuZWVkczogW29wdGlvbnMucGF0Y2guam9iSWRdLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IHdvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICB9LFxuICAgICAgLi4uZmlsdGVyZWRSdW5zT25PcHRpb25zKG9wdGlvbnMucnVuc09uLCBvcHRpb25zLnJ1bnNPbkdyb3VwKSxcbiAgICAgIHN0ZXBzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdFBhdGNoU291cmNlIGV4dGVuZHMgQ2hlY2tvdXRXaXRoUGF0Y2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgam9iIHRoYXQgY3JlYXRlZCB0aGUgcGF0Y2ggZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG91dHB1dCB0aGF0IGluZGljYXRlcyBpZiBhIHBhdGNoIGhhcyBiZWVuIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdEZyb21QYXRjaE9wdGlvbnMgZXh0ZW5kcyBDcmVhdGVQdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhdGNoIHRoYXQgaXMgdXNlZCB0byBjcmVhdGUgdGhlIHB1bGwgcmVxdWVzdC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGNoOiBQdWxsUmVxdWVzdFBhdGNoU291cmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iIGRpc3BsYXllZCBvbiBHaXRIdWIuXG4gICAqIEBkZWZhdWx0IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiXG4gICAqL1xuICByZWFkb25seSBqb2JOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRodWIgUnVubmVyIHNlbGVjdGlvbiBsYWJlbHNcbiAgICogQGRlZmF1bHQgW1widWJ1bnR1LWxhdGVzdFwiXVxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyBhIHRhcmdldCBSdW5uZXIgYnkgbGFiZWxzXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBpZiBib3RoIGBydW5zT25gIGFuZCBgcnVuc09uR3JvdXBgIGFyZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnNPbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHaXRodWIgUnVubmVyIEdyb3VwIHNlbGVjdGlvbiBvcHRpb25zXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGEgdGFyZ2V0IFJ1bm5lciBHcm91cCBieSBuYW1lIGFuZC9vciBsYWJlbHNcbiAgICogQHRocm93cyB7RXJyb3J9IGlmIGJvdGggYHJ1bnNPbmAgYW5kIGBydW5zT25Hcm91cGAgYXJlIHNwZWNpZmllZFxuICAgKi9cbiAgcmVhZG9ubHkgcnVuc09uR3JvdXA/OiBHcm91cFJ1bm5lck9wdGlvbnM7XG59XG4iXX0=
|
package/lib/github/workflows.js
CHANGED
|
@@ -119,7 +119,7 @@ class GithubWorkflow extends component_1.Component {
|
|
|
119
119
|
}
|
|
120
120
|
exports.GithubWorkflow = GithubWorkflow;
|
|
121
121
|
_a = JSII_RTTI_SYMBOL_1;
|
|
122
|
-
GithubWorkflow[_a] = { fqn: "projen.github.GithubWorkflow", version: "0.
|
|
122
|
+
GithubWorkflow[_a] = { fqn: "projen.github.GithubWorkflow", version: "0.78.0" };
|
|
123
123
|
function snakeCaseKeys(obj) {
|
|
124
124
|
if (typeof obj !== "object" || obj == null) {
|
|
125
125
|
return obj;
|
|
@@ -58,7 +58,7 @@ export interface Default {
|
|
|
58
58
|
readonly afterScript?: string[];
|
|
59
59
|
readonly artifacts?: Artifacts;
|
|
60
60
|
readonly beforeScript?: string[];
|
|
61
|
-
readonly cache?: Cache;
|
|
61
|
+
readonly cache?: Cache[];
|
|
62
62
|
readonly image?: Image;
|
|
63
63
|
readonly interruptible?: boolean;
|
|
64
64
|
readonly retry?: Retry;
|
|
@@ -261,7 +261,7 @@ export interface Job {
|
|
|
261
261
|
readonly allowFailure?: boolean | AllowFailure;
|
|
262
262
|
readonly artifacts?: Artifacts;
|
|
263
263
|
readonly beforeScript?: string[];
|
|
264
|
-
readonly cache?: Cache;
|
|
264
|
+
readonly cache?: Cache[];
|
|
265
265
|
/** Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'. Example: '/Code coverage: \d+\.\d+/'*/
|
|
266
266
|
readonly coverage?: string;
|
|
267
267
|
/** Specify a list of job names from earlier stages from which artifacts should be loaded. By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.*/
|
|
@@ -125,4 +125,4 @@ var WorkflowWhen;
|
|
|
125
125
|
WorkflowWhen["ALWAYS"] = "always";
|
|
126
126
|
WorkflowWhen["NEVER"] = "never";
|
|
127
127
|
})(WorkflowWhen || (exports.WorkflowWhen = WorkflowWhen = {}));
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRsYWIvY29uZmlndXJhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTJDO0FBQzNDLDhHQUE4RztBQUM5RyxpRUFBaUU7OztBQXFDakU7OztHQUdHO0FBQ0gsSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBQ3JCLG1HQUFtRztJQUNuRyw0QkFBYSxDQUFBO0lBQ2IsbUdBQW1HO0lBQ25HLDRCQUFhLENBQUE7SUFDYiwyR0FBMkc7SUFDM0csc0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVBXLFdBQVcsMkJBQVgsV0FBVyxRQU90QjtBQUVEOzs7R0FHRztBQUNILElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQixpREFBaUQ7SUFDakQsOEJBQWlCLENBQUE7SUFDakIsZ0RBQWdEO0lBQ2hELHNDQUF5QixDQUFBO0lBQ3pCLHlFQUF5RTtJQUN6RSxzQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBUFcsU0FBUyx5QkFBVCxTQUFTLFFBT3BCO0FBNkpEOzs7R0FHRztBQUNILElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQiw2QkFBZSxDQUFBO0lBQ2YsK0NBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQjtBQXVERDs7O0dBR0c7QUFDSCxJQUFZLE9BT1g7QUFQRCxXQUFZLE9BQU87SUFDakIsNEJBQWlCLENBQUE7SUFDakIsOEJBQW1CLENBQUE7SUFDbkIsNEJBQWlCLENBQUE7SUFDakIsMEJBQWUsQ0FBQTtJQUNmLG9DQUF5QixDQUFBO0lBQ3pCLG9DQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxPQUFPLHVCQUFQLE9BQU8sUUFPbEI7QUEyRkQ7Ozs7R0FJRztBQUNILElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0lBQ2YsdUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxNQUFNLHNCQUFOLE1BQU0sUUFJakI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLGNBTVg7QUFORCxXQUFZLGNBQWM7SUFDeEIsNkNBQTJCLENBQUE7SUFDM0IsaUNBQWUsQ0FBQTtJQUNmLDJDQUF5QixDQUFBO0lBQ3pCLHFDQUFtQixDQUFBO0lBQ25CLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxjQUFjLDhCQUFkLGNBQWMsUUFNekI7QUF5QkQ7O0dBRUc7QUFDSCxJQUFZLGNBRVg7QUFGRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUZXLGNBQWMsOEJBQWQsY0FBYyxRQUV6QjtBQWVELElBQVksY0FXWDtBQVhELFdBQVksY0FBYztJQUN4QiwrQ0FBNkIsQ0FBQTtJQUM3Qix5Q0FBdUIsQ0FBQTtJQUN2QixpREFBK0IsQ0FBQTtJQUMvQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtJQUNmLGlEQUErQixDQUFBO0lBQy9CLGlDQUFlLENBQUE7SUFDZix1Q0FBcUIsQ0FBQTtJQUNyQiwrQkFBYSxDQUFBO0lBQ2IscUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVhXLGNBQWMsOEJBQWQsY0FBYyxRQVd6QjtBQStERDs7R0FFRztBQUNILElBQVksUUFLWDtBQUxELFdBQVksUUFBUTtJQUNsQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtJQUNmLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxRQUFRLHdCQUFSLFFBQVEsUUFLbkI7QUF1RUQ7Ozs7R0FJRztBQUNILElBQVksUUFFWDtBQUZELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRlcsUUFBUSx3QkFBUixRQUFRLFFBRW5CO0FBdUNEOzs7O0dBSUc7QUFDSCxJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsaUNBQWlCLENBQUE7SUFDakIsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsWUFBWSw0QkFBWixZQUFZLFFBR3ZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1xuLy8gU2NoZW1hIGZyb206IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi8tL3Jhdy9tYXN0ZXIvYXBwL2Fzc2V0cy9qYXZhc2NyaXB0cy9lZGl0b3Ivc2NoZW1hL2NpLmpzb25cbi8vIEluaXRpYWwgVHlwZVNjcmlwdCBJbnRlcmZhY2VzIGZyb206IGh0dHBzOi8vYXBwLnF1aWNrdHlwZS5pby8jXG5cbi8qKlxuICogQ2FjaGUgRGVmaW5pdGlvbi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZSB7XG4gIC8qKiBEZWZpbmVzIHdoaWNoIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHRvIGNhY2hlLiAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKiBVc2VkIHRoZSB0byBnaXZlIGVhY2ggY2FjaGUgYSB1bmlxdWUgaWRlbnRpZnlpbmcga2V5LiBBbGwgam9icyB0aGF0IHVzZSB0aGUgc2FtZSBjYWNoZSBrZXkgdXNlIHRoZSBzYW1lIGNhY2hlLiAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmcgfCBDYWNoZUtleUZpbGVzO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSBhbGwgZmlsZXMgdGhhdCBhcmUgdW50cmFja2VkIGluIHlvdXIgR2l0IHJlcG9zaXRvcnkgd2lsbCBiZSBjYWNoZWQuICovXG4gIHJlYWRvbmx5IHVudHJhY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqIERlZmluZXMgdGhlIHVwbG9hZCBhbmQgZG93bmxvYWQgYmVoYXZpb3VyIG9mIHRoZSBjYWNoZS4gKi9cbiAgcmVhZG9ubHkgcG9saWN5PzogQ2FjaGVQb2xpY3k7XG5cbiAgLyoqIERlZmluZXMgd2hlbiB0byBzYXZlIHRoZSBjYWNoZSwgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgam9iIChEZWZhdWx0OiBKb2IgU3VjY2VzcykuICovXG4gIHJlYWRvbmx5IHdoZW4/OiBDYWNoZVdoZW47XG5cbiAgLyoqIFVzZSBjYWNoZTpmYWxsYmFja19rZXlzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGtleXMgdG8gdHJ5IHRvIHJlc3RvcmUgY2FjaGUgZnJvbSBpZiB0aGVyZSBpcyBubyBjYWNoZSBmb3VuZCBmb3IgdGhlIGNhY2hlOmtleS4gQ2FjaGVzIGFyZSByZXRyaWV2ZWQgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBpbiB0aGUgZmFsbGJhY2tfa2V5cyBzZWN0aW9uLiAqL1xuICByZWFkb25seSBmYWxsYmFja0tleXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBVc2UgdGhpcyBjb25zdHJ1Y3QgdG8gZ2VuZXJhdGUgYSBuZXcga2V5IHdoZW4gb25lIG9yIHR3byBzcGVjaWZpYyBmaWxlcyBjaGFuZ2UuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hla2V5ZmlsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZUtleUZpbGVzIHtcbiAgLyoqIFRoZSBmaWxlcyB0aGF0IGFyZSBjaGVja2VkIGFnYWluc3QuIElmIHRoZSBTSEEgY2hlY2tzdW0gY2hhbmdlcywgdGhlIGNhY2hlIGJlY29tZXMgaW52YWxpZC4gKi9cbiAgcmVhZG9ubHkgZmlsZXM6IHN0cmluZ1tdO1xuICAvKiogQWRkcyBhIGN1c3RvbSBwcmVmaXggdG8gdGhlIGNoZWNrc3VtcyBjb21wdXRlZC4gKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZSB0aGUgdXBsb2FkIGFuZCBkb3dubG9hZCBiZWhhdmlvdXIgb2YgYSBjYWNoZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGVwb2xpY3lcbiAqL1xuZXhwb3J0IGVudW0gQ2FjaGVQb2xpY3kge1xuICAvKiogT25seSBkb3dubG9hZCB0aGUgY2FjaGUgd2hlbiB0aGUgam9iIHN0YXJ0cywgYnV0IG5ldmVyIHVwbG9hZCBjaGFuZ2VzIHdoZW4gdGhlIGpvYiBmaW5pc2hlcy4gKi9cbiAgUFVMTCA9IFwicHVsbFwiLFxuICAvKiogT25seSB1cGxvYWQgYSBjYWNoZSB3aGVuIHRoZSBqb2IgZmluaXNoZXMsIGJ1dCBuZXZlciBkb3dubG9hZCB0aGUgY2FjaGUgd2hlbiB0aGUgam9iIHN0YXJ0cy4gKi9cbiAgUFVTSCA9IFwicHVzaFwiLFxuICAvKiogVGhlIGpvYiBkb3dubG9hZHMgdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBzdGFydHMsIGFuZCB1cGxvYWRzIGNoYW5nZXMgdG8gdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBlbmRzLiAqL1xuICBQVUxMX1BVU0ggPSBcInB1bGwtcHVzaFwiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyZSB3aGVuIGFydGlmYWN0cyBhcmUgdXBsb2FkZWQgZGVwZW5kZWQgb24gam9iIHN0YXR1cy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGV3aGVuXG4gKi9cbmV4cG9ydCBlbnVtIENhY2hlV2hlbiB7XG4gIC8qKiBVcGxvYWQgYXJ0aWZhY3RzIHJlZ2FyZGxlc3Mgb2Ygam9iIHN0YXR1cy4gKi9cbiAgQUxXQVlTID0gXCJhbHdheXNcIixcbiAgLyoqIFVwbG9hZCBhcnRpZmFjdHMgb25seSB3aGVuIHRoZSBqb2IgZmFpbHMuICovXG4gIE9OX0ZBSUxVUkUgPSBcIm9uX2ZhaWx1cmVcIixcbiAgLyoqIFVwbG9hZCBhcnRpZmFjdHMgb25seSB3aGVuIHRoZSBqb2Igc3VjY2VlZHMgKHRoaXMgaXMgdGhlIGRlZmF1bHQpLiAqL1xuICBPTl9TVUNDRVNTID0gXCJvbl9zdWNjZXNzXCIsXG59XG5cbi8qKlxuICogRGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIENJIENvbmZpZ3VyYXRpb24uIEpvYnMgdGhhdCBkbyBub3QgZGVmaW5lIG9uZSBvciBtb3JlIG9mIHRoZSBsaXN0ZWQga2V5d29yZHMgdXNlIHRoZSB2YWx1ZSBkZWZpbmVkIGluIHRoZSBkZWZhdWx0IHNlY3Rpb24uXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2RlZmF1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0IHtcbiAgLyogRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYWZ0ZXIqIGFsbCBqb2JzLiBDYW4gYmUgb3ZlcnJpZGVuIGJ5IHRoZSBqb2IgbGV2ZWwgYGFmdGVyU2NyaXB0LiAqL1xuICByZWFkb25seSBhZnRlclNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiBMaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgam9iIGlmIGl0IHN1Y2NlZWRzLiBBcnRpZmFjdHMgYXJlIHNlbnQgdG8gR2l0bGFiIHdoZXJlIHRoZXkgY2FuIGJlIGRvd25sb2FkZWQuICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IEFydGlmYWN0cztcbiAgLyogRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYmVmb3JlKiBhbGwgam9icy4gQ2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgam9iIGxldmVsIGBhZnRlclNjcmlwdGAuICovXG4gIHJlYWRvbmx5IGJlZm9yZVNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiBBIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNhY2hlIGJldHdlZW4gam9icy4gWW91IGNhbiBvbmx5IHVzZSBwYXRocyB0aGF0IGFyZSBpbiB0aGUgbG9jYWwgd29ya2luZyBjb3B5LiAqL1xuICByZWFkb25seSBjYWNoZT86IENhY2hlO1xuICAvKiBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgZG9ja2VyIGltYWdlIHRvIHVzZSBnbG9iYWxseSBmb3IgYWxsIGpvYnMuICovXG4gIHJlYWRvbmx5IGltYWdlPzogSW1hZ2U7XG4gIC8qIElmIGEgam9iIHNob3VsZCBiZSBjYW5jZWxlZCB3aGVuIGEgbmV3ZXIgcGlwZWxpbmUgc3RhcnRzIGJlZm9yZSB0aGUgam9iIGNvbXBsZXRlcyAoRGVmYXVsdDogZmFsc2UpLiovXG4gIHJlYWRvbmx5IGludGVycnVwdGlibGU/OiBib29sZWFuO1xuICAvKiBIb3cgbWFueSB0aW1lcyBhIGpvYiBpcyByZXRyaWVkIGlmIGl0IGZhaWxzLiBJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gMCBhbmQgam9icyBkbyBub3QgcmV0cnkuICovXG4gIHJlYWRvbmx5IHJldHJ5PzogUmV0cnk7XG4gIC8qIEFkZGl0aW9uYWwgRG9ja2VyIGltYWdlcyB0byBydW4gc2NyaXB0cyBpbi4gVGhlIHNlcnZpY2UgaW1hZ2UgaXMgbGlua2VkIHRvIHRoZSBpbWFnZSBzcGVjaWZpZWQgaW4gdGhlICBpbWFnZSBwYXJhbWV0ZXIuICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzPzogU2VydmljZVtdO1xuICAvKiBVc2VkIHRvIHNlbGVjdCBhIHNwZWNpZmljIHJ1bm5lciBmcm9tIHRoZSBsaXN0IG9mIGFsbCBydW5uZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHByb2plY3QuICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmdbXTtcbiAgLyogQSBkZWZhdWx0IHRpbWVvdXQgam9iIHdyaXR0ZW4gaW4gbmF0dXJhbCBsYW5ndWFnZSAoRXguIG9uZSBob3VyLCAzNjAwIHNlY29uZHMsIDYwIG1pbnV0ZXMpLiAqL1xuICByZWFkb25seSB0aW1lb3V0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IgaWYgaXRcbiAqIHN1Y2NlZWRzLiBBcnRpZmFjdHMgYXJlIHNlbnQgdG8gR2l0bGFiIHdoZXJlIHRoZXkgY2FuIGJlIGRvd25sb2FkZWQuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2FydGlmYWN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGlmYWN0cyB7XG4gIC8qKiBBIGxpc3Qgb2YgcGF0aHMgdG8gZmlsZXMvZm9sZGVycyB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBpbiB0aGUgYXJ0aWZhY3QuICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcbiAgLyoqIEhvdyBsb25nIGFydGlmYWN0cyBzaG91bGQgYmUga2VwdC4gVGhleSBhcmUgc2F2ZWQgMzAgZGF5cyBieSBkZWZhdWx0LiBBcnRpZmFjdHMgdGhhdCBoYXZlIGV4cGlyZWQgYXJlIHJlbW92ZWQgcGVyaW9kaWNhbGx5IHZpYSBjcm9uIGpvYi4gU3VwcG9ydHMgYSB3aWRlIHZhcmlldHkgb2YgZm9ybWF0cywgZS5nLiAnMSB3ZWVrJywgJzMgbWlucyA0IHNlYycsICcyIGhycyAyMCBtaW4nLCAnMmgyMG1pbicsICc2IG1vcyAxIGRheScsICc0NyB5cnMgNiBtb3MgYW5kIDRkJywgJzMgd2Vla3MgYW5kIDIgZGF5cycuICovXG4gIHJlYWRvbmx5IGV4cGlyZUluPzogc3RyaW5nO1xuICAvKiogQ2FuIGJlIHVzZWQgdG8gZXhwb3NlIGpvYiBhcnRpZmFjdHMgaW4gdGhlIG1lcmdlIHJlcXVlc3QgVUkuIEdpdExhYiB3aWxsIGFkZCBhIGxpbmsgPGV4cG9zZV9hcz4gdG8gdGhlIHJlbGV2YW50IG1lcmdlIHJlcXVlc3QgdGhhdCBwb2ludHMgdG8gdGhlIGFydGlmYWN0LiAqL1xuICByZWFkb25seSBleHBvc2VBcz86IHN0cmluZztcbiAgLyoqIE5hbWUgZm9yIHRoZSBhcmNoaXZlIGNyZWF0ZWQgb24gam9iIHN1Y2Nlc3MuIENhbiB1c2UgdmFyaWFibGVzIGluIHRoZSBuYW1lLCBlLmcuICckQ0lfSk9CX05BTUUnICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBBIGxpc3Qgb2YgcGF0aHMgdG8gZmlsZXMvZm9sZGVycyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgYXJ0aWZhY3QuICovXG4gIHJlYWRvbmx5IHBhdGhzPzogc3RyaW5nW107XG4gIC8qKiBSZXBvcnRzIHdpbGwgYmUgdXBsb2FkZWQgYXMgYXJ0aWZhY3RzLCBhbmQgb2Z0ZW4gZGlzcGxheWVkIGluIHRoZSBHaXRsYWIgVUksIHN1Y2ggYXMgaW4gTWVyZ2UgUmVxdWVzdHMuKi9cbiAgcmVhZG9ubHkgcmVwb3J0cz86IFJlcG9ydHM7XG4gIC8qKiBXaGV0aGVyIHRvIGFkZCBhbGwgdW50cmFja2VkIGZpbGVzIChhbG9uZyB3aXRoICdhcnRpZmFjdHMucGF0aHMnKSB0byB0aGUgYXJ0aWZhY3QuKi9cbiAgcmVhZG9ubHkgdW50cmFja2VkPzogYm9vbGVhbjtcbiAgLyoqIENvbmZpZ3VyZSB3aGVuIGFydGlmYWN0cyBhcmUgdXBsb2FkZWQgZGVwZW5kZWQgb24gam9iIHN0YXR1cy4qL1xuICByZWFkb25seSB3aGVuPzogQ2FjaGVXaGVuO1xufVxuXG4vKipcbiAqIENvZGUgY292ZXJhZ2UgcmVwb3J0IGludGVyZmFjZVxuICogQGxpbmsgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9hcnRpZmFjdHNfcmVwb3J0cy5odG1sI2FydGlmYWN0c3JlcG9ydHNjb3ZlcmFnZV9yZXBvcnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZVJlcG9ydCB7XG4gIHJlYWRvbmx5IGNvdmVyYWdlRm9ybWF0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXBvcnRzIHdpbGwgYmUgdXBsb2FkZWQgYXMgYXJ0aWZhY3RzLCBhbmQgb2Z0ZW4gZGlzcGxheWVkIGluIHRoZSBHaXRsYWIgVUksIHN1Y2ggYXMgaW5cbiAqIE1lcmdlIFJlcXVlc3RzLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNhcnRpZmFjdHNyZXBvcnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0cyB7XG4gIC8qKiBQYXRoIGZvciBmaWxlKHMpIHRoYXQgc2hvdWxkIGJlIHBhcnNlZCBhcyBDb2JlcnR1cmEgWE1MIGNvdmVyYWdlIHJlcG9ydFxuICAgKiBAZGVwcmVjYXRlZCBwZXIge0BsaW5rIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL3VwZGF0ZS9kZXByZWNhdGlvbnMuaHRtbCNhcnRpZmFjdHNyZXBvcnRzY29iZXJ0dXJhLWtleXdvcmR9IHVzZSB7QGxpbmsgY292ZXJhZ2VSZXBvcnR9IGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IGNvYmVydHVyYT86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjb2RlIHF1YWxpdHkgcmVwb3J0KHMpIChzdWNoIGFzIENvZGUgQ2xpbWF0ZSkuKi9cbiAgcmVhZG9ubHkgY29kZXF1YWxpdHk/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggQ29udGFpbmVyIHNjYW5uaW5nIHZ1bG5lcmFiaWxpdGllcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyU2Nhbm5pbmc/OiBzdHJpbmdbXTtcbiAgLyoqIENvZGUgY292ZXJhZ2UgcmVwb3J0IGluZm9ybWF0aW9uICovXG4gIHJlYWRvbmx5IGNvdmVyYWdlUmVwb3J0PzogQ292ZXJhZ2VSZXBvcnQ7XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIERBU1QgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBkYXN0Pzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIERlcGVuZGVuY3kgc2Nhbm5pbmcgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBkZXBlbmRlbmN5U2Nhbm5pbmc/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIGNvbnRhaW5pbmcgcnVudGltZS1jcmVhdGVkIHZhcmlhYmxlcyBmb3IgdGhpcyBqb2IuKi9cbiAgcmVhZG9ubHkgZG90ZW52Pzogc3RyaW5nW107XG4gIC8qKiBQYXRoIGZvciBmaWxlKHMpIHRoYXQgc2hvdWxkIGJlIHBhcnNlZCBhcyBKVW5pdCBYTUwgcmVzdWx0Ki9cbiAgcmVhZG9ubHkganVuaXQ/OiBzdHJpbmdbXTtcbiAgLyoqIERlcHJlY2F0ZWQgaW4gMTIuODogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBsaWNlbnNlIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBsaWNlbnNlTWFuYWdlbWVudD86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBsaWNlbnNlIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBsaWNlbnNlU2Nhbm5pbmc/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIGNvbnRhaW5pbmcgY29kZSBpbnRlbGxpZ2VuY2UgKExhbmd1YWdlIFNlcnZlciBJbmRleCBGb3JtYXQpLiovXG4gIHJlYWRvbmx5IGxzaWY/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggY3VzdG9tIG1ldHJpY3MgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IG1ldHJpY3M/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggcGVyZm9ybWFuY2UgbWV0cmljcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgcGVyZm9ybWFuY2U/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggcmVxdWlyZW1lbnRzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSByZXF1aXJlbWVudHM/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggU0FTVCB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IHNhc3Q/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggc2VjcmV0IGRldGVjdGlvbiByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgc2VjcmV0RGV0ZWN0aW9uPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIHRlcnJhZm9ybSBwbGFuKHMpLiovXG4gIHJlYWRvbmx5IHRlcnJhZm9ybT86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIGlkX3Rva2VucyBEZWZpbml0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNpZF90b2tlbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRFRva2VuIHtcbiAgLyoqIFRoZSByZXF1aXJlZCBhdWQgc3ViLWtleXdvcmQgaXMgdXNlZCB0byBjb25maWd1cmUgdGhlIGF1ZCBjbGFpbSBmb3IgdGhlIEpXVC4gKi9cbiAgYXVkOiBzdHJpbmdbXSB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRvY2tlciBpbWFnZSB0byB1c2UgZm9yIHRoZSBqb2Igb3IgZ2xvYmFsbHkgZm9yIGFsbCBqb2JzLiBKb2IgY29uZmlndXJhdGlvblxuICogdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGdsb2JhbCBzZXR0aW5nLiBSZXF1aXJlcyBhIGNlcnRhaW4ga2luZCBvZiBHaXRsYWIgcnVubmVyIGV4ZWN1dG9yLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNpbWFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlIHtcbiAgLyoqIENvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4qL1xuICByZWFkb25seSBlbnRyeXBvaW50PzogYW55W107XG4gIC8qKiBGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC4qL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSG93IG1hbnkgdGltZXMgYSBqb2IgaXMgcmV0cmllZCBpZiBpdCBmYWlscy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIDAgYW5kIGpvYnMgZG8gbm90IHJldHJ5LlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNyZXRyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5IHtcbiAgLyoqIDAgKGRlZmF1bHQpLCAxLCBvciAyLiovXG4gIHJlYWRvbmx5IG1heD86IG51bWJlcjtcbiAgLyoqIEVpdGhlciBhIHNpbmdsZSBvciBhcnJheSBvZiBlcnJvciB0eXBlcyB0byB0cmlnZ2VyIGpvYiByZXRyeS4qL1xuICByZWFkb25seSB3aGVuPzogYW55O1xufVxuXG4vKipcbiAqIFVzZWQgdG8gc3BlY2lmeSBhbiBhZGRpdGlvbmFsIERvY2tlciBpbWFnZSB0byBydW4gc2NyaXB0cyBpbi4gVGhlIHNlcnZpY2UgaW1hZ2UgaXMgbGlua2VkIHRvIHRoZSBpbWFnZSBzcGVjaWZpZWQgaW4gdGhlIEBEZWZhdWx0IGltYWdlIGtleXdvcmQuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3NlcnZpY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZSB7XG4gIC8qKiBBZGRpdGlvbmFsIGFsaWFzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBzZXJ2aWNlIGZyb20gdGhlIGpvYidzIGNvbnRhaW5lci4gUmVhZCBBY2Nlc3NpbmcgdGhlIHNlcnZpY2VzIGZvciBtb3JlIGluZm9ybWF0aW9uLiovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuICAvKiogQ29tbWFuZCBvciBzY3JpcHQgdGhhdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgY29udGFpbmVyJ3MgY29tbWFuZC4gSXQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIGFyZ3VtZW50cyBwYXNzZWQgdG8gRG9ja2VyIGFmdGVyIHRoZSBpbWFnZSdzIG5hbWUuIFRoZSBzeW50YXggaXMgc2ltaWxhciB0byBEb2NrZXJmaWxlJ3MgQ01EIGRpcmVjdGl2ZSwgd2hlcmUgZWFjaCBzaGVsbCB0b2tlbiBpcyBhIHNlcGFyYXRlIHN0cmluZyBpbiB0aGUgYXJyYXkuKi9cbiAgcmVhZG9ubHkgY29tbWFuZD86IHN0cmluZ1tdO1xuICAvKiogQ29tbWFuZCBvciBzY3JpcHQgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgYXMgdGhlIGNvbnRhaW5lcidzIGVudHJ5cG9pbnQuIEl0IHdpbGwgYmUgdHJhbnNsYXRlZCB0byBEb2NrZXIncyAtLWVudHJ5cG9pbnQgb3B0aW9uIHdoaWxlIGNyZWF0aW5nIHRoZSBjb250YWluZXIuIFRoZSBzeW50YXggaXMgc2ltaWxhciB0byBEb2NrZXJmaWxlJ3MgRU5UUllQT0lOVCBkaXJlY3RpdmUsIHdoZXJlIGVhY2ggc2hlbGwgdG9rZW4gaXMgYSBzZXBhcmF0ZSBzdHJpbmcgaW4gdGhlIGFycmF5LiovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcbiAgLyoqIEZ1bGwgbmFtZSBvZiB0aGUgaW1hZ2UgdGhhdCBzaG91bGQgYmUgdXNlZC4gSXQgc2hvdWxkIGNvbnRhaW4gdGhlIFJlZ2lzdHJ5IHBhcnQgaWYgbmVlZGVkLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBwdWxsIHBvbGljeSB0aGF0IHRoZSBydW5uZXIgdXNlcyB0byBmZXRjaCB0aGUgRG9ja2VyIGltYWdlICovXG4gIHJlYWRvbmx5IHB1bGxQb2xpY3k/OiBQdWxsUG9saWN5W107XG4gIC8qKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBwYXNzZWQgZXhjbHVzaXZlbHkgdG8gdGhlIHNlcnZpY2UuLiAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBwdWxsIGFuIGltYWdlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNzZXJ2aWNlcHVsbF9wb2xpY3lcbiAqL1xuZXhwb3J0IGVudW0gUHVsbFBvbGljeSB7XG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIE5FVkVSID0gXCJuZXZlclwiLFxuICBJRl9OT1RfUFJFU0VOVCA9IFwiaWYtbm90LXByZXNlbnRcIixcbn1cblxuLyoqXG4gKiBBbiBpbmNsdWRlZCBZQU1MIGZpbGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2luY2x1ZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNsdWRlIHtcbiAgLyoqIFJlbGF0aXZlIHBhdGggZnJvbSBsb2NhbCByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIGB5YW1sYC9geW1sYCBmaWxlIHRlbXBsYXRlLiBUaGUgZmlsZSBtdXN0IGJlIG9uIHRoZSBzYW1lIGJyYW5jaCwgYW5kIGRvZXMgbm90IHdvcmsgYWNyb3NzIGdpdCBzdWJtb2R1bGVzLiovXG4gIHJlYWRvbmx5IGxvY2FsPzogc3RyaW5nO1xuICAvKipSdWxlcyBhbGxvd3MgZm9yIGFuIGFycmF5IG9mIGluZGl2aWR1YWwgcnVsZSBvYmplY3RzIHRvIGJlIGV2YWx1YXRlZCBpbiBvcmRlciwgdW50aWwgb25lIG1hdGNoZXMgYW5kIGR5bmFtaWNhbGx5IHByb3ZpZGVzIGF0dHJpYnV0ZXMgdG8gdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgcnVsZXM/OiBJbmNsdWRlUnVsZVtdO1xuICAvKiogRmlsZXMgZnJvbSBhbm90aGVyIHByaXZhdGUgcHJvamVjdCBvbiB0aGUgc2FtZSBHaXRMYWIgaW5zdGFuY2UuIFlvdSBjYW4gdXNlIGBmaWxlYCBpbiBjb21iaW5hdGlvbiB3aXRoIGBwcm9qZWN0YCBvbmx5LiAqL1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIHRoZSBwcm9qZWN0LCBlLmcuIGBncm91cC9wcm9qZWN0YCwgb3IgYGdyb3VwL3N1Yi1ncm91cC9wcm9qZWN0YC4qL1xuICByZWFkb25seSBwcm9qZWN0Pzogc3RyaW5nO1xuICAvKiogQnJhbmNoL1RhZy9Db21taXQtaGFzaCBmb3IgdGhlIHRhcmdldCBwcm9qZWN0LiovXG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcbiAgLyoqIFVzZSBhIGAuZ2l0bGFiLWNpLnltbGAgdGVtcGxhdGUgYXMgYSBiYXNlLCBlLmcuIGBOb2RlanMuZ2l0bGFiLWNpLnltbGAuKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKiBVUkwgdG8gYSBgeWFtbGAvYHltbGAgdGVtcGxhdGUgZmlsZSB1c2luZyBIVFRQL0hUVFBTLiovXG4gIHJlYWRvbmx5IHJlbW90ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSdWxlcyBhbGxvd3MgZm9yIGFuIGFycmF5IG9mIGluZGl2aWR1YWwgcnVsZSBvYmplY3RzIHRvIGJlIGV2YWx1YXRlZCBpbiBvcmRlciwgdW50aWwgb25lXG4gKiBtYXRjaGVzIGFuZCBkeW5hbWljYWxseSBwcm92aWRlcyBhdHRyaWJ1dGVzIHRvIHRoZSBqb2IuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvaW5jbHVkZXMuaHRtbCN1c2UtcnVsZXMtd2l0aC1pbmNsdWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jbHVkZVJ1bGUge1xuICAvKiBXaGV0aGVyIGEgcGlwZWxpbmUgc2hvdWxkIGNvbnRpbnVlIHJ1bm5pbmcgd2hlbiBhIGpvYiBmYWlscy4gKi9cbiAgcmVhZG9ubHkgYWxsb3dGYWlsdXJlPzogYm9vbGVhbiB8IEFsbG93RmFpbHVyZTtcbiAgLyogU3BlY2lmeSB3aGVuIHRvIGFkZCBhIGpvYiB0byBhIHBpcGVsaW5lIGJ5IGNoZWNraW5nIGZvciBjaGFuZ2VzIHRvIHNwZWNpZmljIGZpbGVzLiAqL1xuICByZWFkb25seSBjaGFuZ2VzPzogc3RyaW5nW107XG4gIC8qIFJ1biBhIGpvYiB3aGVuIGNlcnRhaW4gZmlsZXMgZXhpc3QgaW4gdGhlIHJlcG9zaXRvcnkuICovXG4gIHJlYWRvbmx5IGV4aXN0cz86IHN0cmluZ1tdO1xuICAvKiBDbGF1c2VzIHRvIHNwZWNpZnkgd2hlbiB0byBhZGQgYSBqb2IgdG8gYSBwaXBlbGluZS4qL1xuICByZWFkb25seSBpZj86IHN0cmluZztcbiAgLyogRXhlY3V0ZSBzY3JpcHRzIGFmdGVyIGEgd2FpdGluZyBwZXJpb2Qgd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHN0YXJ0SW4/OiBzdHJpbmc7XG4gIC8qIFVzZSB2YXJpYWJsZXMgaW4gcnVsZXMgdG8gZGVmaW5lIHZhcmlhYmxlcyBmb3Igc3BlY2lmaWMgY29uZGl0aW9ucy4gKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyogQ29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnICovXG4gIHJlYWRvbmx5IHdoZW4/OiBKb2JXaGVuO1xufVxuXG4vKipcbiAqIEV4aXQgY29kZSB0aGF0IGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlLiBUaGUgam9iIGZhaWxzIGZvciBhbnkgb3RoZXIgZXhpdCBjb2RlLlxuICogWW91IGNhbiBsaXN0IHdoaWNoIGV4aXQgY29kZXMgYXJlIG5vdCBjb25zaWRlcmVkIGZhaWx1cmVzLiBUaGUgam9iIGZhaWxzIGZvciBhbnkgb3RoZXJcbiAqIGV4aXQgY29kZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jYWxsb3dfZmFpbHVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsbG93RmFpbHVyZSB7XG4gIHJlYWRvbmx5IGV4aXRDb2RlczogbnVtYmVyW10gfCBudW1iZXI7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBjb25kaXRpb25zIGZvciB3aGVuIHRvIHJ1biB0aGUgam9iLiBEZWZhdWx0cyB0byAnb25fc3VjY2VzcycuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3doZW5cbiAqL1xuZXhwb3J0IGVudW0gSm9iV2hlbiB7XG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIERFTEFZRUQgPSBcImRlbGF5ZWRcIixcbiAgTUFOVUFMID0gXCJtYW51YWxcIixcbiAgTkVWRVIgPSBcIm5ldmVyXCIsXG4gIE9OX0ZBSUxVUkUgPSBcIm9uX2ZhaWx1cmVcIixcbiAgT05fU1VDQ0VTUyA9IFwib25fc3VjY2Vzc1wiLFxufVxuXG4vKipcbiAqIEpvYnMgYXJlIHRoZSBtb3N0IGZ1bmRhbWVudGFsIGVsZW1lbnQgb2YgYSAuZ2l0bGFiLWNpLnltbCBmaWxlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS9qb2JzL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYiB7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiB0aGUgam9iLiAqL1xuICByZWFkb25seSBhZnRlclNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0byBhbGxvdyB0aGUgcGlwZWxpbmUgdG8gY29udGludWUgcnVubmluZyBvbiBqb2IgZmFpbHVyZSAoRGVmYXVsdDogZmFsc2UpLiAqL1xuICByZWFkb25seSBhbGxvd0ZhaWx1cmU/OiBib29sZWFuIHwgQWxsb3dGYWlsdXJlO1xuICAvKiBBIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IgaWYgaXQgc3VjY2VlZHMuIEFydGlmYWN0cyBhcmUgc2VudCB0byBHaXRsYWIgd2hlcmUgdGhleSBjYW4gYmUgZG93bmxvYWRlZC4gKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzPzogQXJ0aWZhY3RzO1xuICAvKiBEZWZpbmVzIHNjcmlwdHMgdGhhdCBzaG91bGQgcnVuICpiZWZvcmUqIHRoZSBqb2IuICovXG4gIHJlYWRvbmx5IGJlZm9yZVNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiBBIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNhY2hlIGJldHdlZW4gam9icy4gWW91IGNhbiBvbmx5IHVzZSBwYXRocyB0aGF0IGFyZSBpbiB0aGUgbG9jYWwgd29ya2luZyBjb3B5LiAqL1xuICByZWFkb25seSBjYWNoZT86IENhY2hlO1xuICAvKiogTXVzdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3B0aW9uYWxseSBidXQgcmVjb21tZW5kZWQgdG8gYmUgcXVvdGVkLCBhbmQgbXVzdCBiZSBzdXJyb3VuZGVkIHdpdGggJy8nLiBFeGFtcGxlOiAnL0NvZGUgY292ZXJhZ2U6IFxcZCtcXC5cXGQrLycqL1xuICByZWFkb25seSBjb3ZlcmFnZT86IHN0cmluZztcbiAgLyoqIFNwZWNpZnkgYSBsaXN0IG9mIGpvYiBuYW1lcyBmcm9tIGVhcmxpZXIgc3RhZ2VzIGZyb20gd2hpY2ggYXJ0aWZhY3RzIHNob3VsZCBiZSBsb2FkZWQuIEJ5IGRlZmF1bHQsIGFsbCBwcmV2aW91cyBhcnRpZmFjdHMgYXJlIHBhc3NlZC4gVXNlIGFuIGVtcHR5IGFycmF5IHRvIHNraXAgZG93bmxvYWRpbmcgYXJ0aWZhY3RzLiovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xuICAvKiogVXNlZCB0byBhc3NvY2lhdGUgZW52aXJvbm1lbnQgbWV0YWRhdGEgd2l0aCBhIGRlcGxveS4gRW52aXJvbm1lbnQgY2FuIGhhdmUgYSBuYW1lIGFuZCBVUkwgYXR0YWNoZWQgdG8gaXQsIGFuZCB3aWxsIGJlIGRpc3BsYXllZCB1bmRlciAvZW52aXJvbm1lbnRzIHVuZGVyIHRoZSBwcm9qZWN0LiovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogRW52aXJvbm1lbnQgfCBzdHJpbmc7XG4gIC8qKiBKb2Igd2lsbCBydW4gKmV4Y2VwdCogZm9yIHdoZW4gdGhlc2UgZmlsdGVyaW5nIG9wdGlvbnMgbWF0Y2guKi9cbiAgcmVhZG9ubHkgZXhjZXB0Pzogc3RyaW5nW10gfCBGaWx0ZXI7XG4gIC8qKiBUaGUgbmFtZSBvZiBvbmUgb3IgbW9yZSBqb2JzIHRvIGluaGVyaXQgY29uZmlndXJhdGlvbiBmcm9tLiovXG4gIHJlYWRvbmx5IGV4dGVuZHM/OiBzdHJpbmdbXTtcbiAgLyoqIENvbmZpZ3VyYWJsZSBJRCB0b2tlbnMgKEpTT04gV2ViIFRva2VucykgdGhhdCBhcmUgdXNlZCBmb3IgQ0kvQ0QgYXV0aGVudGljYXRpb24gKi9cbiAgcmVhZG9ubHkgaWRUb2tlbnM/OiBSZWNvcmQ8c3RyaW5nLCBJRFRva2VuPjtcbiAgLyogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IGRvY2tlciBpbWFnZSB0byB1c2VkIGZvciB0aGUgam9iLiAqL1xuICByZWFkb25seSBpbWFnZT86IEltYWdlO1xuICAvKiogQ29udHJvbHMgaW5oZXJpdGFuY2Ugb2YgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBhbmQgdmFyaWFibGVzLiBCb29sZWFuIHZhbHVlcyBjb250cm9sIGluaGVyaXRhbmNlIG9mIGFsbCBkZWZhdWx0OiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLiBUbyBpbmhlcml0IG9ubHkgYSBzdWJzZXQgb2YgZGVmYXVsdDogb3IgdmFyaWFibGVzOiBrZXl3b3Jkcywgc3BlY2lmeSB3aGF0IHlvdSB3aXNoIHRvIGluaGVyaXQuIEFueXRoaW5nIG5vdCBsaXN0ZWQgaXMgbm90IGluaGVyaXRlZC4qL1xuICByZWFkb25seSBpbmhlcml0PzogSW5oZXJpdDtcbiAgLyogSWYgYSBqb2Igc2hvdWxkIGJlIGNhbmNlbGVkIHdoZW4gYSBuZXdlciBwaXBlbGluZSBzdGFydHMgYmVmb3JlIHRoZSBqb2IgY29tcGxldGVzIChEZWZhdWx0OiBmYWxzZSkuKi9cbiAgcmVhZG9ubHkgaW50ZXJydXB0aWJsZT86IGJvb2xlYW47XG4gIC8qKiBUaGUgbGlzdCBvZiBqb2JzIGluIHByZXZpb3VzIHN0YWdlcyB3aG9zZSBzb2xlIGNvbXBsZXRpb24gaXMgbmVlZGVkIHRvIHN0YXJ0IHRoZSBjdXJyZW50IGpvYi4qL1xuICByZWFkb25seSBuZWVkcz86IEFycmF5PE5lZWQgfCBzdHJpbmc+O1xuICAvKiogSm9iIHdpbGwgcnVuICpvbmx5KiB3aGVuIHRoZXNlIGZpbHRlcmluZyBvcHRpb25zIG1hdGNoLiovXG4gIHJlYWRvbmx5IG9ubHk/OiBzdHJpbmdbXSB8IEZpbHRlcjtcbiAgLyoqIFBhcmFsbGVsIHdpbGwgc3BsaXQgdXAgYSBzaW5nbGUgam9iIGludG8gc2V2ZXJhbCwgYW5kIHByb3ZpZGUgYENJX05PREVfSU5ERVhgIGFuZCBgQ0lfTk9ERV9UT1RBTGAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgcnVubmluZyBqb2JzLiovXG4gIHJlYWRvbmx5IHBhcmFsbGVsPzogUGFyYWxsZWwgfCBudW1iZXI7XG4gIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgam9iIGNyZWF0ZXMgYSBSZWxlYXNlLiovXG4gIHJlYWRvbmx5IHJlbGVhc2U/OiBSZWxlYXNlO1xuICAvKiogTGltaXQgam9iIGNvbmN1cnJlbmN5LiBDYW4gYmUgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUgUnVubmVyIHdpbGwgbm90IHJ1biBjZXJ0YWluIGpvYnMgc2ltdWx0YW5lb3VzbHkuKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cD86IHN0cmluZztcbiAgLyogSG93IG1hbnkgdGltZXMgYSBqb2IgaXMgcmV0cmllZCBpZiBpdCBmYWlscy4gSWYgbm90IGRlZmluZWQsIGRlZmF1bHRzIHRvIDAgYW5kIGpvYnMgZG8gbm90IHJldHJ5LiAqL1xuICByZWFkb25seSByZXRyeT86IFJldHJ5O1xuICAvKipSdWxlcyBhbGxvd3MgZm9yIGFuIGFycmF5IG9mIGluZGl2aWR1YWwgcnVsZSBvYmplY3RzIHRvIGJlIGV2YWx1YXRlZCBpbiBvcmRlciwgdW50aWwgb25lIG1hdGNoZXMgYW5kIGR5bmFtaWNhbGx5IHByb3ZpZGVzIGF0dHJpYnV0ZXMgdG8gdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgcnVsZXM/OiBJbmNsdWRlUnVsZVtdO1xuICAvKiogU2hlbGwgc2NyaXB0cyBleGVjdXRlZCBieSB0aGUgUnVubmVyLiBUaGUgb25seSByZXF1aXJlZCBwcm9wZXJ0eSBvZiBqb2JzLiBCZSBjYXJlZnVsIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuIGA6YCwgYHtgLCBgfWAsIGAmYCkgYW5kIHVzZSBzaW5nbGUgb3IgZG91YmxlIHF1b3RlcyB0byBhdm9pZCBpc3N1ZXMuKi9cbiAgcmVhZG9ubHkgc2NyaXB0Pzogc3RyaW5nW107XG4gIC8qKiBDSS9DRCBzZWNyZXRzICovXG4gIHJlYWRvbmx5IHNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBTZWNyZXQ+PjtcbiAgLyogQWRkaXRpb25hbCBEb2NrZXIgaW1hZ2VzIHRvIHJ1biBzY3JpcHRzIGluLiBUaGUgc2VydmljZSBpbWFnZSBpcyBsaW5rZWQgdG8gdGhlIGltYWdlIHNwZWNpZmllZCBpbiB0aGUgIGltYWdlIHBhcmFtZXRlci4gKi9cbiAgcmVhZG9ubHkgc2VydmljZXM/OiBTZXJ2aWNlW107XG4gIC8qKiBEZWZpbmUgd2hhdCBzdGFnZSB0aGUgam9iIHdpbGwgcnVuIGluLiovXG4gIHJlYWRvbmx5IHN0YWdlPzogc3RyaW5nO1xuICAvKiBFeGVjdXRlIHNjcmlwdHMgYWZ0ZXIgYSB3YWl0aW5nIHBlcmlvZCB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgc3RhcnRJbj86IHN0cmluZztcbiAgLyogVXNlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBydW5uZXIgZnJvbSB0aGUgbGlzdCBvZiBhbGwgcnVubmVycyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwcm9qZWN0LiAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG4gIC8qIEEgZGVmYXVsdCB0aW1lb3V0IGpvYiB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IHN0cmluZztcbiAgLyoqIFRyaWdnZXIgYWxsb3dzIHlvdSB0byBkZWZpbmUgZG93bnN0cmVhbSBwaXBlbGluZSB0cmlnZ2VyLiBXaGVuIGEgam9iIGNyZWF0ZWQgZnJvbSB0cmlnZ2VyIGRlZmluaXRpb24gaXMgc3RhcnRlZCBieSBHaXRMYWIsIGEgZG93bnN0cmVhbSBwaXBlbGluZSBnZXRzIGNyZWF0ZWQuIFJlYWQgbW9yZTogaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9SRUFETUUuaHRtbCN0cmlnZ2VyKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXIgfCBzdHJpbmc7XG4gIC8qKiBDb25maWd1cmFibGUgdmFsdWVzIHRoYXQgYXJlIHBhc3NlZCB0byB0aGUgSm9iLiAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogRGVzY3JpYmVzIHRoZSBjb25kaXRpb25zIGZvciB3aGVuIHRvIHJ1biB0aGUgam9iLiBEZWZhdWx0cyB0byAnb25fc3VjY2VzcycuICovXG4gIHJlYWRvbmx5IHdoZW4/OiBKb2JXaGVuO1xufVxuXG4vKipcbiAqIFRoZSBlbnZpcm9ubWVudCB0aGF0IGEgam9iIGRlcGxveXMgdG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICAvKiogU3BlY2lmaWVzIHdoYXQgdGhpcyBqb2Igd2lsbCBkby4gJ3N0YXJ0JyAoZGVmYXVsdCkgaW5kaWNhdGVzIHRoZSBqb2Igd2lsbCBzdGFydCB0aGUgZGVwbG95bWVudC4gJ3ByZXBhcmUnIGluZGljYXRlcyB0aGlzIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVwbG95bWVudC4gJ3N0b3AnIGluZGljYXRlcyB0aGlzIHdpbGwgc3RvcCB0aGUgZGVwbG95bWVudC4qL1xuICByZWFkb25seSBhY3Rpb24/OiBBY3Rpb247XG4gIC8qKiBUaGUgYW1vdW50IG9mIHRpbWUgaXQgc2hvdWxkIHRha2UgYmVmb3JlIEdpdGxhYiB3aWxsIGF1dG9tYXRpY2FsbHkgc3RvcCB0aGUgZW52aXJvbm1lbnQuIFN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIGZvcm1hdHMsIGUuZy4gJzEgd2VlaycsICczIG1pbnMgNCBzZWMnLCAnMiBocnMgMjAgbWluJywgJzJoMjBtaW4nLCAnNiBtb3MgMSBkYXknLCAnNDcgeXJzIDYgbW9zIGFuZCA0ZCcsICczIHdlZWtzIGFuZCAyIGRheXMnLiovXG4gIHJlYWRvbmx5IGF1dG9TdG9wSW4/OiBzdHJpbmc7XG4gIC8qKiBFeHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGllciBvZiB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBpZiBub24tc3RhbmRhcmQgZW52aXJvbm1lbnQgbmFtZSBpcyB1c2VkLiovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRUaWVyPzogRGVwbG95bWVudFRpZXI7XG4gIC8qKiBVc2VkIHRvIGNvbmZpZ3VyZSB0aGUga3ViZXJuZXRlcyBkZXBsb3ltZW50IGZvciB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBrdWJlcm5ldGVzIGNsdXN0ZXJzIHRoYXQgYXJlIG1hbmFnZWQgYnkgR2l0bGFiLiovXG4gIHJlYWRvbmx5IGt1YmVybmV0ZXM/OiBLdWJlcm5ldGVzQ29uZmlnO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIGVudmlyb25tZW50LCBlLmcuICdxYScsICdzdGFnaW5nJywgJ3Byb2R1Y3Rpb24nLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBuYW1lIG9mIGEgam9iIHRvIGV4ZWN1dGUgd2hlbiB0aGUgZW52aXJvbm1lbnQgaXMgYWJvdXQgdG8gYmUgc3RvcHBlZC4qL1xuICByZWFkb25seSBvblN0b3A/OiBzdHJpbmc7XG4gIC8qKiBXaGVuIHNldCwgdGhpcyB3aWxsIGV4cG9zZSBidXR0b25zIGluIHZhcmlvdXMgcGxhY2VzIGZvciB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpbiBHaXRsYWIsIHRoYXQgd2lsbCB0YWtlIHlvdSB0byB0aGUgZGVmaW5lZCBVUkwuKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmllcyB3aGF0IHRoaXMgam9iIHdpbGwgZG8uICdzdGFydCcgKGRlZmF1bHQpIGluZGljYXRlcyB0aGUgam9iIHdpbGwgc3RhcnQgdGhlXG4gKiBkZXBsb3ltZW50LiAncHJlcGFyZScgaW5kaWNhdGVzIHRoaXMgd2lsbCBub3QgYWZmZWN0IHRoZSBkZXBsb3ltZW50LiAnc3RvcCcgaW5kaWNhdGVzXG4gKiB0aGlzIHdpbGwgc3RvcCB0aGUgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGVudW0gQWN0aW9uIHtcbiAgUFJFUEFSRSA9IFwicHJlcGFyZVwiLFxuICBTVEFSVCA9IFwic3RhcnRcIixcbiAgU1RPUCA9IFwic3RvcFwiLFxufVxuXG4vKipcbiAqIEV4cGxpY2l0bHkgc3BlY2lmaWVzIHRoZSB0aWVyIG9mIHRoZSBkZXBsb3ltZW50IGVudmlyb25tZW50IGlmIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudFxuICogbmFtZSBpcyB1c2VkLlxuICovXG5leHBvcnQgZW51bSBEZXBsb3ltZW50VGllciB7XG4gIERFVkVMT1BNRU5UID0gXCJkZXZlbG9wbWVudFwiLFxuICBPVEhFUiA9IFwib3RoZXJcIixcbiAgUFJPRFVDVElPTiA9IFwicHJvZHVjdGlvblwiLFxuICBTVEFHSU5HID0gXCJzdGFnaW5nXCIsXG4gIFRFU1RJTkcgPSBcInRlc3RpbmdcIixcbn1cblxuLyoqXG4gKiBVc2VkIHRvIGNvbmZpZ3VyZSB0aGUga3ViZXJuZXRlcyBkZXBsb3ltZW50IGZvciB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGN1cnJlbnRseSBub3RcbiAqIHN1cHBvcnRlZCBmb3Iga3ViZXJuZXRlcyBjbHVzdGVycyB0aGF0IGFyZSBtYW5hZ2VkIGJ5IEdpdGxhYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLdWJlcm5ldGVzQ29uZmlnIHtcbiAgLyoqIFRoZSBrdWJlcm5ldGVzIG5hbWVzcGFjZSB3aGVyZSB0aGlzIGVudmlyb25tZW50IHNob3VsZCBiZSBkZXBsb3llZCB0by4qL1xuICByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyaW5nIG9wdGlvbnMgZm9yIHdoZW4gYSBqb2Igd2lsbCBydW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgLyoqIEZpbHRlciBqb2IgY3JlYXRpb24gYmFzZWQgb24gZmlsZXMgdGhhdCB3ZXJlIG1vZGlmaWVkIGluIGEgZ2l0IHB1c2guKi9cbiAgcmVhZG9ubHkgY2hhbmdlcz86IHN0cmluZ1tdO1xuICAvKiogRmlsdGVyIGpvYiBiYXNlZCBvbiBpZiBLdWJlcm5ldGVzIGludGVncmF0aW9uIGlzIGFjdGl2ZS4qL1xuICByZWFkb25seSBrdWJlcm5ldGVzPzogS3ViZXJuZXRlc0VudW07XG4gIC8qKiBDb250cm9sIHdoZW4gdG8gYWRkIGpvYnMgdG8gYSBwaXBlbGluZSBiYXNlZCBvbiBicmFuY2ggbmFtZXMgb3IgcGlwZWxpbmUgdHlwZXMuICovXG4gIHJlYWRvbmx5IHJlZnM/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlciBqb2IgYnkgY2hlY2tpbmcgY29tcGFyaW5nIHZhbHVlcyBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFJlYWQgbW9yZSBhYm91dCB2YXJpYWJsZSBleHByZXNzaW9uczogaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kvdmFyaWFibGVzL1JFQURNRS5odG1sI3ZhcmlhYmxlcy1leHByZXNzaW9ucyovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEZpbHRlciBqb2IgYmFzZWQgb24gaWYgS3ViZXJuZXRlcyBpbnRlZ3JhdGlvbiBpcyBhY3RpdmUuXG4gKi9cbmV4cG9ydCBlbnVtIEt1YmVybmV0ZXNFbnVtIHtcbiAgQUNUSVZFID0gXCJhY3RpdmVcIixcbn1cblxuLyoqXG4gKiBDb250cm9scyBpbmhlcml0YW5jZSBvZiBnbG9iYWxseS1kZWZpbmVkIGRlZmF1bHRzIGFuZCB2YXJpYWJsZXMuIEJvb2xlYW4gdmFsdWVzIGNvbnRyb2xcbiAqIGluaGVyaXRhbmNlIG9mIGFsbCBkZWZhdWx0OiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLiBUbyBpbmhlcml0IG9ubHkgYSBzdWJzZXQgb2YgZGVmYXVsdDpcbiAqIG9yIHZhcmlhYmxlczoga2V5d29yZHMsIHNwZWNpZnkgd2hhdCB5b3Ugd2lzaCB0byBpbmhlcml0LiBBbnl0aGluZyBub3QgbGlzdGVkIGlzIG5vdFxuICogaW5oZXJpdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXQge1xuICAvKiogV2hldGhlciB0byBpbmhlcml0IGFsbCBnbG9iYWxseS1kZWZpbmVkIGRlZmF1bHRzIG9yIG5vdC4gT3Igc3Vic2V0IG9mIGluaGVyaXRlZCBkZWZhdWx0cyovXG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBEZWZhdWx0RWxlbWVudFtdIHwgYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gaW5oZXJpdCBhbGwgZ2xvYmFsbHktZGVmaW5lZCB2YXJpYWJsZXMgb3Igbm90LiBPciBzdWJzZXQgb2YgaW5oZXJpdGVkIHZhcmlhYmxlcyovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHN0cmluZ1tdIHwgYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gRGVmYXVsdEVsZW1lbnQge1xuICBBRlRFUl9TQ1JJUFQgPSBcImFmdGVyX3NjcmlwdFwiLFxuICBBUlRJRkFDVFMgPSBcImFydGlmYWN0c1wiLFxuICBCRUZPUkVfU0NSSVBUID0gXCJiZWZvcmVfc2NyaXB0XCIsXG4gIENBQ0hFID0gXCJjYWNoZVwiLFxuICBJTUFHRSA9IFwiaW1hZ2VcIixcbiAgSU5URVJSVVBUSUJMRSA9IFwiaW50ZXJydXB0aWJsZVwiLFxuICBSRVRSWSA9IFwicmV0cnlcIixcbiAgU0VSVklDRVMgPSBcInNlcnZpY2VzXCIsXG4gIFRBR1MgPSBcInRhZ3NcIixcbiAgVElNRU9VVCA9IFwidGltZW91dFwiLFxufVxuXG4vKipcbiAqIEEgam9icyBpbiBhIHByZXZpb3VzIHN0YWdlIHdob3NlIHNvbGUgY29tcGxldGlvbiBpcyBuZWVkZWQgdG8gc3RhcnQgdGhlIGN1cnJlbnQgam9iLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5lZWQge1xuICByZWFkb25seSBhcnRpZmFjdHM/OiBib29sZWFuO1xuICByZWFkb25seSBqb2I6IHN0cmluZztcbiAgcmVhZG9ubHkgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZWFkb25seSBwaXBlbGluZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gcnVuIGEgam9iIG11bHRpcGxlIHRpbWVzIGluIHBhcmFsbGVsIGluIGEgc2luZ2xlIHBpcGVsaW5lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFsbGVsIHtcbiAgLyoqIERlZmluZXMgZGlmZmVyZW50IHZhcmlhYmxlcyBmb3Igam9icyB0aGF0IGFyZSBydW5uaW5nIGluIHBhcmFsbGVsLiovXG4gIHJlYWRvbmx5IG1hdHJpeDogUmVjb3JkPHN0cmluZywgYW55W10+W107XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIGpvYiBjcmVhdGVzIGEgUmVsZWFzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlIHtcbiAgcmVhZG9ubHkgYXNzZXRzPzogQXNzZXRzO1xuICAvKiogU3BlY2lmaWVzIHRoZSBsb25nZXIgZGVzY3JpcHRpb24gb2YgdGhlIFJlbGVhc2UuKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIFRoZSB0aXRsZSBvZiBlYWNoIG1pbGVzdG9uZSB0aGUgcmVsZWFzZSBpcyBhc3NvY2lhdGVkIHdpdGguKi9cbiAgcmVhZG9ubHkgbWlsZXN0b25lcz86IHN0cmluZ1tdO1xuICAvKiogVGhlIFJlbGVhc2UgbmFtZS4gSWYgb21pdHRlZCwgaXQgaXMgcG9wdWxhdGVkIHdpdGggdGhlIHZhbHVlIG9mIHJlbGVhc2U6IHRhZ19uYW1lLiovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBJZiB0aGUgcmVsZWFzZTogdGFnX25hbWUgZG9lc27igJl0IGV4aXN0IHlldCwgdGhlIHJlbGVhc2UgaXMgY3JlYXRlZCBmcm9tIHJlZi4gcmVmIGNhbiBiZSBhIGNvbW1pdCBTSEEsIGFub3RoZXIgdGFnIG5hbWUsIG9yIGEgYnJhbmNoIG5hbWUuKi9cbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xuICAvKiogVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgcmVsZWFzZSBpcyByZWFkeS4gRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpZiBub3QgZGVmaW5lZC4gU2hvdWxkIGJlIGVuY2xvc2VkIGluIHF1b3RlcyBhbmQgZXhwcmVzc2VkIGluIElTTyA4NjAxIGZvcm1hdC4qL1xuICByZWFkb25seSByZWxlYXNlZEF0Pzogc3RyaW5nO1xuICAvKiogVGhlIHRhZ19uYW1lIG11c3QgYmUgc3BlY2lmaWVkLiBJdCBjYW4gcmVmZXIgdG8gYW4gZXhpc3RpbmcgR2l0IHRhZyBvciBjYW4gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLiovXG4gIHJlYWRvbmx5IHRhZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBc3NldCBjb25maWd1cmF0aW9uIGZvciBhIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRzIHtcbiAgLyoqIEluY2x1ZGUgYXNzZXQgbGlua3MgaW4gdGhlIHJlbGVhc2UuKi9cbiAgcmVhZG9ubHkgbGlua3M6IExpbmtbXTtcbn1cblxuLyoqXG4gKiBMaW5rIGNvbmZpZ3VyYXRpb24gZm9yIGFuIGFzc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmsge1xuICAvKiogVGhlIHJlZGlyZWN0IGxpbmsgdG8gdGhlIHVybC4qL1xuICByZWFkb25seSBmaWxlcGF0aD86IHN0cmluZztcbiAgLyoqIFRoZSBjb250ZW50IGtpbmQgb2Ygd2hhdCB1c2VycyBjYW4gZG93bmxvYWQgdmlhIHVybC4qL1xuICByZWFkb25seSBsaW5rVHlwZT86IExpbmtUeXBlO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIGxpbmsuKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIFVSTCB0byBkb3dubG9hZCBhIGZpbGUuKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGNvbnRlbnQga2luZCBvZiB3aGF0IHVzZXJzIGNhbiBkb3dubG9hZCB2aWEgdXJsLlxuICovXG5leHBvcnQgZW51bSBMaW5rVHlwZSB7XG4gIElNQUdFID0gXCJpbWFnZVwiLFxuICBPVEhFUiA9IFwib3RoZXJcIixcbiAgUEFDS0FHRSA9IFwicGFja2FnZVwiLFxuICBSVU5CT09LID0gXCJydW5ib29rXCIsXG59XG5cbi8qKlxuICogQSBDSS9DRCBzZWNyZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXQge1xuICAvKiBTcGVjaWZpY2F0aW9uIGZvciBhIHNlY3JldCBwcm92aWRlZCBieSBhIEhhc2hpQ29ycCBWYXVsdC4gKi9cbiAgcmVhZG9ubHkgdmF1bHQ6IFZhdWx0Q29uZmlnO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gZm9yIGEgc2VjcmV0IHByb3ZpZGVkIGJ5IGEgSGFzaGlDb3JwIFZhdWx0LlxuICogQHNlZSBodHRwczovL3d3dy52YXVsdHByb2plY3QuaW8vXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmF1bHRDb25maWcge1xuICAvKiBUaGUgZW5naW5lIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2VjcmV0LiAqL1xuICByZWFkb25seSBlbmdpbmU6IEVuZ2luZTtcbiAgLyogVGhlIG5hbWUgb2YgdGhlIGZpZWxkIHdoZXJlIHRoZSBwYXNzd29yZCBpcyBzdG9yZWQuICovXG4gIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKiBQYXRoIHRvIHRoZSBzZWNyZXQuICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgZW5naW5lIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2VjcmV0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZ2luZSB7XG4gIC8qKiBOYW1lIG9mIHRoZSBzZWNyZXRzIGVuZ2luZS4gKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKiogUGF0aCB0byB0aGUgc2VjcmV0cyBlbmdpbmUuICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUcmlnZ2VyIGEgbXVsdGktcHJvamVjdCBvciBhIGNoaWxkIHBpcGVsaW5lLiBSZWFkIG1vcmU6XG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvUkVBRE1FLmh0bWwjc2ltcGxlLXRyaWdnZXItc3ludGF4LWZvci1tdWx0aS1wcm9qZWN0LXBpcGVsaW5lc1xuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1JFQURNRS5odG1sI3RyaWdnZXItc3ludGF4LWZvci1jaGlsZC1waXBlbGluZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXIge1xuICAvKiogVGhlIGJyYW5jaCBuYW1lIHRoYXQgYSBkb3duc3RyZWFtIHBpcGVsaW5lIHdpbGwgdXNlKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuICAvKiogUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuKi9cbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgLyoqIFlvdSBjYW4gbWlycm9yIHRoZSBwaXBlbGluZSBzdGF0dXMgZnJvbSB0aGUgdHJpZ2dlcmVkIHBpcGVsaW5lIHRvIHRoZSBzb3VyY2UgYnJpZGdlIGpvYiBieSB1c2luZyBzdHJhdGVneTogZGVwZW5kKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBTdHJhdGVneTtcbiAgLyoqIEEgbGlzdCBvZiBsb2NhbCBmaWxlcyBvciBhcnRpZmFjdHMgZnJvbSBvdGhlciBqb2JzIHRvIGRlZmluZSB0aGUgcGlwZWxpbmUgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZT86IFRyaWdnZXJJbmNsdWRlW107XG59XG5cbi8qKlxuICogUmVmZXJlbmNlcyBhIGxvY2FsIGZpbGUgb3IgYW4gYXJ0aWZhY3QgZnJvbSBhbm90aGVyIGpvYiB0byBkZWZpbmUgdGhlIHBpcGVsaW5lXG4gKiBjb25maWd1cmF0aW9uLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN0cmlnZ2VyaW5jbHVkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJJbmNsdWRlIHtcbiAgLyoqIFJlbGF0aXZlIHBhdGggZnJvbSBsb2NhbCByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIGxvY2FsIFlBTUwgZmlsZSB0byBkZWZpbmUgdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uKi9cbiAgcmVhZG9ubHkgbG9jYWw/OiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSB0ZW1wbGF0ZSBZQU1MIGZpbGUgdG8gdXNlIGluIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLiovXG4gIHJlYWRvbmx5IHRlbXBsYXRlPzogc3RyaW5nO1xuICAvKiogUmVsYXRpdmUgcGF0aCB0byB0aGUgZ2VuZXJhdGVkIFlBTUwgZmlsZSB3aGljaCBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgYXJ0aWZhY3RzIGFuZCB1c2VkIGFzIHRoZSBjb25maWd1cmF0aW9uIGZvciB0cmlnZ2VyaW5nIHRoZSBjaGlsZCBwaXBlbGluZS4qL1xuICByZWFkb25seSBhcnRpZmFjdD86IHN0cmluZztcbiAgLyoqIEpvYiBuYW1lIHdoaWNoIGdlbmVyYXRlcyB0aGUgYXJ0aWZhY3QqL1xuICByZWFkb25seSBqb2I/OiBzdHJpbmc7XG4gIC8qKiBSZWxhdGl2ZSBwYXRoIGZyb20gcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uIFlBTUwgZmlsZS4qL1xuICByZWFkb25seSBmaWxlPzogc3RyaW5nO1xuICAvKiogUGF0aCB0byBhbm90aGVyIHByaXZhdGUgcHJvamVjdCB1bmRlciB0aGUgc2FtZSBHaXRMYWIgaW5zdGFuY2UsIGxpa2UgYGdyb3VwL3Byb2plY3RgIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuKi9cbiAgcmVhZG9ubHkgcHJvamVjdD86IHN0cmluZztcbiAgLyoqIEJyYW5jaC9UYWcvQ29tbWl0IGhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC4qL1xuICByZWFkb25seSByZWY/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogWW91IGNhbiBtaXJyb3IgdGhlIHBpcGVsaW5lIHN0YXR1cyBmcm9tIHRoZSB0cmlnZ2VyZWQgcGlwZWxpbmUgdG8gdGhlIHNvdXJjZSBicmlkZ2Ugam9iXG4gKiBieSB1c2luZyBzdHJhdGVneTogZGVwZW5kXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3RyaWdnZXJzdHJhdGVneVxuICovXG5leHBvcnQgZW51bSBTdHJhdGVneSB7XG4gIERFUEVORCA9IFwiZGVwZW5kXCIsXG59XG5cbi8qKlxuICogRXhwbGFpbnMgd2hhdCB0aGUgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgZm9yLCB3aGF0IHRoZSBhY2NlcHRhYmxlIHZhbHVlcyBhcmUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3ZhcmlhYmxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhcmlhYmxlQ29uZmlnIHtcbiAgLyoqIERlZmluZSBhIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIHByZWZpbGxlZCB3aGVuIHJ1bm5pbmcgYSBwaXBlbGluZSBtYW51YWxseS4gTXVzdCBiZSB1c2VkIHdpdGggdmFsdWUuICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIFRoZSB2YXJpYWJsZSB2YWx1ZS4gKi9cbiAgcmVhZG9ubHkgdmFsdWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXNlZCB0byBjb250cm9sIHBpcGVsaW5lIGJlaGF2aW9yLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN3b3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93IHtcbiAgLyoqIFVzZWQgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBhIHdob2xlIHBpcGVsaW5lIGlzIGNyZWF0ZWQuICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogV29ya2Zsb3dSdWxlW107XG59XG5cbi8qKlxuICogVXNlZCB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IGEgd2hvbGUgcGlwZWxpbmUgaXMgY3JlYXRlZC5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jd29ya2Zsb3dydWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UnVsZSB7XG4gIC8qIFNwZWNpZnkgd2hlbiB0byBhZGQgYSBqb2IgdG8gYSBwaXBlbGluZSBieSBjaGVja2luZyBmb3IgY2hhbmdlcyB0byBzcGVjaWZpYyBmaWxlcy4gKi9cbiAgcmVhZG9ubHkgY2hhbmdlcz86IHN0cmluZ1tdO1xuICAvKiBSdW4gYSBqb2Igd2hlbiBjZXJ0YWluIGZpbGVzIGV4aXN0IGluIHRoZSByZXBvc2l0b3J5LiAqL1xuICByZWFkb25seSBleGlzdHM/OiBzdHJpbmdbXTtcbiAgLyogQ2xhdXNlcyB0byBzcGVjaWZ5IHdoZW4gdG8gYWRkIGEgam9iIHRvIGEgcGlwZWxpbmUuKi9cbiAgcmVhZG9ubHkgaWY/OiBzdHJpbmc7XG4gIC8qIFVzZSB2YXJpYWJsZXMgaW4gcnVsZXMgdG8gZGVmaW5lIHZhcmlhYmxlcyBmb3Igc3BlY2lmaWMgY29uZGl0aW9ucy4gKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPjtcbiAgLyogQ29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnICovXG4gIHJlYWRvbmx5IHdoZW4/OiBKb2JXaGVuO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLlxuICogVGhlIHZhbHVlIGNhbiBvbmx5IGJlICdhbHdheXMnIG9yICduZXZlcicgd2hlbiB1c2VkIHdpdGggd29ya2Zsb3cuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3dvcmtmbG93cnVsZXNcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dXaGVuIHtcbiAgQUxXQVlTID0gXCJhbHdheXNcIixcbiAgTkVWRVIgPSBcIm5ldmVyXCIsXG59XG4iXX0=
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRsYWIvY29uZmlndXJhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTJDO0FBQzNDLDhHQUE4RztBQUM5RyxpRUFBaUU7OztBQXFDakU7OztHQUdHO0FBQ0gsSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBQ3JCLG1HQUFtRztJQUNuRyw0QkFBYSxDQUFBO0lBQ2IsbUdBQW1HO0lBQ25HLDRCQUFhLENBQUE7SUFDYiwyR0FBMkc7SUFDM0csc0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVBXLFdBQVcsMkJBQVgsV0FBVyxRQU90QjtBQUVEOzs7R0FHRztBQUNILElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQixpREFBaUQ7SUFDakQsOEJBQWlCLENBQUE7SUFDakIsZ0RBQWdEO0lBQ2hELHNDQUF5QixDQUFBO0lBQ3pCLHlFQUF5RTtJQUN6RSxzQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBUFcsU0FBUyx5QkFBVCxTQUFTLFFBT3BCO0FBNkpEOzs7R0FHRztBQUNILElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQiw2QkFBZSxDQUFBO0lBQ2YsK0NBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQjtBQXVERDs7O0dBR0c7QUFDSCxJQUFZLE9BT1g7QUFQRCxXQUFZLE9BQU87SUFDakIsNEJBQWlCLENBQUE7SUFDakIsOEJBQW1CLENBQUE7SUFDbkIsNEJBQWlCLENBQUE7SUFDakIsMEJBQWUsQ0FBQTtJQUNmLG9DQUF5QixDQUFBO0lBQ3pCLG9DQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxPQUFPLHVCQUFQLE9BQU8sUUFPbEI7QUEyRkQ7Ozs7R0FJRztBQUNILElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0lBQ2YsdUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxNQUFNLHNCQUFOLE1BQU0sUUFJakI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLGNBTVg7QUFORCxXQUFZLGNBQWM7SUFDeEIsNkNBQTJCLENBQUE7SUFDM0IsaUNBQWUsQ0FBQTtJQUNmLDJDQUF5QixDQUFBO0lBQ3pCLHFDQUFtQixDQUFBO0lBQ25CLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxjQUFjLDhCQUFkLGNBQWMsUUFNekI7QUF5QkQ7O0dBRUc7QUFDSCxJQUFZLGNBRVg7QUFGRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUZXLGNBQWMsOEJBQWQsY0FBYyxRQUV6QjtBQWVELElBQVksY0FXWDtBQVhELFdBQVksY0FBYztJQUN4QiwrQ0FBNkIsQ0FBQTtJQUM3Qix5Q0FBdUIsQ0FBQTtJQUN2QixpREFBK0IsQ0FBQTtJQUMvQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtJQUNmLGlEQUErQixDQUFBO0lBQy9CLGlDQUFlLENBQUE7SUFDZix1Q0FBcUIsQ0FBQTtJQUNyQiwrQkFBYSxDQUFBO0lBQ2IscUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVhXLGNBQWMsOEJBQWQsY0FBYyxRQVd6QjtBQStERDs7R0FFRztBQUNILElBQVksUUFLWDtBQUxELFdBQVksUUFBUTtJQUNsQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtJQUNmLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxRQUFRLHdCQUFSLFFBQVEsUUFLbkI7QUF1RUQ7Ozs7R0FJRztBQUNILElBQVksUUFFWDtBQUZELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRlcsUUFBUSx3QkFBUixRQUFRLFFBRW5CO0FBdUNEOzs7O0dBSUc7QUFDSCxJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsaUNBQWlCLENBQUE7SUFDakIsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsWUFBWSw0QkFBWixZQUFZLFFBR3ZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1xuLy8gU2NoZW1hIGZyb206IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi8tL3Jhdy9tYXN0ZXIvYXBwL2Fzc2V0cy9qYXZhc2NyaXB0cy9lZGl0b3Ivc2NoZW1hL2NpLmpzb25cbi8vIEluaXRpYWwgVHlwZVNjcmlwdCBJbnRlcmZhY2VzIGZyb206IGh0dHBzOi8vYXBwLnF1aWNrdHlwZS5pby8jXG5cbi8qKlxuICogQ2FjaGUgRGVmaW5pdGlvbi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZSB7XG4gIC8qKiBEZWZpbmVzIHdoaWNoIGZpbGVzIG9yIGRpcmVjdG9yaWVzIHRvIGNhY2hlLiAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKiBVc2VkIHRoZSB0byBnaXZlIGVhY2ggY2FjaGUgYSB1bmlxdWUgaWRlbnRpZnlpbmcga2V5LiBBbGwgam9icyB0aGF0IHVzZSB0aGUgc2FtZSBjYWNoZSBrZXkgdXNlIHRoZSBzYW1lIGNhY2hlLiAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmcgfCBDYWNoZUtleUZpbGVzO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSBhbGwgZmlsZXMgdGhhdCBhcmUgdW50cmFja2VkIGluIHlvdXIgR2l0IHJlcG9zaXRvcnkgd2lsbCBiZSBjYWNoZWQuICovXG4gIHJlYWRvbmx5IHVudHJhY2tlZD86IGJvb2xlYW47XG5cbiAgLyoqIERlZmluZXMgdGhlIHVwbG9hZCBhbmQgZG93bmxvYWQgYmVoYXZpb3VyIG9mIHRoZSBjYWNoZS4gKi9cbiAgcmVhZG9ubHkgcG9saWN5PzogQ2FjaGVQb2xpY3k7XG5cbiAgLyoqIERlZmluZXMgd2hlbiB0byBzYXZlIHRoZSBjYWNoZSwgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgam9iIChEZWZhdWx0OiBKb2IgU3VjY2VzcykuICovXG4gIHJlYWRvbmx5IHdoZW4/OiBDYWNoZVdoZW47XG5cbiAgLyoqIFVzZSBjYWNoZTpmYWxsYmFja19rZXlzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGtleXMgdG8gdHJ5IHRvIHJlc3RvcmUgY2FjaGUgZnJvbSBpZiB0aGVyZSBpcyBubyBjYWNoZSBmb3VuZCBmb3IgdGhlIGNhY2hlOmtleS4gQ2FjaGVzIGFyZSByZXRyaWV2ZWQgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBpbiB0aGUgZmFsbGJhY2tfa2V5cyBzZWN0aW9uLiAqL1xuICByZWFkb25seSBmYWxsYmFja0tleXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBVc2UgdGhpcyBjb25zdHJ1Y3QgdG8gZ2VuZXJhdGUgYSBuZXcga2V5IHdoZW4gb25lIG9yIHR3byBzcGVjaWZpYyBmaWxlcyBjaGFuZ2UuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hla2V5ZmlsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZUtleUZpbGVzIHtcbiAgLyoqIFRoZSBmaWxlcyB0aGF0IGFyZSBjaGVja2VkIGFnYWluc3QuIElmIHRoZSBTSEEgY2hlY2tzdW0gY2hhbmdlcywgdGhlIGNhY2hlIGJlY29tZXMgaW52YWxpZC4gKi9cbiAgcmVhZG9ubHkgZmlsZXM6IHN0cmluZ1tdO1xuICAvKiogQWRkcyBhIGN1c3RvbSBwcmVmaXggdG8gdGhlIGNoZWNrc3VtcyBjb21wdXRlZC4gKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZSB0aGUgdXBsb2FkIGFuZCBkb3dubG9hZCBiZWhhdmlvdXIgb2YgYSBjYWNoZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGVwb2xpY3lcbiAqL1xuZXhwb3J0IGVudW0gQ2FjaGVQb2xpY3kge1xuICAvKiogT25seSBkb3dubG9hZCB0aGUgY2FjaGUgd2hlbiB0aGUgam9iIHN0YXJ0cywgYnV0IG5ldmVyIHVwbG9hZCBjaGFuZ2VzIHdoZW4gdGhlIGpvYiBmaW5pc2hlcy4gKi9cbiAgUFVMTCA9IFwicHVsbFwiLFxuICAvKiogT25seSB1cGxvYWQgYSBjYWNoZSB3aGVuIHRoZSBqb2IgZmluaXNoZXMsIGJ1dCBuZXZlciBkb3dubG9hZCB0aGUgY2FjaGUgd2hlbiB0aGUgam9iIHN0YXJ0cy4gKi9cbiAgUFVTSCA9IFwicHVzaFwiLFxuICAvKiogVGhlIGpvYiBkb3dubG9hZHMgdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBzdGFydHMsIGFuZCB1cGxvYWRzIGNoYW5nZXMgdG8gdGhlIGNhY2hlIHdoZW4gdGhlIGpvYiBlbmRzLiAqL1xuICBQVUxMX1BVU0ggPSBcInB1bGwtcHVzaFwiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyZSB3aGVuIGFydGlmYWN0cyBhcmUgdXBsb2FkZWQgZGVwZW5kZWQgb24gam9iIHN0YXR1cy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jY2FjaGV3aGVuXG4gKi9cbmV4cG9ydCBlbnVtIENhY2hlV2hlbiB7XG4gIC8qKiBVcGxvYWQgYXJ0aWZhY3RzIHJlZ2FyZGxlc3Mgb2Ygam9iIHN0YXR1cy4gKi9cbiAgQUxXQVlTID0gXCJhbHdheXNcIixcbiAgLyoqIFVwbG9hZCBhcnRpZmFjdHMgb25seSB3aGVuIHRoZSBqb2IgZmFpbHMuICovXG4gIE9OX0ZBSUxVUkUgPSBcIm9uX2ZhaWx1cmVcIixcbiAgLyoqIFVwbG9hZCBhcnRpZmFjdHMgb25seSB3aGVuIHRoZSBqb2Igc3VjY2VlZHMgKHRoaXMgaXMgdGhlIGRlZmF1bHQpLiAqL1xuICBPTl9TVUNDRVNTID0gXCJvbl9zdWNjZXNzXCIsXG59XG5cbi8qKlxuICogRGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIENJIENvbmZpZ3VyYXRpb24uIEpvYnMgdGhhdCBkbyBub3QgZGVmaW5lIG9uZSBvciBtb3JlIG9mIHRoZSBsaXN0ZWQga2V5d29yZHMgdXNlIHRoZSB2YWx1ZSBkZWZpbmVkIGluIHRoZSBkZWZhdWx0IHNlY3Rpb24uXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2RlZmF1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0IHtcbiAgLyogRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYWZ0ZXIqIGFsbCBqb2JzLiBDYW4gYmUgb3ZlcnJpZGVuIGJ5IHRoZSBqb2IgbGV2ZWwgYGFmdGVyU2NyaXB0LiAqL1xuICByZWFkb25seSBhZnRlclNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiBMaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgam9iIGlmIGl0IHN1Y2NlZWRzLiBBcnRpZmFjdHMgYXJlIHNlbnQgdG8gR2l0bGFiIHdoZXJlIHRoZXkgY2FuIGJlIGRvd25sb2FkZWQuICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IEFydGlmYWN0cztcbiAgLyogRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYmVmb3JlKiBhbGwgam9icy4gQ2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgam9iIGxldmVsIGBhZnRlclNjcmlwdGAuICovXG4gIHJlYWRvbmx5IGJlZm9yZVNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiBBIGxpc3Qgb2YgY2FjaGUgZGVmaW5pdGlvbnMgKG1heC4gNCkgd2l0aCB0aGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNhY2hlIGJldHdlZW4gam9icy4gWW91IGNhbiBvbmx5IHVzZSBwYXRocyB0aGF0IGFyZSBpbiB0aGUgbG9jYWwgd29ya2luZyBjb3B5LiAqL1xuICByZWFkb25seSBjYWNoZT86IENhY2hlW107XG4gIC8qIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBkb2NrZXIgaW1hZ2UgdG8gdXNlIGdsb2JhbGx5IGZvciBhbGwgam9icy4gKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBJbWFnZTtcbiAgLyogSWYgYSBqb2Igc2hvdWxkIGJlIGNhbmNlbGVkIHdoZW4gYSBuZXdlciBwaXBlbGluZSBzdGFydHMgYmVmb3JlIHRoZSBqb2IgY29tcGxldGVzIChEZWZhdWx0OiBmYWxzZSkuKi9cbiAgcmVhZG9ubHkgaW50ZXJydXB0aWJsZT86IGJvb2xlYW47XG4gIC8qIEhvdyBtYW55IHRpbWVzIGEgam9iIGlzIHJldHJpZWQgaWYgaXQgZmFpbHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byAwIGFuZCBqb2JzIGRvIG5vdCByZXRyeS4gKi9cbiAgcmVhZG9ubHkgcmV0cnk/OiBSZXRyeTtcbiAgLyogQWRkaXRpb25hbCBEb2NrZXIgaW1hZ2VzIHRvIHJ1biBzY3JpcHRzIGluLiBUaGUgc2VydmljZSBpbWFnZSBpcyBsaW5rZWQgdG8gdGhlIGltYWdlIHNwZWNpZmllZCBpbiB0aGUgIGltYWdlIHBhcmFtZXRlci4gKi9cbiAgcmVhZG9ubHkgc2VydmljZXM/OiBTZXJ2aWNlW107XG4gIC8qIFVzZWQgdG8gc2VsZWN0IGEgc3BlY2lmaWMgcnVubmVyIGZyb20gdGhlIGxpc3Qgb2YgYWxsIHJ1bm5lcnMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHJvamVjdC4gKi9cbiAgcmVhZG9ubHkgdGFncz86IHN0cmluZ1tdO1xuICAvKiBBIGRlZmF1bHQgdGltZW91dCBqb2Igd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXNlZCB0byBzcGVjaWZ5IGEgbGlzdCBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGpvYiBpZiBpdFxuICogc3VjY2VlZHMuIEFydGlmYWN0cyBhcmUgc2VudCB0byBHaXRsYWIgd2hlcmUgdGhleSBjYW4gYmUgZG93bmxvYWRlZC5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jYXJ0aWZhY3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWZhY3RzIHtcbiAgLyoqIEEgbGlzdCBvZiBwYXRocyB0byBmaWxlcy9mb2xkZXJzIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGluIHRoZSBhcnRpZmFjdC4gKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuICAvKiogSG93IGxvbmcgYXJ0aWZhY3RzIHNob3VsZCBiZSBrZXB0LiBUaGV5IGFyZSBzYXZlZCAzMCBkYXlzIGJ5IGRlZmF1bHQuIEFydGlmYWN0cyB0aGF0IGhhdmUgZXhwaXJlZCBhcmUgcmVtb3ZlZCBwZXJpb2RpY2FsbHkgdmlhIGNyb24gam9iLiBTdXBwb3J0cyBhIHdpZGUgdmFyaWV0eSBvZiBmb3JtYXRzLCBlLmcuICcxIHdlZWsnLCAnMyBtaW5zIDQgc2VjJywgJzIgaHJzIDIwIG1pbicsICcyaDIwbWluJywgJzYgbW9zIDEgZGF5JywgJzQ3IHlycyA2IG1vcyBhbmQgNGQnLCAnMyB3ZWVrcyBhbmQgMiBkYXlzJy4gKi9cbiAgcmVhZG9ubHkgZXhwaXJlSW4/OiBzdHJpbmc7XG4gIC8qKiBDYW4gYmUgdXNlZCB0byBleHBvc2Ugam9iIGFydGlmYWN0cyBpbiB0aGUgbWVyZ2UgcmVxdWVzdCBVSS4gR2l0TGFiIHdpbGwgYWRkIGEgbGluayA8ZXhwb3NlX2FzPiB0byB0aGUgcmVsZXZhbnQgbWVyZ2UgcmVxdWVzdCB0aGF0IHBvaW50cyB0byB0aGUgYXJ0aWZhY3QuICovXG4gIHJlYWRvbmx5IGV4cG9zZUFzPzogc3RyaW5nO1xuICAvKiogTmFtZSBmb3IgdGhlIGFyY2hpdmUgY3JlYXRlZCBvbiBqb2Igc3VjY2Vzcy4gQ2FuIHVzZSB2YXJpYWJsZXMgaW4gdGhlIG5hbWUsIGUuZy4gJyRDSV9KT0JfTkFNRScgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgLyoqIEEgbGlzdCBvZiBwYXRocyB0byBmaWxlcy9mb2xkZXJzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBhcnRpZmFjdC4gKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXTtcbiAgLyoqIFJlcG9ydHMgd2lsbCBiZSB1cGxvYWRlZCBhcyBhcnRpZmFjdHMsIGFuZCBvZnRlbiBkaXNwbGF5ZWQgaW4gdGhlIEdpdGxhYiBVSSwgc3VjaCBhcyBpbiBNZXJnZSBSZXF1ZXN0cy4qL1xuICByZWFkb25seSByZXBvcnRzPzogUmVwb3J0cztcbiAgLyoqIFdoZXRoZXIgdG8gYWRkIGFsbCB1bnRyYWNrZWQgZmlsZXMgKGFsb25nIHdpdGggJ2FydGlmYWN0cy5wYXRocycpIHRvIHRoZSBhcnRpZmFjdC4qL1xuICByZWFkb25seSB1bnRyYWNrZWQ/OiBib29sZWFuO1xuICAvKiogQ29uZmlndXJlIHdoZW4gYXJ0aWZhY3RzIGFyZSB1cGxvYWRlZCBkZXBlbmRlZCBvbiBqb2Igc3RhdHVzLiovXG4gIHJlYWRvbmx5IHdoZW4/OiBDYWNoZVdoZW47XG59XG5cbi8qKlxuICogQ29kZSBjb3ZlcmFnZSByZXBvcnQgaW50ZXJmYWNlXG4gKiBAbGluayBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL2FydGlmYWN0c19yZXBvcnRzLmh0bWwjYXJ0aWZhY3RzcmVwb3J0c2NvdmVyYWdlX3JlcG9ydFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvdmVyYWdlUmVwb3J0IHtcbiAgcmVhZG9ubHkgY292ZXJhZ2VGb3JtYXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcG9ydHMgd2lsbCBiZSB1cGxvYWRlZCBhcyBhcnRpZmFjdHMsIGFuZCBvZnRlbiBkaXNwbGF5ZWQgaW4gdGhlIEdpdGxhYiBVSSwgc3VjaCBhcyBpblxuICogTWVyZ2UgUmVxdWVzdHMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2FydGlmYWN0c3JlcG9ydHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRzIHtcbiAgLyoqIFBhdGggZm9yIGZpbGUocykgdGhhdCBzaG91bGQgYmUgcGFyc2VkIGFzIENvYmVydHVyYSBYTUwgY292ZXJhZ2UgcmVwb3J0XG4gICAqIEBkZXByZWNhdGVkIHBlciB7QGxpbmsgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvdXBkYXRlL2RlcHJlY2F0aW9ucy5odG1sI2FydGlmYWN0c3JlcG9ydHNjb2JlcnR1cmEta2V5d29yZH0gdXNlIHtAbGluayBjb3ZlcmFnZVJlcG9ydH0gaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgY29iZXJ0dXJhPzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGNvZGUgcXVhbGl0eSByZXBvcnQocykgKHN1Y2ggYXMgQ29kZSBDbGltYXRlKS4qL1xuICByZWFkb25seSBjb2RlcXVhbGl0eT86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBDb250YWluZXIgc2Nhbm5pbmcgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBjb250YWluZXJTY2FubmluZz86IHN0cmluZ1tdO1xuICAvKiogQ29kZSBjb3ZlcmFnZSByZXBvcnQgaW5mb3JtYXRpb24gKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2VSZXBvcnQ/OiBDb3ZlcmFnZVJlcG9ydDtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggREFTVCB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGRhc3Q/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggRGVwZW5kZW5jeSBzY2FubmluZyB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY3lTY2FubmluZz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgY29udGFpbmluZyBydW50aW1lLWNyZWF0ZWQgdmFyaWFibGVzIGZvciB0aGlzIGpvYi4qL1xuICByZWFkb25seSBkb3RlbnY/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggZm9yIGZpbGUocykgdGhhdCBzaG91bGQgYmUgcGFyc2VkIGFzIEpVbml0IFhNTCByZXN1bHQqL1xuICByZWFkb25seSBqdW5pdD86IHN0cmluZ1tdO1xuICAvKiogRGVwcmVjYXRlZCBpbiAxMi44OiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGxpY2Vuc2UgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGxpY2Vuc2VNYW5hZ2VtZW50Pzogc3RyaW5nW107XG4gIC8qKiBQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGxpY2Vuc2UgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IGxpY2Vuc2VTY2FubmluZz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgY29udGFpbmluZyBjb2RlIGludGVsbGlnZW5jZSAoTGFuZ3VhZ2UgU2VydmVyIEluZGV4IEZvcm1hdCkuKi9cbiAgcmVhZG9ubHkgbHNpZj86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjdXN0b20gbWV0cmljcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgbWV0cmljcz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBwZXJmb3JtYW5jZSBtZXRyaWNzIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBwZXJmb3JtYW5jZT86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCByZXF1aXJlbWVudHMgcmVwb3J0KHMpLiovXG4gIHJlYWRvbmx5IHJlcXVpcmVtZW50cz86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBTQVNUIHZ1bG5lcmFiaWxpdGllcyByZXBvcnQocykuKi9cbiAgcmVhZG9ubHkgc2FzdD86IHN0cmluZ1tdO1xuICAvKiogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBzZWNyZXQgZGV0ZWN0aW9uIHJlcG9ydChzKS4qL1xuICByZWFkb25seSBzZWNyZXREZXRlY3Rpb24/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggdGVycmFmb3JtIHBsYW4ocykuKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogaWRfdG9rZW5zIERlZmluaXRpb24uXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2lkX3Rva2Vuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElEVG9rZW4ge1xuICAvKiogVGhlIHJlcXVpcmVkIGF1ZCBzdWIta2V5d29yZCBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgYXVkIGNsYWltIGZvciB0aGUgSldULiAqL1xuICBhdWQ6IHN0cmluZ1tdIHwgc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgZG9ja2VyIGltYWdlIHRvIHVzZSBmb3IgdGhlIGpvYiBvciBnbG9iYWxseSBmb3IgYWxsIGpvYnMuIEpvYiBjb25maWd1cmF0aW9uXG4gKiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZ2xvYmFsIHNldHRpbmcuIFJlcXVpcmVzIGEgY2VydGFpbiBraW5kIG9mIEdpdGxhYiBydW5uZXIgZXhlY3V0b3IuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2ltYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2Uge1xuICAvKiogQ29tbWFuZCBvciBzY3JpcHQgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgYXMgdGhlIGNvbnRhaW5lcidzIGVudHJ5cG9pbnQuIEl0IHdpbGwgYmUgdHJhbnNsYXRlZCB0byBEb2NrZXIncyAtLWVudHJ5cG9pbnQgb3B0aW9uIHdoaWxlIGNyZWF0aW5nIHRoZSBjb250YWluZXIuIFRoZSBzeW50YXggaXMgc2ltaWxhciB0byBEb2NrZXJmaWxlJ3MgRU5UUllQT0lOVCBkaXJlY3RpdmUsIHdoZXJlIGVhY2ggc2hlbGwgdG9rZW4gaXMgYSBzZXBhcmF0ZSBzdHJpbmcgaW4gdGhlIGFycmF5LiovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBhbnlbXTtcbiAgLyoqIEZ1bGwgbmFtZSBvZiB0aGUgaW1hZ2UgdGhhdCBzaG91bGQgYmUgdXNlZC4gSXQgc2hvdWxkIGNvbnRhaW4gdGhlIFJlZ2lzdHJ5IHBhcnQgaWYgbmVlZGVkLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBIb3cgbWFueSB0aW1lcyBhIGpvYiBpcyByZXRyaWVkIGlmIGl0IGZhaWxzLiBJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gMCBhbmQgam9icyBkbyBub3QgcmV0cnkuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3JldHJ5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnkge1xuICAvKiogMCAoZGVmYXVsdCksIDEsIG9yIDIuKi9cbiAgcmVhZG9ubHkgbWF4PzogbnVtYmVyO1xuICAvKiogRWl0aGVyIGEgc2luZ2xlIG9yIGFycmF5IG9mIGVycm9yIHR5cGVzIHRvIHRyaWdnZXIgam9iIHJldHJ5LiovXG4gIHJlYWRvbmx5IHdoZW4/OiBhbnk7XG59XG5cbi8qKlxuICogVXNlZCB0byBzcGVjaWZ5IGFuIGFkZGl0aW9uYWwgRG9ja2VyIGltYWdlIHRvIHJ1biBzY3JpcHRzIGluLiBUaGUgc2VydmljZSBpbWFnZSBpcyBsaW5rZWQgdG8gdGhlIGltYWdlIHNwZWNpZmllZCBpbiB0aGUgQERlZmF1bHQgaW1hZ2Uga2V5d29yZC5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jc2VydmljZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIHtcbiAgLyoqIEFkZGl0aW9uYWwgYWxpYXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgdGhlIHNlcnZpY2UgZnJvbSB0aGUgam9iJ3MgY29udGFpbmVyLiBSZWFkIEFjY2Vzc2luZyB0aGUgc2VydmljZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG4gIC8qKiBDb21tYW5kIG9yIHNjcmlwdCB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBjb250YWluZXIncyBjb21tYW5kLiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gYXJndW1lbnRzIHBhc3NlZCB0byBEb2NrZXIgYWZ0ZXIgdGhlIGltYWdlJ3MgbmFtZS4gVGhlIHN5bnRheCBpcyBzaW1pbGFyIHRvIERvY2tlcmZpbGUncyBDTUQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4qL1xuICByZWFkb25seSBjb21tYW5kPzogc3RyaW5nW107XG4gIC8qKiBDb21tYW5kIG9yIHNjcmlwdCB0aGF0IHNob3VsZCBiZSBleGVjdXRlZCBhcyB0aGUgY29udGFpbmVyJ3MgZW50cnlwb2ludC4gSXQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIERvY2tlcidzIC0tZW50cnlwb2ludCBvcHRpb24gd2hpbGUgY3JlYXRpbmcgdGhlIGNvbnRhaW5lci4gVGhlIHN5bnRheCBpcyBzaW1pbGFyIHRvIERvY2tlcmZpbGUncyBFTlRSWVBPSU5UIGRpcmVjdGl2ZSwgd2hlcmUgZWFjaCBzaGVsbCB0b2tlbiBpcyBhIHNlcGFyYXRlIHN0cmluZyBpbiB0aGUgYXJyYXkuKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludD86IHN0cmluZ1tdO1xuICAvKiogRnVsbCBuYW1lIG9mIHRoZSBpbWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkLiBJdCBzaG91bGQgY29udGFpbiB0aGUgUmVnaXN0cnkgcGFydCBpZiBuZWVkZWQuKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKiogVGhlIHB1bGwgcG9saWN5IHRoYXQgdGhlIHJ1bm5lciB1c2VzIHRvIGZldGNoIHRoZSBEb2NrZXIgaW1hZ2UgKi9cbiAgcmVhZG9ubHkgcHVsbFBvbGljeT86IFB1bGxQb2xpY3lbXTtcbiAgLyoqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIHBhc3NlZCBleGNsdXNpdmVseSB0byB0aGUgc2VydmljZS4uICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBjb25kaXRpb25zIGZvciB3aGVuIHRvIHB1bGwgYW4gaW1hZ2UuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3NlcnZpY2VwdWxsX3BvbGljeVxuICovXG5leHBvcnQgZW51bSBQdWxsUG9saWN5IHtcbiAgQUxXQVlTID0gXCJhbHdheXNcIixcbiAgTkVWRVIgPSBcIm5ldmVyXCIsXG4gIElGX05PVF9QUkVTRU5UID0gXCJpZi1ub3QtcHJlc2VudFwiLFxufVxuXG4vKipcbiAqIEFuIGluY2x1ZGVkIFlBTUwgZmlsZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jaW5jbHVkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2x1ZGUge1xuICAvKiogUmVsYXRpdmUgcGF0aCBmcm9tIGxvY2FsIHJlcG9zaXRvcnkgcm9vdCAoYC9gKSB0byB0aGUgYHlhbWxgL2B5bWxgIGZpbGUgdGVtcGxhdGUuIFRoZSBmaWxlIG11c3QgYmUgb24gdGhlIHNhbWUgYnJhbmNoLCBhbmQgZG9lcyBub3Qgd29yayBhY3Jvc3MgZ2l0IHN1Ym1vZHVsZXMuKi9cbiAgcmVhZG9ubHkgbG9jYWw/OiBzdHJpbmc7XG4gIC8qKlJ1bGVzIGFsbG93cyBmb3IgYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBydWxlIG9iamVjdHMgdG8gYmUgZXZhbHVhdGVkIGluIG9yZGVyLCB1bnRpbCBvbmUgbWF0Y2hlcyBhbmQgZHluYW1pY2FsbHkgcHJvdmlkZXMgYXR0cmlidXRlcyB0byB0aGUgam9iLiAqL1xuICByZWFkb25seSBydWxlcz86IEluY2x1ZGVSdWxlW107XG4gIC8qKiBGaWxlcyBmcm9tIGFub3RoZXIgcHJpdmF0ZSBwcm9qZWN0IG9uIHRoZSBzYW1lIEdpdExhYiBpbnN0YW5jZS4gWW91IGNhbiB1c2UgYGZpbGVgIGluIGNvbWJpbmF0aW9uIHdpdGggYHByb2plY3RgIG9ubHkuICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmdbXTtcbiAgLyoqIFBhdGggdG8gdGhlIHByb2plY3QsIGUuZy4gYGdyb3VwL3Byb2plY3RgLCBvciBgZ3JvdXAvc3ViLWdyb3VwL3Byb2plY3RgLiovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIC8qKiBCcmFuY2gvVGFnL0NvbW1pdC1oYXNoIGZvciB0aGUgdGFyZ2V0IHByb2plY3QuKi9cbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xuICAvKiogVXNlIGEgYC5naXRsYWItY2kueW1sYCB0ZW1wbGF0ZSBhcyBhIGJhc2UsIGUuZy4gYE5vZGVqcy5naXRsYWItY2kueW1sYC4qL1xuICByZWFkb25seSB0ZW1wbGF0ZT86IHN0cmluZztcbiAgLyoqIFVSTCB0byBhIGB5YW1sYC9geW1sYCB0ZW1wbGF0ZSBmaWxlIHVzaW5nIEhUVFAvSFRUUFMuKi9cbiAgcmVhZG9ubHkgcmVtb3RlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJ1bGVzIGFsbG93cyBmb3IgYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBydWxlIG9iamVjdHMgdG8gYmUgZXZhbHVhdGVkIGluIG9yZGVyLCB1bnRpbCBvbmVcbiAqIG1hdGNoZXMgYW5kIGR5bmFtaWNhbGx5IHByb3ZpZGVzIGF0dHJpYnV0ZXMgdG8gdGhlIGpvYi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9pbmNsdWRlcy5odG1sI3VzZS1ydWxlcy13aXRoLWluY2x1ZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNsdWRlUnVsZSB7XG4gIC8qIFdoZXRoZXIgYSBwaXBlbGluZSBzaG91bGQgY29udGludWUgcnVubmluZyB3aGVuIGEgam9iIGZhaWxzLiAqL1xuICByZWFkb25seSBhbGxvd0ZhaWx1cmU/OiBib29sZWFuIHwgQWxsb3dGYWlsdXJlO1xuICAvKiBTcGVjaWZ5IHdoZW4gdG8gYWRkIGEgam9iIHRvIGEgcGlwZWxpbmUgYnkgY2hlY2tpbmcgZm9yIGNoYW5nZXMgdG8gc3BlY2lmaWMgZmlsZXMuICovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBzdHJpbmdbXTtcbiAgLyogUnVuIGEgam9iIHdoZW4gY2VydGFpbiBmaWxlcyBleGlzdCBpbiB0aGUgcmVwb3NpdG9yeS4gKi9cbiAgcmVhZG9ubHkgZXhpc3RzPzogc3RyaW5nW107XG4gIC8qIENsYXVzZXMgdG8gc3BlY2lmeSB3aGVuIHRvIGFkZCBhIGpvYiB0byBhIHBpcGVsaW5lLiovXG4gIHJlYWRvbmx5IGlmPzogc3RyaW5nO1xuICAvKiBFeGVjdXRlIHNjcmlwdHMgYWZ0ZXIgYSB3YWl0aW5nIHBlcmlvZCB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS4gKi9cbiAgcmVhZG9ubHkgc3RhcnRJbj86IHN0cmluZztcbiAgLyogVXNlIHZhcmlhYmxlcyBpbiBydWxlcyB0byBkZWZpbmUgdmFyaWFibGVzIGZvciBzcGVjaWZpYyBjb25kaXRpb25zLiAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiBDb25kaXRpb25zIGZvciB3aGVuIHRvIHJ1biB0aGUgam9iLiBEZWZhdWx0cyB0byAnb25fc3VjY2VzcycgKi9cbiAgcmVhZG9ubHkgd2hlbj86IEpvYldoZW47XG59XG5cbi8qKlxuICogRXhpdCBjb2RlIHRoYXQgYXJlIG5vdCBjb25zaWRlcmVkIGZhaWx1cmUuIFRoZSBqb2IgZmFpbHMgZm9yIGFueSBvdGhlciBleGl0IGNvZGUuXG4gKiBZb3UgY2FuIGxpc3Qgd2hpY2ggZXhpdCBjb2RlcyBhcmUgbm90IGNvbnNpZGVyZWQgZmFpbHVyZXMuIFRoZSBqb2IgZmFpbHMgZm9yIGFueSBvdGhlclxuICogZXhpdCBjb2RlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNhbGxvd19mYWlsdXJlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb3dGYWlsdXJlIHtcbiAgcmVhZG9ubHkgZXhpdENvZGVzOiBudW1iZXJbXSB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHdoZW4gdG8gcnVuIHRoZSBqb2IuIERlZmF1bHRzIHRvICdvbl9zdWNjZXNzJy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jd2hlblxuICovXG5leHBvcnQgZW51bSBKb2JXaGVuIHtcbiAgQUxXQVlTID0gXCJhbHdheXNcIixcbiAgREVMQVlFRCA9IFwiZGVsYXllZFwiLFxuICBNQU5VQUwgPSBcIm1hbnVhbFwiLFxuICBORVZFUiA9IFwibmV2ZXJcIixcbiAgT05fRkFJTFVSRSA9IFwib25fZmFpbHVyZVwiLFxuICBPTl9TVUNDRVNTID0gXCJvbl9zdWNjZXNzXCIsXG59XG5cbi8qKlxuICogSm9icyBhcmUgdGhlIG1vc3QgZnVuZGFtZW50YWwgZWxlbWVudCBvZiBhIC5naXRsYWItY2kueW1sIGZpbGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL2pvYnMvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iIHtcbiAgLyogRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYWZ0ZXIqIHRoZSBqb2IuICovXG4gIHJlYWRvbmx5IGFmdGVyU2NyaXB0Pzogc3RyaW5nW107XG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IHRoZSBwaXBlbGluZSB0byBjb250aW51ZSBydW5uaW5nIG9uIGpvYiBmYWlsdXJlIChEZWZhdWx0OiBmYWxzZSkuICovXG4gIHJlYWRvbmx5IGFsbG93RmFpbHVyZT86IGJvb2xlYW4gfCBBbGxvd0ZhaWx1cmU7XG4gIC8qIEEgbGlzdCBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGpvYiBpZiBpdCBzdWNjZWVkcy4gQXJ0aWZhY3RzIGFyZSBzZW50IHRvIEdpdGxhYiB3aGVyZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLiAqL1xuICByZWFkb25seSBhcnRpZmFjdHM/OiBBcnRpZmFjdHM7XG4gIC8qIERlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmJlZm9yZSogdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgYmVmb3JlU2NyaXB0Pzogc3RyaW5nW107XG4gIC8qIEEgbGlzdCBvZiBjYWNoZSBkZWZpbml0aW9ucyAobWF4LiA0KSB3aXRoIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gY2FjaGUgYmV0d2VlbiBqb2JzLiBZb3UgY2FuIG9ubHkgdXNlIHBhdGhzIHRoYXQgYXJlIGluIHRoZSBsb2NhbCB3b3JraW5nIGNvcHkuICovXG4gIHJlYWRvbmx5IGNhY2hlPzogQ2FjaGVbXTtcbiAgLyoqIE11c3QgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24sIG9wdGlvbmFsbHkgYnV0IHJlY29tbWVuZGVkIHRvIGJlIHF1b3RlZCwgYW5kIG11c3QgYmUgc3Vycm91bmRlZCB3aXRoICcvJy4gRXhhbXBsZTogJy9Db2RlIGNvdmVyYWdlOiBcXGQrXFwuXFxkKy8nKi9cbiAgcmVhZG9ubHkgY292ZXJhZ2U/OiBzdHJpbmc7XG4gIC8qKiBTcGVjaWZ5IGEgbGlzdCBvZiBqb2IgbmFtZXMgZnJvbSBlYXJsaWVyIHN0YWdlcyBmcm9tIHdoaWNoIGFydGlmYWN0cyBzaG91bGQgYmUgbG9hZGVkLiBCeSBkZWZhdWx0LCBhbGwgcHJldmlvdXMgYXJ0aWZhY3RzIGFyZSBwYXNzZWQuIFVzZSBhbiBlbXB0eSBhcnJheSB0byBza2lwIGRvd25sb2FkaW5nIGFydGlmYWN0cy4qL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgLyoqIFVzZWQgdG8gYXNzb2NpYXRlIGVudmlyb25tZW50IG1ldGFkYXRhIHdpdGggYSBkZXBsb3kuIEVudmlyb25tZW50IGNhbiBoYXZlIGEgbmFtZSBhbmQgVVJMIGF0dGFjaGVkIHRvIGl0LCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgdW5kZXIgL2Vudmlyb25tZW50cyB1bmRlciB0aGUgcHJvamVjdC4qL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IEVudmlyb25tZW50IHwgc3RyaW5nO1xuICAvKiogSm9iIHdpbGwgcnVuICpleGNlcHQqIGZvciB3aGVuIHRoZXNlIGZpbHRlcmluZyBvcHRpb25zIG1hdGNoLiovXG4gIHJlYWRvbmx5IGV4Y2VwdD86IHN0cmluZ1tdIHwgRmlsdGVyO1xuICAvKiogVGhlIG5hbWUgb2Ygb25lIG9yIG1vcmUgam9icyB0byBpbmhlcml0IGNvbmZpZ3VyYXRpb24gZnJvbS4qL1xuICByZWFkb25seSBleHRlbmRzPzogc3RyaW5nW107XG4gIC8qKiBDb25maWd1cmFibGUgSUQgdG9rZW5zIChKU09OIFdlYiBUb2tlbnMpIHRoYXQgYXJlIHVzZWQgZm9yIENJL0NEIGF1dGhlbnRpY2F0aW9uICovXG4gIHJlYWRvbmx5IGlkVG9rZW5zPzogUmVjb3JkPHN0cmluZywgSURUb2tlbj47XG4gIC8qIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBkb2NrZXIgaW1hZ2UgdG8gdXNlZCBmb3IgdGhlIGpvYi4gKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBJbWFnZTtcbiAgLyoqIENvbnRyb2xzIGluaGVyaXRhbmNlIG9mIGdsb2JhbGx5LWRlZmluZWQgZGVmYXVsdHMgYW5kIHZhcmlhYmxlcy4gQm9vbGVhbiB2YWx1ZXMgY29udHJvbCBpbmhlcml0YW5jZSBvZiBhbGwgZGVmYXVsdDogb3IgdmFyaWFibGVzOiBrZXl3b3Jkcy4gVG8gaW5oZXJpdCBvbmx5IGEgc3Vic2V0IG9mIGRlZmF1bHQ6IG9yIHZhcmlhYmxlczoga2V5d29yZHMsIHNwZWNpZnkgd2hhdCB5b3Ugd2lzaCB0byBpbmhlcml0LiBBbnl0aGluZyBub3QgbGlzdGVkIGlzIG5vdCBpbmhlcml0ZWQuKi9cbiAgcmVhZG9ubHkgaW5oZXJpdD86IEluaGVyaXQ7XG4gIC8qIElmIGEgam9iIHNob3VsZCBiZSBjYW5jZWxlZCB3aGVuIGEgbmV3ZXIgcGlwZWxpbmUgc3RhcnRzIGJlZm9yZSB0aGUgam9iIGNvbXBsZXRlcyAoRGVmYXVsdDogZmFsc2UpLiovXG4gIHJlYWRvbmx5IGludGVycnVwdGlibGU/OiBib29sZWFuO1xuICAvKiogVGhlIGxpc3Qgb2Ygam9icyBpbiBwcmV2aW91cyBzdGFnZXMgd2hvc2Ugc29sZSBjb21wbGV0aW9uIGlzIG5lZWRlZCB0byBzdGFydCB0aGUgY3VycmVudCBqb2IuKi9cbiAgcmVhZG9ubHkgbmVlZHM/OiBBcnJheTxOZWVkIHwgc3RyaW5nPjtcbiAgLyoqIEpvYiB3aWxsIHJ1biAqb25seSogd2hlbiB0aGVzZSBmaWx0ZXJpbmcgb3B0aW9ucyBtYXRjaC4qL1xuICByZWFkb25seSBvbmx5Pzogc3RyaW5nW10gfCBGaWx0ZXI7XG4gIC8qKiBQYXJhbGxlbCB3aWxsIHNwbGl0IHVwIGEgc2luZ2xlIGpvYiBpbnRvIHNldmVyYWwsIGFuZCBwcm92aWRlIGBDSV9OT0RFX0lOREVYYCBhbmQgYENJX05PREVfVE9UQUxgIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIHJ1bm5pbmcgam9icy4qL1xuICByZWFkb25seSBwYXJhbGxlbD86IFBhcmFsbGVsIHwgbnVtYmVyO1xuICAvKiogSW5kaWNhdGVzIHRoYXQgdGhlIGpvYiBjcmVhdGVzIGEgUmVsZWFzZS4qL1xuICByZWFkb25seSByZWxlYXNlPzogUmVsZWFzZTtcbiAgLyoqIExpbWl0IGpvYiBjb25jdXJyZW5jeS4gQ2FuIGJlIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIFJ1bm5lciB3aWxsIG5vdCBydW4gY2VydGFpbiBqb2JzIHNpbXVsdGFuZW91c2x5LiovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA/OiBzdHJpbmc7XG4gIC8qIEhvdyBtYW55IHRpbWVzIGEgam9iIGlzIHJldHJpZWQgaWYgaXQgZmFpbHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byAwIGFuZCBqb2JzIGRvIG5vdCByZXRyeS4gKi9cbiAgcmVhZG9ubHkgcmV0cnk/OiBSZXRyeTtcbiAgLyoqUnVsZXMgYWxsb3dzIGZvciBhbiBhcnJheSBvZiBpbmRpdmlkdWFsIHJ1bGUgb2JqZWN0cyB0byBiZSBldmFsdWF0ZWQgaW4gb3JkZXIsIHVudGlsIG9uZSBtYXRjaGVzIGFuZCBkeW5hbWljYWxseSBwcm92aWRlcyBhdHRyaWJ1dGVzIHRvIHRoZSBqb2IuICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogSW5jbHVkZVJ1bGVbXTtcbiAgLyoqIFNoZWxsIHNjcmlwdHMgZXhlY3V0ZWQgYnkgdGhlIFJ1bm5lci4gVGhlIG9ubHkgcmVxdWlyZWQgcHJvcGVydHkgb2Ygam9icy4gQmUgY2FyZWZ1bCB3aXRoIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiBgOmAsIGB7YCwgYH1gLCBgJmApIGFuZCB1c2Ugc2luZ2xlIG9yIGRvdWJsZSBxdW90ZXMgdG8gYXZvaWQgaXNzdWVzLiovXG4gIHJlYWRvbmx5IHNjcmlwdD86IHN0cmluZ1tdO1xuICAvKiogQ0kvQ0Qgc2VjcmV0cyAqL1xuICByZWFkb25seSBzZWNyZXRzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgU2VjcmV0Pj47XG4gIC8qIEFkZGl0aW9uYWwgRG9ja2VyIGltYWdlcyB0byBydW4gc2NyaXB0cyBpbi4gVGhlIHNlcnZpY2UgaW1hZ2UgaXMgbGlua2VkIHRvIHRoZSBpbWFnZSBzcGVjaWZpZWQgaW4gdGhlICBpbWFnZSBwYXJhbWV0ZXIuICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzPzogU2VydmljZVtdO1xuICAvKiogRGVmaW5lIHdoYXQgc3RhZ2UgdGhlIGpvYiB3aWxsIHJ1biBpbi4qL1xuICByZWFkb25seSBzdGFnZT86IHN0cmluZztcbiAgLyogRXhlY3V0ZSBzY3JpcHRzIGFmdGVyIGEgd2FpdGluZyBwZXJpb2Qgd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHN0YXJ0SW4/OiBzdHJpbmc7XG4gIC8qIFVzZWQgdG8gc2VsZWN0IGEgc3BlY2lmaWMgcnVubmVyIGZyb20gdGhlIGxpc3Qgb2YgYWxsIHJ1bm5lcnMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHJvamVjdC4gKi9cbiAgcmVhZG9ubHkgdGFncz86IHN0cmluZ1tdO1xuICAvKiBBIGRlZmF1bHQgdGltZW91dCBqb2Igd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG4gIC8qKiBUcmlnZ2VyIGFsbG93cyB5b3UgdG8gZGVmaW5lIGRvd25zdHJlYW0gcGlwZWxpbmUgdHJpZ2dlci4gV2hlbiBhIGpvYiBjcmVhdGVkIGZyb20gdHJpZ2dlciBkZWZpbml0aW9uIGlzIHN0YXJ0ZWQgYnkgR2l0TGFiLCBhIGRvd25zdHJlYW0gcGlwZWxpbmUgZ2V0cyBjcmVhdGVkLiBSZWFkIG1vcmU6IGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvUkVBRE1FLmh0bWwjdHJpZ2dlciovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyIHwgc3RyaW5nO1xuICAvKiogQ29uZmlndXJhYmxlIHZhbHVlcyB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlIEpvYi4gKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIERlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLiAqL1xuICByZWFkb25seSB3aGVuPzogSm9iV2hlbjtcbn1cblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgdGhhdCBhIGpvYiBkZXBsb3lzIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgLyoqIFNwZWNpZmllcyB3aGF0IHRoaXMgam9iIHdpbGwgZG8uICdzdGFydCcgKGRlZmF1bHQpIGluZGljYXRlcyB0aGUgam9iIHdpbGwgc3RhcnQgdGhlIGRlcGxveW1lbnQuICdwcmVwYXJlJyBpbmRpY2F0ZXMgdGhpcyB3aWxsIG5vdCBhZmZlY3QgdGhlIGRlcGxveW1lbnQuICdzdG9wJyBpbmRpY2F0ZXMgdGhpcyB3aWxsIHN0b3AgdGhlIGRlcGxveW1lbnQuKi9cbiAgcmVhZG9ubHkgYWN0aW9uPzogQWN0aW9uO1xuICAvKiogVGhlIGFtb3VudCBvZiB0aW1lIGl0IHNob3VsZCB0YWtlIGJlZm9yZSBHaXRsYWIgd2lsbCBhdXRvbWF0aWNhbGx5IHN0b3AgdGhlIGVudmlyb25tZW50LiBTdXBwb3J0cyBhIHdpZGUgdmFyaWV0eSBvZiBmb3JtYXRzLCBlLmcuICcxIHdlZWsnLCAnMyBtaW5zIDQgc2VjJywgJzIgaHJzIDIwIG1pbicsICcyaDIwbWluJywgJzYgbW9zIDEgZGF5JywgJzQ3IHlycyA2IG1vcyBhbmQgNGQnLCAnMyB3ZWVrcyBhbmQgMiBkYXlzJy4qL1xuICByZWFkb25seSBhdXRvU3RvcEluPzogc3RyaW5nO1xuICAvKiogRXhwbGljaXRseSBzcGVjaWZpZXMgdGhlIHRpZXIgb2YgdGhlIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgaWYgbm9uLXN0YW5kYXJkIGVudmlyb25tZW50IG5hbWUgaXMgdXNlZC4qL1xuICByZWFkb25seSBkZXBsb3ltZW50VGllcj86IERlcGxveW1lbnRUaWVyO1xuICAvKiogVXNlZCB0byBjb25maWd1cmUgdGhlIGt1YmVybmV0ZXMgZGVwbG95bWVudCBmb3IgdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBmb3Iga3ViZXJuZXRlcyBjbHVzdGVycyB0aGF0IGFyZSBtYW5hZ2VkIGJ5IEdpdGxhYi4qL1xuICByZWFkb25seSBrdWJlcm5ldGVzPzogS3ViZXJuZXRlc0NvbmZpZztcbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCwgZS5nLiAncWEnLCAnc3RhZ2luZycsICdwcm9kdWN0aW9uJy4qL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgbmFtZSBvZiBhIGpvYiB0byBleGVjdXRlIHdoZW4gdGhlIGVudmlyb25tZW50IGlzIGFib3V0IHRvIGJlIHN0b3BwZWQuKi9cbiAgcmVhZG9ubHkgb25TdG9wPzogc3RyaW5nO1xuICAvKiogV2hlbiBzZXQsIHRoaXMgd2lsbCBleHBvc2UgYnV0dG9ucyBpbiB2YXJpb3VzIHBsYWNlcyBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgaW4gR2l0bGFiLCB0aGF0IHdpbGwgdGFrZSB5b3UgdG8gdGhlIGRlZmluZWQgVVJMLiovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hhdCB0aGlzIGpvYiB3aWxsIGRvLiAnc3RhcnQnIChkZWZhdWx0KSBpbmRpY2F0ZXMgdGhlIGpvYiB3aWxsIHN0YXJ0IHRoZVxuICogZGVwbG95bWVudC4gJ3ByZXBhcmUnIGluZGljYXRlcyB0aGlzIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVwbG95bWVudC4gJ3N0b3AnIGluZGljYXRlc1xuICogdGhpcyB3aWxsIHN0b3AgdGhlIGRlcGxveW1lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvbiB7XG4gIFBSRVBBUkUgPSBcInByZXBhcmVcIixcbiAgU1RBUlQgPSBcInN0YXJ0XCIsXG4gIFNUT1AgPSBcInN0b3BcIixcbn1cblxuLyoqXG4gKiBFeHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGllciBvZiB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBpZiBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRcbiAqIG5hbWUgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGVudW0gRGVwbG95bWVudFRpZXIge1xuICBERVZFTE9QTUVOVCA9IFwiZGV2ZWxvcG1lbnRcIixcbiAgT1RIRVIgPSBcIm90aGVyXCIsXG4gIFBST0RVQ1RJT04gPSBcInByb2R1Y3Rpb25cIixcbiAgU1RBR0lORyA9IFwic3RhZ2luZ1wiLFxuICBURVNUSU5HID0gXCJ0ZXN0aW5nXCIsXG59XG5cbi8qKlxuICogVXNlZCB0byBjb25maWd1cmUgdGhlIGt1YmVybmV0ZXMgZGVwbG95bWVudCBmb3IgdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBjdXJyZW50bHkgbm90XG4gKiBzdXBwb3J0ZWQgZm9yIGt1YmVybmV0ZXMgY2x1c3RlcnMgdGhhdCBhcmUgbWFuYWdlZCBieSBHaXRsYWIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS3ViZXJuZXRlc0NvbmZpZyB7XG4gIC8qKiBUaGUga3ViZXJuZXRlcyBuYW1lc3BhY2Ugd2hlcmUgdGhpcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgZGVwbG95ZWQgdG8uKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZpbHRlcmluZyBvcHRpb25zIGZvciB3aGVuIGEgam9iIHdpbGwgcnVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlciB7XG4gIC8qKiBGaWx0ZXIgam9iIGNyZWF0aW9uIGJhc2VkIG9uIGZpbGVzIHRoYXQgd2VyZSBtb2RpZmllZCBpbiBhIGdpdCBwdXNoLiovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlciBqb2IgYmFzZWQgb24gaWYgS3ViZXJuZXRlcyBpbnRlZ3JhdGlvbiBpcyBhY3RpdmUuKi9cbiAgcmVhZG9ubHkga3ViZXJuZXRlcz86IEt1YmVybmV0ZXNFbnVtO1xuICAvKiogQ29udHJvbCB3aGVuIHRvIGFkZCBqb2JzIHRvIGEgcGlwZWxpbmUgYmFzZWQgb24gYnJhbmNoIG5hbWVzIG9yIHBpcGVsaW5lIHR5cGVzLiAqL1xuICByZWFkb25seSByZWZzPzogc3RyaW5nW107XG4gIC8qKiBGaWx0ZXIgam9iIGJ5IGNoZWNraW5nIGNvbXBhcmluZyB2YWx1ZXMgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBSZWFkIG1vcmUgYWJvdXQgdmFyaWFibGUgZXhwcmVzc2lvbnM6IGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3ZhcmlhYmxlcy9SRUFETUUuaHRtbCN2YXJpYWJsZXMtZXhwcmVzc2lvbnMqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgam9iIGJhc2VkIG9uIGlmIEt1YmVybmV0ZXMgaW50ZWdyYXRpb24gaXMgYWN0aXZlLlxuICovXG5leHBvcnQgZW51bSBLdWJlcm5ldGVzRW51bSB7XG4gIEFDVElWRSA9IFwiYWN0aXZlXCIsXG59XG5cbi8qKlxuICogQ29udHJvbHMgaW5oZXJpdGFuY2Ugb2YgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBhbmQgdmFyaWFibGVzLiBCb29sZWFuIHZhbHVlcyBjb250cm9sXG4gKiBpbmhlcml0YW5jZSBvZiBhbGwgZGVmYXVsdDogb3IgdmFyaWFibGVzOiBrZXl3b3Jkcy4gVG8gaW5oZXJpdCBvbmx5IGEgc3Vic2V0IG9mIGRlZmF1bHQ6XG4gKiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLCBzcGVjaWZ5IHdoYXQgeW91IHdpc2ggdG8gaW5oZXJpdC4gQW55dGhpbmcgbm90IGxpc3RlZCBpcyBub3RcbiAqIGluaGVyaXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmhlcml0IHtcbiAgLyoqIFdoZXRoZXIgdG8gaW5oZXJpdCBhbGwgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBvciBub3QuIE9yIHN1YnNldCBvZiBpbmhlcml0ZWQgZGVmYXVsdHMqL1xuICByZWFkb25seSBkZWZhdWx0PzogRGVmYXVsdEVsZW1lbnRbXSB8IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIGluaGVyaXQgYWxsIGdsb2JhbGx5LWRlZmluZWQgdmFyaWFibGVzIG9yIG5vdC4gT3Igc3Vic2V0IG9mIGluaGVyaXRlZCB2YXJpYWJsZXMqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBzdHJpbmdbXSB8IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIERlZmF1bHRFbGVtZW50IHtcbiAgQUZURVJfU0NSSVBUID0gXCJhZnRlcl9zY3JpcHRcIixcbiAgQVJUSUZBQ1RTID0gXCJhcnRpZmFjdHNcIixcbiAgQkVGT1JFX1NDUklQVCA9IFwiYmVmb3JlX3NjcmlwdFwiLFxuICBDQUNIRSA9IFwiY2FjaGVcIixcbiAgSU1BR0UgPSBcImltYWdlXCIsXG4gIElOVEVSUlVQVElCTEUgPSBcImludGVycnVwdGlibGVcIixcbiAgUkVUUlkgPSBcInJldHJ5XCIsXG4gIFNFUlZJQ0VTID0gXCJzZXJ2aWNlc1wiLFxuICBUQUdTID0gXCJ0YWdzXCIsXG4gIFRJTUVPVVQgPSBcInRpbWVvdXRcIixcbn1cblxuLyoqXG4gKiBBIGpvYnMgaW4gYSBwcmV2aW91cyBzdGFnZSB3aG9zZSBzb2xlIGNvbXBsZXRpb24gaXMgbmVlZGVkIHRvIHN0YXJ0IHRoZSBjdXJyZW50IGpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZWVkIHtcbiAgcmVhZG9ubHkgYXJ0aWZhY3RzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgam9iOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGlwZWxpbmU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2VkIHRvIHJ1biBhIGpvYiBtdWx0aXBsZSB0aW1lcyBpbiBwYXJhbGxlbCBpbiBhIHNpbmdsZSBwaXBlbGluZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJhbGxlbCB7XG4gIC8qKiBEZWZpbmVzIGRpZmZlcmVudCB2YXJpYWJsZXMgZm9yIGpvYnMgdGhhdCBhcmUgcnVubmluZyBpbiBwYXJhbGxlbC4qL1xuICByZWFkb25seSBtYXRyaXg6IFJlY29yZDxzdHJpbmcsIGFueVtdPltdO1xufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSBqb2IgY3JlYXRlcyBhIFJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVsZWFzZSB7XG4gIHJlYWRvbmx5IGFzc2V0cz86IEFzc2V0cztcbiAgLyoqIFNwZWNpZmllcyB0aGUgbG9uZ2VyIGRlc2NyaXB0aW9uIG9mIHRoZSBSZWxlYXNlLiovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBUaGUgdGl0bGUgb2YgZWFjaCBtaWxlc3RvbmUgdGhlIHJlbGVhc2UgaXMgYXNzb2NpYXRlZCB3aXRoLiovXG4gIHJlYWRvbmx5IG1pbGVzdG9uZXM/OiBzdHJpbmdbXTtcbiAgLyoqIFRoZSBSZWxlYXNlIG5hbWUuIElmIG9taXR0ZWQsIGl0IGlzIHBvcHVsYXRlZCB3aXRoIHRoZSB2YWx1ZSBvZiByZWxlYXNlOiB0YWdfbmFtZS4qL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICAvKiogSWYgdGhlIHJlbGVhc2U6IHRhZ19uYW1lIGRvZXNu4oCZdCBleGlzdCB5ZXQsIHRoZSByZWxlYXNlIGlzIGNyZWF0ZWQgZnJvbSByZWYuIHJlZiBjYW4gYmUgYSBjb21taXQgU0hBLCBhbm90aGVyIHRhZyBuYW1lLCBvciBhIGJyYW5jaCBuYW1lLiovXG4gIHJlYWRvbmx5IHJlZj86IHN0cmluZztcbiAgLyoqIFRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHJlbGVhc2UgaXMgcmVhZHkuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaWYgbm90IGRlZmluZWQuIFNob3VsZCBiZSBlbmNsb3NlZCBpbiBxdW90ZXMgYW5kIGV4cHJlc3NlZCBpbiBJU08gODYwMSBmb3JtYXQuKi9cbiAgcmVhZG9ubHkgcmVsZWFzZWRBdD86IHN0cmluZztcbiAgLyoqIFRoZSB0YWdfbmFtZSBtdXN0IGJlIHNwZWNpZmllZC4gSXQgY2FuIHJlZmVyIHRvIGFuIGV4aXN0aW5nIEdpdCB0YWcgb3IgY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlci4qL1xuICByZWFkb25seSB0YWdOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXNzZXQgY29uZmlndXJhdGlvbiBmb3IgYSByZWxlYXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0cyB7XG4gIC8qKiBJbmNsdWRlIGFzc2V0IGxpbmtzIGluIHRoZSByZWxlYXNlLiovXG4gIHJlYWRvbmx5IGxpbmtzOiBMaW5rW107XG59XG5cbi8qKlxuICogTGluayBjb25maWd1cmF0aW9uIGZvciBhbiBhc3NldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rIHtcbiAgLyoqIFRoZSByZWRpcmVjdCBsaW5rIHRvIHRoZSB1cmwuKi9cbiAgcmVhZG9ubHkgZmlsZXBhdGg/OiBzdHJpbmc7XG4gIC8qKiBUaGUgY29udGVudCBraW5kIG9mIHdoYXQgdXNlcnMgY2FuIGRvd25sb2FkIHZpYSB1cmwuKi9cbiAgcmVhZG9ubHkgbGlua1R5cGU/OiBMaW5rVHlwZTtcbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBsaW5rLiovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFRoZSBVUkwgdG8gZG93bmxvYWQgYSBmaWxlLiovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjb250ZW50IGtpbmQgb2Ygd2hhdCB1c2VycyBjYW4gZG93bmxvYWQgdmlhIHVybC5cbiAqL1xuZXhwb3J0IGVudW0gTGlua1R5cGUge1xuICBJTUFHRSA9IFwiaW1hZ2VcIixcbiAgT1RIRVIgPSBcIm90aGVyXCIsXG4gIFBBQ0tBR0UgPSBcInBhY2thZ2VcIixcbiAgUlVOQk9PSyA9IFwicnVuYm9va1wiLFxufVxuXG4vKipcbiAqIEEgQ0kvQ0Qgc2VjcmV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0IHtcbiAgLyogU3BlY2lmaWNhdGlvbiBmb3IgYSBzZWNyZXQgcHJvdmlkZWQgYnkgYSBIYXNoaUNvcnAgVmF1bHQuICovXG4gIHJlYWRvbmx5IHZhdWx0OiBWYXVsdENvbmZpZztcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIGZvciBhIHNlY3JldCBwcm92aWRlZCBieSBhIEhhc2hpQ29ycCBWYXVsdC5cbiAqIEBzZWUgaHR0cHM6Ly93d3cudmF1bHRwcm9qZWN0LmlvL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhdWx0Q29uZmlnIHtcbiAgLyogVGhlIGVuZ2luZSBjb25maWd1cmF0aW9uIGZvciBhIHNlY3JldC4gKi9cbiAgcmVhZG9ubHkgZW5naW5lOiBFbmdpbmU7XG4gIC8qIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCB3aGVyZSB0aGUgcGFzc3dvcmQgaXMgc3RvcmVkLiAqL1xuICByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKiogUGF0aCB0byB0aGUgc2VjcmV0LiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGVuZ2luZSBjb25maWd1cmF0aW9uIGZvciBhIHNlY3JldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmdpbmUge1xuICAvKiogTmFtZSBvZiB0aGUgc2VjcmV0cyBlbmdpbmUuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqIFBhdGggdG8gdGhlIHNlY3JldHMgZW5naW5lLiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJpZ2dlciBhIG11bHRpLXByb2plY3Qgb3IgYSBjaGlsZCBwaXBlbGluZS4gUmVhZCBtb3JlOlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sL1JFQURNRS5odG1sI3NpbXBsZS10cmlnZ2VyLXN5bnRheC1mb3ItbXVsdGktcHJvamVjdC1waXBlbGluZXNcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9SRUFETUUuaHRtbCN0cmlnZ2VyLXN5bnRheC1mb3ItY2hpbGQtcGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyIHtcbiAgLyoqIFRoZSBicmFuY2ggbmFtZSB0aGF0IGEgZG93bnN0cmVhbSBwaXBlbGluZSB3aWxsIHVzZSovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcbiAgLyoqIFBhdGggdG8gdGhlIHByb2plY3QsIGUuZy4gYGdyb3VwL3Byb2plY3RgLCBvciBgZ3JvdXAvc3ViLWdyb3VwL3Byb2plY3RgLiovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIC8qKiBZb3UgY2FuIG1pcnJvciB0aGUgcGlwZWxpbmUgc3RhdHVzIGZyb20gdGhlIHRyaWdnZXJlZCBwaXBlbGluZSB0byB0aGUgc291cmNlIGJyaWRnZSBqb2IgYnkgdXNpbmcgc3RyYXRlZ3k6IGRlcGVuZCovXG4gIHJlYWRvbmx5IHN0cmF0ZWd5PzogU3RyYXRlZ3k7XG4gIC8qKiBBIGxpc3Qgb2YgbG9jYWwgZmlsZXMgb3IgYXJ0aWZhY3RzIGZyb20gb3RoZXIgam9icyB0byBkZWZpbmUgdGhlIHBpcGVsaW5lICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBUcmlnZ2VySW5jbHVkZVtdO1xufVxuXG4vKipcbiAqIFJlZmVyZW5jZXMgYSBsb2NhbCBmaWxlIG9yIGFuIGFydGlmYWN0IGZyb20gYW5vdGhlciBqb2IgdG8gZGVmaW5lIHRoZSBwaXBlbGluZVxuICogY29uZmlndXJhdGlvbi5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jdHJpZ2dlcmluY2x1ZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VySW5jbHVkZSB7XG4gIC8qKiBSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBsb2NhbCBZQU1MIGZpbGUgdG8gZGVmaW5lIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLiovXG4gIHJlYWRvbmx5IGxvY2FsPzogc3RyaW5nO1xuICAvKiogTmFtZSBvZiB0aGUgdGVtcGxhdGUgWUFNTCBmaWxlIHRvIHVzZSBpbiB0aGUgcGlwZWxpbmUgY29uZmlndXJhdGlvbi4qL1xuICByZWFkb25seSB0ZW1wbGF0ZT86IHN0cmluZztcbiAgLyoqIFJlbGF0aXZlIHBhdGggdG8gdGhlIGdlbmVyYXRlZCBZQU1MIGZpbGUgd2hpY2ggaXMgZXh0cmFjdGVkIGZyb20gdGhlIGFydGlmYWN0cyBhbmQgdXNlZCBhcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgdHJpZ2dlcmluZyB0aGUgY2hpbGQgcGlwZWxpbmUuKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3Q/OiBzdHJpbmc7XG4gIC8qKiBKb2IgbmFtZSB3aGljaCBnZW5lcmF0ZXMgdGhlIGFydGlmYWN0Ki9cbiAgcmVhZG9ubHkgam9iPzogc3RyaW5nO1xuICAvKiogUmVsYXRpdmUgcGF0aCBmcm9tIHJlcG9zaXRvcnkgcm9vdCAoYC9gKSB0byB0aGUgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBZQU1MIGZpbGUuKi9cbiAgcmVhZG9ubHkgZmlsZT86IHN0cmluZztcbiAgLyoqIFBhdGggdG8gYW5vdGhlciBwcml2YXRlIHByb2plY3QgdW5kZXIgdGhlIHNhbWUgR2l0TGFiIGluc3RhbmNlLCBsaWtlIGBncm91cC9wcm9qZWN0YCBvciBgZ3JvdXAvc3ViLWdyb3VwL3Byb2plY3RgLiovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG4gIC8qKiBCcmFuY2gvVGFnL0NvbW1pdCBoYXNoIGZvciB0aGUgdGFyZ2V0IHByb2plY3QuKi9cbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFlvdSBjYW4gbWlycm9yIHRoZSBwaXBlbGluZSBzdGF0dXMgZnJvbSB0aGUgdHJpZ2dlcmVkIHBpcGVsaW5lIHRvIHRoZSBzb3VyY2UgYnJpZGdlIGpvYlxuICogYnkgdXNpbmcgc3RyYXRlZ3k6IGRlcGVuZFxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN0cmlnZ2Vyc3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGVudW0gU3RyYXRlZ3kge1xuICBERVBFTkQgPSBcImRlcGVuZFwiLFxufVxuXG4vKipcbiAqIEV4cGxhaW5zIHdoYXQgdGhlIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGZvciwgd2hhdCB0aGUgYWNjZXB0YWJsZSB2YWx1ZXMgYXJlLlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN2YXJpYWJsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZUNvbmZpZyB7XG4gIC8qKiBEZWZpbmUgYSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBwcmVmaWxsZWQgd2hlbiBydW5uaW5nIGEgcGlwZWxpbmUgbWFudWFsbHkuIE11c3QgYmUgdXNlZCB3aXRoIHZhbHVlLiAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmFyaWFibGUgdmFsdWUuICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gY29udHJvbCBwaXBlbGluZSBiZWhhdmlvci5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC8jd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvdyB7XG4gIC8qKiBVc2VkIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgYSB3aG9sZSBwaXBlbGluZSBpcyBjcmVhdGVkLiAqL1xuICByZWFkb25seSBydWxlcz86IFdvcmtmbG93UnVsZVtdO1xufVxuXG4vKipcbiAqIFVzZWQgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBhIHdob2xlIHBpcGVsaW5lIGlzIGNyZWF0ZWQuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI3dvcmtmbG93cnVsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1J1bGUge1xuICAvKiBTcGVjaWZ5IHdoZW4gdG8gYWRkIGEgam9iIHRvIGEgcGlwZWxpbmUgYnkgY2hlY2tpbmcgZm9yIGNoYW5nZXMgdG8gc3BlY2lmaWMgZmlsZXMuICovXG4gIHJlYWRvbmx5IGNoYW5nZXM/OiBzdHJpbmdbXTtcbiAgLyogUnVuIGEgam9iIHdoZW4gY2VydGFpbiBmaWxlcyBleGlzdCBpbiB0aGUgcmVwb3NpdG9yeS4gKi9cbiAgcmVhZG9ubHkgZXhpc3RzPzogc3RyaW5nW107XG4gIC8qIENsYXVzZXMgdG8gc3BlY2lmeSB3aGVuIHRvIGFkZCBhIGpvYiB0byBhIHBpcGVsaW5lLiovXG4gIHJlYWRvbmx5IGlmPzogc3RyaW5nO1xuICAvKiBVc2UgdmFyaWFibGVzIGluIHJ1bGVzIHRvIGRlZmluZSB2YXJpYWJsZXMgZm9yIHNwZWNpZmljIGNvbmRpdGlvbnMuICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZz47XG4gIC8qIENvbmRpdGlvbnMgZm9yIHdoZW4gdG8gcnVuIHRoZSBqb2IuIERlZmF1bHRzIHRvICdvbl9zdWNjZXNzJyAqL1xuICByZWFkb25seSB3aGVuPzogSm9iV2hlbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHdoZW4gdG8gcnVuIHRoZSBqb2IuIERlZmF1bHRzIHRvICdvbl9zdWNjZXNzJy5cbiAqIFRoZSB2YWx1ZSBjYW4gb25seSBiZSAnYWx3YXlzJyBvciAnbmV2ZXInIHdoZW4gdXNlZCB3aXRoIHdvcmtmbG93LlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyN3b3JrZmxvd3J1bGVzXG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93V2hlbiB7XG4gIEFMV0FZUyA9IFwiYWx3YXlzXCIsXG4gIE5FVkVSID0gXCJuZXZlclwiLFxufVxuIl19
|
|
@@ -65,9 +65,10 @@ export declare class CiConfiguration extends Component {
|
|
|
65
65
|
*/
|
|
66
66
|
readonly defaultBeforeScript: string[];
|
|
67
67
|
/**
|
|
68
|
-
* A default list of files and directories to cache between jobs. You can only use paths that are in the local working copy.
|
|
68
|
+
* A default list of cache definitions (máx. 4) with the files and directories to cache between jobs. You can only use paths that are in the local working copy.
|
|
69
69
|
*/
|
|
70
|
-
|
|
70
|
+
private _defaultCache?;
|
|
71
|
+
get defaultCache(): Cache[] | undefined;
|
|
71
72
|
/**
|
|
72
73
|
* Specifies the default docker image to use globally for all jobs.
|
|
73
74
|
*/
|
|
@@ -161,6 +162,13 @@ export declare class CiConfiguration extends Component {
|
|
|
161
162
|
* @param jobs Jobs to add.
|
|
162
163
|
*/
|
|
163
164
|
addJobs(jobs: Record<string, Job>): void;
|
|
165
|
+
private isValidCacheSetup;
|
|
166
|
+
private assertIsValidCacheSetup;
|
|
167
|
+
/**
|
|
168
|
+
* Adds up to 4 default caches configuration to the CI configuration.
|
|
169
|
+
* @param caches Caches to add.
|
|
170
|
+
*/
|
|
171
|
+
addDefaultCaches(caches: Cache[]): void;
|
|
164
172
|
private renderCI;
|
|
165
173
|
private renderDefault;
|
|
166
174
|
}
|
|
@@ -13,6 +13,9 @@ const yaml_1 = require("../yaml");
|
|
|
13
13
|
* @see https://docs.gitlab.com/ee/ci/yaml/
|
|
14
14
|
*/
|
|
15
15
|
class CiConfiguration extends component_1.Component {
|
|
16
|
+
get defaultCache() {
|
|
17
|
+
return this._defaultCache;
|
|
18
|
+
}
|
|
16
19
|
constructor(project, name, options) {
|
|
17
20
|
super(project);
|
|
18
21
|
/**
|
|
@@ -67,7 +70,7 @@ class CiConfiguration extends component_1.Component {
|
|
|
67
70
|
this.defaultArtifacts = defaults.artifacts;
|
|
68
71
|
defaults.beforeScript &&
|
|
69
72
|
this.defaultBeforeScript.push(...defaults.beforeScript);
|
|
70
|
-
|
|
73
|
+
defaults.cache && this.addDefaultCaches(defaults.cache);
|
|
71
74
|
this.defaultImage = defaults.image;
|
|
72
75
|
this.defaultInterruptible = defaults.interruptible;
|
|
73
76
|
this.defaultRetry = defaults.retry;
|
|
@@ -201,8 +204,28 @@ class CiConfiguration extends component_1.Component {
|
|
|
201
204
|
if (value.stage) {
|
|
202
205
|
this.addStages(value.stage);
|
|
203
206
|
}
|
|
207
|
+
if (value.cache) {
|
|
208
|
+
this.assertIsValidCacheSetup(value.cache);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
isValidCacheSetup(caches) {
|
|
213
|
+
const MAX_CONFIGURABLE_CACHES = 4;
|
|
214
|
+
return caches.length <= MAX_CONFIGURABLE_CACHES;
|
|
215
|
+
}
|
|
216
|
+
assertIsValidCacheSetup(caches) {
|
|
217
|
+
if (!this.isValidCacheSetup(caches)) {
|
|
218
|
+
throw new Error(`${this.name}: GitLab CI can only define up to 4 caches, got: ${caches.length}`);
|
|
204
219
|
}
|
|
205
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Adds up to 4 default caches configuration to the CI configuration.
|
|
223
|
+
* @param caches Caches to add.
|
|
224
|
+
*/
|
|
225
|
+
addDefaultCaches(caches) {
|
|
226
|
+
this.assertIsValidCacheSetup(caches);
|
|
227
|
+
this._defaultCache = caches;
|
|
228
|
+
}
|
|
206
229
|
renderCI() {
|
|
207
230
|
return {
|
|
208
231
|
default: this.renderDefault(),
|
|
@@ -244,7 +267,7 @@ class CiConfiguration extends component_1.Component {
|
|
|
244
267
|
}
|
|
245
268
|
exports.CiConfiguration = CiConfiguration;
|
|
246
269
|
_a = JSII_RTTI_SYMBOL_1;
|
|
247
|
-
CiConfiguration[_a] = { fqn: "projen.gitlab.CiConfiguration", version: "0.
|
|
270
|
+
CiConfiguration[_a] = { fqn: "projen.gitlab.CiConfiguration", version: "0.78.0" };
|
|
248
271
|
function snakeCaseKeys(obj, skipTopLevel = false) {
|
|
249
272
|
if (typeof obj !== "object" || obj == null) {
|
|
250
273
|
return obj;
|
|
@@ -264,4 +287,4 @@ function snakeCaseKeys(obj, skipTopLevel = false) {
|
|
|
264
287
|
}
|
|
265
288
|
return result;
|
|
266
289
|
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRsYWIvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBNkI7QUFhN0IsNENBQXlDO0FBRXpDLGtDQUFtQztBQW1DbkM7Ozs7R0FJRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxxQkFBUztJQW9GNUMsWUFDRSxPQUFnQixFQUNoQixJQUFZLEVBQ1osT0FBZ0M7UUFFaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBNUVqQjs7V0FFRztRQUNhLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUtsRDs7V0FFRztRQUNhLHdCQUFtQixHQUFhLEVBQUUsQ0FBQztRQWlCbkQ7O1dBRUc7UUFDSyxvQkFBZSxHQUFjLEVBQUUsQ0FBQztRQUN4Qzs7V0FFRztRQUNNLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBS3BDOzs7O1dBSUc7UUFDSyxZQUFPLEdBQWMsRUFBRSxDQUFDO1FBTWhDOzs7V0FHRztRQUNhLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEM7OztXQUdHO1FBQ2EsY0FBUyxHQUN2QixFQUFFLENBQUM7UUFLTDs7V0FFRztRQUNhLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBUTdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUk7WUFDUCxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVc7Z0JBQ3ZCLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQ2xCLENBQUMsQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNoRCxHQUFHLEVB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cG9ydCB7IHNuYWtlIH0gZnJvbSBcImNhc2VcIjtcbmltcG9ydCB7XG4gIEFydGlmYWN0cyxcbiAgQ2FjaGUsXG4gIERlZmF1bHQsXG4gIEltYWdlLFxuICBJbmNsdWRlLFxuICBKb2IsXG4gIFJldHJ5LFxuICBTZXJ2aWNlLFxuICBWYXJpYWJsZUNvbmZpZyxcbiAgV29ya2Zsb3csXG59IGZyb20gXCIuL2NvbmZpZ3VyYXRpb24tbW9kZWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgWWFtbEZpbGUgfSBmcm9tIFwiLi4veWFtbFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBDaUNvbmZpZ3VyYXRpb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENpQ29uZmlndXJhdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogRGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIENJIENvbmZpZ3VyYXRpb24uIEpvYnMgdGhhdCBkbyBub3QgZGVmaW5lIG9uZSBvciBtb3JlIG9mIHRoZSBsaXN0ZWQga2V5d29yZHMgdXNlIHRoZSB2YWx1ZSBkZWZpbmVkIGluIHRoZSBkZWZhdWx0IHNlY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0PzogRGVmYXVsdDtcbiAgLyoqXG4gICAqIEEgc3BlY2lhbCBqb2IgdXNlZCB0byB1cGxvYWQgc3RhdGljIHNpdGVzIHRvIEdpdGxhYiBwYWdlcy4gUmVxdWlyZXMgYSBgcHVibGljL2AgZGlyZWN0b3J5XG4gICAqIHdpdGggYGFydGlmYWN0cy5wYXRoYCBwb2ludGluZyB0byBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHBhZ2VzPzogSm9iO1xuICAvKipcbiAgICogVXNlZCB0byBjb250cm9sIHBpcGVsaW5lIGJlaGF2aW9yLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3c/OiBXb3JrZmxvdztcbiAgLyoqXG4gICAqIEdyb3VwcyBqb2JzIGludG8gc3RhZ2VzLiBBbGwgam9icyBpbiBvbmUgc3RhZ2UgbXVzdCBjb21wbGV0ZSBiZWZvcmUgbmV4dCBzdGFnZSBpc1xuICAgKiBleGVjdXRlZC4gSWYgbm8gc3RhZ2VzIGFyZSBzcGVjaWZpZWQuIERlZmF1bHRzIHRvIFsnYnVpbGQnLCAndGVzdCcsICdkZXBsb3knXS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogR2xvYmFsIHZhcmlhYmxlcyB0aGF0IGFyZSBwYXNzZWQgdG8gam9icy5cbiAgICogSWYgdGhlIGpvYiBhbHJlYWR5IGhhcyB0aGF0IHZhcmlhYmxlIGRlZmluZWQsIHRoZSBqb2ItbGV2ZWwgdmFyaWFibGUgdGFrZXMgcHJlY2VkZW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBBbiBpbml0aWFsIHNldCBvZiBqb2JzIHRvIGFkZCB0byB0aGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGpvYnM/OiBSZWNvcmQ8c3RyaW5nLCBKb2I+O1xufVxuXG4vKipcbiAqIENJIGZvciBHaXRMYWIuXG4gKiBBIENJIGlzIGEgY29uZmlndXJhYmxlIGF1dG9tYXRlZCBwcm9jZXNzIG1hZGUgdXAgb2Ygb25lIG9yIG1vcmUgc3RhZ2VzL2pvYnMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvXG4gKi9cbmV4cG9ydCBjbGFzcyBDaUNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogUGF0aCB0byBDSSBmaWxlIGdlbmVyYXRlZCBieSB0aGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgd29ya2Zsb3cgWUFNTCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IFlhbWxGaWxlO1xuICAvKipcbiAgICogRGVmaW5lcyBkZWZhdWx0IHNjcmlwdHMgdGhhdCBzaG91bGQgcnVuICphZnRlciogYWxsIGpvYnMuIENhbiBiZSBvdmVycmlkZW4gYnkgdGhlIGpvYiBsZXZlbCBgYWZ0ZXJTY3JpcHRgLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRBZnRlclNjcmlwdDogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIERlZmF1bHQgbGlzdCBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGpvYiBpZiBpdCBzdWNjZWVkcy4gQXJ0aWZhY3RzIGFyZSBzZW50IHRvIEdpdGxhYiB3aGVyZSB0aGV5IGNhbiBiZSBkb3dubG9hZGVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRBcnRpZmFjdHM/OiBBcnRpZmFjdHM7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZmF1bHQgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmJlZm9yZSogYWxsIGpvYnMuIENhbiBiZSBvdmVycmlkZW4gYnkgdGhlIGpvYiBsZXZlbCBgYWZ0ZXJTY3JpcHRgLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRCZWZvcmVTY3JpcHQ6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBBIGRlZmF1bHQgbGlzdCBvZiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gY2FjaGUgYmV0d2VlbiBqb2JzLiBZb3UgY2FuIG9ubHkgdXNlIHBhdGhzIHRoYXQgYXJlIGluIHRoZSBsb2NhbCB3b3JraW5nIGNvcHkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENhY2hlPzogQ2FjaGU7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgZG9ja2VyIGltYWdlIHRvIHVzZSBnbG9iYWxseSBmb3IgYWxsIGpvYnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdEltYWdlPzogSW1hZ2U7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3Igd2hldGhlciBhIGpvYiBzaG91bGQgYmUgY2FuY2VsZWQgd2hlbiBhIG5ld2VyIHBpcGVsaW5lIHN0YXJ0cyBiZWZvcmUgdGhlIGpvYiBjb21wbGV0ZXMgKERlZmF1bHQ6IGZhbHNlKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0SW50ZXJydXB0aWJsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBIb3cgbWFueSB0aW1lcyBhIGpvYiBpcyByZXRyaWVkIGlmIGl0IGZhaWxzLiBJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gMCBhbmQgam9icyBkbyBub3QgcmV0cnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFJldHJ5PzogUmV0cnk7XG4gIC8qKlxuICAgKiBBIGRlZmF1bHQgbGlzdCBvZiBhZGRpdGlvbmFsIERvY2tlciBpbWFnZXMgdG8gcnVuIHNjcmlwdHMgaW4uIFRoZSBzZXJ2aWNlIGltYWdlIGlzIGxpbmtlZCB0byB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGluIHRoZSAgaW1hZ2UgcGFyYW1ldGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWZhdWx0U2VydmljZXM6IFNlcnZpY2VbXSA9IFtdO1xuICAvKipcbiAgICogVXNlZCB0byBzZWxlY3QgYSBzcGVjaWZpYyBydW5uZXIgZnJvbSB0aGUgbGlzdCBvZiBhbGwgcnVubmVycyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFRhZ3M6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBBIGRlZmF1bHQgdGltZW91dCBqb2Igd3JpdHRlbiBpbiBuYXR1cmFsIGxhbmd1YWdlIChFeC4gb25lIGhvdXIsIDM2MDAgc2Vjb25kcywgNjAgbWludXRlcykuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VGltZW91dD86IHN0cmluZztcbiAgLyoqXG4gICAqIENhbiBiZSBgSW5jbHVkZWAgb3IgYEluY2x1ZGVbXWAuIEVhY2ggYEluY2x1ZGVgIHdpbGwgYmUgYSBzdHJpbmcsIG9yIGFuXG4gICAqIG9iamVjdCB3aXRoIHByb3BlcnRpZXMgZm9yIHRoZSBtZXRob2QgaWYgaW5jbHVkaW5nIGV4dGVybmFsIFlBTUwgZmlsZS4gVGhlIGV4dGVybmFsXG4gICAqIGNvbnRlbnQgd2lsbCBiZSBmZXRjaGVkLCBpbmNsdWRlZCBhbmQgZXZhbHVhdGVkIGFsb25nIHRoZSBgLmdpdGxhYi1jaS55bWxgLlxuICAgKi9cbiAgcHJpdmF0ZSBpbmNsdWRlOiBJbmNsdWRlW10gPSBbXTtcbiAgLyoqXG4gICAqIEEgc3BlY2lhbCBqb2IgdXNlZCB0byB1cGxvYWQgc3RhdGljIHNpdGVzIHRvIEdpdGxhYiBwYWdlcy4gUmVxdWlyZXMgYSBgcHVibGljL2AgZGlyZWN0b3J5XG4gICAqIHdpdGggYGFydGlmYWN0cy5wYXRoYCBwb2ludGluZyB0byBpdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwYWdlcz86IEpvYjtcbiAgLyoqXG4gICAqIEdyb3VwcyBqb2JzIGludG8gc3RhZ2VzLiBBbGwgam9icyBpbiBvbmUgc3RhZ2UgbXVzdCBjb21wbGV0ZSBiZWZvcmUgbmV4dCBzdGFnZSBpc1xuICAgKiBleGVjdXRlZC4gRGVmYXVsdHMgdG8gWydidWlsZCcsICd0ZXN0JywgJ2RlcGxveSddLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWdlczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIEdsb2JhbCB2YXJpYWJsZXMgdGhhdCBhcmUgcGFzc2VkIHRvIGpvYnMuXG4gICAqIElmIHRoZSBqb2IgYWxyZWFkeSBoYXMgdGhhdCB2YXJpYWJsZSBkZWZpbmVkLCB0aGUgam9iLWxldmVsIHZhcmlhYmxlIHRha2VzIHByZWNlZGVuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBWYXJpYWJsZUNvbmZpZyB8IHN0cmluZz4gPVxuICAgIHt9O1xuICAvKipcbiAgICogVXNlZCB0byBjb250cm9sIHBpcGVsaW5lIGJlaGF2aW9yLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93PzogV29ya2Zsb3c7XG4gIC8qKlxuICAgKiBUaGUgam9icyBpbiB0aGUgQ0kgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBqb2JzOiBSZWNvcmQ8c3RyaW5nLCBKb2I+ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogUHJvamVjdCxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IENpQ29uZmlndXJhdGlvbk9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gICAgdGhpcy5uYW1lID0gcGF0aC5wYXJzZShuYW1lKS5uYW1lO1xuICAgIHRoaXMucGF0aCA9XG4gICAgICB0aGlzLm5hbWUgPT09IFwiZ2l0bGFiLWNpXCJcbiAgICAgICAgPyBcIi5naXRsYWItY2kueW1sXCJcbiAgICAgICAgOiBgLmdpdGxhYi9jaS10ZW1wbGF0ZXMvJHtuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCl9LnltbGA7XG4gICAgdGhpcy5maWxlID0gbmV3IFlhbWxGaWxlKHRoaXMucHJvamVjdCwgdGhpcy5wYXRoLCB7XG4gICAgICBvYmo6ICgpID0+IHRoaXMucmVuZGVyQ0koKSxcbiAgICAgIC8vIEdpdExhYiBuZWVkcyB0byByZWFkIHRoZSBmaWxlIGZyb20gdGhlIHJlcG9zaXRvcnkgaW4gb3JkZXIgdG8gd29yay5cbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCBkZWZhdWx0cyA9IG9wdGlvbnM/LmRlZmF1bHQ7XG4gICAgaWYgKGRlZmF1bHRzKSB7XG4gICAgICB0aGlzLmRlZmF1bHRBZnRlclNjcmlwdC5wdXNoKC4uLihkZWZhdWx0cy5hZnRlclNjcmlwdCA/PyBbXSkpO1xuICAgICAgdGhpcy5kZWZhdWx0QXJ0aWZhY3RzID0gZGVmYXVsdHMuYXJ0aWZhY3RzO1xuICAgICAgZGVmYXVsdHMuYmVmb3JlU2NyaXB0ICYmXG4gICAgICAgIHRoaXMuZGVmYXVsdEJlZm9yZVNjcmlwdC5wdXNoKC4uLmRlZmF1bHRzLmJlZm9yZVNjcmlwdCk7XG4gICAgICB0aGlzLmRlZmF1bHRDYWNoZSA9IGRlZmF1bHRzLmNhY2hlO1xuICAgICAgdGhpcy5kZWZhdWx0SW1hZ2UgPSBkZWZhdWx0cy5pbWFnZTtcbiAgICAgIHRoaXMuZGVmYXVsdEludGVycnVwdGlibGUgPSBkZWZhdWx0cy5pbnRlcnJ1cHRpYmxlO1xuICAgICAgdGhpcy5kZWZhdWx0UmV0cnkgPSBkZWZhdWx0cy5yZXRyeTtcbiAgICAgIGRlZmF1bHRzLnNlcnZpY2VzICYmIHRoaXMuYWRkU2VydmljZXMoLi4uZGVmYXVsdHMuc2VydmljZXMpO1xuICAgICAgZGVmYXVsdHMudGFncyAmJiB0aGlzLmRlZmF1bHRUYWdzLnB1c2goLi4uZGVmYXVsdHMudGFncyk7XG4gICAgICB0aGlzLmRlZmF1bHRUaW1lb3V0ID0gZGVmYXVsdHMudGltZW91dDtcbiAgICB9XG4gICAgdGhpcy5wYWdlcyA9IG9wdGlvbnM/LnBhZ2VzO1xuICAgIHRoaXMud29ya2Zsb3cgPSBvcHRpb25zPy53b3JrZmxvdztcbiAgICBpZiAob3B0aW9ucz8uc3RhZ2VzKSB7XG4gICAgICB0aGlzLmFkZFN0YWdlcyguLi5vcHRpb25zLnN0YWdlcyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zPy52YXJpYWJsZXMpIHtcbiAgICAgIHRoaXMuYWRkR2xvYmFsVmFyaWFibGVzKG9wdGlvbnMudmFyaWFibGVzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnM/LmpvYnMpIHtcbiAgICAgIHRoaXMuYWRkSm9icyhvcHRpb25zLmpvYnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYWRkaXRpb25hbCB5bWwveWFtbCBmaWxlcyB0byB0aGUgQ0kgaW5jbHVkZXNcbiAgICogQHBhcmFtIGluY2x1ZGVzIFRoZSBpbmNsdWRlcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkSW5jbHVkZXMoLi4uaW5jbHVkZXM6IEluY2x1ZGVbXSkge1xuICAgIGZvciAoY29uc3QgYWRkaXRpb25hbCBvZiBpbmNsdWRlcykge1xuICAgICAgdGhpcy5hc3NlcnRJc1ZhbGlkSW5jbHVkZShhZGRpdGlvbmFsKTtcbiAgICAgIGZvciAoY29uc3QgZXhpc3Rpbmcgb2YgdGhpcy5pbmNsdWRlKSB7XG4gICAgICAgIGlmICh0aGlzLmFyZUVxdWFsSW5jbHVkZXMoZXhpc3RpbmcsIGFkZGl0aW9uYWwpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYCR7dGhpcy5uYW1lfTogR2l0TGFiIENJICR7ZXhpc3Rpbmd9IGFscmVhZHkgY29udGFpbnMgb25lIG9yIG1vcmUgdGVtcGxhdGVzIHNwZWNpZmllZCBpbiAke2FkZGl0aW9uYWx9LmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmluY2x1ZGUucHVzaChhZGRpdGlvbmFsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgdGhlIHByb3ZpZGVkIEluY2x1ZGUgaXMgaW52YWxpZC5cbiAgICogQHNlZSBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9naXRsYWIvLS9ibG9iL21hc3Rlci9saWIvZ2l0bGFiL2NpL2NvbmZpZy9leHRlcm5hbC9tYXBwZXIucmJcbiAgICogQHBhcmFtIGluY2x1ZGUgdGhlIEluY2x1ZGUgdG8gdmFsaWRhdGUuXG4gICAqL1xuICBwcml2YXRlIGFzc2VydElzVmFsaWRJbmNsdWRlKGluY2x1ZGU6IEluY2x1ZGUpIHtcbiAgICBjb25zdCBjb21ib3MgPSBbXG4gICAgICBpbmNsdWRlLmxvY2FsLFxuICAgICAgaW5jbHVkZS5maWxlICYmIGluY2x1ZGUucHJvamVjdCxcbiAgICAgIGluY2x1ZGUucmVtb3RlLFxuICAgICAgaW5jbHVkZS50ZW1wbGF0ZSxcbiAgICBdO1xuICAgIGNvbnN0IGxlbiA9IGNvbWJvcy5maWx0ZXIoKHgpID0+IEJvb2xlYW4oeCkpLmxlbmd0aDtcbiAgICBpZiAobGVuICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke3RoaXMubmFtZX06IEdpdExhYiBDSSBpbmNsdWRlICR7aW5jbHVkZX0gY29udGFpbnMgJHtsZW59IHByb3BlcnR5IGNvbWJpbmF0aW9uKHMpLlxuICAgICAgICBBIHZhbGlkIGluY2x1ZGUgY29uZmlndXJhdGlvbiBzcGVjaWZpZXMgKm9uZSogb2YgdGhlIGZvbGxvd2luZyBwcm9wZXJ0eSBjb21iaW5hdGlvbnMuXG4gICAgICAgICogbG9jYWxcbiAgICAgICAgKiBmaWxlLCBwcm9qZWN0XG4gICAgICAgICogcmVtb3RlXG4gICAgICAgICogdGVtcGxhdGUgIFxuICAgICAgICBgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgZXF1YWxpdHkgb2YgSW5jbHVkZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiLy0vYmxvYi9tYXN0ZXIvbGliL2dpdGxhYi9jaS9jb25maWcvZXh0ZXJuYWwvbWFwcGVyLnJiXG4gICAqIEBwYXJhbSB4IEZpcnN0IGluY2x1ZGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHkgU2Vjb25kIGluY2x1ZGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgaW5jbHVkZXMgYXJlIGVxdWFsLlxuICAgKi9cbiAgcHJpdmF0ZSBhcmVFcXVhbEluY2x1ZGVzKHg6IEluY2x1ZGUsIHk6IEluY2x1ZGUpOiBib29sZWFuIHtcbiAgICBpZiAoeC5sb2NhbCA9PT0geS5sb2NhbCAmJiB4LmxvY2FsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoeC50ZW1wbGF0ZSA9PT0geS50ZW1wbGF0ZSAmJiB4LnRlbXBsYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoeC5yZW1vdGUgPT09IHkucmVtb3RlICYmIHgucmVtb3RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoeC5wcm9qZWN0ID09PSB5LnByb2plY3QgJiYgeC5yZWYgPT09IHkucmVmKSB7XG4gICAgICBjb25zdCB4RmlsZXMgPSB4LmZpbGUgPyB4LmZpbGUgOiBbXTtcbiAgICAgIGNvbnN0IHlGaWxlcyA9IHkuZmlsZSA/IHkuZmlsZSA6IFtdO1xuICAgICAgY29uc3QgYWxsRmlsZXMgPSB4RmlsZXMuY29uY2F0KHlGaWxlcyk7XG4gICAgICByZXR1cm4gbmV3IFNldChhbGxGaWxlcykuc2l6ZSAhPT0gYWxsRmlsZXMubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFkZGl0aW9uYWwgc2VydmljZXMuXG4gICAqIEBwYXJhbSBzZXJ2aWNlcyBUaGUgc2VydmljZXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZFNlcnZpY2VzKC4uLnNlcnZpY2VzOiBTZXJ2aWNlW10pIHtcbiAgICBmb3IgKGNvbnN0IGFkZGl0aW9uYWwgb2Ygc2VydmljZXMpIHtcbiAgICAgIGZvciAoY29uc3QgZXhpc3Rpbmcgb2YgdGhpcy5kZWZhdWx0U2VydmljZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFkZGl0aW9uYWwubmFtZSA9PT0gZXhpc3RpbmcubmFtZSAmJlxuICAgICAgICAgIGFkZGl0aW9uYWwuYWxpYXMgPT09IGV4aXN0aW5nLmFsaWFzXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGAke3RoaXMubmFtZX06IEdpdExhYiBDSSBhbHJlYWR5IGNvbnRhaW5zIHNlcnZpY2UgJHthZGRpdGlvbmFsfS5gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5kZWZhdWx0U2VydmljZXMucHVzaChhZGRpdGlvbmFsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZ2xvYmFsbHkgZGVmaW5lZCB2YXJpYWJsZSB0byB0aGUgQ0kgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHZhcmlhYmxlcyBUaGUgdmFyaWFibGVzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRHbG9iYWxWYXJpYWJsZXModmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xuICAgICAgaWYgKHRoaXMudmFyaWFibGVzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7dGhpcy5uYW1lfTogR2l0TGFiIENJIGFscmVhZHkgY29udGFpbnMgdmFyaWFibGUgJHtrZXl9LmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmFyaWFibGVzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIHN0YWdlcyB0byB0aGUgQ0kgY29uZmlndXJhdGlvbiBpZiBub3QgYWxyZWFkeSBwcmVzZW50LlxuICAgKiBAcGFyYW0gc3RhZ2VzIHN0YWdlcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkU3RhZ2VzKC4uLnN0YWdlczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHN0YWdlcykge1xuICAgICAgaWYgKCF0aGlzLnN0YWdlcy5pbmNsdWRlcyhzdGFnZSkpIHtcbiAgICAgICAgdGhpcy5zdGFnZXMucHVzaChzdGFnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBqb2JzIGFuZCB0aGVpciBzdGFnZXMgdG8gdGhlIENJIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBqb2JzIEpvYnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZEpvYnMoam9iczogUmVjb3JkPHN0cmluZywgSm9iPikge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGpvYnMpKSB7XG4gICAgICBpZiAodGhpcy5qb2JzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5uYW1lfTogR2l0TGFiIENJIGFscmVhZHkgY29udGFpbnMgam9iICR7a2V5fS5gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuam9ic1trZXldID0gdmFsdWU7XG4gICAgICBpZiAodmFsdWUuc3RhZ2UpIHtcbiAgICAgICAgdGhpcy5hZGRTdGFnZXModmFsdWUuc3RhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ0koKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlZmF1bHQ6IHRoaXMucmVuZGVyRGVmYXVsdCgpLFxuICAgICAgaW5jbHVkZTpcbiAgICAgICAgdGhpcy5pbmNsdWRlLmxlbmd0aCA+IDAgPyBzbmFrZUNhc2VLZXlzKHRoaXMuaW5jbHVkZSkgOiB1bmRlZmluZWQsXG4gICAgICBwYWdlczogc25ha2VDYXNlS2V5cyh0aGlzLnBhZ2VzKSxcbiAgICAgIHNlcnZpY2VzOlxuICAgICAgICB0aGlzLmRlZmF1bHRTZXJ2aWNlcy5sZW5ndGggPiAwXG4gICAgICAgICAgPyBzbmFrZUNhc2VLZXlzKHRoaXMuZGVmYXVsdFNlcnZpY2VzKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdmFyaWFibGVzOlxuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLnZhcmlhYmxlcykubGVuZ3RoID4gMCA/IHRoaXMudmFyaWFibGVzIDogdW5kZWZpbmVkLFxuICAgICAgd29ya2Zsb3c6IHNuYWtlQ2FzZUtleXModGhpcy53b3JrZmxvdyksXG4gICAgICBzdGFnZXM6IHRoaXMuc3RhZ2VzLmxlbmd0aCA+IDAgPyB0aGlzLnN0YWdlcyA6IHVuZGVmaW5lZCxcbiAgICAgIC8vIHdlIGRvIG5vdCB3YW50IHRvIGNoYW5nZSBqb2IgbmFtZXNcbiAgICAgIC8vIGFzIHRoZXkgY2FuIGJlIGhpZGRlbiAoaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kvam9icy9pbmRleC5odG1sI2hpZGUtam9icylcbiAgICAgIC8vIG9yIHJlZmVyZW5jZWQgaW4gZXh0ZW5kc1xuICAgICAgLi4uc25ha2VDYXNlS2V5cyh0aGlzLmpvYnMsIHRydWUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckRlZmF1bHQoKSB7XG4gICAgY29uc3QgZGVmYXVsdHM6IERlZmF1bHQgPSB7XG4gICAgICBhZnRlclNjcmlwdDpcbiAgICAgICAgdGhpcy5kZWZhdWx0QWZ0ZXJTY3JpcHQubGVuZ3RoID4gMFxuICAgICAgICAgID8gdGhpcy5kZWZhdWx0QWZ0ZXJTY3JpcHRcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGFydGlmYWN0czogdGhpcy5kZWZhdWx0QXJ0aWZhY3RzLFxuICAgICAgYmVmb3JlU2NyaXB0OlxuICAgICAgICB0aGlzLmRlZmF1bHRCZWZvcmVTY3JpcHQubGVuZ3RoID4gMFxuICAgICAgICAgID8gdGhpcy5kZWZhdWx0QmVmb3JlU2NyaXB0XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBjYWNoZTogdGhpcy5kZWZhdWx0Q2FjaGUsXG4gICAgICBpbWFnZTogdGhpcy5kZWZhdWx0SW1hZ2UsXG4gICAgICBpbnRlcnJ1cHRpYmxlOiB0aGlzLmRlZmF1bHRJbnRlcnJ1cHRpYmxlLFxuICAgICAgcmV0cnk6IHRoaXMuZGVmYXVsdFJldHJ5LFxuICAgICAgc2VydmljZXM6XG4gICAgICAgIHRoaXMuZGVmYXVsdFNlcnZpY2VzLmxlbmd0aCA+IDAgPyB0aGlzLmRlZmF1bHRTZXJ2aWNlcyA6IHVuZGVmaW5lZCxcbiAgICAgIHRhZ3M6IHRoaXMuZGVmYXVsdFRhZ3MubGVuZ3RoID4gMCA/IHRoaXMuZGVmYXVsdFRhZ3MgOiB1bmRlZmluZWQsXG4gICAgICB0aW1lb3V0OiB0aGlzLmRlZmF1bHRUaW1lb3V0LFxuICAgIH07XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGVmYXVsdHMpLmZpbHRlcigoeCkgPT4geCkubGVuZ3RoXG4gICAgICA/IHNuYWtlQ2FzZUtleXMoZGVmYXVsdHMpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzbmFrZUNhc2VLZXlzPFQgPSB1bmtub3duPihvYmo6IFQsIHNraXBUb3BMZXZlbDogYm9vbGVhbiA9IGZhbHNlKTogVCB7XG4gIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8IG9iaiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcCgobykgPT4gc25ha2VDYXNlS2V5cyhvKSkgYXMgYW55O1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBmb3IgKGxldCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmXG4gICAgICB2ICE9IG51bGwgJiZcbiAgICAgIGsgIT09IFwidmFyaWFibGVzXCIgJiZcbiAgICAgIGsgIT09IFwiaWRUb2tlbnNcIlxuICAgICkge1xuICAgICAgdiA9IHNuYWtlQ2FzZUtleXModik7XG4gICAgfVxuICAgIHJlc3VsdFtza2lwVG9wTGV2ZWwgPyBrIDogc25ha2UoayldID0gdjtcbiAgfVxuICByZXR1cm4gcmVzdWx0IGFzIGFueTtcbn1cbiJdfQ==
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRsYWIvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBNkI7QUFhN0IsNENBQXlDO0FBRXpDLGtDQUFtQztBQW1DbkM7Ozs7R0FJRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxxQkFBUztJQThCNUMsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBd0RELFlBQ0UsT0FBZ0IsRUFDaEIsSUFBWSxFQUNaLE9BQWdDO1FBRWhDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQWhGakI7O1dBRUc7UUFDYSx1QkFBa0IsR0FBYSxFQUFFLENBQUM7UUFLbEQ7O1dBRUc7UUFDYSx3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFxQm5EOztXQUVHO1FBQ0ssb0JBQWUsR0FBYyxFQUFFLENBQUM7UUFDeEM7O1dBRUc7UUFDTSxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUtwQzs7OztXQUlHO1FBQ0ssWUFBTyxHQUFjLEVBQUUsQ0FBQztRQU1oQzs7O1dBR0c7UUFDYSxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RDOzs7V0FHRztRQUNhLGNBQVMsR0FDdkIsRUFBRSxDQUFDO1FBS0w7O1dBRUc7UUFDYSxTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQVE3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJO1lBQ1AsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXO2dCQUN2QixDQUFDLENBQUMsZ0JBQWdCO2dCQUNsQixDQUFDLENBQUMsd0JBQXdCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7UUFDN0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQVEs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SUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7S0FDaEQ7SUFFRCxNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO0lBQzNDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RDLElBQ0UsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNyQixDQUFDLElBQUksSUFBSTtZQUNULENBQUMsS0FBSyxXQUFXO1lBQ2pCLENBQUMsS0FBSyxVQUFVLEVBQ2hCO1lBQ0EsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QjtRQUNELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxZQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDekM7SUFDRCxPQUFPLE1BQWEsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgc25ha2UgfSBmcm9tIFwiY2FzZVwiO1xuaW1wb3J0IHtcbiAgQXJ0aWZhY3RzLFxuICBDYWNoZSxcbiAgRGVmYXVsdCxcbiAgSW1hZ2UsXG4gIEluY2x1ZGUsXG4gIEpvYixcbiAgUmV0cnksXG4gIFNlcnZpY2UsXG4gIFZhcmlhYmxlQ29uZmlnLFxuICBXb3JrZmxvdyxcbn0gZnJvbSBcIi4vY29uZmlndXJhdGlvbi1tb2RlbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuLi95YW1sXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYENpQ29uZmlndXJhdGlvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2lDb25maWd1cmF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgQ0kgQ29uZmlndXJhdGlvbi4gSm9icyB0aGF0IGRvIG5vdCBkZWZpbmUgb25lIG9yIG1vcmUgb2YgdGhlIGxpc3RlZCBrZXl3b3JkcyB1c2UgdGhlIHZhbHVlIGRlZmluZWQgaW4gdGhlIGRlZmF1bHQgc2VjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBEZWZhdWx0O1xuICAvKipcbiAgICogQSBzcGVjaWFsIGpvYiB1c2VkIHRvIHVwbG9hZCBzdGF0aWMgc2l0ZXMgdG8gR2l0bGFiIHBhZ2VzLiBSZXF1aXJlcyBhIGBwdWJsaWMvYCBkaXJlY3RvcnlcbiAgICogd2l0aCBgYXJ0aWZhY3RzLnBhdGhgIHBvaW50aW5nIHRvIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFnZXM/OiBKb2I7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGNvbnRyb2wgcGlwZWxpbmUgYmVoYXZpb3IuXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvdz86IFdvcmtmbG93O1xuICAvKipcbiAgICogR3JvdXBzIGpvYnMgaW50byBzdGFnZXMuIEFsbCBqb2JzIGluIG9uZSBzdGFnZSBtdXN0IGNvbXBsZXRlIGJlZm9yZSBuZXh0IHN0YWdlIGlzXG4gICAqIGV4ZWN1dGVkLiBJZiBubyBzdGFnZXMgYXJlIHNwZWNpZmllZC4gRGVmYXVsdHMgdG8gWydidWlsZCcsICd0ZXN0JywgJ2RlcGxveSddLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBHbG9iYWwgdmFyaWFibGVzIHRoYXQgYXJlIHBhc3NlZCB0byBqb2JzLlxuICAgKiBJZiB0aGUgam9iIGFscmVhZHkgaGFzIHRoYXQgdmFyaWFibGUgZGVmaW5lZCwgdGhlIGpvYi1sZXZlbCB2YXJpYWJsZSB0YWtlcyBwcmVjZWRlbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIEFuIGluaXRpYWwgc2V0IG9mIGpvYnMgdG8gYWRkIHRvIHRoZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgam9icz86IFJlY29yZDxzdHJpbmcsIEpvYj47XG59XG5cbi8qKlxuICogQ0kgZm9yIEdpdExhYi5cbiAqIEEgQ0kgaXMgYSBjb25maWd1cmFibGUgYXV0b21hdGVkIHByb2Nlc3MgbWFkZSB1cCBvZiBvbmUgb3IgbW9yZSBzdGFnZXMvam9icy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vZWUvY2kveWFtbC9cbiAqL1xuZXhwb3J0IGNsYXNzIENpQ29uZmlndXJhdGlvbiBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIENJIGZpbGUgZ2VuZXJhdGVkIGJ5IHRoZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB3b3JrZmxvdyBZQU1MIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZTogWWFtbEZpbGU7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZmF1bHQgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiBhbGwgam9icy4gQ2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgam9iIGxldmVsIGBhZnRlclNjcmlwdGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdEFmdGVyU2NyaXB0OiBzdHJpbmdbXSA9IFtdO1xuICAvKipcbiAgICogRGVmYXVsdCBsaXN0IG9mIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgam9iIGlmIGl0IHN1Y2NlZWRzLiBBcnRpZmFjdHMgYXJlIHNlbnQgdG8gR2l0bGFiIHdoZXJlIHRoZXkgY2FuIGJlIGRvd25sb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdEFydGlmYWN0cz86IEFydGlmYWN0cztcbiAgLyoqXG4gICAqIERlZmluZXMgZGVmYXVsdCBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYmVmb3JlKiBhbGwgam9icy4gQ2FuIGJlIG92ZXJyaWRlbiBieSB0aGUgam9iIGxldmVsIGBhZnRlclNjcmlwdGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdEJlZm9yZVNjcmlwdDogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIEEgZGVmYXVsdCBsaXN0IG9mIGNhY2hlIGRlZmluaXRpb25zIChtw6F4LiA0KSB3aXRoIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gY2FjaGUgYmV0d2VlbiBqb2JzLiBZb3UgY2FuIG9ubHkgdXNlIHBhdGhzIHRoYXQgYXJlIGluIHRoZSBsb2NhbCB3b3JraW5nIGNvcHkuXG4gICAqL1xuICBwcml2YXRlIF9kZWZhdWx0Q2FjaGU/OiBDYWNoZVtdO1xuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdENhY2hlKCk6IENhY2hlW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0Q2FjaGU7XG4gIH1cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBkb2NrZXIgaW1hZ2UgdG8gdXNlIGdsb2JhbGx5IGZvciBhbGwgam9icy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0SW1hZ2U/OiBJbWFnZTtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciB3aGV0aGVyIGEgam9iIHNob3VsZCBiZSBjYW5jZWxlZCB3aGVuIGEgbmV3ZXIgcGlwZWxpbmUgc3RhcnRzIGJlZm9yZSB0aGUgam9iIGNvbXBsZXRlcyAoRGVmYXVsdDogZmFsc2UpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRJbnRlcnJ1cHRpYmxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRpbWVzIGEgam9iIGlzIHJldHJpZWQgaWYgaXQgZmFpbHMuIElmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byAwIGFuZCBqb2JzIGRvIG5vdCByZXRyeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0UmV0cnk/OiBSZXRyeTtcbiAgLyoqXG4gICAqIEEgZGVmYXVsdCBsaXN0IG9mIGFkZGl0aW9uYWwgRG9ja2VyIGltYWdlcyB0byBydW4gc2NyaXB0cyBpbi4gVGhlIHNlcnZpY2UgaW1hZ2UgaXMgbGlua2VkIHRvIHRoZSBpbWFnZSBzcGVjaWZpZWQgaW4gdGhlICBpbWFnZSBwYXJhbWV0ZXIuXG4gICAqL1xuICBwcml2YXRlIGRlZmF1bHRTZXJ2aWNlczogU2VydmljZVtdID0gW107XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNlbGVjdCBhIHNwZWNpZmljIHJ1bm5lciBmcm9tIHRoZSBsaXN0IG9mIGFsbCBydW5uZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VGFnczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIEEgZGVmYXVsdCB0aW1lb3V0IGpvYiB3cml0dGVuIGluIG5hdHVyYWwgbGFuZ3VhZ2UgKEV4LiBvbmUgaG91ciwgMzYwMCBzZWNvbmRzLCA2MCBtaW51dGVzKS5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRUaW1lb3V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQ2FuIGJlIGBJbmNsdWRlYCBvciBgSW5jbHVkZVtdYC4gRWFjaCBgSW5jbHVkZWAgd2lsbCBiZSBhIHN0cmluZywgb3IgYW5cbiAgICogb2JqZWN0IHdpdGggcHJvcGVydGllcyBmb3IgdGhlIG1ldGhvZCBpZiBpbmNsdWRpbmcgZXh0ZXJuYWwgWUFNTCBmaWxlLiBUaGUgZXh0ZXJuYWxcbiAgICogY29udGVudCB3aWxsIGJlIGZldGNoZWQsIGluY2x1ZGVkIGFuZCBldmFsdWF0ZWQgYWxvbmcgdGhlIGAuZ2l0bGFiLWNpLnltbGAuXG4gICAqL1xuICBwcml2YXRlIGluY2x1ZGU6IEluY2x1ZGVbXSA9IFtdO1xuICAvKipcbiAgICogQSBzcGVjaWFsIGpvYiB1c2VkIHRvIHVwbG9hZCBzdGF0aWMgc2l0ZXMgdG8gR2l0bGFiIHBhZ2VzLiBSZXF1aXJlcyBhIGBwdWJsaWMvYCBkaXJlY3RvcnlcbiAgICogd2l0aCBgYXJ0aWZhY3RzLnBhdGhgIHBvaW50aW5nIHRvIGl0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VzPzogSm9iO1xuICAvKipcbiAgICogR3JvdXBzIGpvYnMgaW50byBzdGFnZXMuIEFsbCBqb2JzIGluIG9uZSBzdGFnZSBtdXN0IGNvbXBsZXRlIGJlZm9yZSBuZXh0IHN0YWdlIGlzXG4gICAqIGV4ZWN1dGVkLiBEZWZhdWx0cyB0byBbJ2J1aWxkJywgJ3Rlc3QnLCAnZGVwbG95J10uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICAvKipcbiAgICogR2xvYmFsIHZhcmlhYmxlcyB0aGF0IGFyZSBwYXNzZWQgdG8gam9icy5cbiAgICogSWYgdGhlIGpvYiBhbHJlYWR5IGhhcyB0aGF0IHZhcmlhYmxlIGRlZmluZWQsIHRoZSBqb2ItbGV2ZWwgdmFyaWFibGUgdGFrZXMgcHJlY2VkZW5jZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IFZhcmlhYmxlQ29uZmlnIHwgc3RyaW5nPiA9XG4gICAge307XG4gIC8qKlxuICAgKiBVc2VkIHRvIGNvbnRyb2wgcGlwZWxpbmUgYmVoYXZpb3IuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3c/OiBXb3JrZmxvdztcbiAgLyoqXG4gICAqIFRoZSBqb2JzIGluIHRoZSBDSSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGpvYnM6IFJlY29yZDxzdHJpbmcsIEpvYj4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQ2lDb25maWd1cmF0aW9uT3B0aW9uc1xuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLm5hbWUgPSBwYXRoLnBhcnNlKG5hbWUpLm5hbWU7XG4gICAgdGhpcy5wYXRoID1cbiAgICAgIHRoaXMubmFtZSA9PT0gXCJnaXRsYWItY2lcIlxuICAgICAgICA/IFwiLmdpdGxhYi1jaS55bWxcIlxuICAgICAgICA6IGAuZ2l0bGFiL2NpLXRlbXBsYXRlcy8ke25hbWUudG9Mb2NhbGVMb3dlckNhc2UoKX0ueW1sYDtcbiAgICB0aGlzLmZpbGUgPSBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLnBhdGgsIHtcbiAgICAgIG9iajogKCkgPT4gdGhpcy5yZW5kZXJDSSgpLFxuICAgICAgLy8gR2l0TGFiIG5lZWRzIHRvIHJlYWQgdGhlIGZpbGUgZnJvbSB0aGUgcmVwb3NpdG9yeSBpbiBvcmRlciB0byB3b3JrLlxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gb3B0aW9ucz8uZGVmYXVsdDtcbiAgICBpZiAoZGVmYXVsdHMpIHtcbiAgICAgIHRoaXMuZGVmYXVsdEFmdGVyU2NyaXB0LnB1c2goLi4uKGRlZmF1bHRzLmFmdGVyU2NyaXB0ID8/IFtdKSk7XG4gICAgICB0aGlzLmRlZmF1bHRBcnRpZmFjdHMgPSBkZWZhdWx0cy5hcnRpZmFjdHM7XG4gICAgICBkZWZhdWx0cy5iZWZvcmVTY3JpcHQgJiZcbiAgICAgICAgdGhpcy5kZWZhdWx0QmVmb3JlU2NyaXB0LnB1c2goLi4uZGVmYXVsdHMuYmVmb3JlU2NyaXB0KTtcbiAgICAgIGRlZmF1bHRzLmNhY2hlICYmIHRoaXMuYWRkRGVmYXVsdENhY2hlcyhkZWZhdWx0cy5jYWNoZSk7XG4gICAgICB0aGlzLmRlZmF1bHRJbWFnZSA9IGRlZmF1bHRzLmltYWdlO1xuICAgICAgdGhpcy5kZWZhdWx0SW50ZXJydXB0aWJsZSA9IGRlZmF1bHRzLmludGVycnVwdGlibGU7XG4gICAgICB0aGlzLmRlZmF1bHRSZXRyeSA9IGRlZmF1bHRzLnJldHJ5O1xuICAgICAgZGVmYXVsdHMuc2VydmljZXMgJiYgdGhpcy5hZGRTZXJ2aWNlcyguLi5kZWZhdWx0cy5zZXJ2aWNlcyk7XG4gICAgICBkZWZhdWx0cy50YWdzICYmIHRoaXMuZGVmYXVsdFRhZ3MucHVzaCguLi5kZWZhdWx0cy50YWdzKTtcbiAgICAgIHRoaXMuZGVmYXVsdFRpbWVvdXQgPSBkZWZhdWx0cy50aW1lb3V0O1xuICAgIH1cbiAgICB0aGlzLnBhZ2VzID0gb3B0aW9ucz8ucGFnZXM7XG4gICAgdGhpcy53b3JrZmxvdyA9IG9wdGlvbnM/LndvcmtmbG93O1xuICAgIGlmIChvcHRpb25zPy5zdGFnZXMpIHtcbiAgICAgIHRoaXMuYWRkU3RhZ2VzKC4uLm9wdGlvbnMuc3RhZ2VzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnM/LnZhcmlhYmxlcykge1xuICAgICAgdGhpcy5hZGRHbG9iYWxWYXJpYWJsZXMob3B0aW9ucy52YXJpYWJsZXMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8uam9icykge1xuICAgICAgdGhpcy5hZGRKb2JzKG9wdGlvbnMuam9icyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhZGRpdGlvbmFsIHltbC95YW1sIGZpbGVzIHRvIHRoZSBDSSBpbmNsdWRlc1xuICAgKiBAcGFyYW0gaW5jbHVkZXMgVGhlIGluY2x1ZGVzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRJbmNsdWRlcyguLi5pbmNsdWRlczogSW5jbHVkZVtdKSB7XG4gICAgZm9yIChjb25zdCBhZGRpdGlvbmFsIG9mIGluY2x1ZGVzKSB7XG4gICAgICB0aGlzLmFzc2VydElzVmFsaWRJbmNsdWRlKGFkZGl0aW9uYWwpO1xuICAgICAgZm9yIChjb25zdCBleGlzdGluZyBvZiB0aGlzLmluY2x1ZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuYXJlRXF1YWxJbmNsdWRlcyhleGlzdGluZywgYWRkaXRpb25hbCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgJHt0aGlzLm5hbWV9OiBHaXRMYWIgQ0kgJHtleGlzdGluZ30gYWxyZWFkeSBjb250YWlucyBvbmUgb3IgbW9yZSB0ZW1wbGF0ZXMgc3BlY2lmaWVkIGluICR7YWRkaXRpb25hbH0uYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuaW5jbHVkZS5wdXNoKGFkZGl0aW9uYWwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvdyBhbiBlcnJvciBpZiB0aGUgcHJvdmlkZWQgSW5jbHVkZSBpcyBpbnZhbGlkLlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi8tL2Jsb2IvbWFzdGVyL2xpYi9naXRsYWIvY2kvY29uZmlnL2V4dGVybmFsL21hcHBlci5yYlxuICAgKiBAcGFyYW0gaW5jbHVkZSB0aGUgSW5jbHVkZSB0byB2YWxpZGF0ZS5cbiAgICovXG4gIHByaXZhdGUgYXNzZXJ0SXNWYWxpZEluY2x1ZGUoaW5jbHVkZTogSW5jbHVkZSkge1xuICAgIGNvbnN0IGNvbWJvcyA9IFtcbiAgICAgIGluY2x1ZGUubG9jYWwsXG4gICAgICBpbmNsdWRlLmZpbGUgJiYgaW5jbHVkZS5wcm9qZWN0LFxuICAgICAgaW5jbHVkZS5yZW1vdGUsXG4gICAgICBpbmNsdWRlLnRlbXBsYXRlLFxuICAgIF07XG4gICAgY29uc3QgbGVuID0gY29tYm9zLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4KSkubGVuZ3RoO1xuICAgIGlmIChsZW4gIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5uYW1lfTogR2l0TGFiIENJIGluY2x1ZGUgJHtpbmNsdWRlfSBjb250YWlucyAke2xlbn0gcHJvcGVydHkgY29tYmluYXRpb24ocykuXG4gICAgICAgIEEgdmFsaWQgaW5jbHVkZSBjb25maWd1cmF0aW9uIHNwZWNpZmllcyAqb25lKiBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnR5IGNvbWJpbmF0aW9ucy5cbiAgICAgICAgKiBsb2NhbFxuICAgICAgICAqIGZpbGUsIHByb2plY3RcbiAgICAgICAgKiByZW1vdGVcbiAgICAgICAgKiB0ZW1wbGF0ZSAgXG4gICAgICAgIGBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBlcXVhbGl0eSBvZiBJbmNsdWRlcy5cbiAgICogQHNlZSBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9naXRsYWIvLS9ibG9iL21hc3Rlci9saWIvZ2l0bGFiL2NpL2NvbmZpZy9leHRlcm5hbC9tYXBwZXIucmJcbiAgICogQHBhcmFtIHggRmlyc3QgaW5jbHVkZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0geSBTZWNvbmQgaW5jbHVkZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBpbmNsdWRlcyBhcmUgZXF1YWwuXG4gICAqL1xuICBwcml2YXRlIGFyZUVxdWFsSW5jbHVkZXMoeDogSW5jbHVkZSwgeTogSW5jbHVkZSk6IGJvb2xlYW4ge1xuICAgIGlmICh4LmxvY2FsID09PSB5LmxvY2FsICYmIHgubG9jYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh4LnRlbXBsYXRlID09PSB5LnRlbXBsYXRlICYmIHgudGVtcGxhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh4LnJlbW90ZSA9PT0geS5yZW1vdGUgJiYgeC5yZW1vdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh4LnByb2plY3QgPT09IHkucHJvamVjdCAmJiB4LnJlZiA9PT0geS5yZWYpIHtcbiAgICAgIGNvbnN0IHhGaWxlcyA9IHguZmlsZSA/IHguZmlsZSA6IFtdO1xuICAgICAgY29uc3QgeUZpbGVzID0geS5maWxlID8geS5maWxlIDogW107XG4gICAgICBjb25zdCBhbGxGaWxlcyA9IHhGaWxlcy5jb25jYXQoeUZpbGVzKTtcbiAgICAgIHJldHVybiBuZXcgU2V0KGFsbEZpbGVzKS5zaXplICE9PSBhbGxGaWxlcy5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYWRkaXRpb25hbCBzZXJ2aWNlcy5cbiAgICogQHBhcmFtIHNlcnZpY2VzIFRoZSBzZXJ2aWNlcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkU2VydmljZXMoLi4uc2VydmljZXM6IFNlcnZpY2VbXSkge1xuICAgIGZvciAoY29uc3QgYWRkaXRpb25hbCBvZiBzZXJ2aWNlcykge1xuICAgICAgZm9yIChjb25zdCBleGlzdGluZyBvZiB0aGlzLmRlZmF1bHRTZXJ2aWNlcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYWRkaXRpb25hbC5uYW1lID09PSBleGlzdGluZy5uYW1lICYmXG4gICAgICAgICAgYWRkaXRpb25hbC5hbGlhcyA9PT0gZXhpc3RpbmcuYWxpYXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYCR7dGhpcy5uYW1lfTogR2l0TGFiIENJIGFscmVhZHkgY29udGFpbnMgc2VydmljZSAke2FkZGl0aW9uYWx9LmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmRlZmF1bHRTZXJ2aWNlcy5wdXNoKGFkZGl0aW9uYWwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBnbG9iYWxseSBkZWZpbmVkIHZhcmlhYmxlIHRvIHRoZSBDSSBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gdmFyaWFibGVzIFRoZSB2YXJpYWJsZXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZEdsb2JhbFZhcmlhYmxlcyh2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpKSB7XG4gICAgICBpZiAodGhpcy52YXJpYWJsZXNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgJHt0aGlzLm5hbWV9OiBHaXRMYWIgQ0kgYWxyZWFkeSBjb250YWlucyB2YXJpYWJsZSAke2tleX0uYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy52YXJpYWJsZXNba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc3RhZ2VzIHRvIHRoZSBDSSBjb25maWd1cmF0aW9uIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuXG4gICAqIEBwYXJhbSBzdGFnZXMgc3RhZ2VzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRTdGFnZXMoLi4uc3RhZ2VzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2Ygc3RhZ2VzKSB7XG4gICAgICBpZiAoIXRoaXMuc3RhZ2VzLmluY2x1ZGVzKHN0YWdlKSkge1xuICAgICAgICB0aGlzLnN0YWdlcy5wdXNoKHN0YWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGpvYnMgYW5kIHRoZWlyIHN0YWdlcyB0byB0aGUgQ0kgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGpvYnMgSm9icyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkSm9icyhqb2JzOiBSZWNvcmQ8c3RyaW5nLCBKb2I+KSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoam9icykpIHtcbiAgICAgIGlmICh0aGlzLmpvYnNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm5hbWV9OiBHaXRMYWIgQ0kgYWxyZWFkeSBjb250YWlucyBqb2IgJHtrZXl9LmApO1xuICAgICAgfVxuICAgICAgdGhpcy5qb2JzW2tleV0gPSB2YWx1ZTtcbiAgICAgIGlmICh2YWx1ZS5zdGFnZSkge1xuICAgICAgICB0aGlzLmFkZFN0YWdlcyh2YWx1ZS5zdGFnZSk7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUuY2FjaGUpIHtcbiAgICAgICAgdGhpcy5hc3NlcnRJc1ZhbGlkQ2FjaGVTZXR1cCh2YWx1ZS5jYWNoZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkQ2FjaGVTZXR1cChjYWNoZXM6IENhY2hlW10pOiBCb29sZWFuIHtcbiAgICBjb25zdCBNQVhfQ09ORklHVVJBQkxFX0NBQ0hFUyA9IDQ7XG4gICAgcmV0dXJuIGNhY2hlcy5sZW5ndGggPD0gTUFYX0NPTkZJR1VSQUJMRV9DQUNIRVM7XG4gIH1cblxuICBwcml2YXRlIGFzc2VydElzVmFsaWRDYWNoZVNldHVwKGNhY2hlczogQ2FjaGVbXSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkQ2FjaGVTZXR1cChjYWNoZXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke3RoaXMubmFtZX06IEdpdExhYiBDSSBjYW4gb25seSBkZWZpbmUgdXAgdG8gNCBjYWNoZXMsIGdvdDogJHtjYWNoZXMubGVuZ3RofWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdXAgdG8gNCBkZWZhdWx0IGNhY2hlcyBjb25maWd1cmF0aW9uIHRvIHRoZSBDSSBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gY2FjaGVzIENhY2hlcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkRGVmYXVsdENhY2hlcyhjYWNoZXM6IENhY2hlW10pIHtcbiAgICB0aGlzLmFzc2VydElzVmFsaWRDYWNoZVNldHVwKGNhY2hlcyk7XG4gICAgdGhpcy5fZGVmYXVsdENhY2hlID0gY2FjaGVzO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDSSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVmYXVsdDogdGhpcy5yZW5kZXJEZWZhdWx0KCksXG4gICAgICBpbmNsdWRlOlxuICAgICAgICB0aGlzLmluY2x1ZGUubGVuZ3RoID4gMCA/IHNuYWtlQ2FzZUtleXModGhpcy5pbmNsdWRlKSA6IHVuZGVmaW5lZCxcbiAgICAgIHBhZ2VzOiBzbmFrZUNhc2VLZXlzKHRoaXMucGFnZXMpLFxuICAgICAgc2VydmljZXM6XG4gICAgICAgIHRoaXMuZGVmYXVsdFNlcnZpY2VzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IHNuYWtlQ2FzZUtleXModGhpcy5kZWZhdWx0U2VydmljZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB2YXJpYWJsZXM6XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMudmFyaWFibGVzKS5sZW5ndGggPiAwID8gdGhpcy52YXJpYWJsZXMgOiB1bmRlZmluZWQsXG4gICAgICB3b3JrZmxvdzogc25ha2VDYXNlS2V5cyh0aGlzLndvcmtmbG93KSxcbiAgICAgIHN0YWdlczogdGhpcy5zdGFnZXMubGVuZ3RoID4gMCA/IHRoaXMuc3RhZ2VzIDogdW5kZWZpbmVkLFxuICAgICAgLy8gd2UgZG8gbm90IHdhbnQgdG8gY2hhbmdlIGpvYiBuYW1lc1xuICAgICAgLy8gYXMgdGhleSBjYW4gYmUgaGlkZGVuIChodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS9qb2JzL2luZGV4Lmh0bWwjaGlkZS1qb2JzKVxuICAgICAgLy8gb3IgcmVmZXJlbmNlZCBpbiBleHRlbmRzXG4gICAgICAuLi5zbmFrZUNhc2VLZXlzKHRoaXMuam9icywgdHJ1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRGVmYXVsdCgpIHtcbiAgICBjb25zdCBkZWZhdWx0czogRGVmYXVsdCA9IHtcbiAgICAgIGFmdGVyU2NyaXB0OlxuICAgICAgICB0aGlzLmRlZmF1bHRBZnRlclNjcmlwdC5sZW5ndGggPiAwXG4gICAgICAgICAgPyB0aGlzLmRlZmF1bHRBZnRlclNjcmlwdFxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgYXJ0aWZhY3RzOiB0aGlzLmRlZmF1bHRBcnRpZmFjdHMsXG4gICAgICBiZWZvcmVTY3JpcHQ6XG4gICAgICAgIHRoaXMuZGVmYXVsdEJlZm9yZVNjcmlwdC5sZW5ndGggPiAwXG4gICAgICAgICAgPyB0aGlzLmRlZmF1bHRCZWZvcmVTY3JpcHRcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGNhY2hlOiB0aGlzLmRlZmF1bHRDYWNoZSxcbiAgICAgIGltYWdlOiB0aGlzLmRlZmF1bHRJbWFnZSxcbiAgICAgIGludGVycnVwdGlibGU6IHRoaXMuZGVmYXVsdEludGVycnVwdGlibGUsXG4gICAgICByZXRyeTogdGhpcy5kZWZhdWx0UmV0cnksXG4gICAgICBzZXJ2aWNlczpcbiAgICAgICAgdGhpcy5kZWZhdWx0U2VydmljZXMubGVuZ3RoID4gMCA/IHRoaXMuZGVmYXVsdFNlcnZpY2VzIDogdW5kZWZpbmVkLFxuICAgICAgdGFnczogdGhpcy5kZWZhdWx0VGFncy5sZW5ndGggPiAwID8gdGhpcy5kZWZhdWx0VGFncyA6IHVuZGVmaW5lZCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMuZGVmYXVsdFRpbWVvdXQsXG4gICAgfTtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhkZWZhdWx0cykuZmlsdGVyKCh4KSA9PiB4KS5sZW5ndGhcbiAgICAgID8gc25ha2VDYXNlS2V5cyhkZWZhdWx0cylcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNuYWtlQ2FzZUtleXM8VCA9IHVua25vd24+KG9iajogVCwgc2tpcFRvcExldmVsOiBib29sZWFuID0gZmFsc2UpOiBUIHtcbiAgaWYgKHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgb2JqID09IG51bGwpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmoubWFwKChvKSA9PiBzbmFrZUNhc2VLZXlzKG8pKSBhcyBhbnk7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIGZvciAobGV0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIHYgIT0gbnVsbCAmJlxuICAgICAgayAhPT0gXCJ2YXJpYWJsZXNcIiAmJlxuICAgICAgayAhPT0gXCJpZFRva2Vuc1wiXG4gICAgKSB7XG4gICAgICB2ID0gc25ha2VDYXNlS2V5cyh2KTtcbiAgICB9XG4gICAgcmVzdWx0W3NraXBUb3BMZXZlbCA/IGsgOiBzbmFrZShrKV0gPSB2O1xuICB9XG4gIHJldHVybiByZXN1bHQgYXMgYW55O1xufVxuIl19
|