projen 0.103.6 → 0.103.7
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 +388 -207
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- 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 +1 -1
- 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 +3 -3
- 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-build.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/cdktn/cdktn-app-ts.js +1 -1
- package/lib/cdktn/cdktn-config.js +1 -1
- package/lib/cdktn/cdktn-construct.js +1 -1
- package/lib/cdktn/cdktn-deps.js +1 -1
- package/lib/cdktn/cdktn-tasks.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.js +2 -2
- 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/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.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/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.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/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/biome/biome.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/license-checker.js +1 -1
- package/lib/javascript/node-config-file.js +1 -1
- package/lib/javascript/node-config.d.ts +58 -4
- package/lib/javascript/node-config.js +11 -2
- 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/pnpm-workspace-config.js +2 -2
- package/lib/javascript/pnpm-workspace.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 +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/properties-file.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/pyproject-toml-file.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/uv-config.js +1 -1
- package/lib/python/uv.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/run-task.cjs +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.js +1 -1
- package/lib/sonarqube/javascript.js +1 -1
- package/lib/sonarqube/rust.js +1 -1
- package/lib/sonarqube/sonarqube.js +1 -1
- package/lib/sonarqube/typescript.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-shell.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-runner.d.ts +1 -0
- package/lib/typescript/typescript-runner.js +2 -2
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +5 -5
- 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 +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,7 @@ function toJson_NodeConfigSchema(obj) {
|
|
|
17
17
|
const result = {
|
|
18
18
|
'$schema': obj.schema,
|
|
19
19
|
'nodeOptions': toJson_NodeConfigSchemaNodeOptions(obj.nodeOptions),
|
|
20
|
+
'nodeVersion': obj.nodeVersion,
|
|
20
21
|
'permission': toJson_NodeConfigSchemaPermission(obj.permission),
|
|
21
22
|
'test': toJson_NodeConfigSchemaTest(obj.test),
|
|
22
23
|
'watch': toJson_NodeConfigSchemaWatch(obj.watch),
|
|
@@ -37,9 +38,12 @@ function toJson_NodeConfigSchemaNodeOptions(obj) {
|
|
|
37
38
|
'addons': obj.addons,
|
|
38
39
|
'allow-addons': obj.allowAddons,
|
|
39
40
|
'allow-child-process': obj.allowChildProcess,
|
|
41
|
+
'allow-ffi': obj.allowFfi,
|
|
40
42
|
'allow-fs-read': obj.allowFsRead?.map(y => y),
|
|
41
43
|
'allow-fs-write': obj.allowFsWrite?.map(y => y),
|
|
42
44
|
'allow-inspector': obj.allowInspector,
|
|
45
|
+
'allow-net': obj.allowNet,
|
|
46
|
+
'allow-openssl-store': obj.allowOpensslStore,
|
|
43
47
|
'allow-wasi': obj.allowWasi,
|
|
44
48
|
'allow-worker': obj.allowWorker,
|
|
45
49
|
'async-context-frame': obj.asyncContextFrame,
|
|
@@ -62,6 +66,7 @@ function toJson_NodeConfigSchemaNodeOptions(obj) {
|
|
|
62
66
|
'experimental-addon-modules': obj.experimentalAddonModules,
|
|
63
67
|
'experimental-detect-module': obj.experimentalDetectModule,
|
|
64
68
|
'experimental-eventsource': obj.experimentalEventsource,
|
|
69
|
+
'experimental-ffi': obj.experimentalFfi,
|
|
65
70
|
'experimental-global-navigator': obj.experimentalGlobalNavigator,
|
|
66
71
|
'experimental-import-meta-resolve': obj.experimentalImportMetaResolve,
|
|
67
72
|
'experimental-loader': obj.experimentalLoader?.map(y => y),
|
|
@@ -70,7 +75,7 @@ function toJson_NodeConfigSchemaNodeOptions(obj) {
|
|
|
70
75
|
'experimental-require-module': obj.experimentalRequireModule,
|
|
71
76
|
'experimental-shadow-realm': obj.experimentalShadowRealm,
|
|
72
77
|
'experimental-sqlite': obj.experimentalSqlite,
|
|
73
|
-
'experimental-
|
|
78
|
+
'experimental-stream-iter': obj.experimentalStreamIter,
|
|
74
79
|
'experimental-vm-modules': obj.experimentalVmModules,
|
|
75
80
|
'experimental-websocket': obj.experimentalWebsocket,
|
|
76
81
|
'experimental-webstorage': obj.experimentalWebstorage,
|
|
@@ -107,6 +112,7 @@ function toJson_NodeConfigSchemaNodeOptions(obj) {
|
|
|
107
112
|
'openssl-shared-config': obj.opensslSharedConfig,
|
|
108
113
|
'pending-deprecation': obj.pendingDeprecation,
|
|
109
114
|
'permission': obj.permission,
|
|
115
|
+
'permission-audit': obj.permissionAudit,
|
|
110
116
|
'preserve-symlinks': obj.preserveSymlinks,
|
|
111
117
|
'preserve-symlinks-main': obj.preserveSymlinksMain,
|
|
112
118
|
'redirect-warnings': obj.redirectWarnings,
|
|
@@ -197,9 +203,12 @@ function toJson_NodeConfigSchemaPermission(obj) {
|
|
|
197
203
|
const result = {
|
|
198
204
|
'allow-addons': obj.allowAddons,
|
|
199
205
|
'allow-child-process': obj.allowChildProcess,
|
|
206
|
+
'allow-ffi': obj.allowFfi,
|
|
200
207
|
'allow-fs-read': obj.allowFsRead?.map(y => y),
|
|
201
208
|
'allow-fs-write': obj.allowFsWrite?.map(y => y),
|
|
202
209
|
'allow-inspector': obj.allowInspector,
|
|
210
|
+
'allow-net': obj.allowNet,
|
|
211
|
+
'allow-openssl-store': obj.allowOpensslStore,
|
|
203
212
|
'allow-wasi': obj.allowWasi,
|
|
204
213
|
'allow-worker': obj.allowWorker,
|
|
205
214
|
'permission': obj.permission,
|
|
@@ -263,4 +272,4 @@ function toJson_NodeConfigSchemaWatch(obj) {
|
|
|
263
272
|
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
264
273
|
}
|
|
265
274
|
/* eslint-enable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9ub2RlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9DQSwwREFXQztBQXdnQ0QsZ0ZBeUpDO0FBcUVELDhFQWNDO0FBNEtELGtFQTZCQztBQXlDRCxvRUFVQztBQWhnREQ7OztHQUdHO0FBQ0gscUZBQXFGO0FBQ3JGLFNBQWdCLHVCQUF1QixDQUFDLEdBQWlDO0lBQ3ZFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNO1FBQ3JCLGFBQWEsRUFBRSxrQ0FBa0MsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ2xFLFlBQVksRUFBRSxpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQy9ELE1BQU0sRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0tBQ2pELENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQW1nQ0Q7OztHQUdHO0FBQ0gscUZBQXFGO0FBQ3JGLFNB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Q0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBb0NEOzs7R0FHRztBQUNILHFGQUFxRjtBQUNyRixTQUFnQiw0QkFBNEIsQ0FBQyxHQUFzQztJQUNqRixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSztRQUNsQixtQkFBbUIsRUFBRSxHQUFHLENBQUMsZUFBZTtRQUN4QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtLQUNqRCxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFDRCxvRkFBb0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJub2RlIC4vcHJvamVuLmpzXCIuXG4vKipcbiAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDb25maWdTY2hlbWEge1xuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hIyRzY2hlbWFcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hI25vZGVPcHRpb25zXG4gICAqL1xuICByZWFkb25seSBub2RlT3B0aW9ucz86IE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucztcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hI3Blcm1pc3Npb25cbiAgICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb24/OiBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbjtcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hI3Rlc3RcbiAgICovXG4gIHJlYWRvbmx5IHRlc3Q/OiBOb2RlQ29uZmlnU2NoZW1hVGVzdDtcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hI3dhdGNoXG4gICAqL1xuICByZWFkb25seSB3YXRjaD86IE5vZGVDb25maWdTY2hlbWFXYXRjaDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnTm9kZUNvbmZpZ1NjaGVtYScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX05vZGVDb25maWdTY2hlbWEob2JqOiBOb2RlQ29uZmlnU2NoZW1hIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnJHNjaGVtYSc6IG9iai5zY2hlbWEsXG4gICAgJ25vZGVPcHRpb25zJzogdG9Kc29uX05vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyhvYmoubm9kZU9wdGlvbnMpLFxuICAgICdwZXJtaXNzaW9uJzogdG9Kc29uX05vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uKG9iai5wZXJtaXNzaW9uKSxcbiAgICAndGVzdCc6IHRvSnNvbl9Ob2RlQ29uZmlnU2NoZW1hVGVzdChvYmoudGVzdCksXG4gICAgJ3dhdGNoJzogdG9Kc29uX05vZGVDb25maWdTY2hlbWFXYXRjaChvYmoud2F0Y2gpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMge1xuICAvKipcbiAgICogZGlzYWJsZSBsb2FkaW5nIG5hdGl2ZSBhZGRvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjYWRkb25zXG4gICAqL1xuICByZWFkb25seSBhZGRvbnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhbGxvdyB1c2Ugb2YgYWRkb25zIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjYWxsb3ctYWRkb25zXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FkZG9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHVzZSBvZiBjaGlsZCBwcm9jZXNzIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjYWxsb3ctY2hpbGQtcHJvY2Vzc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDaGlsZFByb2Nlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhbGxvdyBwZXJtaXNzaW9ucyB0byByZWFkIHRoZSBmaWxlc3lzdGVtXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2FsbG93LWZzLXJlYWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RnNSZWFkPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFsbG93IHBlcm1pc3Npb25zIHRvIHdyaXRlIGluIHRoZSBmaWxlc3lzdGVtXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2FsbG93LWZzLXdyaXRlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0ZzV3JpdGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIGluc3BlY3RvciB3aGVuIGFueSBwZXJtaXNzaW9ucyBhcmUgc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2FsbG93LWluc3BlY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dJbnNwZWN0b3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhbGxvdyB3YXNpIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjYWxsb3ctd2FzaVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dXYXNpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgd29ya2VyIHRocmVhZHMgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy13b3JrZXJcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93V29ya2VyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW1wcm92ZSBBc3luY0xvY2FsU3RvcmFnZSBwZXJmb3JtYW5jZSB3aXRoIEFzeW5jQ29udGV4dEZyYW1lXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2FzeW5jLWNvbnRleHQtZnJhbWVcbiAgICovXG4gIHJlYWRvbmx5IGFzeW5jQ29udGV4dEZyYW1lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWRkaXRpb25hbCB1c2VyIGNvbmRpdGlvbnMgZm9yIGNvbmRpdGlvbmFsIGV4cG9ydHMgYW5kIGltcG9ydHNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjY29uZGl0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgVjggQ1BVIHByb2ZpbGVyIG9uIHN0YXJ0IHVwLCBhbmQgd3JpdGUgdGhlIENQVSBwcm9maWxlIHRvIGRpc2sgYmVmb3JlIGV4aXQuIElmIC0tY3B1LXByb2YtZGlyIGlzIG5vdCBzcGVjaWZpZWQsIHdyaXRlIHRoZSBwcm9maWxlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNjcHUtcHJvZlxuICAgKi9cbiAgcmVhZG9ubHkgY3B1UHJvZj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yeSB3aGVyZSB0aGUgVjggcHJvZmlsZXMgZ2VuZXJhdGVkIGJ5IC0tY3B1LXByb2Ygd2lsbCBiZSBwbGFjZWQuIERvZXMgbm90IGFmZmVjdCAtLXByb2YuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2NwdS1wcm9mLWRpclxuICAgKi9cbiAgcmVhZG9ubHkgY3B1UHJvZkRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogc3BlY2lmaWVkIHNhbXBsaW5nIGludGVydmFsIGluIG1pY3Jvc2Vjb25kcyBmb3IgdGhlIFY4IENQVSBwcm9maWxlIGdlbmVyYXRlZCB3aXRoIC0tY3B1LXByb2YuIChkZWZhdWx0OiAxMDAwKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNjcHUtcHJvZi1pbnRlcnZhbFxuICAgKi9cbiAgcmVhZG9ubHkgY3B1UHJvZkludGVydmFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBzcGVjaWZpZWQgZmlsZSBuYW1lIG9mIHRoZSBWOCBDUFUgcHJvZmlsZSBnZW5lcmF0ZWQgd2l0aCAtLWNwdS1wcm9mXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2NwdS1wcm9mLW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNwdVByb2ZOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNkZWJ1Zy1hcnJheWJ1ZmZlci1hbGxvY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVidWdBcnJheWJ1ZmZlckFsbG9jYXRpb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2lsZW5jZSBkZXByZWNhdGlvbiB3YXJuaW5nc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNkZXByZWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVwcmVjYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgZGlyIGZvciBhbGwgb3V0cHV0IGZpbGVzIChkZWZhdWx0OiBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNkaWFnbm9zdGljLWRpclxuICAgKi9cbiAgcmVhZG9ubHkgZGlhZ25vc3RpY0Rpcj86IHN0cmluZztcblxuICAvKipcbiAgICogZGlzYWJsZSBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fX1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNkaXNhYmxlLXByb3RvXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlUHJvdG8/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgaW5zcGVjdG9yIHRocmVhZCB0byBiZSBsaXN0ZW5pbmcgZm9yIFNJR1VTUjEgc2lnbmFsXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2Rpc2FibGUtc2lndXNyMVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVNpZ3VzcjE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaWxlbmNlIHNwZWNpZmljIHByb2Nlc3Mgd2FybmluZ3NcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZGlzYWJsZS13YXJuaW5nXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlV2FybmluZz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRyYXAtaGFuZGxlci1iYXNlZCBXZWJBc3NlbWJseSBib3VuZCBjaGVja3MuIFY4IHdpbGwgaW5zZXJ0IGlubGluZSBib3VuZCBjaGVja3Mgd2hlbiBjb21waWxpbmcgV2ViQXNzZW1ibHkgd2hpY2ggbWF5IHNsb3cgZG93biBwZXJmb3JtYW5jZS5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZGlzYWJsZS13YXNtLXRyYXAtaGFuZGxlclxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVdhc21UcmFwSGFuZGxlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNldCBkZWZhdWx0IHZhbHVlIG9mIHZlcmJhdGltIGluIGRucy5sb29rdXAuIE9wdGlvbnMgYXJlICdpcHY0Zmlyc3QnIChJUHY0IGFkZHJlc3NlcyBhcmUgcGxhY2VkIGJlZm9yZSBJUHY2IGFkZHJlc3NlcykgJ2lwdjZmaXJzdCcgKElQdjYgYWRkcmVzc2VzIGFyZSBwbGFjZWQgYmVmb3JlIElQdjQgYWRkcmVzc2VzKSAndmVyYmF0aW0nIChhZGRyZXNzZXMgYXJlIGluIHRoZSBvcmRlciB0aGUgRE5TIHJlc29sdmVyIHJldHVybmVkKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNkbnMtcmVzdWx0LW9yZGVyXG4gICAqL1xuICByZWFkb25seSBkbnNSZXN1bHRPcmRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogZW5hYmxlIEZJUFMgY3J5cHRvIGF0IHN0YXJ0dXBcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZW5hYmxlLWZpcHNcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUZpcHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgTWFwIFYzIHN1cHBvcnQgZm9yIHN0YWNrIHRyYWNlc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNlbmFibGUtc291cmNlLW1hcHNcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNvdXJjZU1hcHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUcmVhdCB0aGUgZW50cnlwb2ludCBhcyBhIFVSTFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNlbnRyeS11cmxcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5VXJsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIGltcG9ydCBzdXBwb3J0IGZvciBhZGRvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLWFkZG9uLW1vZHVsZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEFkZG9uTW9kdWxlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHdoZW4gYW1iaWd1b3VzIG1vZHVsZXMgZmFpbCB0byBldmFsdWF0ZSBiZWNhdXNlIHRoZXkgY29udGFpbiBFUyBtb2R1bGUgc3ludGF4LCB0cnkgYWdhaW4gdG8gZXZhbHVhdGUgdGhlbSBhcyBFUyBtb2R1bGVzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1kZXRlY3QtbW9kdWxlXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxEZXRlY3RNb2R1bGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleHBlcmltZW50YWwgRXZlbnRTb3VyY2UgQVBJXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1ldmVudHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsRXZlbnRzb3VyY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleHBvc2UgZXhwZXJpbWVudGFsIE5hdmlnYXRvciBBUEkgb24gdGhlIGdsb2JhbCBzY29wZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtZ2xvYmFsLW5hdmlnYXRvclxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsR2xvYmFsTmF2aWdhdG9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIEVTIE1vZHVsZSBpbXBvcnQubWV0YS5yZXNvbHZlKCkgcGFyZW50VVJMIHN1cHBvcnRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLWltcG9ydC1tZXRhLXJlc29sdmVcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEltcG9ydE1ldGFSZXNvbHZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdXNlIHRoZSBzcGVjaWZpZWQgbW9kdWxlIGFzIGEgY3VzdG9tIGxvYWRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtbG9hZGVyXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxMb2FkZXI/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpbnQgcGVuZGluZyB0b3AtbGV2ZWwgYXdhaXQuIElmIC0tcmVxdWlyZS1tb2R1bGUgaXMgdHJ1ZSwgZXZhbHVhdGUgYXN5bmNocm9ub3VzIGdyYXBocyBsb2FkZWQgYnkgYHJlcXVpcmUoKWAgYnV0IGRvIG5vdCBydW4gdGhlIG1pY3JvdGFza3MsIGluIG9yZGVyIHRvIHRvIGZpbmQgYW5kIHByaW50IHRvcC1sZXZlbCBhd2FpdCBpbiB0aGUgZ3JhcGhcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLXByaW50LXJlcXVpcmVkLXRsYVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsUHJpbnRSZXF1aXJlZFRsYT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGV4cGVyaW1lbnRhbCBhd2FpdCBrZXl3b3JkIHN1cHBvcnQgaW4gUkVQTFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtcmVwbC1hd2FpdFxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsUmVwbEF3YWl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGVnYWN5IGFsaWFzIGZvciAtLXJlcXVpcmUtbW9kdWxlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1yZXF1aXJlLW1vZHVsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsUmVxdWlyZU1vZHVsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1zaGFkb3ctcmVhbG1cbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFNoYWRvd1JlYWxtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIG5vZGU6c3FsaXRlIG1vZHVsZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtc3FsaXRlXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxTcWxpdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBlbmFibGUgdHJhbnNmb3JtYXRpb24gb2YgVHlwZVNjcmlwdC1vbmx5c3ludGF4IGludG8gSmF2YVNjcmlwdCBjb2RlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC10cmFuc2Zvcm0tdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFRyYW5zZm9ybVR5cGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIEVTIE1vZHVsZSBzdXBwb3J0IGluIHZtIG1vZHVsZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtdm0tbW9kdWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsVm1Nb2R1bGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIFdlYlNvY2tldCBBUElcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLXdlYnNvY2tldFxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsV2Vic29ja2V0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIFdlYiBTdG9yYWdlIEFQSVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtd2Vic3RvcmFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsV2Vic3RvcmFnZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGhpZGUgZXh0cmEgaW5mb3JtYXRpb24gb24gZmF0YWwgZXhjZXB0aW9uIHRoYXQgY2F1c2VzIGV4aXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXh0cmEtaW5mby1vbi1mYXRhbC1leGNlcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhSW5mb09uRmF0YWxFeGNlcHRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBkaXNhYmxlIGNoZWNrcyBmb3IgYXN5bmNfaG9va3NcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZm9yY2UtYXN5bmMtaG9va3MtY2hlY2tzXG4gICAqL1xuICByZWFkb25seSBmb3JjZUFzeW5jSG9va3NDaGVja3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBkaXNhYmxlIGxvYWRpbmcgbm9uLWNvbnRleHQtYXdhcmUgYWRkb25zXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2ZvcmNlLWNvbnRleHQtYXdhcmVcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQ29udGV4dEF3YXJlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZm9yY2UgRklQUyBjcnlwdG8gKGNhbm5vdCBiZSBkaXNhYmxlZClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZm9yY2UtZmlwc1xuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VGaXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW5mb3JjZXMgJ3VuY2F1Z2h0RXhjZXB0aW9uJyBldmVudCBvbiBOb2RlIEFQSSBhc3luY2hyb25vdXMgY2FsbGJhY2tzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2ZvcmNlLW5vZGUtYXBpLXVuY2F1Z2h0LWV4Y2VwdGlvbnMtcG9saWN5XG4gICAqL1xuICByZWFkb25seSBmb3JjZU5vZGVBcGlVbmNhdWdodEV4Y2VwdGlvbnNQb2xpY3k/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleHBlcmltZW50YWwgZnJvemVuIGludHJpbnNpY3Mgc3VwcG9ydFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNmcm96ZW4taW50cmluc2ljc1xuICAgKi9cbiAgcmVhZG9ubHkgZnJvemVuSW50cmluc2ljcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGRpc2FibGUgZ2xvYmFsIG1vZHVsZSBzZWFyY2ggcGF0aHNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZ2xvYmFsLXNlYXJjaC1wYXRoc1xuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsU2VhcmNoUGF0aHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgVjggaGVhcCBwcm9maWxlciBvbiBzdGFydCB1cCwgYW5kIHdyaXRlIHRoZSBoZWFwIHByb2ZpbGUgdG8gZGlzayBiZWZvcmUgZXhpdC4gSWYgLS1oZWFwLXByb2YtZGlyIGlzIG5vdCBzcGVjaWZpZWQsIHdyaXRlIHRoZSBwcm9maWxlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNoZWFwLXByb2ZcbiAgICovXG4gIHJlYWRvbmx5IGhlYXBQcm9mPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlyZWN0b3J5IHdoZXJlIHRoZSBWOCBoZWFwIHByb2ZpbGVzIGdlbmVyYXRlZCBieSAtLWhlYXAtcHJvZiB3aWxsIGJlIHBsYWNlZC5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaGVhcC1wcm9mLWRpclxuICAgKi9cbiAgcmVhZG9ubHkgaGVhcFByb2ZEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHNwZWNpZmllZCBzYW1wbGluZyBpbnRlcnZhbCBpbiBieXRlcyBmb3IgdGhlIFY4IGhlYXAgcHJvZmlsZSBnZW5lcmF0ZWQgd2l0aCAtLWhlYXAtcHJvZi4gKGRlZmF1bHQ6IDUxMiAqIDEwMjQpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2hlYXAtcHJvZi1pbnRlcnZhbFxuICAgKi9cbiAgcmVhZG9ubHkgaGVhcFByb2ZJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogc3BlY2lmaWVkIGZpbGUgbmFtZSBvZiB0aGUgVjggaGVhcCBwcm9maWxlIGdlbmVyYXRlZCB3aXRoIC0taGVhcC1wcm9mXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2hlYXAtcHJvZi1uYW1lXG4gICAqL1xuICByZWFkb25seSBoZWFwUHJvZk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGhlYXAgc25hcHNob3RzIHdoZW5ldmVyIFY4IGlzIGFwcHJvYWNoaW5nIHRoZSBoZWFwIGxpbWl0LiBObyBtb3JlIHRoYW4gdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaGVhcCBzbmFwc2hvdHMgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2hlYXBzbmFwc2hvdC1uZWFyLWhlYXAtbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IGhlYXBzbmFwc2hvdE5lYXJIZWFwTGltaXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGhlYXAgc25hcHNob3Qgb24gc3BlY2lmaWVkIHNpZ25hbFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNoZWFwc25hcHNob3Qtc2lnbmFsXG4gICAqL1xuICByZWFkb25seSBoZWFwc25hcHNob3RTaWduYWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHNldCBJQ1UgZGF0YSBsb2FkIHBhdGggdG8gZGlyIChvdmVycmlkZXMgTk9ERV9JQ1VfREFUQSkgKG5vdGU6IGxpbmtlZC1pbiBJQ1UgZGF0YSBpcyBwcmVzZW50KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNpY3UtZGF0YS1kaXJcbiAgICovXG4gIHJlYWRvbmx5IGljdURhdGFEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVTIG1vZHVsZSB0byBwcmVsb2FkIChvcHRpb24gY2FuIGJlIHJlcGVhdGVkKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNpbXBvcnRcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBzZXQgbW9kdWxlIHR5cGUgZm9yIHN0cmluZyBpbnB1dFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNpbnB1dC10eXBlXG4gICAqL1xuICByZWFkb25seSBpbnB1dFR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHVzZSBhbiBpbnNlY3VyZSBIVFRQIHBhcnNlciB0aGF0IGFjY2VwdHMgaW52YWxpZCBIVFRQIGhlYWRlcnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5zZWN1cmUtaHR0cC1wYXJzZXJcbiAgICovXG4gIHJlYWRvbmx5IGluc2VjdXJlSHR0cFBhcnNlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFjdGl2YXRlIGluc3BlY3RvciBvbiBob3N0OnBvcnQgKGRlZmF1bHQ6IDEyNy4wLjAuMTo5MjI5KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNpbnNwZWN0XG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWN0aXZhdGUgaW5zcGVjdG9yIG9uIGhvc3Q6cG9ydCBhbmQgYnJlYWsgYXQgc3RhcnQgb2YgdXNlciBzY3JpcHRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5zcGVjdC1icmtcbiAgICovXG4gIHJlYWRvbmx5IGluc3BlY3RCcms/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgaG9zdDpwb3J0IGZvciBpbnNwZWN0b3JcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5zcGVjdC1wb3J0XG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0UG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZGVzdGluYXRpb25zIGZvciBpbnNwZWN0b3IgdWlkKGRlZmF1bHQ6IHN0ZGVycixodHRwKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNpbnNwZWN0LXB1Ymxpc2gtdWlkXG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0UHVibGlzaFVpZD86IHN0cmluZztcblxuICAvKipcbiAgICogYWN0aXZhdGUgaW5zcGVjdG9yIG9uIGhvc3Q6cG9ydCBhbmQgd2FpdCBmb3IgZGVidWdnZXIgdG8gYmUgYXR0YWNoZWRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5zcGVjdC13YWl0XG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0V2FpdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGZpbGUgdXNlZCB0byBwZXJzaXN0IGxvY2FsU3RvcmFnZSBkYXRhXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2xvY2Fsc3RvcmFnZS1maWxlXG4gICAqL1xuICByZWFkb25seSBsb2NhbHN0b3JhZ2VGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzZXQgdGhlIG1heGltdW0gc2l6ZSBvZiBIVFRQIGhlYWRlcnMgKGRlZmF1bHQ6IDE2Mzg0ICgxNktCKSlcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjbWF4LWh0dHAtaGVhZGVyLXNpemVcbiAgICovXG4gIHJlYWRvbmx5IG1heEh0dHBIZWFkZXJTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBzZXQgVjgncyBtYXggb2xkIHNwYWNlIHNpemUgYXMgYSBwZXJjZW50YWdlIG9mIGF2YWlsYWJsZSBtZW1vcnkgKGUuZy4sICc1MCUnKS4gVGFrZXMgcHJlY2VkZW5jZSBvdmVyIC0tbWF4LW9sZC1zcGFjZS1zaXplLlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNtYXgtb2xkLXNwYWNlLXNpemUtcGVyY2VudGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4T2xkU3BhY2VTaXplUGVyY2VudGFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGlzYWJsZSBuZXR3b3JrIGFkZHJlc3MgZmFtaWx5IGF1dG9kZXRlY3Rpb24gYWxnb3JpdGhtXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI25ldHdvcmstZmFtaWx5LWF1dG9zZWxlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtGYW1pbHlBdXRvc2VsZWN0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG5ldHdvcmsgZmFtaWx5IGF1dG9zZWxlY3Rpb24gYXR0ZW1wdCB0aW1lb3V0LlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNuZXR3b3JrLWZhbWlseS1hdXRvc2VsZWN0aW9uLWF0dGVtcHQtdGltZW91dFxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0ZhbWlseUF1dG9zZWxlY3Rpb25BdHRlbXB0VGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjbm9kZS1zbmFwc2hvdFxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVNuYXBzaG90PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogbG9hZCBPcGVuU1NMIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUgKG92ZXJyaWRlcyBPUEVOU1NMX0NPTkYpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI29wZW5zc2wtY29uZmlnXG4gICAqL1xuICByZWFkb25seSBvcGVuc3NsQ29uZmlnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBlbmFibGUgT3BlblNTTCAzLjAgbGVnYWN5IHByb3ZpZGVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI29wZW5zc2wtbGVnYWN5LXByb3ZpZGVyXG4gICAqL1xuICByZWFkb25seSBvcGVuc3NsTGVnYWN5UHJvdmlkZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBlbmFibGUgT3BlblNTTCBzaGFyZWQgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNvcGVuc3NsLXNoYXJlZC1jb25maWdcbiAgICovXG4gIHJlYWRvbmx5IG9wZW5zc2xTaGFyZWRDb25maWc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBlbWl0IHBlbmRpbmcgZGVwcmVjYXRpb24gd2FybmluZ3NcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcGVuZGluZy1kZXByZWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcGVuZGluZ0RlcHJlY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW5hYmxlIHRoZSBwZXJtaXNzaW9uIHN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNwZXJtaXNzaW9uXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogcHJlc2VydmUgc3ltYm9saWMgbGlua3Mgd2hlbiByZXNvbHZpbmdcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcHJlc2VydmUtc3ltbGlua3NcbiAgICovXG4gIHJlYWRvbmx5IHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBwcmVzZXJ2ZSBzeW1ib2xpYyBsaW5rcyB3aGVuIHJlc29sdmluZyB0aGUgbWFpbiBtb2R1bGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcHJlc2VydmUtc3ltbGlua3MtbWFpblxuICAgKi9cbiAgcmVhZG9ubHkgcHJlc2VydmVTeW1saW5rc01haW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB3cml0ZSB3YXJuaW5ncyB0byBmaWxlIGluc3RlYWQgb2Ygc3RkZXJyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3JlZGlyZWN0LXdhcm5pbmdzXG4gICAqL1xuICByZWFkb25seSByZWRpcmVjdFdhcm5pbmdzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBvdXRwdXQgY29tcGFjdCBzaW5nbGUtbGluZSBKU09OXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3JlcG9ydC1jb21wYWN0XG4gICAqL1xuICByZWFkb25seSByZXBvcnRDb21wYWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGVmaW5lIGN1c3RvbSByZXBvcnQgcGF0aG5hbWUuIChkZWZhdWx0OiBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtZGlyXG4gICAqL1xuICByZWFkb25seSByZXBvcnREaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdoZW4gZ2VuZXJhdGluZyByZXBvcnQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtZXhjbHVkZS1lbnZcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydEV4Y2x1ZGVFbnY/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleGNsdWRlIG5ldHdvcmsgaW50ZXJmYWNlIGRpYWdub3N0aWNzLiAoZGVmYXVsdDogZmFsc2UpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3JlcG9ydC1leGNsdWRlLW5ldHdvcmtcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydEV4Y2x1ZGVOZXR3b3JrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGVmaW5lIGN1c3RvbSByZXBvcnQgZmlsZSBuYW1lLiAoZGVmYXVsdDogWVlZWU1NREQuSEhNTVNTLlBJRC5TRVFVRU5DRSMudHh0KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtZmlsZW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydEZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBkaWFnbm9zdGljIHJlcG9ydCBvbiBmYXRhbCAoaW50ZXJuYWwpIGVycm9yc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtb24tZmF0YWxlcnJvclxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0T25GYXRhbGVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZ2VuZXJhdGUgZGlhZ25vc3RpYyByZXBvcnQgdXBvbiByZWNlaXZpbmcgc2lnbmFsc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtb24tc2lnbmFsXG4gICAqL1xuICByZWFkb25seSByZXBvcnRPblNpZ25hbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNhdXNlcyBkaWFnbm9zdGljIHJlcG9ydCB0byBiZSBwcm9kdWNlZCBvbiBwcm92aWRlZCBzaWduYWwsIHVuc3VwcG9ydGVkIGluIFdpbmRvd3MuIChkZWZhdWx0OiBTSUdVU1IyKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtc2lnbmFsXG4gICAqL1xuICByZWFkb25seSByZXBvcnRTaWduYWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGdlbmVyYXRlIGRpYWdub3N0aWMgcmVwb3J0IG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcmVwb3J0LXVuY2F1Z2h0LWV4Y2VwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0VW5jYXVnaHRFeGNlcHRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb21tb25KUyBtb2R1bGUgdG8gcHJlbG9hZCAob3B0aW9uIGNhbiBiZSByZXBlYXRlZClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcmVxdWlyZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbGxvdyBsb2FkaW5nIHN5bmNocm9ub3VzIEVTIE1vZHVsZXMgaW4gcmVxdWlyZSgpLlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXF1aXJlLW1vZHVsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZU1vZHVsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHRvdGFsIHNpemUgb2YgdGhlIE9wZW5TU0wgc2VjdXJlIGhlYXBcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc2VjdXJlLWhlYXBcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyZUhlYXA/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG1pbmltdW0gYWxsb2NhdGlvbiBzaXplIGZyb20gdGhlIE9wZW5TU0wgc2VjdXJlIGhlYXBcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc2VjdXJlLWhlYXAtbWluXG4gICAqL1xuICByZWFkb25seSBzZWN1cmVIZWFwTWluPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBzbmFwc2hvdCBibG9iIHRoYXQncyBlaXRoZXIgdGhlIHJlc3VsdCBvZiBzbmFwc2hvdGJ1aWxkaW5nLCBvciB0aGUgYmxvYiB0aGF0IGlzIHVzZWQgdG8gcmVzdG9yZSB0aGUgYXBwbGljYXRpb24gc3RhdGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc25hcHNob3QtYmxvYlxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RCbG9iPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNzdGFjay10cmFjZS1saW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZUxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUeXBlLXN0cmlwcGluZyBmb3IgVHlwZVNjcmlwdCBmaWxlcy5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc3RyaXAtdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHN0cmlwVHlwZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB0aGUgYnJhbmNoIGNvdmVyYWdlIG1pbmltdW0gdGhyZXNob2xkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtY292ZXJhZ2UtYnJhbmNoZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUJyYW5jaGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBleGNsdWRlIGZpbGVzIGZyb20gY292ZXJhZ2UgcmVwb3J0IHRoYXQgbWF0Y2ggdGhpcyBnbG9iIHBhdHRlcm5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1jb3ZlcmFnZS1leGNsdWRlXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VFeGNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRoZSBmdW5jdGlvbiBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LWNvdmVyYWdlLWZ1bmN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdGVzdENvdmVyYWdlRnVuY3Rpb25zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIGZpbGVzIGluIGNvdmVyYWdlIHJlcG9ydCB0aGF0IG1hdGNoIHRoaXMgZ2xvYiBwYXR0ZXJuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtY292ZXJhZ2UtaW5jbHVkZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdENvdmVyYWdlSW5jbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiB0aGUgbGluZSBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LWNvdmVyYWdlLWxpbmVzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBnbG9iYWwgc2V0dXAgZmlsZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LWdsb2JhbC1zZXR1cFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEdsb2JhbFNldHVwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb25maWd1cmVzIHRoZSB0eXBlIG9mIHRlc3QgaXNvbGF0aW9uIHVzZWQgaW4gdGhlIHRlc3QgcnVubmVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtaXNvbGF0aW9uXG4gICAqL1xuICByZWFkb25seSB0ZXN0SXNvbGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIHRoaXMgcmVndWxhciBleHByZXNzaW9uXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtbmFtZS1wYXR0ZXJuXG4gICAqL1xuICByZWFkb25seSB0ZXN0TmFtZVBhdHRlcm4/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogcnVuIHRlc3RzIHdpdGggJ29ubHknIG9wdGlvbiBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1vbmx5XG4gICAqL1xuICByZWFkb25seSB0ZXN0T25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNlZWQgdXNlZCB0byByYW5kb21pemUgdGVzdCBleGVjdXRpb24gb3JkZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1yYW5kb20tc2VlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJhbmRvbVNlZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyBpbiBhIHJhbmRvbSBvcmRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LXJhbmRvbWl6ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJhbmRvbWl6ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHJlcG9ydCB0ZXN0IG91dHB1dCB1c2luZyB0aGUgZ2l2ZW4gcmVwb3J0ZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1yZXBvcnRlclxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcG9ydGVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHJlcG9ydCBnaXZlbiByZXBvcnRlciB0byB0aGUgZ2l2ZW4gZGVzdGluYXRpb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1yZXBvcnRlci1kZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcG9ydGVyRGVzdGluYXRpb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSByZXJ1biBzdGF0ZSBmaWxlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtcmVydW4tZmFpbHVyZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSZXJ1bkZhaWx1cmVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdCBhdCBzcGVjaWZpYyBzaGFyZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LXNoYXJkXG4gICAqL1xuICByZWFkb25seSB0ZXN0U2hhcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyB3aG9zZSBuYW1lIGRvIG5vdCBtYXRjaCB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LXNraXAtcGF0dGVyblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFNraXBQYXR0ZXJuPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRocm93IGFuIGV4Y2VwdGlvbiBvbiBkZXByZWNhdGlvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGhyb3ctZGVwcmVjYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRocm93RGVwcmVjYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB0aGUgcHJvY2VzcyB0aXRsZSB0byB1c2Ugb24gc3RhcnR1cFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0aXRsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHVzZSBhbiBhbHRlcm5hdGl2ZSBkZWZhdWx0IFRMUyBjaXBoZXIgbGlzdFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0bHMtY2lwaGVyLWxpc3RcbiAgICovXG4gIHJlYWRvbmx5IHRsc0NpcGhlckxpc3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGxvZyBUTFMgZGVjcnlwdGlvbiBrZXlzIHRvIG5hbWVkIGZpbGUgZm9yIHRyYWZmaWMgYW5hbHlzaXNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGxzLWtleWxvZ1xuICAgKi9cbiAgcmVhZG9ubHkgdGxzS2V5bG9nPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzZXQgZGVmYXVsdCBUTFMgbWF4aW11bSB0byBUTFN2MS4yIChkZWZhdWx0OiBUTFN2MS4zKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0bHMtbWF4LXYxLjJcbiAgICovXG4gIHJlYWRvbmx5IHRsc01heFYxMj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNldCBkZWZhdWx0IFRMUyBtYXhpbXVtIHRvIFRMU3YxLjMgKGRlZmF1bHQ6IFRMU3YxLjMpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rscy1tYXgtdjEuM1xuICAgKi9cbiAgcmVhZG9ubHkgdGxzTWF4VjEzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2V0IGRlZmF1bHQgVExTIG1pbmltdW0gdG8gVExTdjEuMCAoZGVmYXVsdDogVExTdjEuMilcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGxzLW1pbi12MS4wXG4gICAqL1xuICByZWFkb25seSB0bHNNaW5WMTA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgZGVmYXVsdCBUTFMgbWluaW11bSB0byBUTFN2MS4xIChkZWZhdWx0OiBUTFN2MS4yKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0bHMtbWluLXYxLjFcbiAgICovXG4gIHJlYWRvbmx5IHRsc01pblYxMT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNldCBkZWZhdWx0IFRMUyBtaW5pbXVtIHRvIFRMU3YxLjIgKGRlZmF1bHQ6IFRMU3YxLjIpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rscy1taW4tdjEuMlxuICAgKi9cbiAgcmVhZG9ubHkgdGxzTWluVjEyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2V0IGRlZmF1bHQgVExTIG1pbmltdW0gdG8gVExTdjEuMyAoZGVmYXVsdDogVExTdjEuMilcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGxzLW1pbi12MS4zXG4gICAqL1xuICByZWFkb25seSB0bHNNaW5WMTM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaG93IHN0YWNrIHRyYWNlcyBvbiBkZXByZWNhdGlvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtZGVwcmVjYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlRGVwcmVjYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmludCBhY2Nlc3NlcyB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLWVudlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2VFbnY/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmludCBhY2Nlc3NlcyB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCB0aGUgSmF2YVNjcmlwdCBzdGFjayB0cmFjZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS1lbnYtanMtc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlRW52SnNTdGFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByaW50IGFjY2Vzc2VzIHRvIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIHRoZSBuYXRpdmUgc3RhY2sgdHJhY2VcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtZW52LW5hdGl2ZS1zdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2VFbnZOYXRpdmVTdGFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHRyYWNlIGV2ZW50IGNhdGVnb3JpZXMgdG8gcmVjb3JkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLWV2ZW50LWNhdGVnb3JpZXNcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlRXZlbnRDYXRlZ29yaWVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgZmlsZXBhdGggZm9yIHRoZSB0cmFjZS1ldmVudHMgZGF0YSwgaXQgc3VwcG9ydHMgJHtyb3RhdGlvbn0gYW5kICR7cGlkfS5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtZXZlbnQtZmlsZS1wYXR0ZXJuXG4gICAqL1xuICByZWFkb25seSB0cmFjZUV2ZW50RmlsZVBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHNob3cgc3RhY2sgdHJhY2Ugd2hlbiBhbiBlbnZpcm9ubWVudCBleGl0c1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS1leGl0XG4gICAqL1xuICByZWFkb25seSB0cmFjZUV4aXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaG93IHN0YWNrIHRyYWNlcyBvbiBwcm9taXNlIGluaXRpYWxpemF0aW9uIGFuZCByZXNvbHV0aW9uXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLXByb21pc2VzXG4gICAqL1xuICByZWFkb25seSB0cmFjZVByb21pc2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpbnQgYWNjZXNzIHRvIHJlcXVpcmUoZXNtKS4gT3B0aW9ucyBhcmUgJ2FsbCcgKHByaW50IGFsbCB1c2FnZSkgYW5kICduby1ub2RlLW1vZHVsZXMnIChleGNsdWRpbmcgdXNhZ2UgZnJvbSB0aGUgbm9kZV9tb2R1bGVzIGZvbGRlcilcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtcmVxdWlyZS1tb2R1bGVcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlUmVxdWlyZU1vZHVsZT86IHN0cmluZztcblxuICAvKipcbiAgICogZW5hYmxlIHByaW50aW5nIEphdmFTY3JpcHQgc3RhY2t0cmFjZSBvbiBTSUdJTlRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2Utc2lnaW50XG4gICAqL1xuICByZWFkb25seSB0cmFjZVNpZ2ludD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNob3cgc3RhY2sgdHJhY2Ugd2hlbiB1c2Ugb2Ygc3luYyBJTyBpcyBkZXRlY3RlZCBhZnRlciB0aGUgZmlyc3QgdGlja1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS1zeW5jLWlvXG4gICAqL1xuICByZWFkb25seSB0cmFjZVN5bmNJbz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHByaW50cyBUTFMgcGFja2V0IHRyYWNlIGluZm9ybWF0aW9uIHRvIHN0ZGVyclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS10bHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlVGxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2hvdyBzdGFjayB0cmFjZXMgZm9yIHRoZSBgdGhyb3dgIGJlaGluZCB1bmNhdWdodCBleGNlcHRpb25zXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLXVuY2F1Z2h0XG4gICAqL1xuICByZWFkb25seSB0cmFjZVVuY2F1Z2h0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2hvdyBzdGFjayB0cmFjZXMgb24gcHJvY2VzcyB3YXJuaW5nc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS13YXJuaW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2VXYXJuaW5ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHRyYWNrIGhlYXAgb2JqZWN0IGFsbG9jYXRpb25zIGZvciBoZWFwIHNuYXBzaG90c1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjay1oZWFwLW9iamVjdHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNrSGVhcE9iamVjdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBkZWZpbmUgdW5oYW5kbGVkIHJlamVjdGlvbnMgYmVoYXZpb3IuIE9wdGlvbnMgYXJlICdzdHJpY3QnIChhbHdheXMgcmFpc2UgYW4gZXJyb3IpLCAndGhyb3cnIChyYWlzZSBhbiBlcnJvciB1bmxlc3MgJ3VuaGFuZGxlZFJlamVjdGlvbicgaG9vayBpcyBzZXQpLCAnd2FybicgKGxvZyBhIHdhcm5pbmcpLCAnbm9uZScgKHNpbGVuY2Ugd2FybmluZ3MpLCAnd2Fybi13aXRoLWVycm9yLWNvZGUnIChsb2cgYSB3YXJuaW5nIGFuZCBzZXQgZXhpdCBjb2RlIDEgdW5sZXNzICd1bmhhbmRsZWRSZWplY3Rpb24nIGhvb2sgaXMgc2V0KS4gKGRlZmF1bHQ6IHRocm93KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN1bmhhbmRsZWQtcmVqZWN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdW5oYW5kbGVkUmVqZWN0aW9ucz86IHN0cmluZztcblxuICAvKipcbiAgICogdXNlIGJ1bmRsZWQgQ0Egc3RvcmUgKGRlZmF1bHQpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3VzZS1idW5kbGVkLWNhXG4gICAqL1xuICByZWFkb25seSB1c2VCdW5kbGVkQ2E/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBwYXJzZSBwcm94eSBzZXR0aW5ncyBmcm9tIEhUVFBfUFJPWFkvSFRUUFNfUFJPWFkvTk9fUFJPWFllbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIGFwcGx5IHRoZSBzZXR0aW5nIGluIGdsb2JhbCBIVFRQL0hUVFBTIGNsaWVudHNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdXNlLWVudi1wcm94eVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlRW52UHJveHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgdGhlIE5vZGUuanMgc3RhdGljIGNvZGUgdG8gbGFyZ2UgcGFnZXMuIE9wdGlvbnMgYXJlICdvZmYnICh0aGUgZGVmYXVsdCB2YWx1ZSwgbWVhbmluZyBkbyBub3QgbWFwKSwgJ29uJyAobWFwIGFuZCBpZ25vcmUgZmFpbHVyZSwgcmVwb3J0aW5nIGl0IHRvIHN0ZGVyciksIG9yICdzaWxlbnQnIChtYXAgYW5kIHNpbGVudGx5IGlnbm9yZSBmYWlsdXJlKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN1c2UtbGFyZ2VwYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgdXNlTGFyZ2VwYWdlcz86IHN0cmluZztcblxuICAvKipcbiAgICogdXNlIE9wZW5TU0wncyBkZWZhdWx0IENBIHN0b3JlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3VzZS1vcGVuc3NsLWNhXG4gICAqL1xuICByZWFkb25seSB1c2VPcGVuc3NsQ2E/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB1c2Ugc3lzdGVtJ3MgQ0Egc3RvcmVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdXNlLXN5c3RlbS1jYVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlU3lzdGVtQ2E/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgVjgncyB0aHJlYWQgcG9vbCBzaXplXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Y4LXBvb2wtc2l6ZVxuICAgKi9cbiAgcmVhZG9ubHkgdjhQb29sU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdmVyaWZ5LWJhc2Utb2JqZWN0c1xuICAgKi9cbiAgcmVhZG9ubHkgdmVyaWZ5QmFzZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaWxlbmNlIGFsbCBwcm9jZXNzIHdhcm5pbmdzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3dhcm5pbmdzXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHJ1biBpbiB3YXRjaCBtb2RlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3dhdGNoXG4gICAqL1xuICByZWFkb25seSB3YXRjaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGtpbGwgc2lnbmFsIHRvIHNlbmQgdG8gdGhlIHByb2Nlc3Mgb24gd2F0Y2ggbW9kZSByZXN0YXJ0cyhkZWZhdWx0OiBTSUdURVJNKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN3YXRjaC1raWxsLXNpZ25hbFxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hLaWxsU2lnbmFsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBwYXRoIHRvIHdhdGNoXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3dhdGNoLXBhdGhcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoUGF0aD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBwcmVzZXJ2ZSBvdXRwdXRzIG9uIHdhdGNoIG1vZGUgcmVzdGFydFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN3YXRjaC1wcmVzZXJ2ZS1vdXRwdXRcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoUHJlc2VydmVPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhdXRvbWF0aWNhbGx5IHplcm8tZmlsbCBhbGwgbmV3bHkgYWxsb2NhdGVkIEJ1ZmZlciBpbnN0YW5jZXNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjemVyby1maWxsLWJ1ZmZlcnNcbiAgICovXG4gIHJlYWRvbmx5IHplcm9GaWxsQnVmZmVycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ05vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX05vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyhvYmo6IE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2FkZG9ucyc6IG9iai5hZGRvbnMsXG4gICAgJ2FsbG93LWFkZG9ucyc6IG9iai5hbGxvd0FkZG9ucyxcbiAgICAnYWxsb3ctY2hpbGQtcHJvY2Vzcyc6IG9iai5hbGxvd0NoaWxkUHJvY2VzcyxcbiAgICAnYWxsb3ctZnMtcmVhZCc6IG9iai5hbGxvd0ZzUmVhZD8ubWFwKHkgPT4geSksXG4gICAgJ2FsbG93LWZzLXdyaXRlJzogb2JqLmFsbG93RnNXcml0ZT8ubWFwKHkgPT4geSksXG4gICAgJ2FsbG93LWluc3BlY3Rvcic6IG9iai5hbGxvd0luc3BlY3RvcixcbiAgICAnYWxsb3ctd2FzaSc6IG9iai5hbGxvd1dhc2ksXG4gICAgJ2FsbG93LXdvcmtlcic6IG9iai5hbGxvd1dvcmtlcixcbiAgICAnYXN5bmMtY29udGV4dC1mcmFtZSc6IG9iai5hc3luY0NvbnRleHRGcmFtZSxcbiAgICAnY29uZGl0aW9ucyc6IG9iai5jb25kaXRpb25zPy5tYXAoeSA9PiB5KSxcbiAgICAnY3B1LXByb2YnOiBvYmouY3B1UHJvZixcbiAgICAnY3B1LXByb2YtZGlyJzogb2JqLmNwdVByb2ZEaXIsXG4gICAgJ2NwdS1wcm9mLWludGVydmFsJzogb2JqLmNwdVByb2ZJbnRlcnZhbCxcbiAgICAnY3B1LXByb2YtbmFtZSc6IG9iai5jcHVQcm9mTmFtZSxcbiAgICAnZGVidWctYXJyYXlidWZmZXItYWxsb2NhdGlvbnMnOiBvYmouZGVidWdBcnJheWJ1ZmZlckFsbG9jYXRpb25zLFxuICAgICdkZXByZWNhdGlvbic6IG9iai5kZXByZWNhdGlvbixcbiAgICAnZGlhZ25vc3RpYy1kaXInOiBvYmouZGlhZ25vc3RpY0RpcixcbiAgICAnZGlzYWJsZS1wcm90byc6IG9iai5kaXNhYmxlUHJvdG8sXG4gICAgJ2Rpc2FibGUtc2lndXNyMSc6IG9iai5kaXNhYmxlU2lndXNyMSxcbiAgICAnZGlzYWJsZS13YXJuaW5nJzogb2JqLmRpc2FibGVXYXJuaW5nPy5tYXAoeSA9PiB5KSxcbiAgICAnZGlzYWJsZS13YXNtLXRyYXAtaGFuZGxlcic6IG9iai5kaXNhYmxlV2FzbVRyYXBIYW5kbGVyLFxuICAgICdkbnMtcmVzdWx0LW9yZGVyJzogb2JqLmRuc1Jlc3VsdE9yZGVyLFxuICAgICdlbmFibGUtZmlwcyc6IG9iai5lbmFibGVGaXBzLFxuICAgICdlbmFibGUtc291cmNlLW1hcHMnOiBvYmouZW5hYmxlU291cmNlTWFwcyxcbiAgICAnZW50cnktdXJsJzogb2JqLmVudHJ5VXJsLFxuICAgICdleHBlcmltZW50YWwtYWRkb24tbW9kdWxlcyc6IG9iai5leHBlcmltZW50YWxBZGRvbk1vZHVsZXMsXG4gICAgJ2V4cGVyaW1lbnRhbC1kZXRlY3QtbW9kdWxlJzogb2JqLmV4cGVyaW1lbnRhbERldGVjdE1vZHVsZSxcbiAgICAnZXhwZXJpbWVudGFsLWV2ZW50c291cmNlJzogb2JqLmV4cGVyaW1lbnRhbEV2ZW50c291cmNlLFxuICAgICdleHBlcmltZW50YWwtZ2xvYmFsLW5hdmlnYXRvcic6IG9iai5leHBlcmltZW50YWxHbG9iYWxOYXZpZ2F0b3IsXG4gICAgJ2V4cGVyaW1lbnRhbC1pbXBvcnQtbWV0YS1yZXNvbHZlJzogb2JqLmV4cGVyaW1lbnRhbEltcG9ydE1ldGFSZXNvbHZlLFxuICAgICdleHBlcmltZW50YWwtbG9hZGVyJzogb2JqLmV4cGVyaW1lbnRhbExvYWRlcj8ubWFwKHkgPT4geSksXG4gICAgJ2V4cGVyaW1lbnRhbC1wcmludC1yZXF1aXJlZC10bGEnOiBvYmouZXhwZXJpbWVudGFsUHJpbnRSZXF1aXJlZFRsYSxcbiAgICAnZXhwZXJpbWVudGFsLXJlcGwtYXdhaXQnOiBvYmouZXhwZXJpbWVudGFsUmVwbEF3YWl0LFxuICAgICdleHBlcmltZW50YWwtcmVxdWlyZS1tb2R1bGUnOiBvYmouZXhwZXJpbWVudGFsUmVxdWlyZU1vZHVsZSxcbiAgICAnZXhwZXJpbWVudGFsLXNoYWRvdy1yZWFsbSc6IG9iai5leHBlcmltZW50YWxTaGFkb3dSZWFsbSxcbiAgICAnZXhwZXJpbWVudGFsLXNxbGl0ZSc6IG9iai5leHBlcmltZW50YWxTcWxpdGUsXG4gICAgJ2V4cGVyaW1lbnRhbC10cmFuc2Zvcm0tdHlwZXMnOiBvYmouZXhwZXJpbWVudGFsVHJhbnNmb3JtVHlwZXMsXG4gICAgJ2V4cGVyaW1lbnRhbC12bS1tb2R1bGVzJzogb2JqLmV4cGVyaW1lbnRhbFZtTW9kdWxlcyxcbiAgICAnZXhwZXJpbWVudGFsLXdlYnNvY2tldCc6IG9iai5leHBlcmltZW50YWxXZWJzb2NrZXQsXG4gICAgJ2V4cGVyaW1lbnRhbC13ZWJzdG9yYWdlJzogb2JqLmV4cGVyaW1lbnRhbFdlYnN0b3JhZ2UsXG4gICAgJ2V4dHJhLWluZm8tb24tZmF0YWwtZXhjZXB0aW9uJzogb2JqLmV4dHJhSW5mb09uRmF0YWxFeGNlcHRpb24sXG4gICAgJ2ZvcmNlLWFzeW5jLWhvb2tzLWNoZWNrcyc6IG9iai5mb3JjZUFzeW5jSG9va3NDaGVja3MsXG4gICAgJ2ZvcmNlLWNvbnRleHQtYXdhcmUnOiBvYmouZm9yY2VDb250ZXh0QXdhcmUsXG4gICAgJ2ZvcmNlLWZpcHMnOiBvYmouZm9yY2VGaXBzLFxuICAgICdmb3JjZS1ub2RlLWFwaS11bmNhdWdodC1leGNlcHRpb25zLXBvbGljeSc6IG9iai5mb3JjZU5vZGVBcGlVbmNhdWdodEV4Y2VwdGlvbnNQb2xpY3ksXG4gICAgJ2Zyb3plbi1pbnRyaW5zaWNzJzogb2JqLmZyb3plbkludHJpbnNpY3MsXG4gICAgJ2dsb2JhbC1zZWFyY2gtcGF0aHMnOiBvYmouZ2xvYmFsU2VhcmNoUGF0aHMsXG4gICAgJ2hlYXAtcHJvZic6IG9iai5oZWFwUHJvZixcbiAgICAnaGVhcC1wcm9mLWRpcic6IG9iai5oZWFwUHJvZkRpcixcbiAgICAnaGVhcC1wcm9mLWludGVydmFsJzogb2JqLmhlYXBQcm9mSW50ZXJ2YWwsXG4gICAgJ2hlYXAtcHJvZi1uYW1lJzogb2JqLmhlYXBQcm9mTmFtZSxcbiAgICAnaGVhcHNuYXBzaG90LW5lYXItaGVhcC1saW1pdCc6IG9iai5oZWFwc25hcHNob3ROZWFySGVhcExpbWl0LFxuICAgICdoZWFwc25hcHNob3Qtc2lnbmFsJzogb2JqLmhlYXBzbmFwc2hvdFNpZ25hbCxcbiAgICAnaWN1LWRhdGEtZGlyJzogb2JqLmljdURhdGFEaXIsXG4gICAgJ2ltcG9ydCc6IG9iai5pbXBvcnQ/Lm1hcCh5ID0+IHkpLFxuICAgICdpbnB1dC10eXBlJzogb2JqLmlucHV0VHlwZSxcbiAgICAnaW5zZWN1cmUtaHR0cC1wYXJzZXInOiBvYmouaW5zZWN1cmVIdHRwUGFyc2VyLFxuICAgICdpbnNwZWN0Jzogb2JqLmluc3BlY3QsXG4gICAgJ2luc3BlY3QtYnJrJzogb2JqLmluc3BlY3RCcmssXG4gICAgJ2luc3BlY3QtcG9ydCc6IG9iai5pbnNwZWN0UG9ydCxcbiAgICAnaW5zcGVjdC1wdWJsaXNoLXVpZCc6IG9iai5pbnNwZWN0UHVibGlzaFVpZCxcbiAgICAnaW5zcGVjdC13YWl0Jzogb2JqLmluc3BlY3RXYWl0LFxuICAgICdsb2NhbHN0b3JhZ2UtZmlsZSc6IG9iai5sb2NhbHN0b3JhZ2VGaWxlLFxuICAgICdtYXgtaHR0cC1oZWFkZXItc2l6ZSc6IG9iai5tYXhIdHRwSGVhZGVyU2l6ZSxcbiAgICAnbWF4LW9sZC1zcGFjZS1zaXplLXBlcmNlbnRhZ2UnOiBvYmoubWF4T2xkU3BhY2VTaXplUGVyY2VudGFnZSxcbiAgICAnbmV0d29yay1mYW1pbHktYXV0b3NlbGVjdGlvbic6IG9iai5uZXR3b3JrRmFtaWx5QXV0b3NlbGVjdGlvbixcbiAgICAnbmV0d29yay1mYW1pbHktYXV0b3NlbGVjdGlvbi1hdHRlbXB0LXRpbWVvdXQnOiBvYmoubmV0d29ya0ZhbWlseUF1dG9zZWxlY3Rpb25BdHRlbXB0VGltZW91dCxcbiAgICAnbm9kZS1zbmFwc2hvdCc6IG9iai5ub2RlU25hcHNob3QsXG4gICAgJ29wZW5zc2wtY29uZmlnJzogb2JqLm9wZW5zc2xDb25maWcsXG4gICAgJ29wZW5zc2wtbGVnYWN5LXByb3ZpZGVyJzogb2JqLm9wZW5zc2xMZWdhY3lQcm92aWRlcixcbiAgICAnb3BlbnNzbC1zaGFyZWQtY29uZmlnJzogb2JqLm9wZW5zc2xTaGFyZWRDb25maWcsXG4gICAgJ3BlbmRpbmctZGVwcmVjYXRpb24nOiBvYmoucGVuZGluZ0RlcHJlY2F0aW9uLFxuICAgICdwZXJtaXNzaW9uJzogb2JqLnBlcm1pc3Npb24sXG4gICAgJ3ByZXNlcnZlLXN5bWxpbmtzJzogb2JqLnByZXNlcnZlU3ltbGlua3MsXG4gICAgJ3ByZXNlcnZlLXN5bWxpbmtzLW1haW4nOiBvYmoucHJlc2VydmVTeW1saW5rc01haW4sXG4gICAgJ3JlZGlyZWN0LXdhcm5pbmdzJzogb2JqLnJlZGlyZWN0V2FybmluZ3MsXG4gICAgJ3JlcG9ydC1jb21wYWN0Jzogb2JqLnJlcG9ydENvbXBhY3QsXG4gICAgJ3JlcG9ydC1kaXInOiBvYmoucmVwb3J0RGlyLFxuICAgICdyZXBvcnQtZXhjbHVkZS1lbnYnOiBvYmoucmVwb3J0RXhjbHVkZUVudixcbiAgICAncmVwb3J0LWV4Y2x1ZGUtbmV0d29yayc6IG9iai5yZXBvcnRFeGNsdWRlTmV0d29yayxcbiAgICAncmVwb3J0LWZpbGVuYW1lJzogb2JqLnJlcG9ydEZpbGVuYW1lLFxuICAgICdyZXBvcnQtb24tZmF0YWxlcnJvcic6IG9iai5yZXBvcnRPbkZhdGFsZXJyb3IsXG4gICAgJ3JlcG9ydC1vbi1zaWduYWwnOiBvYmoucmVwb3J0T25TaWduYWwsXG4gICAgJ3JlcG9ydC1zaWduYWwnOiBvYmoucmVwb3J0U2lnbmFsLFxuICAgICdyZXBvcnQtdW5jYXVnaHQtZXhjZXB0aW9uJzogb2JqLnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uLFxuICAgICdyZXF1aXJlJzogb2JqLnJlcXVpcmU/Lm1hcCh5ID0+IHkpLFxuICAgICdyZXF1aXJlLW1vZHVsZSc6IG9iai5yZXF1aXJlTW9kdWxlLFxuICAgICdzZWN1cmUtaGVhcCc6IG9iai5zZWN1cmVIZWFwLFxuICAgICdzZWN1cmUtaGVhcC1taW4nOiBvYmouc2VjdXJlSGVhcE1pbixcbiAgICAnc25hcHNob3QtYmxvYic6IG9iai5zbmFwc2hvdEJsb2IsXG4gICAgJ3N0YWNrLXRyYWNlLWxpbWl0Jzogb2JqLnN0YWNrVHJhY2VMaW1pdCxcbiAgICAnc3RyaXAtdHlwZXMnOiBvYmouc3RyaXBUeXBlcyxcbiAgICAndGVzdC1jb3ZlcmFnZS1icmFuY2hlcyc6IG9iai50ZXN0Q292ZXJhZ2VCcmFuY2hlcyxcbiAgICAndGVzdC1jb3ZlcmFnZS1leGNsdWRlJzogb2JqLnRlc3RDb3ZlcmFnZUV4Y2x1ZGU/Lm1hcCh5ID0+IHkpLFxuICAgICd0ZXN0LWNvdmVyYWdlLWZ1bmN0aW9ucyc6IG9iai50ZXN0Q292ZXJhZ2VGdW5jdGlvbnMsXG4gICAgJ3Rlc3QtY292ZXJhZ2UtaW5jbHVkZSc6IG9iai50ZXN0Q292ZXJhZ2VJbmNsdWRlPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1jb3ZlcmFnZS1saW5lcyc6IG9iai50ZXN0Q292ZXJhZ2VMaW5lcyxcbiAgICAndGVzdC1nbG9iYWwtc2V0dXAnOiBvYmoudGVzdEdsb2JhbFNldHVwLFxuICAgICd0ZXN0LWlzb2xhdGlvbic6IG9iai50ZXN0SXNvbGF0aW9uLFxuICAgICd0ZXN0LW5hbWUtcGF0dGVybic6IG9iai50ZXN0TmFtZVBhdHRlcm4/Lm1hcCh5ID0+IHkpLFxuICAgICd0ZXN0LW9ubHknOiBvYmoudGVzdE9ubHksXG4gICAgJ3Rlc3QtcmFuZG9tLXNlZWQnOiBvYmoudGVzdFJhbmRvbVNlZWQsXG4gICAgJ3Rlc3QtcmFuZG9taXplJzogb2JqLnRlc3RSYW5kb21pemUsXG4gICAgJ3Rlc3QtcmVwb3J0ZXInOiBvYmoudGVzdFJlcG9ydGVyPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1yZXBvcnRlci1kZXN0aW5hdGlvbic6IG9iai50ZXN0UmVwb3J0ZXJEZXN0aW5hdGlvbj8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3QtcmVydW4tZmFpbHVyZXMnOiBvYmoudGVzdFJlcnVuRmFpbHVyZXMsXG4gICAgJ3Rlc3Qtc2hhcmQnOiBvYmoudGVzdFNoYXJkLFxuICAgICd0ZXN0LXNraXAtcGF0dGVybic6IG9iai50ZXN0U2tpcFBhdHRlcm4/Lm1hcCh5ID0+IHkpLFxuICAgICd0aHJvdy1kZXByZWNhdGlvbic6IG9iai50aHJvd0RlcHJlY2F0aW9uLFxuICAgICd0aXRsZSc6IG9iai50aXRsZSxcbiAgICAndGxzLWNpcGhlci1saXN0Jzogb2JqLnRsc0NpcGhlckxpc3QsXG4gICAgJ3Rscy1rZXlsb2cnOiBvYmoudGxzS2V5bG9nLFxuICAgICd0bHMtbWF4LXYxLjInOiBvYmoudGxzTWF4VjEyLFxuICAgICd0bHMtbWF4LXYxLjMnOiBvYmoudGxzTWF4VjEzLFxuICAgICd0bHMtbWluLXYxLjAnOiBvYmoudGxzTWluVjEwLFxuICAgICd0bHMtbWluLXYxLjEnOiBvYmoudGxzTWluVjExLFxuICAgICd0bHMtbWluLXYxLjInOiBvYmoudGxzTWluVjEyLFxuICAgICd0bHMtbWluLXYxLjMnOiBvYmoudGxzTWluVjEzLFxuICAgICd0cmFjZS1kZXByZWNhdGlvbic6IG9iai50cmFjZURlcHJlY2F0aW9uLFxuICAgICd0cmFjZS1lbnYnOiBvYmoudHJhY2VFbnYsXG4gICAgJ3RyYWNlLWVudi1qcy1zdGFjayc6IG9iai50cmFjZUVudkpzU3RhY2ssXG4gICAgJ3RyYWNlLWVudi1uYXRpdmUtc3RhY2snOiBvYmoudHJhY2VFbnZOYXRpdmVTdGFjayxcbiAgICAndHJhY2UtZXZlbnQtY2F0ZWdvcmllcyc6IG9iai50cmFjZUV2ZW50Q2F0ZWdvcmllcyxcbiAgICAndHJhY2UtZXZlbnQtZmlsZS1wYXR0ZXJuJzogb2JqLnRyYWNlRXZlbnRGaWxlUGF0dGVybixcbiAgICAndHJhY2UtZXhpdCc6IG9iai50cmFjZUV4aXQsXG4gICAgJ3RyYWNlLXByb21pc2VzJzogb2JqLnRyYWNlUHJvbWlzZXMsXG4gICAgJ3RyYWNlLXJlcXVpcmUtbW9kdWxlJzogb2JqLnRyYWNlUmVxdWlyZU1vZHVsZSxcbiAgICAndHJhY2Utc2lnaW50Jzogb2JqLnRyYWNlU2lnaW50LFxuICAgICd0cmFjZS1zeW5jLWlvJzogb2JqLnRyYWNlU3luY0lvLFxuICAgICd0cmFjZS10bHMnOiBvYmoudHJhY2VUbHMsXG4gICAgJ3RyYWNlLXVuY2F1Z2h0Jzogb2JqLnRyYWNlVW5jYXVnaHQsXG4gICAgJ3RyYWNlLXdhcm5pbmdzJzogb2JqLnRyYWNlV2FybmluZ3MsXG4gICAgJ3RyYWNrLWhlYXAtb2JqZWN0cyc6IG9iai50cmFja0hlYXBPYmplY3RzLFxuICAgICd1bmhhbmRsZWQtcmVqZWN0aW9ucyc6IG9iai51bmhhbmRsZWRSZWplY3Rpb25zLFxuICAgICd1c2UtYnVuZGxlZC1jYSc6IG9iai51c2VCdW5kbGVkQ2EsXG4gICAgJ3VzZS1lbnYtcHJveHknOiBvYmoudXNlRW52UHJveHksXG4gICAgJ3VzZS1sYXJnZXBhZ2VzJzogb2JqLnVzZUxhcmdlcGFnZXMsXG4gICAgJ3VzZS1vcGVuc3NsLWNhJzogb2JqLnVzZU9wZW5zc2xDYSxcbiAgICAndXNlLXN5c3RlbS1jYSc6IG9iai51c2VTeXN0ZW1DYSxcbiAgICAndjgtcG9vbC1zaXplJzogb2JqLnY4UG9vbFNpemUsXG4gICAgJ3ZlcmlmeS1iYXNlLW9iamVjdHMnOiBvYmoudmVyaWZ5QmFzZU9iamVjdHMsXG4gICAgJ3dhcm5pbmdzJzogb2JqLndhcm5pbmdzLFxuICAgICd3YXRjaCc6IG9iai53YXRjaCxcbiAgICAnd2F0Y2gta2lsbC1zaWduYWwnOiBvYmoud2F0Y2hLaWxsU2lnbmFsLFxuICAgICd3YXRjaC1wYXRoJzogb2JqLndhdGNoUGF0aD8ubWFwKHkgPT4geSksXG4gICAgJ3dhdGNoLXByZXNlcnZlLW91dHB1dCc6IG9iai53YXRjaFByZXNlcnZlT3V0cHV0LFxuICAgICd6ZXJvLWZpbGwtYnVmZmVycyc6IG9iai56ZXJvRmlsbEJ1ZmZlcnMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIEBzdHlsaXN0aWMvbWF4LWxlbiwgcXVvdGUtcHJvcHMsIEBzdHlsaXN0aWMvcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24ge1xuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIGFkZG9ucyB3aGVuIGFueSBwZXJtaXNzaW9ucyBhcmUgc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24jYWxsb3ctYWRkb25zXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FkZG9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHVzZSBvZiBjaGlsZCBwcm9jZXNzIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy1jaGlsZC1wcm9jZXNzXG4gICAqL1xuICByZWFkb25seSBhbGxvd0NoaWxkUHJvY2Vzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHBlcm1pc3Npb25zIHRvIHJlYWQgdGhlIGZpbGVzeXN0ZW1cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy1mcy1yZWFkXG4gICAqL1xuICByZWFkb25seSBhbGxvd0ZzUmVhZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBhbGxvdyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbiB0aGUgZmlsZXN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI2FsbG93LWZzLXdyaXRlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0ZzV3JpdGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIGluc3BlY3RvciB3aGVuIGFueSBwZXJtaXNzaW9ucyBhcmUgc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24jYWxsb3ctaW5zcGVjdG9yXG4gICAqL1xuICByZWFkb25seSBhbGxvd0luc3BlY3Rvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHdhc2kgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI2FsbG93LXdhc2lcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93V2FzaT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHdvcmtlciB0aHJlYWRzIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy13b3JrZXJcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93V29ya2VyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW5hYmxlIHRoZSBwZXJtaXNzaW9uIHN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI3Blcm1pc3Npb25cbiAgICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX05vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uKG9iajogTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24gfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhbGxvdy1hZGRvbnMnOiBvYmouYWxsb3dBZGRvbnMsXG4gICAgJ2FsbG93LWNoaWxkLXByb2Nlc3MnOiBvYmouYWxsb3dDaGlsZFByb2Nlc3MsXG4gICAgJ2FsbG93LWZzLXJlYWQnOiBvYmouYWxsb3dGc1JlYWQ/Lm1hcCh5ID0+IHkpLFxuICAgICdhbGxvdy1mcy13cml0ZSc6IG9iai5hbGxvd0ZzV3JpdGU/Lm1hcCh5ID0+IHkpLFxuICAgICdhbGxvdy1pbnNwZWN0b3InOiBvYmouYWxsb3dJbnNwZWN0b3IsXG4gICAgJ2FsbG93LXdhc2knOiBvYmouYWxsb3dXYXNpLFxuICAgICdhbGxvdy13b3JrZXInOiBvYmouYWxsb3dXb3JrZXIsXG4gICAgJ3Blcm1pc3Npb24nOiBvYmoucGVybWlzc2lvbixcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgQHN0eWxpc3RpYy9tYXgtbGVuLCBxdW90ZS1wcm9wcywgQHN0eWxpc3RpYy9xdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnU2NoZW1hVGVzdCB7XG4gIC8qKlxuICAgKiBlbmFibGUgY29kZSBjb3ZlcmFnZSBpbiB0aGUgdGVzdCBydW5uZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCNleHBlcmltZW50YWwtdGVzdC1jb3ZlcmFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsVGVzdENvdmVyYWdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW5hYmxlIG1vZHVsZSBtb2NraW5nIGluIHRoZSB0ZXN0IHJ1bm5lclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I2V4cGVyaW1lbnRhbC10ZXN0LW1vZHVsZS1tb2Nrc1xuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsVGVzdE1vZHVsZU1vY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0XG4gICAqL1xuICByZWFkb25seSB0ZXN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc3BlY2lmeSB0ZXN0IHJ1bm5lciBjb25jdXJyZW5jeVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtY29uY3VycmVuY3lcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogdGhlIGJyYW5jaCBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtY292ZXJhZ2UtYnJhbmNoZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUJyYW5jaGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBleGNsdWRlIGZpbGVzIGZyb20gY292ZXJhZ2UgcmVwb3J0IHRoYXQgbWF0Y2ggdGhpcyBnbG9iIHBhdHRlcm5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWNvdmVyYWdlLWV4Y2x1ZGVcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogdGhlIGZ1bmN0aW9uIGNvdmVyYWdlIG1pbmltdW0gdGhyZXNob2xkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1jb3ZlcmFnZS1mdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUZ1bmN0aW9ucz86IG51bWJlcjtcblxuICAvKipcbiAgICogaW5jbHVkZSBmaWxlcyBpbiBjb3ZlcmFnZSByZXBvcnQgdGhhdCBtYXRjaCB0aGlzIGdsb2IgcGF0dGVyblxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtY292ZXJhZ2UtaW5jbHVkZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdENvdmVyYWdlSW5jbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiB0aGUgbGluZSBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtY292ZXJhZ2UtbGluZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUxpbmVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBmb3JjZSB0ZXN0IHJ1bm5lciB0byBleGl0IHVwb24gY29tcGxldGlvblxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtZm9yY2UtZXhpdFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEZvcmNlRXhpdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNwZWNpZmllcyB0aGUgcGF0aCB0byB0aGUgZ2xvYmFsIHNldHVwIGZpbGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWdsb2JhbC1zZXR1cFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEdsb2JhbFNldHVwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb25maWd1cmVzIHRoZSB0eXBlIG9mIHRlc3QgaXNvbGF0aW9uIHVzZWQgaW4gdGhlIHRlc3QgcnVubmVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1pc29sYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRlc3RJc29sYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyB3aG9zZSBuYW1lIG1hdGNoZXMgdGhpcyByZWd1bGFyIGV4cHJlc3Npb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LW5hbWUtcGF0dGVyblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdE5hbWVQYXR0ZXJuPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyB3aXRoICdvbmx5JyBvcHRpb24gc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1vbmx5XG4gICAqL1xuICByZWFkb25seSB0ZXN0T25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNlZWQgdXNlZCB0byByYW5kb21pemUgdGVzdCBleGVjdXRpb24gb3JkZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LXJhbmRvbS1zZWVkXG4gICAqL1xuICByZWFkb25seSB0ZXN0UmFuZG9tU2VlZD86IG51bWJlcjtcblxuICAvKipcbiAgICogcnVuIHRlc3RzIGluIGEgcmFuZG9tIG9yZGVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1yYW5kb21pemVcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSYW5kb21pemU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiByZXBvcnQgdGVzdCBvdXRwdXQgdXNpbmcgdGhlIGdpdmVuIHJlcG9ydGVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1yZXBvcnRlclxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcG9ydGVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHJlcG9ydCBnaXZlbiByZXBvcnRlciB0byB0aGUgZ2l2ZW4gZGVzdGluYXRpb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LXJlcG9ydGVyLWRlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSB0ZXN0UmVwb3J0ZXJEZXN0aW5hdGlvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIHJlcnVuIHN0YXRlIGZpbGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LXJlcnVuLWZhaWx1cmVzXG4gICAqL1xuICByZWFkb25seSB0ZXN0UmVydW5GYWlsdXJlcz86IHN0cmluZztcblxuICAvKipcbiAgICogcnVuIHRlc3QgYXQgc3BlY2lmaWMgc2hhcmRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LXNoYXJkXG4gICAqL1xuICByZWFkb25seSB0ZXN0U2hhcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyB3aG9zZSBuYW1lIGRvIG5vdCBtYXRjaCB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3Qtc2tpcC1wYXR0ZXJuXG4gICAqL1xuICByZWFkb25seSB0ZXN0U2tpcFBhdHRlcm4/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogc3BlY2lmeSB0ZXN0IHJ1bm5lciB0aW1lb3V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC10aW1lb3V0XG4gICAqL1xuICByZWFkb25seSB0ZXN0VGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogcmVnZW5lcmF0ZSB0ZXN0IHNuYXBzaG90c1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtdXBkYXRlLXNuYXBzaG90c1xuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFVwZGF0ZVNuYXBzaG90cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ05vZGVDb25maWdTY2hlbWFUZXN0JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICogQGludGVybmFsXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIEBzdHlsaXN0aWMvbWF4LWxlbiwgcXVvdGUtcHJvcHMsIEBzdHlsaXN0aWMvcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYVRlc3Qob2JqOiBOb2RlQ29uZmlnU2NoZW1hVGVzdCB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2V4cGVyaW1lbnRhbC10ZXN0LWNvdmVyYWdlJzogb2JqLmV4cGVyaW1lbnRhbFRlc3RDb3ZlcmFnZSxcbiAgICAnZXhwZXJpbWVudGFsLXRlc3QtbW9kdWxlLW1vY2tzJzogb2JqLmV4cGVyaW1lbnRhbFRlc3RNb2R1bGVNb2NrcyxcbiAgICAndGVzdCc6IG9iai50ZXN0LFxuICAgICd0ZXN0LWNvbmN1cnJlbmN5Jzogb2JqLnRlc3RDb25jdXJyZW5jeSxcbiAgICAndGVzdC1jb3ZlcmFnZS1icmFuY2hlcyc6IG9iai50ZXN0Q292ZXJhZ2VCcmFuY2hlcyxcbiAgICAndGVzdC1jb3ZlcmFnZS1leGNsdWRlJzogb2JqLnRlc3RDb3ZlcmFnZUV4Y2x1ZGU/Lm1hcCh5ID0+IHkpLFxuICAgICd0ZXN0LWNvdmVyYWdlLWZ1bmN0aW9ucyc6IG9iai50ZXN0Q292ZXJhZ2VGdW5jdGlvbnMsXG4gICAgJ3Rlc3QtY292ZXJhZ2UtaW5jbHVkZSc6IG9iai50ZXN0Q292ZXJhZ2VJbmNsdWRlPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1jb3ZlcmFnZS1saW5lcyc6IG9iai50ZXN0Q292ZXJhZ2VMaW5lcyxcbiAgICAndGVzdC1mb3JjZS1leGl0Jzogb2JqLnRlc3RGb3JjZUV4aXQsXG4gICAgJ3Rlc3QtZ2xvYmFsLXNldHVwJzogb2JqLnRlc3RHbG9iYWxTZXR1cCxcbiAgICAndGVzdC1pc29sYXRpb24nOiBvYmoudGVzdElzb2xhdGlvbixcbiAgICAndGVzdC1uYW1lLXBhdHRlcm4nOiBvYmoudGVzdE5hbWVQYXR0ZXJuPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1vbmx5Jzogb2JqLnRlc3RPbmx5LFxuICAgICd0ZXN0LXJhbmRvbS1zZWVkJzogb2JqLnRlc3RSYW5kb21TZWVkLFxuICAgICd0ZXN0LXJhbmRvbWl6ZSc6IG9iai50ZXN0UmFuZG9taXplLFxuICAgICd0ZXN0LXJlcG9ydGVyJzogb2JqLnRlc3RSZXBvcnRlcj8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3QtcmVwb3J0ZXItZGVzdGluYXRpb24nOiBvYmoudGVzdFJlcG9ydGVyRGVzdGluYXRpb24/Lm1hcCh5ID0+IHkpLFxuICAgICd0ZXN0LXJlcnVuLWZhaWx1cmVzJzogb2JqLnRlc3RSZXJ1bkZhaWx1cmVzLFxuICAgICd0ZXN0LXNoYXJkJzogb2JqLnRlc3RTaGFyZCxcbiAgICAndGVzdC1za2lwLXBhdHRlcm4nOiBvYmoudGVzdFNraXBQYXR0ZXJuPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC10aW1lb3V0Jzogb2JqLnRlc3RUaW1lb3V0LFxuICAgICd0ZXN0LXVwZGF0ZS1zbmFwc2hvdHMnOiBvYmoudGVzdFVwZGF0ZVNuYXBzaG90cyxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgQHN0eWxpc3RpYy9tYXgtbGVuLCBxdW90ZS1wcm9wcywgQHN0eWxpc3RpYy9xdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVdhdGNoXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUNvbmZpZ1NjaGVtYVdhdGNoIHtcbiAgLyoqXG4gICAqIHJ1biBpbiB3YXRjaCBtb2RlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVdhdGNoI3dhdGNoXG4gICAqL1xuICByZWFkb25seSB3YXRjaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGtpbGwgc2lnbmFsIHRvIHNlbmQgdG8gdGhlIHByb2Nlc3Mgb24gd2F0Y2ggbW9kZSByZXN0YXJ0cyhkZWZhdWx0OiBTSUdURVJNKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFXYXRjaCN3YXRjaC1raWxsLXNpZ25hbFxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hLaWxsU2lnbmFsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBwYXRoIHRvIHdhdGNoXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVdhdGNoI3dhdGNoLXBhdGhcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoUGF0aD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBwcmVzZXJ2ZSBvdXRwdXRzIG9uIHdhdGNoIG1vZGUgcmVzdGFydFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFXYXRjaCN3YXRjaC1wcmVzZXJ2ZS1vdXRwdXRcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoUHJlc2VydmVPdXRwdXQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdOb2RlQ29uZmlnU2NoZW1hV2F0Y2gnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgQHN0eWxpc3RpYy9tYXgtbGVuLCBxdW90ZS1wcm9wcywgQHN0eWxpc3RpYy9xdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Ob2RlQ29uZmlnU2NoZW1hV2F0Y2gob2JqOiBOb2RlQ29uZmlnU2NoZW1hV2F0Y2ggfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICd3YXRjaCc6IG9iai53YXRjaCxcbiAgICAnd2F0Y2gta2lsbC1zaWduYWwnOiBvYmoud2F0Y2hLaWxsU2lnbmFsLFxuICAgICd3YXRjaC1wYXRoJzogb2JqLndhdGNoUGF0aD8ubWFwKHkgPT4geSksXG4gICAgJ3dhdGNoLXByZXNlcnZlLW91dHB1dCc6IG9iai53YXRjaFByZXNlcnZlT3V0cHV0LFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9ub2RlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlDQSwwREFZQztBQTJpQ0QsZ0ZBOEpDO0FBMEZELDhFQWlCQztBQThLRCxrRUE2QkM7QUF5Q0Qsb0VBVUM7QUFua0REOzs7R0FHRztBQUNILHFGQUFxRjtBQUNyRixTQUFnQix1QkFBdUIsQ0FBQyxHQUFpQztJQUN2RSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE9BQU8sU0FBUyxDQUFDO0lBQUMsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTTtRQUNyQixhQUFhLEVBQUUsa0NBQWtDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDOUIsWUFBWSxFQUFFLGlDQUFpQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDL0QsTUFBTSxFQUFFLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDN0MsT0FBTyxFQUFFLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7S0FDakQsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBc2lDRDs7O0dBR0c7QUFDSCxxRkFBcUY7QUFDckYsU0FBZ0Isa0NBQWtDLENBQUMsR0FBNEM7SUFDN0YsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUc7UUFDYixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU07UUFDcEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsY0FBYztRQUNyQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDekIscUJBQXFCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtRQUM1QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDM0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLFVBQVUsRUFBRSxHQUFHLENBQUMsT0FBTztRQUN2QixjQUFjLEVBQUUsR0FBRyxDQUFDLFVBQVU7UUFDOUIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGVBQWU7UUFDeEMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQ2hDLCtCQUErQixFQUFFLEdBQUcsQ0FBQywyQkFBMkI7UUFDaEUsYUFBYSxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQzlCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ25DLGVBQWUsRUFBRSxHQUFHLENBQUMsWUFBWTtRQUNqQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsY0FBYztRQUNyQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCwyQkFBMkIsRUFBRSxHQUFHLENBQUMsc0JBQXNCO1FBQ3ZELGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxjQUFjO1FBQ3RDLGFBQWEsRUFBRSxHQUFHLENBQUMsVUFBVTtRQUM3QixvQkFBb0IsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQzFDLFdBQVcsRUFBRSxHQUFHLENBQUMsUUFBUTtRQUN6Qiw0QkFBNEIsRUFBRSxHQUFHLENBQUMsd0JBQXdCO1FBQzFELDRCQUE0QixFQUFFLEdBQUcsQ0FBQyx3QkFBd0I7UUFDMUQsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QjtRQUN2RCxrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZTtRQUN2QywrQkFBK0IsRUFBRSxHQUFHLENBQUMsMkJBQTJCO1FBQ2hFLGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyw2QkFBNkI7UUFDckUscUJBQXFCLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxpQ0FBaUMsRUFBRSxHQUFHLENBQUMsNEJBQTRCO1FBQ25FLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxxQkFBcUI7UUFDcEQsNkJBQTZCLEVBQUUsR0FBRyxDQUFDLHlCQUF5QjtRQUM1RCwyQkFBMkIsRUFBRSxHQUFHLENBQUMsdUJBQXVCO1FBQ3hELHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7UUFDN0MsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLHNCQUFzQjtRQUN0RCx5QkFBeUIsRUFBRSxHQUFHLENBQUMscUJBQXFCO1FBQ3BELHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxxQkFBcUI7UUFDbkQseUJBQXlCLEVBQUUsR0FBRyxDQUFDLHNCQUFzQjtRQUNyRCwrQkFBK0IsRUFBRSxHQUFHLENBQUMseUJBQXlCO1FBQzlELDBCQUEwQixFQUFFLEdBQUcsQ0FBQyxxQkFBcUI7UUFDckQscUJBQXFCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtRQUM1QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDM0IsMkNBQTJDLEVBQUUsR0FBRyxDQUFDLG9DQUFvQztRQUNyRixtQkFBbUIsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQ3pDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxHQUFHLENBQUMsV0FBVztRQUNoQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQzFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxZQUFZO1FBQ2xDLDhCQUE4QixFQUFFLEdBQUcsQ0FBQyx5QkFBeUI7UUFDN0QscUJBQXFCLEVBQUUsR0FBRyxDQUFDLGtCQUFrQjtRQUM3QyxjQUFjLEVBQUUsR0FBRyxDQUFDLFVBQVU7UUFDOUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLFlBQVksRUFBRSxHQUFHLENBQUMsU0FBUztRQUMzQixzQkFBc0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCO1FBQzlDLFNBQVMsRUFBRSxHQUFHLENBQUMsT0FBTztRQUN0QixhQUFhLEVBQUUsR0FBRyxDQUFDLFVBQVU7UUFDN0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7UUFDekMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtRQUM3QywrQkFBK0IsRUFBRSxHQUFHLENBQUMseUJBQXlCO1FBQzlELDhCQUE4QixFQUFFLEdBQUcsQ0FBQywwQkFBMEI7UUFDOUQsOENBQThDLEVBQUUsR0FBRyxDQUFDLHdDQUF3QztRQUM1RixlQUFlLEVBQUUsR0FBRyxDQUFDLFlBQVk7UUFDakMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDbkMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLHFCQUFxQjtRQUNwRCx1QkFBdUIsRUFBRSxHQUFHLENBQUMsbUJBQW1CO1FBQ2hELHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7UUFDN0MsWUFBWSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1FBQzVCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxlQUFlO1FBQ3ZDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7UUFDekMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLG9CQUFvQjtRQUNsRCxtQkFBbUIsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQ3pDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ25DLFlBQVksRUFBRSxHQUFHLENBQUMsU0FBUztRQUMzQixvQkFBb0IsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQzFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxvQkFBb0I7UUFDbEQsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGNBQWM7UUFDckMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLGtCQUFrQjtRQUM5QyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsY0FBYztRQUN0QyxlQUFlLEVBQUUsR0FBRyxDQUFDLFlBQVk7UUFDakMsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QjtRQUN4RCxTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDbkMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1FBQzdCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ3BDLGVBQWUsRUFBRSxHQUFHLENBQUMsWUFBWTtRQUNqQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsZUFBZTtRQUN4QyxhQUFhLEVBQUUsR0FBRyxDQUFDLFVBQVU7UUFDN0Isd0JBQXdCLEVBQUUsR0FBRyxDQUFDLG9CQUFvQjtRQUNsRCx1QkFBdUIsRUFBRSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxxQkFBcUI7UUFDcEQsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RCxxQkFBcUIsRUFBRSxHQUFHLENBQUMsaUJBQWlCO1FBQzVDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxlQUFlO1FBQ3hDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ25DLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFdBQVcsRUFBRSxHQUFHLENBQUMsUUFBUTtRQUN6QixrQkFBa0IsRUFBRSxHQUFHLENBQUMsY0FBYztRQUN0QyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsYUFBYTtRQUNuQyxlQUFlLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRSxxQkFBcUIsRUFBRSxHQUFHLENBQUMsaUJBQWlCO1FBQzVDLFlBQVksRUFBRSxHQUFHLENBQUMsU0FBUztRQUMzQixtQkFBbUIsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxtQkFBbUIsRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQ3pDLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSztRQUNsQixpQkFBaUIsRUFBRSxHQUFHLENBQUMsYUFBYTtRQUNwQyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDM0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzdCLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUztRQUM3QixjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDN0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzdCLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUztRQUM3QixjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDN0IsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUN6QyxXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDekIsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLGVBQWU7UUFDekMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtRQUNqRCx3QkFBd0IsRUFBRSxHQUFHLENBQUMsb0JBQW9CO1FBQ2xELDBCQUEwQixFQUFFLEdBQUcsQ0FBQyxxQkFBcUI7UUFDckQsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzNCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ25DLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7UUFDOUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLGVBQWUsRUFBRSxHQUFHLENBQUMsV0FBVztRQUNoQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDekIsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDbkMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDbkMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUMxQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsbUJBQW1CO1FBQy9DLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxZQUFZO1FBQ2xDLGVBQWUsRUFBRSxHQUFHLENBQUMsV0FBVztRQUNoQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsYUFBYTtRQUNuQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsWUFBWTtRQUNsQyxlQUFlLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDaEMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxVQUFVO1FBQzlCLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3hCLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSztRQUNsQixtQkFBbUIsRUFBRSxHQUFHLENBQUMsZUFBZTtRQUN4QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtRQUNoRCxtQkFBbUIsRUFBRSxHQUFHLENBQUMsZUFBZTtLQUN6QyxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFxRkQ7OztHQUdHO0FBQ0gscUZBQXFGO0FBQ3JGLFNBQWdCLGlDQUFpQyxDQUFDLEdBQTJDO0lBQzNGLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsY0FBYztRQUNyQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDekIscUJBQXFCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtRQUM1QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDM0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQy9CLFlBQVksRUFBRSxHQUFHLENBQUMsVUFBVTtLQUM3QixDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUF5S0Q7OztHQUdHO0FBQ0gscUZBQXFGO0FBQ3JGLFNBQWdCLDJCQUEyQixDQUFDLEdBQXFDO0lBQy9FLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsNEJBQTRCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QjtRQUMxRCxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsMkJBQTJCO1FBQ2pFLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZTtRQUN2Qyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsb0JBQW9CO1FBQ2xELHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0QseUJBQXlCLEVBQUUsR0FBRyxDQUFDLHFCQUFxQjtRQUNwRCx1QkFBdUIsRUFBRSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDcEMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGVBQWU7UUFDeEMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGFBQWE7UUFDbkMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckQsV0FBVyxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3pCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxjQUFjO1FBQ3RDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxhQUFhO1FBQ25DLGVBQWUsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QywyQkFBMkIsRUFBRSxHQUFHLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7UUFDNUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzNCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELGNBQWMsRUFBRSxHQUFHLENBQUMsV0FBVztRQUMvQix1QkFBdUIsRUFBRSxHQUFHLENBQUMsbUJBQW1CO0tBQ2pELENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQW9DRDs7O0dBR0c7QUFDSCxxRkFBcUY7QUFDckYsU0FBZ0IsNEJBQTRCLENBQUMsR0FBc0M7SUFDakYsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUc7UUFDYixPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDbEIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLGVBQWU7UUFDeEMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxtQkFBbUI7S0FDakQsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBQ0Qsb0ZBQW9GIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibm9kZSAuL3Byb2plbi5qc1wiLlxuLyoqXG4gKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnU2NoZW1hIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYSMkc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBzY2hlbWE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYSNub2RlT3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbm9kZU9wdGlvbnM/OiBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYSNub2RlVmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYSNwZXJtaXNzaW9uXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uPzogTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb247XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYSN0ZXN0XG4gICAqL1xuICByZWFkb25seSB0ZXN0PzogTm9kZUNvbmZpZ1NjaGVtYVRlc3Q7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYSN3YXRjaFxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2g/OiBOb2RlQ29uZmlnU2NoZW1hV2F0Y2g7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ05vZGVDb25maWdTY2hlbWEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKiBAaW50ZXJuYWxcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgQHN0eWxpc3RpYy9tYXgtbGVuLCBxdW90ZS1wcm9wcywgQHN0eWxpc3RpYy9xdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9Ob2RlQ29uZmlnU2NoZW1hKG9iajogTm9kZUNvbmZpZ1NjaGVtYSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJyRzY2hlbWEnOiBvYmouc2NoZW1hLFxuICAgICdub2RlT3B0aW9ucyc6IHRvSnNvbl9Ob2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMob2JqLm5vZGVPcHRpb25zKSxcbiAgICAnbm9kZVZlcnNpb24nOiBvYmoubm9kZVZlcnNpb24sXG4gICAgJ3Blcm1pc3Npb24nOiB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24ob2JqLnBlcm1pc3Npb24pLFxuICAgICd0ZXN0JzogdG9Kc29uX05vZGVDb25maWdTY2hlbWFUZXN0KG9iai50ZXN0KSxcbiAgICAnd2F0Y2gnOiB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYVdhdGNoKG9iai53YXRjaCksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIEBzdHlsaXN0aWMvbWF4LWxlbiwgcXVvdGUtcHJvcHMsIEBzdHlsaXN0aWMvcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBkaXNhYmxlIGxvYWRpbmcgbmF0aXZlIGFkZG9uc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhZGRvbnNcbiAgICovXG4gIHJlYWRvbmx5IGFkZG9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHVzZSBvZiBhZGRvbnMgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1hZGRvbnNcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93QWRkb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIGNoaWxkIHByb2Nlc3Mgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1jaGlsZC1wcm9jZXNzXG4gICAqL1xuICByZWFkb25seSBhbGxvd0NoaWxkUHJvY2Vzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHVzZSBvZiBGRkkgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1mZmlcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RmZpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgZmlsZXN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1mcy1yZWFkXG4gICAqL1xuICByZWFkb25seSBhbGxvd0ZzUmVhZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBhbGxvdyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbiB0aGUgZmlsZXN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1mcy13cml0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dGc1dyaXRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFsbG93IHVzZSBvZiBpbnNwZWN0b3Igd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1pbnNwZWN0b3JcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93SW5zcGVjdG9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIG5ldHdvcmsgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhbGxvdy1uZXRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93TmV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIE9wZW5TU0wgU1RPUkUgbG9hZGVycyB3aGVuIGFueSBwZXJtaXNzaW9ucyBhcmUgc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2FsbG93LW9wZW5zc2wtc3RvcmVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93T3BlbnNzbFN0b3JlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgd2FzaSB3aGVuIGFueSBwZXJtaXNzaW9ucyBhcmUgc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2FsbG93LXdhc2lcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93V2FzaT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHdvcmtlciB0aHJlYWRzIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjYWxsb3ctd29ya2VyXG4gICAqL1xuICByZWFkb25seSBhbGxvd1dvcmtlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEltcHJvdmUgQXN5bmNMb2NhbFN0b3JhZ2UgcGVyZm9ybWFuY2Ugd2l0aCBBc3luY0NvbnRleHRGcmFtZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNhc3luYy1jb250ZXh0LWZyYW1lXG4gICAqL1xuICByZWFkb25seSBhc3luY0NvbnRleHRGcmFtZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgdXNlciBjb25kaXRpb25zIGZvciBjb25kaXRpb25hbCBleHBvcnRzIGFuZCBpbXBvcnRzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2NvbmRpdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3RhcnQgdGhlIFY4IENQVSBwcm9maWxlciBvbiBzdGFydCB1cCwgYW5kIHdyaXRlIHRoZSBDUFUgcHJvZmlsZSB0byBkaXNrIGJlZm9yZSBleGl0LiBJZiAtLWNwdS1wcm9mLWRpciBpcyBub3Qgc3BlY2lmaWVkLCB3cml0ZSB0aGUgcHJvZmlsZSB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjY3B1LXByb2ZcbiAgICovXG4gIHJlYWRvbmx5IGNwdVByb2Y/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXJlY3Rvcnkgd2hlcmUgdGhlIFY4IHByb2ZpbGVzIGdlbmVyYXRlZCBieSAtLWNwdS1wcm9mIHdpbGwgYmUgcGxhY2VkLiBEb2VzIG5vdCBhZmZlY3QgLS1wcm9mLlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNjcHUtcHJvZi1kaXJcbiAgICovXG4gIHJlYWRvbmx5IGNwdVByb2ZEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHNwZWNpZmllZCBzYW1wbGluZyBpbnRlcnZhbCBpbiBtaWNyb3NlY29uZHMgZm9yIHRoZSBWOCBDUFUgcHJvZmlsZSBnZW5lcmF0ZWQgd2l0aCAtLWNwdS1wcm9mLiAoZGVmYXVsdDogMTAwMClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjY3B1LXByb2YtaW50ZXJ2YWxcbiAgICovXG4gIHJlYWRvbmx5IGNwdVByb2ZJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogc3BlY2lmaWVkIGZpbGUgbmFtZSBvZiB0aGUgVjggQ1BVIHByb2ZpbGUgZ2VuZXJhdGVkIHdpdGggLS1jcHUtcHJvZlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNjcHUtcHJvZi1uYW1lXG4gICAqL1xuICByZWFkb25seSBjcHVQcm9mTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZGVidWctYXJyYXlidWZmZXItYWxsb2NhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnQXJyYXlidWZmZXJBbGxvY2F0aW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNpbGVuY2UgZGVwcmVjYXRpb24gd2FybmluZ3NcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZGVwcmVjYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlcHJlY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2V0IGRpciBmb3IgYWxsIG91dHB1dCBmaWxlcyAoZGVmYXVsdDogY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSlcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZGlhZ25vc3RpYy1kaXJcbiAgICovXG4gIHJlYWRvbmx5IGRpYWdub3N0aWNEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGRpc2FibGUgT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX19cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZGlzYWJsZS1wcm90b1xuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVByb3RvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGluc3BlY3RvciB0aHJlYWQgdG8gYmUgbGlzdGVuaW5nIGZvciBTSUdVU1IxIHNpZ25hbFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNkaXNhYmxlLXNpZ3VzcjFcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVTaWd1c3IxPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2lsZW5jZSBzcGVjaWZpYyBwcm9jZXNzIHdhcm5pbmdzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2Rpc2FibGUtd2FybmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVdhcm5pbmc/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGlzYWJsZSB0cmFwLWhhbmRsZXItYmFzZWQgV2ViQXNzZW1ibHkgYm91bmQgY2hlY2tzLiBWOCB3aWxsIGluc2VydCBpbmxpbmUgYm91bmQgY2hlY2tzIHdoZW4gY29tcGlsaW5nIFdlYkFzc2VtYmx5IHdoaWNoIG1heSBzbG93IGRvd24gcGVyZm9ybWFuY2UuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2Rpc2FibGUtd2FzbS10cmFwLWhhbmRsZXJcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVXYXNtVHJhcEhhbmRsZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgZGVmYXVsdCB2YWx1ZSBvZiB2ZXJiYXRpbSBpbiBkbnMubG9va3VwLiBPcHRpb25zIGFyZSAnaXB2NGZpcnN0JyAoSVB2NCBhZGRyZXNzZXMgYXJlIHBsYWNlZCBiZWZvcmUgSVB2NiBhZGRyZXNzZXMpICdpcHY2Zmlyc3QnIChJUHY2IGFkZHJlc3NlcyBhcmUgcGxhY2VkIGJlZm9yZSBJUHY0IGFkZHJlc3NlcykgJ3ZlcmJhdGltJyAoYWRkcmVzc2VzIGFyZSBpbiB0aGUgb3JkZXIgdGhlIEROUyByZXNvbHZlciByZXR1cm5lZClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZG5zLXJlc3VsdC1vcmRlclxuICAgKi9cbiAgcmVhZG9ubHkgZG5zUmVzdWx0T3JkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVuYWJsZSBGSVBTIGNyeXB0byBhdCBzdGFydHVwXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2VuYWJsZS1maXBzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVGaXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU291cmNlIE1hcCBWMyBzdXBwb3J0IGZvciBzdGFjayB0cmFjZXNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZW5hYmxlLXNvdXJjZS1tYXBzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTb3VyY2VNYXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVHJlYXQgdGhlIGVudHJ5cG9pbnQgYXMgYSBVUkxcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZW50cnktdXJsXG4gICAqL1xuICByZWFkb25seSBlbnRyeVVybD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGV4cGVyaW1lbnRhbCBpbXBvcnQgc3VwcG9ydCBmb3IgYWRkb25zXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1hZGRvbi1tb2R1bGVzXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxBZGRvbk1vZHVsZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB3aGVuIGFtYmlndW91cyBtb2R1bGVzIGZhaWwgdG8gZXZhbHVhdGUgYmVjYXVzZSB0aGV5IGNvbnRhaW4gRVMgbW9kdWxlIHN5bnRheCwgdHJ5IGFnYWluIHRvIGV2YWx1YXRlIHRoZW0gYXMgRVMgbW9kdWxlc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtZGV0ZWN0LW1vZHVsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsRGV0ZWN0TW9kdWxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIEV2ZW50U291cmNlIEFQSVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtZXZlbnRzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEV2ZW50c291cmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIG5vZGU6ZmZpIG1vZHVsZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtZmZpXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxGZmk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleHBvc2UgZXhwZXJpbWVudGFsIE5hdmlnYXRvciBBUEkgb24gdGhlIGdsb2JhbCBzY29wZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtZ2xvYmFsLW5hdmlnYXRvclxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsR2xvYmFsTmF2aWdhdG9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIEVTIE1vZHVsZSBpbXBvcnQubWV0YS5yZXNvbHZlKCkgcGFyZW50VVJMIHN1cHBvcnRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLWltcG9ydC1tZXRhLXJlc29sdmVcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEltcG9ydE1ldGFSZXNvbHZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdXNlIHRoZSBzcGVjaWZpZWQgbW9kdWxlIGFzIGEgY3VzdG9tIGxvYWRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtbG9hZGVyXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxMb2FkZXI/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpbnQgcGVuZGluZyB0b3AtbGV2ZWwgYXdhaXQuIElmIC0tcmVxdWlyZS1tb2R1bGUgaXMgdHJ1ZSwgZXZhbHVhdGUgYXN5bmNocm9ub3VzIGdyYXBocyBsb2FkZWQgYnkgYHJlcXVpcmUoKWAgYnV0IGRvIG5vdCBydW4gdGhlIG1pY3JvdGFza3MsIGluIG9yZGVyIHRvIGZpbmQgYW5kIHByaW50IHRvcC1sZXZlbCBhd2FpdCBpbiB0aGUgZ3JhcGhcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLXByaW50LXJlcXVpcmVkLXRsYVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsUHJpbnRSZXF1aXJlZFRsYT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGV4cGVyaW1lbnRhbCBhd2FpdCBrZXl3b3JkIHN1cHBvcnQgaW4gUkVQTFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtcmVwbC1hd2FpdFxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsUmVwbEF3YWl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGVnYWN5IGFsaWFzIGZvciAtLXJlcXVpcmUtbW9kdWxlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1yZXF1aXJlLW1vZHVsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsUmVxdWlyZU1vZHVsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1zaGFkb3ctcmVhbG1cbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFNoYWRvd1JlYWxtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIG5vZGU6c3FsaXRlIG1vZHVsZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNleHBlcmltZW50YWwtc3FsaXRlXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxTcWxpdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleHBlcmltZW50YWwgaXRlcmFibGUgc3RyZWFtcyBBUEkgKG5vZGU6c3RyZWFtL2l0ZXIpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC1zdHJlYW0taXRlclxuICAgKi9cbiAgcmVhZG9ubHkgZXhwZXJpbWVudGFsU3RyZWFtSXRlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGV4cGVyaW1lbnRhbCBFUyBNb2R1bGUgc3VwcG9ydCBpbiB2bSBtb2R1bGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLXZtLW1vZHVsZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFZtTW9kdWxlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGV4cGVyaW1lbnRhbCBXZWJTb2NrZXQgQVBJXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4cGVyaW1lbnRhbC13ZWJzb2NrZXRcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFdlYnNvY2tldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGV4cGVyaW1lbnRhbCBXZWIgU3RvcmFnZSBBUElcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZXhwZXJpbWVudGFsLXdlYnN0b3JhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFdlYnN0b3JhZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBoaWRlIGV4dHJhIGluZm9ybWF0aW9uIG9uIGZhdGFsIGV4Y2VwdGlvbiB0aGF0IGNhdXNlcyBleGl0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2V4dHJhLWluZm8tb24tZmF0YWwtZXhjZXB0aW9uXG4gICAqL1xuICByZWFkb25seSBleHRyYUluZm9PbkZhdGFsRXhjZXB0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGlzYWJsZSBjaGVja3MgZm9yIGFzeW5jX2hvb2tzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2ZvcmNlLWFzeW5jLWhvb2tzLWNoZWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VBc3luY0hvb2tzQ2hlY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGlzYWJsZSBsb2FkaW5nIG5vbi1jb250ZXh0LWF3YXJlIGFkZG9uc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNmb3JjZS1jb250ZXh0LWF3YXJlXG4gICAqL1xuICByZWFkb25seSBmb3JjZUNvbnRleHRBd2FyZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGZvcmNlIEZJUFMgY3J5cHRvIChjYW5ub3QgYmUgZGlzYWJsZWQpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2ZvcmNlLWZpcHNcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRmlwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGVuZm9yY2VzICd1bmNhdWdodEV4Y2VwdGlvbicgZXZlbnQgb24gTm9kZSBBUEkgYXN5bmNocm9ub3VzIGNhbGxiYWNrc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNmb3JjZS1ub2RlLWFwaS11bmNhdWdodC1leGNlcHRpb25zLXBvbGljeVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VOb2RlQXBpVW5jYXVnaHRFeGNlcHRpb25zUG9saWN5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZXhwZXJpbWVudGFsIGZyb3plbiBpbnRyaW5zaWNzIHN1cHBvcnRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjZnJvemVuLWludHJpbnNpY3NcbiAgICovXG4gIHJlYWRvbmx5IGZyb3plbkludHJpbnNpY3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBkaXNhYmxlIGdsb2JhbCBtb2R1bGUgc2VhcmNoIHBhdGhzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2dsb2JhbC1zZWFyY2gtcGF0aHNcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFNlYXJjaFBhdGhzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3RhcnQgdGhlIFY4IGhlYXAgcHJvZmlsZXIgb24gc3RhcnQgdXAsIGFuZCB3cml0ZSB0aGUgaGVhcCBwcm9maWxlIHRvIGRpc2sgYmVmb3JlIGV4aXQuIElmIC0taGVhcC1wcm9mLWRpciBpcyBub3Qgc3BlY2lmaWVkLCB3cml0ZSB0aGUgcHJvZmlsZSB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaGVhcC1wcm9mXG4gICAqL1xuICByZWFkb25seSBoZWFwUHJvZj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yeSB3aGVyZSB0aGUgVjggaGVhcCBwcm9maWxlcyBnZW5lcmF0ZWQgYnkgLS1oZWFwLXByb2Ygd2lsbCBiZSBwbGFjZWQuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2hlYXAtcHJvZi1kaXJcbiAgICovXG4gIHJlYWRvbmx5IGhlYXBQcm9mRGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzcGVjaWZpZWQgc2FtcGxpbmcgaW50ZXJ2YWwgaW4gYnl0ZXMgZm9yIHRoZSBWOCBoZWFwIHByb2ZpbGUgZ2VuZXJhdGVkIHdpdGggLS1oZWFwLXByb2YuIChkZWZhdWx0OiA1MTIgKiAxMDI0KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNoZWFwLXByb2YtaW50ZXJ2YWxcbiAgICovXG4gIHJlYWRvbmx5IGhlYXBQcm9mSW50ZXJ2YWw/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHNwZWNpZmllZCBmaWxlIG5hbWUgb2YgdGhlIFY4IGhlYXAgcHJvZmlsZSBnZW5lcmF0ZWQgd2l0aCAtLWhlYXAtcHJvZlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNoZWFwLXByb2YtbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgaGVhcFByb2ZOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBoZWFwIHNuYXBzaG90cyB3aGVuZXZlciBWOCBpcyBhcHByb2FjaGluZyB0aGUgaGVhcCBsaW1pdC4gTm8gbW9yZSB0aGFuIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGhlYXAgc25hcHNob3RzIHdpbGwgYmUgZ2VuZXJhdGVkLlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNoZWFwc25hcHNob3QtbmVhci1oZWFwLWxpbWl0XG4gICAqL1xuICByZWFkb25seSBoZWFwc25hcHNob3ROZWFySGVhcExpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBoZWFwIHNuYXBzaG90IG9uIHNwZWNpZmllZCBzaWduYWxcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaGVhcHNuYXBzaG90LXNpZ25hbFxuICAgKi9cbiAgcmVhZG9ubHkgaGVhcHNuYXBzaG90U2lnbmFsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzZXQgSUNVIGRhdGEgbG9hZCBwYXRoIHRvIGRpciAob3ZlcnJpZGVzIE5PREVfSUNVX0RBVEEpIChub3RlOiBsaW5rZWQtaW4gSUNVIGRhdGEgaXMgcHJlc2VudClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaWN1LWRhdGEtZGlyXG4gICAqL1xuICByZWFkb25seSBpY3VEYXRhRGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFUyBtb2R1bGUgdG8gcHJlbG9hZCAob3B0aW9uIGNhbiBiZSByZXBlYXRlZClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW1wb3J0XG4gICAqL1xuICByZWFkb25seSBpbXBvcnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogc2V0IG1vZHVsZSB0eXBlIGZvciBzdHJpbmcgaW5wdXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5wdXQtdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXRUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB1c2UgYW4gaW5zZWN1cmUgSFRUUCBwYXJzZXIgdGhhdCBhY2NlcHRzIGludmFsaWQgSFRUUCBoZWFkZXJzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2luc2VjdXJlLWh0dHAtcGFyc2VyXG4gICAqL1xuICByZWFkb25seSBpbnNlY3VyZUh0dHBQYXJzZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhY3RpdmF0ZSBpbnNwZWN0b3Igb24gaG9zdDpwb3J0IChkZWZhdWx0OiAxMjcuMC4wLjE6OTIyOSlcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5zcGVjdFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zcGVjdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFjdGl2YXRlIGluc3BlY3RvciBvbiBob3N0OnBvcnQgYW5kIGJyZWFrIGF0IHN0YXJ0IG9mIHVzZXIgc2NyaXB0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2luc3BlY3QtYnJrXG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0QnJrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2V0IGhvc3Q6cG9ydCBmb3IgaW5zcGVjdG9yXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2luc3BlY3QtcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zcGVjdFBvcnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGRlc3RpbmF0aW9ucyBmb3IgaW5zcGVjdG9yIHVpZChkZWZhdWx0OiBzdGRlcnIsaHR0cClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjaW5zcGVjdC1wdWJsaXNoLXVpZFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zcGVjdFB1Ymxpc2hVaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGFjdGl2YXRlIGluc3BlY3RvciBvbiBob3N0OnBvcnQgYW5kIHdhaXQgZm9yIGRlYnVnZ2VyIHRvIGJlIGF0dGFjaGVkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI2luc3BlY3Qtd2FpdFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zcGVjdFdhaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBmaWxlIHVzZWQgdG8gcGVyc2lzdCBsb2NhbFN0b3JhZ2UgZGF0YVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNsb2NhbHN0b3JhZ2UtZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxzdG9yYWdlRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogc2V0IHRoZSBtYXhpbXVtIHNpemUgb2YgSFRUUCBoZWFkZXJzIChkZWZhdWx0OiAxNjM4NCAoMTZLQikpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI21heC1odHRwLWhlYWRlci1zaXplXG4gICAqL1xuICByZWFkb25seSBtYXhIdHRwSGVhZGVyU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogc2V0IFY4J3MgbWF4IG9sZCBzcGFjZSBzaXplIGFzIGEgcGVyY2VudGFnZSBvZiBhdmFpbGFibGUgbWVtb3J5IChlLmcuLCAnNTAlJykuIFRha2VzIHByZWNlZGVuY2Ugb3ZlciAtLW1heC1vbGQtc3BhY2Utc2l6ZS5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjbWF4LW9sZC1zcGFjZS1zaXplLXBlcmNlbnRhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1heE9sZFNwYWNlU2l6ZVBlcmNlbnRhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgbmV0d29yayBhZGRyZXNzIGZhbWlseSBhdXRvZGV0ZWN0aW9uIGFsZ29yaXRobVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNuZXR3b3JrLWZhbWlseS1hdXRvc2VsZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrRmFtaWx5QXV0b3NlbGVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBuZXR3b3JrIGZhbWlseSBhdXRvc2VsZWN0aW9uIGF0dGVtcHQgdGltZW91dC5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjbmV0d29yay1mYW1pbHktYXV0b3NlbGVjdGlvbi1hdHRlbXB0LXRpbWVvdXRcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtGYW1pbHlBdXRvc2VsZWN0aW9uQXR0ZW1wdFRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI25vZGUtc25hcHNob3RcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVTbmFwc2hvdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGxvYWQgT3BlblNTTCBjb25maWd1cmF0aW9uIGZyb20gdGhlIHNwZWNpZmllZCBmaWxlIChvdmVycmlkZXMgT1BFTlNTTF9DT05GKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNvcGVuc3NsLWNvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlbnNzbENvbmZpZz86IHN0cmluZztcblxuICAvKipcbiAgICogZW5hYmxlIE9wZW5TU0wgMy4wIGxlZ2FjeSBwcm92aWRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNvcGVuc3NsLWxlZ2FjeS1wcm92aWRlclxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbnNzbExlZ2FjeVByb3ZpZGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW5hYmxlIE9wZW5TU0wgc2hhcmVkIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjb3BlbnNzbC1zaGFyZWQtY29uZmlnXG4gICAqL1xuICByZWFkb25seSBvcGVuc3NsU2hhcmVkQ29uZmlnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW1pdCBwZW5kaW5nIGRlcHJlY2F0aW9uIHdhcm5pbmdzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3BlbmRpbmctZGVwcmVjYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHBlbmRpbmdEZXByZWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGVuYWJsZSB0aGUgcGVybWlzc2lvbiBzeXN0ZW1cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcGVybWlzc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGVuYWJsZSBhdWRpdCBvbmx5IGZvciB0aGUgcGVybWlzc2lvbiBzeXN0ZW1cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcGVybWlzc2lvbi1hdWRpdFxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbkF1ZGl0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogcHJlc2VydmUgc3ltYm9saWMgbGlua3Mgd2hlbiByZXNvbHZpbmdcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcHJlc2VydmUtc3ltbGlua3NcbiAgICovXG4gIHJlYWRvbmx5IHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBwcmVzZXJ2ZSBzeW1ib2xpYyBsaW5rcyB3aGVuIHJlc29sdmluZyB0aGUgbWFpbiBtb2R1bGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcHJlc2VydmUtc3ltbGlua3MtbWFpblxuICAgKi9cbiAgcmVhZG9ubHkgcHJlc2VydmVTeW1saW5rc01haW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB3cml0ZSB3YXJuaW5ncyB0byBmaWxlIGluc3RlYWQgb2Ygc3RkZXJyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3JlZGlyZWN0LXdhcm5pbmdzXG4gICAqL1xuICByZWFkb25seSByZWRpcmVjdFdhcm5pbmdzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBvdXRwdXQgY29tcGFjdCBzaW5nbGUtbGluZSBKU09OXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3JlcG9ydC1jb21wYWN0XG4gICAqL1xuICByZWFkb25seSByZXBvcnRDb21wYWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGVmaW5lIGN1c3RvbSByZXBvcnQgcGF0aG5hbWUuIChkZWZhdWx0OiBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtZGlyXG4gICAqL1xuICByZWFkb25seSByZXBvcnREaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4Y2x1ZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdoZW4gZ2VuZXJhdGluZyByZXBvcnQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtZXhjbHVkZS1lbnZcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydEV4Y2x1ZGVFbnY/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBleGNsdWRlIG5ldHdvcmsgaW50ZXJmYWNlIGRpYWdub3N0aWNzLiAoZGVmYXVsdDogZmFsc2UpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3JlcG9ydC1leGNsdWRlLW5ldHdvcmtcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydEV4Y2x1ZGVOZXR3b3JrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGVmaW5lIGN1c3RvbSByZXBvcnQgZmlsZSBuYW1lLiAoZGVmYXVsdDogWVlZWU1NREQuSEhNTVNTLlBJRC5TRVFVRU5DRSMudHh0KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtZmlsZW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9ydEZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBkaWFnbm9zdGljIHJlcG9ydCBvbiBmYXRhbCAoaW50ZXJuYWwpIGVycm9yc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtb24tZmF0YWxlcnJvclxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0T25GYXRhbGVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZ2VuZXJhdGUgZGlhZ25vc3RpYyByZXBvcnQgdXBvbiByZWNlaXZpbmcgc2lnbmFsc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtb24tc2lnbmFsXG4gICAqL1xuICByZWFkb25seSByZXBvcnRPblNpZ25hbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNhdXNlcyBkaWFnbm9zdGljIHJlcG9ydCB0byBiZSBwcm9kdWNlZCBvbiBwcm92aWRlZCBzaWduYWwsIHVuc3VwcG9ydGVkIGluIFdpbmRvd3MuIChkZWZhdWx0OiBTSUdVU1IyKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXBvcnQtc2lnbmFsXG4gICAqL1xuICByZWFkb25seSByZXBvcnRTaWduYWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGdlbmVyYXRlIGRpYWdub3N0aWMgcmVwb3J0IG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcmVwb3J0LXVuY2F1Z2h0LWV4Y2VwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0VW5jYXVnaHRFeGNlcHRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb21tb25KUyBtb2R1bGUgdG8gcHJlbG9hZCAob3B0aW9uIGNhbiBiZSByZXBlYXRlZClcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjcmVxdWlyZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbGxvdyBsb2FkaW5nIHN5bmNocm9ub3VzIEVTIE1vZHVsZXMgaW4gcmVxdWlyZSgpLlxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNyZXF1aXJlLW1vZHVsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZU1vZHVsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHRvdGFsIHNpemUgb2YgdGhlIE9wZW5TU0wgc2VjdXJlIGhlYXBcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc2VjdXJlLWhlYXBcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyZUhlYXA/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG1pbmltdW0gYWxsb2NhdGlvbiBzaXplIGZyb20gdGhlIE9wZW5TU0wgc2VjdXJlIGhlYXBcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc2VjdXJlLWhlYXAtbWluXG4gICAqL1xuICByZWFkb25seSBzZWN1cmVIZWFwTWluPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBzbmFwc2hvdCBibG9iIHRoYXQncyBlaXRoZXIgdGhlIHJlc3VsdCBvZiBzbmFwc2hvdGJ1aWxkaW5nLCBvciB0aGUgYmxvYiB0aGF0IGlzIHVzZWQgdG8gcmVzdG9yZSB0aGUgYXBwbGljYXRpb24gc3RhdGVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc25hcHNob3QtYmxvYlxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RCbG9iPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyNzdGFjay10cmFjZS1saW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZUxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUeXBlLXN0cmlwcGluZyBmb3IgVHlwZVNjcmlwdCBmaWxlcy5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjc3RyaXAtdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHN0cmlwVHlwZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB0aGUgYnJhbmNoIGNvdmVyYWdlIG1pbmltdW0gdGhyZXNob2xkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtY292ZXJhZ2UtYnJhbmNoZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUJyYW5jaGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBleGNsdWRlIGZpbGVzIGZyb20gY292ZXJhZ2UgcmVwb3J0IHRoYXQgbWF0Y2ggdGhpcyBnbG9iIHBhdHRlcm5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1jb3ZlcmFnZS1leGNsdWRlXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VFeGNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRoZSBmdW5jdGlvbiBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LWNvdmVyYWdlLWZ1bmN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdGVzdENvdmVyYWdlRnVuY3Rpb25zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIGZpbGVzIGluIGNvdmVyYWdlIHJlcG9ydCB0aGF0IG1hdGNoIHRoaXMgZ2xvYiBwYXR0ZXJuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtY292ZXJhZ2UtaW5jbHVkZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdENvdmVyYWdlSW5jbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiB0aGUgbGluZSBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LWNvdmVyYWdlLWxpbmVzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBnbG9iYWwgc2V0dXAgZmlsZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LWdsb2JhbC1zZXR1cFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEdsb2JhbFNldHVwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb25maWd1cmVzIHRoZSB0eXBlIG9mIHRlc3QgaXNvbGF0aW9uIHVzZWQgaW4gdGhlIHRlc3QgcnVubmVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtaXNvbGF0aW9uXG4gICAqL1xuICByZWFkb25seSB0ZXN0SXNvbGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIHRoaXMgcmVndWxhciBleHByZXNzaW9uXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtbmFtZS1wYXR0ZXJuXG4gICAqL1xuICByZWFkb25seSB0ZXN0TmFtZVBhdHRlcm4/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogcnVuIHRlc3RzIHdpdGggJ29ubHknIG9wdGlvbiBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1vbmx5XG4gICAqL1xuICByZWFkb25seSB0ZXN0T25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNlZWQgdXNlZCB0byByYW5kb21pemUgdGVzdCBleGVjdXRpb24gb3JkZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1yYW5kb20tc2VlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJhbmRvbVNlZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyBpbiBhIHJhbmRvbSBvcmRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LXJhbmRvbWl6ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJhbmRvbWl6ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHJlcG9ydCB0ZXN0IG91dHB1dCB1c2luZyB0aGUgZ2l2ZW4gcmVwb3J0ZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1yZXBvcnRlclxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcG9ydGVyPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHJlcG9ydCBnaXZlbiByZXBvcnRlciB0byB0aGUgZ2l2ZW4gZGVzdGluYXRpb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGVzdC1yZXBvcnRlci1kZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcG9ydGVyRGVzdGluYXRpb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSByZXJ1biBzdGF0ZSBmaWxlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rlc3QtcmVydW4tZmFpbHVyZXNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSZXJ1bkZhaWx1cmVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdCBhdCBzcGVjaWZpYyBzaGFyZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LXNoYXJkXG4gICAqL1xuICByZWFkb25seSB0ZXN0U2hhcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyB3aG9zZSBuYW1lIGRvIG5vdCBtYXRjaCB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0ZXN0LXNraXAtcGF0dGVyblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFNraXBQYXR0ZXJuPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRocm93IGFuIGV4Y2VwdGlvbiBvbiBkZXByZWNhdGlvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGhyb3ctZGVwcmVjYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRocm93RGVwcmVjYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB0aGUgcHJvY2VzcyB0aXRsZSB0byB1c2Ugb24gc3RhcnR1cFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0aXRsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHVzZSBhbiBhbHRlcm5hdGl2ZSBkZWZhdWx0IFRMUyBjaXBoZXIgbGlzdFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0bHMtY2lwaGVyLWxpc3RcbiAgICovXG4gIHJlYWRvbmx5IHRsc0NpcGhlckxpc3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGxvZyBUTFMgZGVjcnlwdGlvbiBrZXlzIHRvIG5hbWVkIGZpbGUgZm9yIHRyYWZmaWMgYW5hbHlzaXNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGxzLWtleWxvZ1xuICAgKi9cbiAgcmVhZG9ubHkgdGxzS2V5bG9nPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzZXQgZGVmYXVsdCBUTFMgbWF4aW11bSB0byBUTFN2MS4yIChkZWZhdWx0OiBUTFN2MS4zKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0bHMtbWF4LXYxLjJcbiAgICovXG4gIHJlYWRvbmx5IHRsc01heFYxMj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNldCBkZWZhdWx0IFRMUyBtYXhpbXVtIHRvIFRMU3YxLjMgKGRlZmF1bHQ6IFRMU3YxLjMpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rscy1tYXgtdjEuM1xuICAgKi9cbiAgcmVhZG9ubHkgdGxzTWF4VjEzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2V0IGRlZmF1bHQgVExTIG1pbmltdW0gdG8gVExTdjEuMCAoZGVmYXVsdDogVExTdjEuMilcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGxzLW1pbi12MS4wXG4gICAqL1xuICByZWFkb25seSB0bHNNaW5WMTA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgZGVmYXVsdCBUTFMgbWluaW11bSB0byBUTFN2MS4xIChkZWZhdWx0OiBUTFN2MS4yKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0bHMtbWluLXYxLjFcbiAgICovXG4gIHJlYWRvbmx5IHRsc01pblYxMT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNldCBkZWZhdWx0IFRMUyBtaW5pbXVtIHRvIFRMU3YxLjIgKGRlZmF1bHQ6IFRMU3YxLjIpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Rscy1taW4tdjEuMlxuICAgKi9cbiAgcmVhZG9ubHkgdGxzTWluVjEyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2V0IGRlZmF1bHQgVExTIG1pbmltdW0gdG8gVExTdjEuMyAoZGVmYXVsdDogVExTdjEuMilcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdGxzLW1pbi12MS4zXG4gICAqL1xuICByZWFkb25seSB0bHNNaW5WMTM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaG93IHN0YWNrIHRyYWNlcyBvbiBkZXByZWNhdGlvbnNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtZGVwcmVjYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlRGVwcmVjYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmludCBhY2Nlc3NlcyB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLWVudlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2VFbnY/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmludCBhY2Nlc3NlcyB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCB0aGUgSmF2YVNjcmlwdCBzdGFjayB0cmFjZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS1lbnYtanMtc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlRW52SnNTdGFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByaW50IGFjY2Vzc2VzIHRvIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIHRoZSBuYXRpdmUgc3RhY2sgdHJhY2VcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtZW52LW5hdGl2ZS1zdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2VFbnZOYXRpdmVTdGFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHRyYWNlIGV2ZW50IGNhdGVnb3JpZXMgdG8gcmVjb3JkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLWV2ZW50LWNhdGVnb3JpZXNcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlRXZlbnRDYXRlZ29yaWVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgZmlsZXBhdGggZm9yIHRoZSB0cmFjZS1ldmVudHMgZGF0YSwgaXQgc3VwcG9ydHMgJHtyb3RhdGlvbn0gYW5kICR7cGlkfS5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtZXZlbnQtZmlsZS1wYXR0ZXJuXG4gICAqL1xuICByZWFkb25seSB0cmFjZUV2ZW50RmlsZVBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHNob3cgc3RhY2sgdHJhY2Ugd2hlbiBhbiBlbnZpcm9ubWVudCBleGl0c1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS1leGl0XG4gICAqL1xuICByZWFkb25seSB0cmFjZUV4aXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaG93IHN0YWNrIHRyYWNlcyBvbiBwcm9taXNlIGluaXRpYWxpemF0aW9uIGFuZCByZXNvbHV0aW9uXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLXByb21pc2VzXG4gICAqL1xuICByZWFkb25seSB0cmFjZVByb21pc2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpbnQgYWNjZXNzIHRvIHJlcXVpcmUoZXNtKS4gT3B0aW9ucyBhcmUgJ2FsbCcgKHByaW50IGFsbCB1c2FnZSkgYW5kICduby1ub2RlLW1vZHVsZXMnIChleGNsdWRpbmcgdXNhZ2UgZnJvbSB0aGUgbm9kZV9tb2R1bGVzIGZvbGRlcilcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2UtcmVxdWlyZS1tb2R1bGVcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlUmVxdWlyZU1vZHVsZT86IHN0cmluZztcblxuICAvKipcbiAgICogZW5hYmxlIHByaW50aW5nIEphdmFTY3JpcHQgc3RhY2t0cmFjZSBvbiBTSUdJTlRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdHJhY2Utc2lnaW50XG4gICAqL1xuICByZWFkb25seSB0cmFjZVNpZ2ludD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNob3cgc3RhY2sgdHJhY2Ugd2hlbiB1c2Ugb2Ygc3luYyBJTyBpcyBkZXRlY3RlZCBhZnRlciB0aGUgZmlyc3QgdGlja1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS1zeW5jLWlvXG4gICAqL1xuICByZWFkb25seSB0cmFjZVN5bmNJbz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHByaW50cyBUTFMgcGFja2V0IHRyYWNlIGluZm9ybWF0aW9uIHRvIHN0ZGVyclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS10bHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNlVGxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2hvdyBzdGFjayB0cmFjZXMgZm9yIHRoZSBgdGhyb3dgIGJlaGluZCB1bmNhdWdodCBleGNlcHRpb25zXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3RyYWNlLXVuY2F1Z2h0XG4gICAqL1xuICByZWFkb25seSB0cmFjZVVuY2F1Z2h0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogc2hvdyBzdGFjayB0cmFjZXMgb24gcHJvY2VzcyB3YXJuaW5nc1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjZS13YXJuaW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2VXYXJuaW5ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHRyYWNrIGhlYXAgb2JqZWN0IGFsbG9jYXRpb25zIGZvciBoZWFwIHNuYXBzaG90c1xuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN0cmFjay1oZWFwLW9iamVjdHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNrSGVhcE9iamVjdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBkZWZpbmUgdW5oYW5kbGVkIHJlamVjdGlvbnMgYmVoYXZpb3IuIE9wdGlvbnMgYXJlICdzdHJpY3QnIChhbHdheXMgcmFpc2UgYW4gZXJyb3IpLCAndGhyb3cnIChyYWlzZSBhbiBlcnJvciB1bmxlc3MgJ3VuaGFuZGxlZFJlamVjdGlvbicgaG9vayBpcyBzZXQpLCAnd2FybicgKGxvZyBhIHdhcm5pbmcpLCAnbm9uZScgKHNpbGVuY2Ugd2FybmluZ3MpLCAnd2Fybi13aXRoLWVycm9yLWNvZGUnIChsb2cgYSB3YXJuaW5nIGFuZCBzZXQgZXhpdCBjb2RlIDEgdW5sZXNzICd1bmhhbmRsZWRSZWplY3Rpb24nIGhvb2sgaXMgc2V0KS4gKGRlZmF1bHQ6IHRocm93KVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN1bmhhbmRsZWQtcmVqZWN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdW5oYW5kbGVkUmVqZWN0aW9ucz86IHN0cmluZztcblxuICAvKipcbiAgICogdXNlIGJ1bmRsZWQgQ0Egc3RvcmUgKGRlZmF1bHQpXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3VzZS1idW5kbGVkLWNhXG4gICAqL1xuICByZWFkb25seSB1c2VCdW5kbGVkQ2E/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBwYXJzZSBwcm94eSBzZXR0aW5ncyBmcm9tIEhUVFBfUFJPWFkvSFRUUFNfUFJPWFkvTk9fUFJPWFllbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIGFwcGx5IHRoZSBzZXR0aW5nIGluIGdsb2JhbCBIVFRQL0hUVFBTIGNsaWVudHNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdXNlLWVudi1wcm94eVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlRW52UHJveHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgdGhlIE5vZGUuanMgc3RhdGljIGNvZGUgdG8gbGFyZ2UgcGFnZXMuIE9wdGlvbnMgYXJlICdvZmYnICh0aGUgZGVmYXVsdCB2YWx1ZSwgbWVhbmluZyBkbyBub3QgbWFwKSwgJ29uJyAobWFwIGFuZCBpZ25vcmUgZmFpbHVyZSwgcmVwb3J0aW5nIGl0IHRvIHN0ZGVyciksIG9yICdzaWxlbnQnIChtYXAgYW5kIHNpbGVudGx5IGlnbm9yZSBmYWlsdXJlKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN1c2UtbGFyZ2VwYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgdXNlTGFyZ2VwYWdlcz86IHN0cmluZztcblxuICAvKipcbiAgICogdXNlIE9wZW5TU0wncyBkZWZhdWx0IENBIHN0b3JlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3VzZS1vcGVuc3NsLWNhXG4gICAqL1xuICByZWFkb25seSB1c2VPcGVuc3NsQ2E/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiB1c2Ugc3lzdGVtJ3MgQ0Egc3RvcmVcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdXNlLXN5c3RlbS1jYVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlU3lzdGVtQ2E/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZXQgVjgncyB0aHJlYWQgcG9vbCBzaXplXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3Y4LXBvb2wtc2l6ZVxuICAgKi9cbiAgcmVhZG9ubHkgdjhQb29sU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjdmVyaWZ5LWJhc2Utb2JqZWN0c1xuICAgKi9cbiAgcmVhZG9ubHkgdmVyaWZ5QmFzZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzaWxlbmNlIGFsbCBwcm9jZXNzIHdhcm5pbmdzXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3dhcm5pbmdzXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHJ1biBpbiB3YXRjaCBtb2RlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3dhdGNoXG4gICAqL1xuICByZWFkb25seSB3YXRjaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGtpbGwgc2lnbmFsIHRvIHNlbmQgdG8gdGhlIHByb2Nlc3Mgb24gd2F0Y2ggbW9kZSByZXN0YXJ0cyhkZWZhdWx0OiBTSUdURVJNKVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN3YXRjaC1raWxsLXNpZ25hbFxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hLaWxsU2lnbmFsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBwYXRoIHRvIHdhdGNoXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYU5vZGVPcHRpb25zI3dhdGNoLXBhdGhcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoUGF0aD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBwcmVzZXJ2ZSBvdXRwdXRzIG9uIHdhdGNoIG1vZGUgcmVzdGFydFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyN3YXRjaC1wcmVzZXJ2ZS1vdXRwdXRcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoUHJlc2VydmVPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhdXRvbWF0aWNhbGx5IHplcm8tZmlsbCBhbGwgbmV3bHkgYWxsb2NhdGVkIEJ1ZmZlciBpbnN0YW5jZXNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hTm9kZU9wdGlvbnMjemVyby1maWxsLWJ1ZmZlcnNcbiAgICovXG4gIHJlYWRvbmx5IHplcm9GaWxsQnVmZmVycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ05vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX05vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyhvYmo6IE5vZGVDb25maWdTY2hlbWFOb2RlT3B0aW9ucyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2FkZG9ucyc6IG9iai5hZGRvbnMsXG4gICAgJ2FsbG93LWFkZG9ucyc6IG9iai5hbGxvd0FkZG9ucyxcbiAgICAnYWxsb3ctY2hpbGQtcHJvY2Vzcyc6IG9iai5hbGxvd0NoaWxkUHJvY2VzcyxcbiAgICAnYWxsb3ctZmZpJzogb2JqLmFsbG93RmZpLFxuICAgICdhbGxvdy1mcy1yZWFkJzogb2JqLmFsbG93RnNSZWFkPy5tYXAoeSA9PiB5KSxcbiAgICAnYWxsb3ctZnMtd3JpdGUnOiBvYmouYWxsb3dGc1dyaXRlPy5tYXAoeSA9PiB5KSxcbiAgICAnYWxsb3ctaW5zcGVjdG9yJzogb2JqLmFsbG93SW5zcGVjdG9yLFxuICAgICdhbGxvdy1uZXQnOiBvYmouYWxsb3dOZXQsXG4gICAgJ2FsbG93LW9wZW5zc2wtc3RvcmUnOiBvYmouYWxsb3dPcGVuc3NsU3RvcmUsXG4gICAgJ2FsbG93LXdhc2knOiBvYmouYWxsb3dXYXNpLFxuICAgICdhbGxvdy13b3JrZXInOiBvYmouYWxsb3dXb3JrZXIsXG4gICAgJ2FzeW5jLWNvbnRleHQtZnJhbWUnOiBvYmouYXN5bmNDb250ZXh0RnJhbWUsXG4gICAgJ2NvbmRpdGlvbnMnOiBvYmouY29uZGl0aW9ucz8ubWFwKHkgPT4geSksXG4gICAgJ2NwdS1wcm9mJzogb2JqLmNwdVByb2YsXG4gICAgJ2NwdS1wcm9mLWRpcic6IG9iai5jcHVQcm9mRGlyLFxuICAgICdjcHUtcHJvZi1pbnRlcnZhbCc6IG9iai5jcHVQcm9mSW50ZXJ2YWwsXG4gICAgJ2NwdS1wcm9mLW5hbWUnOiBvYmouY3B1UHJvZk5hbWUsXG4gICAgJ2RlYnVnLWFycmF5YnVmZmVyLWFsbG9jYXRpb25zJzogb2JqLmRlYnVnQXJyYXlidWZmZXJBbGxvY2F0aW9ucyxcbiAgICAnZGVwcmVjYXRpb24nOiBvYmouZGVwcmVjYXRpb24sXG4gICAgJ2RpYWdub3N0aWMtZGlyJzogb2JqLmRpYWdub3N0aWNEaXIsXG4gICAgJ2Rpc2FibGUtcHJvdG8nOiBvYmouZGlzYWJsZVByb3RvLFxuICAgICdkaXNhYmxlLXNpZ3VzcjEnOiBvYmouZGlzYWJsZVNpZ3VzcjEsXG4gICAgJ2Rpc2FibGUtd2FybmluZyc6IG9iai5kaXNhYmxlV2FybmluZz8ubWFwKHkgPT4geSksXG4gICAgJ2Rpc2FibGUtd2FzbS10cmFwLWhhbmRsZXInOiBvYmouZGlzYWJsZVdhc21UcmFwSGFuZGxlcixcbiAgICAnZG5zLXJlc3VsdC1vcmRlcic6IG9iai5kbnNSZXN1bHRPcmRlcixcbiAgICAnZW5hYmxlLWZpcHMnOiBvYmouZW5hYmxlRmlwcyxcbiAgICAnZW5hYmxlLXNvdXJjZS1tYXBzJzogb2JqLmVuYWJsZVNvdXJjZU1hcHMsXG4gICAgJ2VudHJ5LXVybCc6IG9iai5lbnRyeVVybCxcbiAgICAnZXhwZXJpbWVudGFsLWFkZG9uLW1vZHVsZXMnOiBvYmouZXhwZXJpbWVudGFsQWRkb25Nb2R1bGVzLFxuICAgICdleHBlcmltZW50YWwtZGV0ZWN0LW1vZHVsZSc6IG9iai5leHBlcmltZW50YWxEZXRlY3RNb2R1bGUsXG4gICAgJ2V4cGVyaW1lbnRhbC1ldmVudHNvdXJjZSc6IG9iai5leHBlcmltZW50YWxFdmVudHNvdXJjZSxcbiAgICAnZXhwZXJpbWVudGFsLWZmaSc6IG9iai5leHBlcmltZW50YWxGZmksXG4gICAgJ2V4cGVyaW1lbnRhbC1nbG9iYWwtbmF2aWdhdG9yJzogb2JqLmV4cGVyaW1lbnRhbEdsb2JhbE5hdmlnYXRvcixcbiAgICAnZXhwZXJpbWVudGFsLWltcG9ydC1tZXRhLXJlc29sdmUnOiBvYmouZXhwZXJpbWVudGFsSW1wb3J0TWV0YVJlc29sdmUsXG4gICAgJ2V4cGVyaW1lbnRhbC1sb2FkZXInOiBvYmouZXhwZXJpbWVudGFsTG9hZGVyPy5tYXAoeSA9PiB5KSxcbiAgICAnZXhwZXJpbWVudGFsLXByaW50LXJlcXVpcmVkLXRsYSc6IG9iai5leHBlcmltZW50YWxQcmludFJlcXVpcmVkVGxhLFxuICAgICdleHBlcmltZW50YWwtcmVwbC1hd2FpdCc6IG9iai5leHBlcmltZW50YWxSZXBsQXdhaXQsXG4gICAgJ2V4cGVyaW1lbnRhbC1yZXF1aXJlLW1vZHVsZSc6IG9iai5leHBlcmltZW50YWxSZXF1aXJlTW9kdWxlLFxuICAgICdleHBlcmltZW50YWwtc2hhZG93LXJlYWxtJzogb2JqLmV4cGVyaW1lbnRhbFNoYWRvd1JlYWxtLFxuICAgICdleHBlcmltZW50YWwtc3FsaXRlJzogb2JqLmV4cGVyaW1lbnRhbFNxbGl0ZSxcbiAgICAnZXhwZXJpbWVudGFsLXN0cmVhbS1pdGVyJzogb2JqLmV4cGVyaW1lbnRhbFN0cmVhbUl0ZXIsXG4gICAgJ2V4cGVyaW1lbnRhbC12bS1tb2R1bGVzJzogb2JqLmV4cGVyaW1lbnRhbFZtTW9kdWxlcyxcbiAgICAnZXhwZXJpbWVudGFsLXdlYnNvY2tldCc6IG9iai5leHBlcmltZW50YWxXZWJzb2NrZXQsXG4gICAgJ2V4cGVyaW1lbnRhbC13ZWJzdG9yYWdlJzogb2JqLmV4cGVyaW1lbnRhbFdlYnN0b3JhZ2UsXG4gICAgJ2V4dHJhLWluZm8tb24tZmF0YWwtZXhjZXB0aW9uJzogb2JqLmV4dHJhSW5mb09uRmF0YWxFeGNlcHRpb24sXG4gICAgJ2ZvcmNlLWFzeW5jLWhvb2tzLWNoZWNrcyc6IG9iai5mb3JjZUFzeW5jSG9va3NDaGVja3MsXG4gICAgJ2ZvcmNlLWNvbnRleHQtYXdhcmUnOiBvYmouZm9yY2VDb250ZXh0QXdhcmUsXG4gICAgJ2ZvcmNlLWZpcHMnOiBvYmouZm9yY2VGaXBzLFxuICAgICdmb3JjZS1ub2RlLWFwaS11bmNhdWdodC1leGNlcHRpb25zLXBvbGljeSc6IG9iai5mb3JjZU5vZGVBcGlVbmNhdWdodEV4Y2VwdGlvbnNQb2xpY3ksXG4gICAgJ2Zyb3plbi1pbnRyaW5zaWNzJzogb2JqLmZyb3plbkludHJpbnNpY3MsXG4gICAgJ2dsb2JhbC1zZWFyY2gtcGF0aHMnOiBvYmouZ2xvYmFsU2VhcmNoUGF0aHMsXG4gICAgJ2hlYXAtcHJvZic6IG9iai5oZWFwUHJvZixcbiAgICAnaGVhcC1wcm9mLWRpcic6IG9iai5oZWFwUHJvZkRpcixcbiAgICAnaGVhcC1wcm9mLWludGVydmFsJzogb2JqLmhlYXBQcm9mSW50ZXJ2YWwsXG4gICAgJ2hlYXAtcHJvZi1uYW1lJzogb2JqLmhlYXBQcm9mTmFtZSxcbiAgICAnaGVhcHNuYXBzaG90LW5lYXItaGVhcC1saW1pdCc6IG9iai5oZWFwc25hcHNob3ROZWFySGVhcExpbWl0LFxuICAgICdoZWFwc25hcHNob3Qtc2lnbmFsJzogb2JqLmhlYXBzbmFwc2hvdFNpZ25hbCxcbiAgICAnaWN1LWRhdGEtZGlyJzogb2JqLmljdURhdGFEaXIsXG4gICAgJ2ltcG9ydCc6IG9iai5pbXBvcnQ/Lm1hcCh5ID0+IHkpLFxuICAgICdpbnB1dC10eXBlJzogb2JqLmlucHV0VHlwZSxcbiAgICAnaW5zZWN1cmUtaHR0cC1wYXJzZXInOiBvYmouaW5zZWN1cmVIdHRwUGFyc2VyLFxuICAgICdpbnNwZWN0Jzogb2JqLmluc3BlY3QsXG4gICAgJ2luc3BlY3QtYnJrJzogb2JqLmluc3BlY3RCcmssXG4gICAgJ2luc3BlY3QtcG9ydCc6IG9iai5pbnNwZWN0UG9ydCxcbiAgICAnaW5zcGVjdC1wdWJsaXNoLXVpZCc6IG9iai5pbnNwZWN0UHVibGlzaFVpZCxcbiAgICAnaW5zcGVjdC13YWl0Jzogb2JqLmluc3BlY3RXYWl0LFxuICAgICdsb2NhbHN0b3JhZ2UtZmlsZSc6IG9iai5sb2NhbHN0b3JhZ2VGaWxlLFxuICAgICdtYXgtaHR0cC1oZWFkZXItc2l6ZSc6IG9iai5tYXhIdHRwSGVhZGVyU2l6ZSxcbiAgICAnbWF4LW9sZC1zcGFjZS1zaXplLXBlcmNlbnRhZ2UnOiBvYmoubWF4T2xkU3BhY2VTaXplUGVyY2VudGFnZSxcbiAgICAnbmV0d29yay1mYW1pbHktYXV0b3NlbGVjdGlvbic6IG9iai5uZXR3b3JrRmFtaWx5QXV0b3NlbGVjdGlvbixcbiAgICAnbmV0d29yay1mYW1pbHktYXV0b3NlbGVjdGlvbi1hdHRlbXB0LXRpbWVvdXQnOiBvYmoubmV0d29ya0ZhbWlseUF1dG9zZWxlY3Rpb25BdHRlbXB0VGltZW91dCxcbiAgICAnbm9kZS1zbmFwc2hvdCc6IG9iai5ub2RlU25hcHNob3QsXG4gICAgJ29wZW5zc2wtY29uZmlnJzogb2JqLm9wZW5zc2xDb25maWcsXG4gICAgJ29wZW5zc2wtbGVnYWN5LXByb3ZpZGVyJzogb2JqLm9wZW5zc2xMZWdhY3lQcm92aWRlcixcbiAgICAnb3BlbnNzbC1zaGFyZWQtY29uZmlnJzogb2JqLm9wZW5zc2xTaGFyZWRDb25maWcsXG4gICAgJ3BlbmRpbmctZGVwcmVjYXRpb24nOiBvYmoucGVuZGluZ0RlcHJlY2F0aW9uLFxuICAgICdwZXJtaXNzaW9uJzogb2JqLnBlcm1pc3Npb24sXG4gICAgJ3Blcm1pc3Npb24tYXVkaXQnOiBvYmoucGVybWlzc2lvbkF1ZGl0LFxuICAgICdwcmVzZXJ2ZS1zeW1saW5rcyc6IG9iai5wcmVzZXJ2ZVN5bWxpbmtzLFxuICAgICdwcmVzZXJ2ZS1zeW1saW5rcy1tYWluJzogb2JqLnByZXNlcnZlU3ltbGlua3NNYWluLFxuICAgICdyZWRpcmVjdC13YXJuaW5ncyc6IG9iai5yZWRpcmVjdFdhcm5pbmdzLFxuICAgICdyZXBvcnQtY29tcGFjdCc6IG9iai5yZXBvcnRDb21wYWN0LFxuICAgICdyZXBvcnQtZGlyJzogb2JqLnJlcG9ydERpcixcbiAgICAncmVwb3J0LWV4Y2x1ZGUtZW52Jzogb2JqLnJlcG9ydEV4Y2x1ZGVFbnYsXG4gICAgJ3JlcG9ydC1leGNsdWRlLW5ldHdvcmsnOiBvYmoucmVwb3J0RXhjbHVkZU5ldHdvcmssXG4gICAgJ3JlcG9ydC1maWxlbmFtZSc6IG9iai5yZXBvcnRGaWxlbmFtZSxcbiAgICAncmVwb3J0LW9uLWZhdGFsZXJyb3InOiBvYmoucmVwb3J0T25GYXRhbGVycm9yLFxuICAgICdyZXBvcnQtb24tc2lnbmFsJzogb2JqLnJlcG9ydE9uU2lnbmFsLFxuICAgICdyZXBvcnQtc2lnbmFsJzogb2JqLnJlcG9ydFNpZ25hbCxcbiAgICAncmVwb3J0LXVuY2F1Z2h0LWV4Y2VwdGlvbic6IG9iai5yZXBvcnRVbmNhdWdodEV4Y2VwdGlvbixcbiAgICAncmVxdWlyZSc6IG9iai5yZXF1aXJlPy5tYXAoeSA9PiB5KSxcbiAgICAncmVxdWlyZS1tb2R1bGUnOiBvYmoucmVxdWlyZU1vZHVsZSxcbiAgICAnc2VjdXJlLWhlYXAnOiBvYmouc2VjdXJlSGVhcCxcbiAgICAnc2VjdXJlLWhlYXAtbWluJzogb2JqLnNlY3VyZUhlYXBNaW4sXG4gICAgJ3NuYXBzaG90LWJsb2InOiBvYmouc25hcHNob3RCbG9iLFxuICAgICdzdGFjay10cmFjZS1saW1pdCc6IG9iai5zdGFja1RyYWNlTGltaXQsXG4gICAgJ3N0cmlwLXR5cGVzJzogb2JqLnN0cmlwVHlwZXMsXG4gICAgJ3Rlc3QtY292ZXJhZ2UtYnJhbmNoZXMnOiBvYmoudGVzdENvdmVyYWdlQnJhbmNoZXMsXG4gICAgJ3Rlc3QtY292ZXJhZ2UtZXhjbHVkZSc6IG9iai50ZXN0Q292ZXJhZ2VFeGNsdWRlPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1jb3ZlcmFnZS1mdW5jdGlvbnMnOiBvYmoudGVzdENvdmVyYWdlRnVuY3Rpb25zLFxuICAgICd0ZXN0LWNvdmVyYWdlLWluY2x1ZGUnOiBvYmoudGVzdENvdmVyYWdlSW5jbHVkZT8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3QtY292ZXJhZ2UtbGluZXMnOiBvYmoudGVzdENvdmVyYWdlTGluZXMsXG4gICAgJ3Rlc3QtZ2xvYmFsLXNldHVwJzogb2JqLnRlc3RHbG9iYWxTZXR1cCxcbiAgICAndGVzdC1pc29sYXRpb24nOiBvYmoudGVzdElzb2xhdGlvbixcbiAgICAndGVzdC1uYW1lLXBhdHRlcm4nOiBvYmoudGVzdE5hbWVQYXR0ZXJuPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1vbmx5Jzogb2JqLnRlc3RPbmx5LFxuICAgICd0ZXN0LXJhbmRvbS1zZWVkJzogb2JqLnRlc3RSYW5kb21TZWVkLFxuICAgICd0ZXN0LXJhbmRvbWl6ZSc6IG9iai50ZXN0UmFuZG9taXplLFxuICAgICd0ZXN0LXJlcG9ydGVyJzogb2JqLnRlc3RSZXBvcnRlcj8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3QtcmVwb3J0ZXItZGVzdGluYXRpb24nOiBvYmoudGVzdFJlcG9ydGVyRGVzdGluYXRpb24/Lm1hcCh5ID0+IHkpLFxuICAgICd0ZXN0LXJlcnVuLWZhaWx1cmVzJzogb2JqLnRlc3RSZXJ1bkZhaWx1cmVzLFxuICAgICd0ZXN0LXNoYXJkJzogb2JqLnRlc3RTaGFyZCxcbiAgICAndGVzdC1za2lwLXBhdHRlcm4nOiBvYmoudGVzdFNraXBQYXR0ZXJuPy5tYXAoeSA9PiB5KSxcbiAgICAndGhyb3ctZGVwcmVjYXRpb24nOiBvYmoudGhyb3dEZXByZWNhdGlvbixcbiAgICAndGl0bGUnOiBvYmoudGl0bGUsXG4gICAgJ3Rscy1jaXBoZXItbGlzdCc6IG9iai50bHNDaXBoZXJMaXN0LFxuICAgICd0bHMta2V5bG9nJzogb2JqLnRsc0tleWxvZyxcbiAgICAndGxzLW1heC12MS4yJzogb2JqLnRsc01heFYxMixcbiAgICAndGxzLW1heC12MS4zJzogb2JqLnRsc01heFYxMyxcbiAgICAndGxzLW1pbi12MS4wJzogb2JqLnRsc01pblYxMCxcbiAgICAndGxzLW1pbi12MS4xJzogb2JqLnRsc01pblYxMSxcbiAgICAndGxzLW1pbi12MS4yJzogb2JqLnRsc01pblYxMixcbiAgICAndGxzLW1pbi12MS4zJzogb2JqLnRsc01pblYxMyxcbiAgICAndHJhY2UtZGVwcmVjYXRpb24nOiBvYmoudHJhY2VEZXByZWNhdGlvbixcbiAgICAndHJhY2UtZW52Jzogb2JqLnRyYWNlRW52LFxuICAgICd0cmFjZS1lbnYtanMtc3RhY2snOiBvYmoudHJhY2VFbnZKc1N0YWNrLFxuICAgICd0cmFjZS1lbnYtbmF0aXZlLXN0YWNrJzogb2JqLnRyYWNlRW52TmF0aXZlU3RhY2ssXG4gICAgJ3RyYWNlLWV2ZW50LWNhdGVnb3JpZXMnOiBvYmoudHJhY2VFdmVudENhdGVnb3JpZXMsXG4gICAgJ3RyYWNlLWV2ZW50LWZpbGUtcGF0dGVybic6IG9iai50cmFjZUV2ZW50RmlsZVBhdHRlcm4sXG4gICAgJ3RyYWNlLWV4aXQnOiBvYmoudHJhY2VFeGl0LFxuICAgICd0cmFjZS1wcm9taXNlcyc6IG9iai50cmFjZVByb21pc2VzLFxuICAgICd0cmFjZS1yZXF1aXJlLW1vZHVsZSc6IG9iai50cmFjZVJlcXVpcmVNb2R1bGUsXG4gICAgJ3RyYWNlLXNpZ2ludCc6IG9iai50cmFjZVNpZ2ludCxcbiAgICAndHJhY2Utc3luYy1pbyc6IG9iai50cmFjZVN5bmNJbyxcbiAgICAndHJhY2UtdGxzJzogb2JqLnRyYWNlVGxzLFxuICAgICd0cmFjZS11bmNhdWdodCc6IG9iai50cmFjZVVuY2F1Z2h0LFxuICAgICd0cmFjZS13YXJuaW5ncyc6IG9iai50cmFjZVdhcm5pbmdzLFxuICAgICd0cmFjay1oZWFwLW9iamVjdHMnOiBvYmoudHJhY2tIZWFwT2JqZWN0cyxcbiAgICAndW5oYW5kbGVkLXJlamVjdGlvbnMnOiBvYmoudW5oYW5kbGVkUmVqZWN0aW9ucyxcbiAgICAndXNlLWJ1bmRsZWQtY2EnOiBvYmoudXNlQnVuZGxlZENhLFxuICAgICd1c2UtZW52LXByb3h5Jzogb2JqLnVzZUVudlByb3h5LFxuICAgICd1c2UtbGFyZ2VwYWdlcyc6IG9iai51c2VMYXJnZXBhZ2VzLFxuICAgICd1c2Utb3BlbnNzbC1jYSc6IG9iai51c2VPcGVuc3NsQ2EsXG4gICAgJ3VzZS1zeXN0ZW0tY2EnOiBvYmoudXNlU3lzdGVtQ2EsXG4gICAgJ3Y4LXBvb2wtc2l6ZSc6IG9iai52OFBvb2xTaXplLFxuICAgICd2ZXJpZnktYmFzZS1vYmplY3RzJzogb2JqLnZlcmlmeUJhc2VPYmplY3RzLFxuICAgICd3YXJuaW5ncyc6IG9iai53YXJuaW5ncyxcbiAgICAnd2F0Y2gnOiBvYmoud2F0Y2gsXG4gICAgJ3dhdGNoLWtpbGwtc2lnbmFsJzogb2JqLndhdGNoS2lsbFNpZ25hbCxcbiAgICAnd2F0Y2gtcGF0aCc6IG9iai53YXRjaFBhdGg/Lm1hcCh5ID0+IHkpLFxuICAgICd3YXRjaC1wcmVzZXJ2ZS1vdXRwdXQnOiBvYmoud2F0Y2hQcmVzZXJ2ZU91dHB1dCxcbiAgICAnemVyby1maWxsLWJ1ZmZlcnMnOiBvYmouemVyb0ZpbGxCdWZmZXJzLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uIHtcbiAgLyoqXG4gICAqIGFsbG93IHVzZSBvZiBhZGRvbnMgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI2FsbG93LWFkZG9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dBZGRvbnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhbGxvdyB1c2Ugb2YgY2hpbGQgcHJvY2VzcyB3aGVuIGFueSBwZXJtaXNzaW9ucyBhcmUgc2V0XG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24jYWxsb3ctY2hpbGQtcHJvY2Vzc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDaGlsZFByb2Nlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhbGxvdyB1c2Ugb2YgRkZJIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy1mZmlcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RmZpPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgZmlsZXN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI2FsbG93LWZzLXJlYWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RnNSZWFkPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFsbG93IHBlcm1pc3Npb25zIHRvIHdyaXRlIGluIHRoZSBmaWxlc3lzdGVtXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24jYWxsb3ctZnMtd3JpdGVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RnNXcml0ZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBhbGxvdyB1c2Ugb2YgaW5zcGVjdG9yIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy1pbnNwZWN0b3JcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93SW5zcGVjdG9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWxsb3cgdXNlIG9mIG5ldHdvcmsgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI2FsbG93LW5ldFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dOZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhbGxvdyB1c2Ugb2YgT3BlblNTTCBTVE9SRSBsb2FkZXJzIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy1vcGVuc3NsLXN0b3JlXG4gICAqL1xuICByZWFkb25seSBhbGxvd09wZW5zc2xTdG9yZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHdhc2kgd2hlbiBhbnkgcGVybWlzc2lvbnMgYXJlIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI2FsbG93LXdhc2lcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93V2FzaT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFsbG93IHdvcmtlciB0aHJlYWRzIHdoZW4gYW55IHBlcm1pc3Npb25zIGFyZSBzZXRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbiNhbGxvdy13b3JrZXJcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93V29ya2VyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogZW5hYmxlIHRoZSBwZXJtaXNzaW9uIHN5c3RlbVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uI3Blcm1pc3Npb25cbiAgICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdOb2RlQ29uZmlnU2NoZW1hUGVybWlzc2lvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX05vZGVDb25maWdTY2hlbWFQZXJtaXNzaW9uKG9iajogTm9kZUNvbmZpZ1NjaGVtYVBlcm1pc3Npb24gfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhbGxvdy1hZGRvbnMnOiBvYmouYWxsb3dBZGRvbnMsXG4gICAgJ2FsbG93LWNoaWxkLXByb2Nlc3MnOiBvYmouYWxsb3dDaGlsZFByb2Nlc3MsXG4gICAgJ2FsbG93LWZmaSc6IG9iai5hbGxvd0ZmaSxcbiAgICAnYWxsb3ctZnMtcmVhZCc6IG9iai5hbGxvd0ZzUmVhZD8ubWFwKHkgPT4geSksXG4gICAgJ2FsbG93LWZzLXdyaXRlJzogb2JqLmFsbG93RnNXcml0ZT8ubWFwKHkgPT4geSksXG4gICAgJ2FsbG93LWluc3BlY3Rvcic6IG9iai5hbGxvd0luc3BlY3RvcixcbiAgICAnYWxsb3ctbmV0Jzogb2JqLmFsbG93TmV0LFxuICAgICdhbGxvdy1vcGVuc3NsLXN0b3JlJzogb2JqLmFsbG93T3BlbnNzbFN0b3JlLFxuICAgICdhbGxvdy13YXNpJzogb2JqLmFsbG93V2FzaSxcbiAgICAnYWxsb3ctd29ya2VyJzogb2JqLmFsbG93V29ya2VyLFxuICAgICdwZXJtaXNzaW9uJzogb2JqLnBlcm1pc3Npb24sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIEBzdHlsaXN0aWMvbWF4LWxlbiwgcXVvdGUtcHJvcHMsIEBzdHlsaXN0aWMvcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUNvbmZpZ1NjaGVtYVRlc3Qge1xuICAvKipcbiAgICogZW5hYmxlIGNvZGUgY292ZXJhZ2UgaW4gdGhlIHRlc3QgcnVubmVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjZXhwZXJpbWVudGFsLXRlc3QtY292ZXJhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFRlc3RDb3ZlcmFnZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGVuYWJsZSBtb2R1bGUgbW9ja2luZyBpbiB0aGUgdGVzdCBydW5uZXJcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCNleHBlcmltZW50YWwtdGVzdC1tb2R1bGUtbW9ja3NcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbFRlc3RNb2R1bGVNb2Nrcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGxhdW5jaCB0ZXN0IHJ1bm5lciBvbiBzdGFydHVwXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHNwZWNpZnkgdGVzdCBydW5uZXIgY29uY3VycmVuY3lcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWNvbmN1cnJlbmN5XG4gICAqL1xuICByZWFkb25seSB0ZXN0Q29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHRoZSBicmFuY2ggY292ZXJhZ2UgbWluaW11bSB0aHJlc2hvbGRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWNvdmVyYWdlLWJyYW5jaGVzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VCcmFuY2hlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogZXhjbHVkZSBmaWxlcyBmcm9tIGNvdmVyYWdlIHJlcG9ydCB0aGF0IG1hdGNoIHRoaXMgZ2xvYiBwYXR0ZXJuXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1jb3ZlcmFnZS1leGNsdWRlXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VFeGNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRoZSBmdW5jdGlvbiBjb3ZlcmFnZSBtaW5pbXVtIHRocmVzaG9sZFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtY292ZXJhZ2UtZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VGdW5jdGlvbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIGluY2x1ZGUgZmlsZXMgaW4gY292ZXJhZ2UgcmVwb3J0IHRoYXQgbWF0Y2ggdGhpcyBnbG9iIHBhdHRlcm5cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWNvdmVyYWdlLWluY2x1ZGVcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDb3ZlcmFnZUluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogdGhlIGxpbmUgY292ZXJhZ2UgbWluaW11bSB0aHJlc2hvbGRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWNvdmVyYWdlLWxpbmVzXG4gICAqL1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2VMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogZm9yY2UgdGVzdCBydW5uZXIgdG8gZXhpdCB1cG9uIGNvbXBsZXRpb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LWZvcmNlLWV4aXRcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RGb3JjZUV4aXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGdsb2JhbCBzZXR1cCBmaWxlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1nbG9iYWwtc2V0dXBcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RHbG9iYWxTZXR1cD86IHN0cmluZztcblxuICAvKipcbiAgICogY29uZmlndXJlcyB0aGUgdHlwZSBvZiB0ZXN0IGlzb2xhdGlvbiB1c2VkIGluIHRoZSB0ZXN0IHJ1bm5lclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtaXNvbGF0aW9uXG4gICAqL1xuICByZWFkb25seSB0ZXN0SXNvbGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdHMgd2hvc2UgbmFtZSBtYXRjaGVzIHRoaXMgcmVndWxhciBleHByZXNzaW9uXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1uYW1lLXBhdHRlcm5cbiAgICovXG4gIHJlYWRvbmx5IHRlc3ROYW1lUGF0dGVybj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdHMgd2l0aCAnb25seScgb3B0aW9uIHNldFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3Qtb25seVxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBzZWVkIHVzZWQgdG8gcmFuZG9taXplIHRlc3QgZXhlY3V0aW9uIG9yZGVyXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1yYW5kb20tc2VlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJhbmRvbVNlZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0cyBpbiBhIHJhbmRvbSBvcmRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtcmFuZG9taXplXG4gICAqL1xuICByZWFkb25seSB0ZXN0UmFuZG9taXplPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogcmVwb3J0IHRlc3Qgb3V0cHV0IHVzaW5nIHRoZSBnaXZlbiByZXBvcnRlclxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtcmVwb3J0ZXJcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSZXBvcnRlcj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiByZXBvcnQgZ2l2ZW4gcmVwb3J0ZXIgdG8gdGhlIGdpdmVuIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1yZXBvcnRlci1kZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcG9ydGVyRGVzdGluYXRpb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogc3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSByZXJ1biBzdGF0ZSBmaWxlXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1yZXJ1bi1mYWlsdXJlc1xuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJlcnVuRmFpbHVyZXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJ1biB0ZXN0IGF0IHNwZWNpZmljIHNoYXJkXG4gICAqXG4gICAqIEBzY2hlbWEgTm9kZUNvbmZpZ1NjaGVtYVRlc3QjdGVzdC1zaGFyZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFNoYXJkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBydW4gdGVzdHMgd2hvc2UgbmFtZSBkbyBub3QgbWF0Y2ggdGhpcyByZWd1bGFyIGV4cHJlc3Npb25cbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LXNraXAtcGF0dGVyblxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFNraXBQYXR0ZXJuPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHNwZWNpZnkgdGVzdCBydW5uZXIgdGltZW91dFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFUZXN0I3Rlc3QtdGltZW91dFxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHJlZ2VuZXJhdGUgdGVzdCBzbmFwc2hvdHNcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hVGVzdCN0ZXN0LXVwZGF0ZS1zbmFwc2hvdHNcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RVcGRhdGVTbmFwc2hvdHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdOb2RlQ29uZmlnU2NoZW1hVGVzdCcgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBAc3R5bGlzdGljL21heC1sZW4sIHF1b3RlLXByb3BzLCBAc3R5bGlzdGljL3F1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX05vZGVDb25maWdTY2hlbWFUZXN0KG9iajogTm9kZUNvbmZpZ1NjaGVtYVRlc3QgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdleHBlcmltZW50YWwtdGVzdC1jb3ZlcmFnZSc6IG9iai5leHBlcmltZW50YWxUZXN0Q292ZXJhZ2UsXG4gICAgJ2V4cGVyaW1lbnRhbC10ZXN0LW1vZHVsZS1tb2Nrcyc6IG9iai5leHBlcmltZW50YWxUZXN0TW9kdWxlTW9ja3MsXG4gICAgJ3Rlc3QnOiBvYmoudGVzdCxcbiAgICAndGVzdC1jb25jdXJyZW5jeSc6IG9iai50ZXN0Q29uY3VycmVuY3ksXG4gICAgJ3Rlc3QtY292ZXJhZ2UtYnJhbmNoZXMnOiBvYmoudGVzdENvdmVyYWdlQnJhbmNoZXMsXG4gICAgJ3Rlc3QtY292ZXJhZ2UtZXhjbHVkZSc6IG9iai50ZXN0Q292ZXJhZ2VFeGNsdWRlPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1jb3ZlcmFnZS1mdW5jdGlvbnMnOiBvYmoudGVzdENvdmVyYWdlRnVuY3Rpb25zLFxuICAgICd0ZXN0LWNvdmVyYWdlLWluY2x1ZGUnOiBvYmoudGVzdENvdmVyYWdlSW5jbHVkZT8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3QtY292ZXJhZ2UtbGluZXMnOiBvYmoudGVzdENvdmVyYWdlTGluZXMsXG4gICAgJ3Rlc3QtZm9yY2UtZXhpdCc6IG9iai50ZXN0Rm9yY2VFeGl0LFxuICAgICd0ZXN0LWdsb2JhbC1zZXR1cCc6IG9iai50ZXN0R2xvYmFsU2V0dXAsXG4gICAgJ3Rlc3QtaXNvbGF0aW9uJzogb2JqLnRlc3RJc29sYXRpb24sXG4gICAgJ3Rlc3QtbmFtZS1wYXR0ZXJuJzogb2JqLnRlc3ROYW1lUGF0dGVybj8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3Qtb25seSc6IG9iai50ZXN0T25seSxcbiAgICAndGVzdC1yYW5kb20tc2VlZCc6IG9iai50ZXN0UmFuZG9tU2VlZCxcbiAgICAndGVzdC1yYW5kb21pemUnOiBvYmoudGVzdFJhbmRvbWl6ZSxcbiAgICAndGVzdC1yZXBvcnRlcic6IG9iai50ZXN0UmVwb3J0ZXI/Lm1hcCh5ID0+IHkpLFxuICAgICd0ZXN0LXJlcG9ydGVyLWRlc3RpbmF0aW9uJzogb2JqLnRlc3RSZXBvcnRlckRlc3RpbmF0aW9uPy5tYXAoeSA9PiB5KSxcbiAgICAndGVzdC1yZXJ1bi1mYWlsdXJlcyc6IG9iai50ZXN0UmVydW5GYWlsdXJlcyxcbiAgICAndGVzdC1zaGFyZCc6IG9iai50ZXN0U2hhcmQsXG4gICAgJ3Rlc3Qtc2tpcC1wYXR0ZXJuJzogb2JqLnRlc3RTa2lwUGF0dGVybj8ubWFwKHkgPT4geSksXG4gICAgJ3Rlc3QtdGltZW91dCc6IG9iai50ZXN0VGltZW91dCxcbiAgICAndGVzdC11cGRhdGUtc25hcHNob3RzJzogb2JqLnRlc3RVcGRhdGVTbmFwc2hvdHMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIEBzdHlsaXN0aWMvbWF4LWxlbiwgcXVvdGUtcHJvcHMsIEBzdHlsaXN0aWMvcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFXYXRjaFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDb25maWdTY2hlbWFXYXRjaCB7XG4gIC8qKlxuICAgKiBydW4gaW4gd2F0Y2ggbW9kZVxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFXYXRjaCN3YXRjaFxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBraWxsIHNpZ25hbCB0byBzZW5kIHRvIHRoZSBwcm9jZXNzIG9uIHdhdGNoIG1vZGUgcmVzdGFydHMoZGVmYXVsdDogU0lHVEVSTSlcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hV2F0Y2gjd2F0Y2gta2lsbC1zaWduYWxcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoS2lsbFNpZ25hbD86IHN0cmluZztcblxuICAvKipcbiAgICogcGF0aCB0byB3YXRjaFxuICAgKlxuICAgKiBAc2NoZW1hIE5vZGVDb25maWdTY2hlbWFXYXRjaCN3YXRjaC1wYXRoXG4gICAqL1xuICByZWFkb25seSB3YXRjaFBhdGg/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogcHJlc2VydmUgb3V0cHV0cyBvbiB3YXRjaCBtb2RlIHJlc3RhcnRcbiAgICpcbiAgICogQHNjaGVtYSBOb2RlQ29uZmlnU2NoZW1hV2F0Y2gjd2F0Y2gtcHJlc2VydmUtb3V0cHV0XG4gICAqL1xuICByZWFkb25seSB3YXRjaFByZXNlcnZlT3V0cHV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnTm9kZUNvbmZpZ1NjaGVtYVdhdGNoJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICogQGludGVybmFsXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIEBzdHlsaXN0aWMvbWF4LWxlbiwgcXVvdGUtcHJvcHMsIEBzdHlsaXN0aWMvcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYVdhdGNoKG9iajogTm9kZUNvbmZpZ1NjaGVtYVdhdGNoIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnd2F0Y2gnOiBvYmoud2F0Y2gsXG4gICAgJ3dhdGNoLWtpbGwtc2lnbmFsJzogb2JqLndhdGNoS2lsbFNpZ25hbCxcbiAgICAnd2F0Y2gtcGF0aCc6IG9iai53YXRjaFBhdGg/Lm1hcCh5ID0+IHkpLFxuICAgICd3YXRjaC1wcmVzZXJ2ZS1vdXRwdXQnOiBvYmoud2F0Y2hQcmVzZXJ2ZU91dHB1dCxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgQHN0eWxpc3RpYy9tYXgtbGVuLCBxdW90ZS1wcm9wcywgQHN0eWxpc3RpYy9xdW90ZS1wcm9wcyAqL1xuIl19
|
|
@@ -77,7 +77,7 @@ var CodeArtifactAuthProvider;
|
|
|
77
77
|
* Represents the npm `package.json` file.
|
|
78
78
|
*/
|
|
79
79
|
class NodePackage extends component_1.Component {
|
|
80
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodePackage", version: "0.103.
|
|
80
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodePackage", version: "0.103.7" };
|
|
81
81
|
/**
|
|
82
82
|
* Returns the `NodePackage` instance associated with a project or `undefined` if
|
|
83
83
|
* there is no NodePackage.
|
|
@@ -81,7 +81,7 @@ var AutoRelease;
|
|
|
81
81
|
* @pjid node
|
|
82
82
|
*/
|
|
83
83
|
class NodeProject extends github_1.GitHubProject {
|
|
84
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodeProject", version: "0.103.
|
|
84
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodeProject", version: "0.103.7" };
|
|
85
85
|
/**
|
|
86
86
|
* API for managing the node package.
|
|
87
87
|
*/
|
|
@@ -8,7 +8,7 @@ const ini_1 = require("../ini");
|
|
|
8
8
|
* File representing the local NPM config in .npmrc
|
|
9
9
|
*/
|
|
10
10
|
class NpmConfig extends component_1.Component {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NpmConfig", version: "0.103.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NpmConfig", version: "0.103.7" };
|
|
12
12
|
/**
|
|
13
13
|
* The config object. This object can be mutated until the project is
|
|
14
14
|
* synthesized.
|
|
@@ -421,7 +421,7 @@ var PnpmWorkspaceYamlSchemaReporter;
|
|
|
421
421
|
*/
|
|
422
422
|
class PnpmWorkspaceYamlSchemaLinkWorkspacePackages {
|
|
423
423
|
value;
|
|
424
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.PnpmWorkspaceYamlSchemaLinkWorkspacePackages", version: "0.103.
|
|
424
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.PnpmWorkspaceYamlSchemaLinkWorkspacePackages", version: "0.103.7" };
|
|
425
425
|
static fromBoolean(value) {
|
|
426
426
|
return new PnpmWorkspaceYamlSchemaLinkWorkspacePackages(value);
|
|
427
427
|
}
|
|
@@ -440,7 +440,7 @@ exports.PnpmWorkspaceYamlSchemaLinkWorkspacePackages = PnpmWorkspaceYamlSchemaLi
|
|
|
440
440
|
*/
|
|
441
441
|
class PnpmWorkspaceYamlSchemaSaveWorkspaceProtocol {
|
|
442
442
|
value;
|
|
443
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.PnpmWorkspaceYamlSchemaSaveWorkspaceProtocol", version: "0.103.
|
|
443
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.PnpmWorkspaceYamlSchemaSaveWorkspaceProtocol", version: "0.103.7" };
|
|
444
444
|
static fromBoolean(value) {
|
|
445
445
|
return new PnpmWorkspaceYamlSchemaSaveWorkspaceProtocol(value);
|
|
446
446
|
}
|
|
@@ -11,7 +11,7 @@ const pnpm_workspace_config_1 = require("./pnpm-workspace-config");
|
|
|
11
11
|
* @see https://pnpm.io/pnpm-workspace_yaml
|
|
12
12
|
*/
|
|
13
13
|
class PnpmWorkspaceYaml extends component_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.PnpmWorkspaceYaml", version: "0.103.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.PnpmWorkspaceYaml", version: "0.103.7" };
|
|
15
15
|
/**
|
|
16
16
|
* Returns the `PnpmWorkspaceYaml` instance associated with a project or
|
|
17
17
|
* `undefined` if there is none.
|
|
@@ -113,7 +113,7 @@ var TrailingComma;
|
|
|
113
113
|
* Represents prettier configuration.
|
|
114
114
|
*/
|
|
115
115
|
class Prettier extends component_1.Component {
|
|
116
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Prettier", version: "0.103.
|
|
116
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Prettier", version: "0.103.7" };
|
|
117
117
|
static of(project) {
|
|
118
118
|
const isPrettier = (c) => c instanceof Prettier;
|
|
119
119
|
return project.components.find(isPrettier);
|
|
@@ -16,7 +16,7 @@ const biome_1 = require("./biome/biome");
|
|
|
16
16
|
* and has no expectations around the project's main language.
|
|
17
17
|
*/
|
|
18
18
|
class Projenrc extends projenrc_1.ProjenrcFile {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Projenrc", version: "0.103.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Projenrc", version: "0.103.7" };
|
|
20
20
|
filePath;
|
|
21
21
|
constructor(project, options = {}) {
|
|
22
22
|
super(project);
|
|
@@ -170,7 +170,7 @@ var TypeScriptJsxMode;
|
|
|
170
170
|
* Extending from more than one base config file requires TypeScript 5.0+.
|
|
171
171
|
*/
|
|
172
172
|
class TypescriptConfigExtends {
|
|
173
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.TypescriptConfigExtends", version: "0.103.
|
|
173
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.TypescriptConfigExtends", version: "0.103.7" };
|
|
174
174
|
/**
|
|
175
175
|
* Factory for creation from array of file paths.
|
|
176
176
|
*
|
|
@@ -204,7 +204,7 @@ class TypescriptConfigExtends {
|
|
|
204
204
|
}
|
|
205
205
|
exports.TypescriptConfigExtends = TypescriptConfigExtends;
|
|
206
206
|
class TypescriptConfig extends component_1.Component {
|
|
207
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.TypescriptConfig", version: "0.103.
|
|
207
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.TypescriptConfig", version: "0.103.7" };
|
|
208
208
|
_extends;
|
|
209
209
|
compilerOptions;
|
|
210
210
|
includeSet;
|
|
@@ -19,7 +19,7 @@ const PATCH_CREATED_OUTPUT = "patch_created";
|
|
|
19
19
|
* Upgrade node project dependencies.
|
|
20
20
|
*/
|
|
21
21
|
class UpgradeDependencies extends component_1.Component {
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.UpgradeDependencies", version: "0.103.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.UpgradeDependencies", version: "0.103.7" };
|
|
23
23
|
/**
|
|
24
24
|
* The workflows that execute the upgrades. One workflow per branch.
|
|
25
25
|
*/
|
|
@@ -406,7 +406,7 @@ exports.UpgradeDependencies = UpgradeDependencies;
|
|
|
406
406
|
*/
|
|
407
407
|
class UpgradeDependenciesSchedule {
|
|
408
408
|
cron;
|
|
409
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.UpgradeDependenciesSchedule", version: "0.103.
|
|
409
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.UpgradeDependenciesSchedule", version: "0.103.7" };
|
|
410
410
|
/**
|
|
411
411
|
* Disables automatic upgrades.
|
|
412
412
|
*/
|
package/lib/javascript/yarnrc.js
CHANGED
|
@@ -113,7 +113,7 @@ var YarnTaskPoolMode;
|
|
|
113
113
|
YarnTaskPoolMode["WORKERS"] = "workers";
|
|
114
114
|
})(YarnTaskPoolMode || (exports.YarnTaskPoolMode = YarnTaskPoolMode = {}));
|
|
115
115
|
class Yarnrc extends component_1.Component {
|
|
116
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Yarnrc", version: "0.103.
|
|
116
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Yarnrc", version: "0.103.7" };
|
|
117
117
|
constructor(project, options = {}) {
|
|
118
118
|
super(project);
|
|
119
119
|
this.updateGitAttributes();
|
package/lib/json-patch.js
CHANGED
|
@@ -34,7 +34,7 @@ const TEST_FAILURE_BEHAVIOR_SYMBOL = Symbol.for("testFailureBehavior");
|
|
|
34
34
|
*/
|
|
35
35
|
class JsonPatch {
|
|
36
36
|
operation;
|
|
37
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.JsonPatch", version: "0.103.
|
|
37
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.JsonPatch", version: "0.103.7" };
|
|
38
38
|
/**
|
|
39
39
|
* Applies a set of JSON-Patch (RFC-6902) operations to `document` and returns the result.
|
|
40
40
|
* @param document The document to patch
|
package/lib/json.js
CHANGED
|
@@ -7,7 +7,7 @@ const object_file_1 = require("./object-file");
|
|
|
7
7
|
* Represents a JSON file.
|
|
8
8
|
*/
|
|
9
9
|
class JsonFile extends object_file_1.ObjectFile {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.JsonFile", version: "0.103.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.JsonFile", version: "0.103.7" };
|
|
11
11
|
newline;
|
|
12
12
|
allowComments = true;
|
|
13
13
|
/**
|
package/lib/license.js
CHANGED
|
@@ -38,7 +38,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
38
38
|
const fs = __importStar(require("fs"));
|
|
39
39
|
const file_1 = require("./file");
|
|
40
40
|
class License extends file_1.FileBase {
|
|
41
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.License", version: "0.103.
|
|
41
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.License", version: "0.103.7" };
|
|
42
42
|
text;
|
|
43
43
|
constructor(project, options) {
|
|
44
44
|
super(project, "LICENSE", {
|
package/lib/logger.js
CHANGED
|
@@ -15,7 +15,7 @@ const constructs_1 = require("./util/constructs");
|
|
|
15
15
|
* Project-level logging utilities.
|
|
16
16
|
*/
|
|
17
17
|
class Logger extends component_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Logger", version: "0.103.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Logger", version: "0.103.7" };
|
|
19
19
|
level;
|
|
20
20
|
usePrefix;
|
|
21
21
|
constructor(scope, options = {}) {
|
package/lib/makefile.js
CHANGED
|
@@ -7,7 +7,7 @@ const file_1 = require("./file");
|
|
|
7
7
|
* Minimal Makefile.
|
|
8
8
|
*/
|
|
9
9
|
class Makefile extends file_1.FileBase {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Makefile", version: "0.103.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Makefile", version: "0.103.7" };
|
|
11
11
|
/**
|
|
12
12
|
* List of rule definitions.
|
|
13
13
|
*/
|
package/lib/object-file.js
CHANGED
|
@@ -9,7 +9,7 @@ const util_1 = require("./util");
|
|
|
9
9
|
* Represents an Object file.
|
|
10
10
|
*/
|
|
11
11
|
class ObjectFile extends file_1.FileBase {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ObjectFile", version: "0.103.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ObjectFile", version: "0.103.7" };
|
|
13
13
|
/**
|
|
14
14
|
* The output object. This object can be mutated until the project is
|
|
15
15
|
* synthesized.
|