projen 0.103.3 → 0.103.5
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 +11700 -6065
- 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/index.d.ts +2 -0
- package/lib/index.js +4 -2
- 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/index.d.ts +2 -0
- package/lib/javascript/index.js +3 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-config-file.d.ts +39 -0
- package/lib/javascript/node-config-file.js +44 -0
- package/lib/javascript/node-config.d.ts +1150 -0
- package/lib/javascript/node-config.js +266 -0
- 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.d.ts +50 -0
- package/lib/properties-file.js +77 -0
- 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 +6 -2
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.js +1 -1
- package/lib/sonarqube/index.d.ts +4 -0
- package/lib/sonarqube/index.js +21 -0
- package/lib/sonarqube/javascript.d.ts +35 -0
- package/lib/sonarqube/javascript.js +57 -0
- package/lib/sonarqube/rust.d.ts +37 -0
- package/lib/sonarqube/rust.js +58 -0
- package/lib/sonarqube/sonarqube.d.ts +439 -0
- package/lib/sonarqube/sonarqube.js +184 -0
- package/lib/sonarqube/typescript.d.ts +36 -0
- package/lib/sonarqube/typescript.js +61 -0
- 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.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +5 -5
- package/lib/util.d.ts +9 -0
- package/lib/util.js +39 -1
- 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/node_modules/properties-file/LICENSE +21 -0
- package/node_modules/properties-file/README.md +253 -0
- package/node_modules/properties-file/dist/cjs/bundler/bun.d.ts +10 -0
- package/node_modules/properties-file/dist/cjs/bundler/bun.js +1 -0
- package/node_modules/properties-file/dist/cjs/bundler/esbuild.d.ts +11 -0
- package/node_modules/properties-file/dist/cjs/bundler/esbuild.js +1 -0
- package/node_modules/properties-file/dist/cjs/bundler/rollup.d.ts +11 -0
- package/node_modules/properties-file/dist/cjs/bundler/rollup.js +1 -0
- package/node_modules/properties-file/dist/cjs/bundler/webpack.d.ts +12 -0
- package/node_modules/properties-file/dist/cjs/bundler/webpack.js +1 -0
- package/node_modules/properties-file/dist/cjs/characters.d.ts +32 -0
- package/node_modules/properties-file/dist/cjs/characters.js +1 -0
- package/node_modules/properties-file/dist/cjs/editor/index.d.ts +181 -0
- package/node_modules/properties-file/dist/cjs/editor/index.js +1 -0
- package/node_modules/properties-file/dist/cjs/escape/index.d.ts +18 -0
- package/node_modules/properties-file/dist/cjs/escape/index.js +1 -0
- package/node_modules/properties-file/dist/cjs/index.d.ts +25 -0
- package/node_modules/properties-file/dist/cjs/index.js +1 -0
- package/node_modules/properties-file/dist/cjs/package.json +1 -0
- package/node_modules/properties-file/dist/cjs/parser/index.d.ts +3 -0
- package/node_modules/properties-file/dist/cjs/parser/index.js +1 -0
- package/node_modules/properties-file/dist/cjs/parser/nodes.d.ts +154 -0
- package/node_modules/properties-file/dist/cjs/parser/nodes.js +1 -0
- package/node_modules/properties-file/dist/cjs/parser/normalize.d.ts +12 -0
- package/node_modules/properties-file/dist/cjs/parser/normalize.js +1 -0
- package/node_modules/properties-file/dist/cjs/parser/parse.d.ts +23 -0
- package/node_modules/properties-file/dist/cjs/parser/parse.js +1 -0
- package/node_modules/properties-file/dist/cjs/parser/properties.d.ts +93 -0
- package/node_modules/properties-file/dist/cjs/parser/properties.js +1 -0
- package/node_modules/properties-file/dist/cjs/properties-file.d.ts +8 -0
- package/node_modules/properties-file/dist/cjs/unescape/index.d.ts +14 -0
- package/node_modules/properties-file/dist/cjs/unescape/index.js +1 -0
- package/node_modules/properties-file/dist/esm/bundler/bun.d.ts +10 -0
- package/node_modules/properties-file/dist/esm/bundler/bun.js +1 -0
- package/node_modules/properties-file/dist/esm/bundler/esbuild.d.ts +11 -0
- package/node_modules/properties-file/dist/esm/bundler/esbuild.js +1 -0
- package/node_modules/properties-file/dist/esm/bundler/rollup.d.ts +11 -0
- package/node_modules/properties-file/dist/esm/bundler/rollup.js +1 -0
- package/node_modules/properties-file/dist/esm/bundler/webpack.d.ts +12 -0
- package/node_modules/properties-file/dist/esm/bundler/webpack.js +1 -0
- package/node_modules/properties-file/dist/esm/characters.d.ts +32 -0
- package/node_modules/properties-file/dist/esm/characters.js +1 -0
- package/node_modules/properties-file/dist/esm/editor/index.d.ts +181 -0
- package/node_modules/properties-file/dist/esm/editor/index.js +1 -0
- package/node_modules/properties-file/dist/esm/escape/index.d.ts +18 -0
- package/node_modules/properties-file/dist/esm/escape/index.js +1 -0
- package/node_modules/properties-file/dist/esm/index.d.ts +25 -0
- package/node_modules/properties-file/dist/esm/index.js +1 -0
- package/node_modules/properties-file/dist/esm/parser/index.d.ts +3 -0
- package/node_modules/properties-file/dist/esm/parser/index.js +1 -0
- package/node_modules/properties-file/dist/esm/parser/nodes.d.ts +154 -0
- package/node_modules/properties-file/dist/esm/parser/nodes.js +1 -0
- package/node_modules/properties-file/dist/esm/parser/normalize.d.ts +12 -0
- package/node_modules/properties-file/dist/esm/parser/normalize.js +1 -0
- package/node_modules/properties-file/dist/esm/parser/parse.d.ts +23 -0
- package/node_modules/properties-file/dist/esm/parser/parse.js +1 -0
- package/node_modules/properties-file/dist/esm/parser/properties.d.ts +93 -0
- package/node_modules/properties-file/dist/esm/parser/properties.js +1 -0
- package/node_modules/properties-file/dist/esm/properties-file.d.ts +8 -0
- package/node_modules/properties-file/dist/esm/unescape/index.d.ts +14 -0
- package/node_modules/properties-file/dist/esm/unescape/index.js +1 -0
- package/node_modules/properties-file/package.json +190 -0
- package/package.json +6 -2
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toJson_NodeConfigSchema = toJson_NodeConfigSchema;
|
|
4
|
+
exports.toJson_NodeConfigSchemaNodeOptions = toJson_NodeConfigSchemaNodeOptions;
|
|
5
|
+
exports.toJson_NodeConfigSchemaPermission = toJson_NodeConfigSchemaPermission;
|
|
6
|
+
exports.toJson_NodeConfigSchemaTest = toJson_NodeConfigSchemaTest;
|
|
7
|
+
exports.toJson_NodeConfigSchemaWatch = toJson_NodeConfigSchemaWatch;
|
|
8
|
+
/**
|
|
9
|
+
* Converts an object of type 'NodeConfigSchema' to JSON representation.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
|
|
13
|
+
function toJson_NodeConfigSchema(obj) {
|
|
14
|
+
if (obj === undefined) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const result = {
|
|
18
|
+
'$schema': obj.schema,
|
|
19
|
+
'nodeOptions': toJson_NodeConfigSchemaNodeOptions(obj.nodeOptions),
|
|
20
|
+
'permission': toJson_NodeConfigSchemaPermission(obj.permission),
|
|
21
|
+
'test': toJson_NodeConfigSchemaTest(obj.test),
|
|
22
|
+
'watch': toJson_NodeConfigSchemaWatch(obj.watch),
|
|
23
|
+
};
|
|
24
|
+
// filter undefined values
|
|
25
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Converts an object of type 'NodeConfigSchemaNodeOptions' to JSON representation.
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
/* eslint-disable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
|
|
32
|
+
function toJson_NodeConfigSchemaNodeOptions(obj) {
|
|
33
|
+
if (obj === undefined) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const result = {
|
|
37
|
+
'addons': obj.addons,
|
|
38
|
+
'allow-addons': obj.allowAddons,
|
|
39
|
+
'allow-child-process': obj.allowChildProcess,
|
|
40
|
+
'allow-fs-read': obj.allowFsRead?.map(y => y),
|
|
41
|
+
'allow-fs-write': obj.allowFsWrite?.map(y => y),
|
|
42
|
+
'allow-inspector': obj.allowInspector,
|
|
43
|
+
'allow-wasi': obj.allowWasi,
|
|
44
|
+
'allow-worker': obj.allowWorker,
|
|
45
|
+
'async-context-frame': obj.asyncContextFrame,
|
|
46
|
+
'conditions': obj.conditions?.map(y => y),
|
|
47
|
+
'cpu-prof': obj.cpuProf,
|
|
48
|
+
'cpu-prof-dir': obj.cpuProfDir,
|
|
49
|
+
'cpu-prof-interval': obj.cpuProfInterval,
|
|
50
|
+
'cpu-prof-name': obj.cpuProfName,
|
|
51
|
+
'debug-arraybuffer-allocations': obj.debugArraybufferAllocations,
|
|
52
|
+
'deprecation': obj.deprecation,
|
|
53
|
+
'diagnostic-dir': obj.diagnosticDir,
|
|
54
|
+
'disable-proto': obj.disableProto,
|
|
55
|
+
'disable-sigusr1': obj.disableSigusr1,
|
|
56
|
+
'disable-warning': obj.disableWarning?.map(y => y),
|
|
57
|
+
'disable-wasm-trap-handler': obj.disableWasmTrapHandler,
|
|
58
|
+
'dns-result-order': obj.dnsResultOrder,
|
|
59
|
+
'enable-fips': obj.enableFips,
|
|
60
|
+
'enable-source-maps': obj.enableSourceMaps,
|
|
61
|
+
'entry-url': obj.entryUrl,
|
|
62
|
+
'experimental-addon-modules': obj.experimentalAddonModules,
|
|
63
|
+
'experimental-detect-module': obj.experimentalDetectModule,
|
|
64
|
+
'experimental-eventsource': obj.experimentalEventsource,
|
|
65
|
+
'experimental-global-navigator': obj.experimentalGlobalNavigator,
|
|
66
|
+
'experimental-import-meta-resolve': obj.experimentalImportMetaResolve,
|
|
67
|
+
'experimental-loader': obj.experimentalLoader?.map(y => y),
|
|
68
|
+
'experimental-print-required-tla': obj.experimentalPrintRequiredTla,
|
|
69
|
+
'experimental-repl-await': obj.experimentalReplAwait,
|
|
70
|
+
'experimental-require-module': obj.experimentalRequireModule,
|
|
71
|
+
'experimental-shadow-realm': obj.experimentalShadowRealm,
|
|
72
|
+
'experimental-sqlite': obj.experimentalSqlite,
|
|
73
|
+
'experimental-transform-types': obj.experimentalTransformTypes,
|
|
74
|
+
'experimental-vm-modules': obj.experimentalVmModules,
|
|
75
|
+
'experimental-websocket': obj.experimentalWebsocket,
|
|
76
|
+
'experimental-webstorage': obj.experimentalWebstorage,
|
|
77
|
+
'extra-info-on-fatal-exception': obj.extraInfoOnFatalException,
|
|
78
|
+
'force-async-hooks-checks': obj.forceAsyncHooksChecks,
|
|
79
|
+
'force-context-aware': obj.forceContextAware,
|
|
80
|
+
'force-fips': obj.forceFips,
|
|
81
|
+
'force-node-api-uncaught-exceptions-policy': obj.forceNodeApiUncaughtExceptionsPolicy,
|
|
82
|
+
'frozen-intrinsics': obj.frozenIntrinsics,
|
|
83
|
+
'global-search-paths': obj.globalSearchPaths,
|
|
84
|
+
'heap-prof': obj.heapProf,
|
|
85
|
+
'heap-prof-dir': obj.heapProfDir,
|
|
86
|
+
'heap-prof-interval': obj.heapProfInterval,
|
|
87
|
+
'heap-prof-name': obj.heapProfName,
|
|
88
|
+
'heapsnapshot-near-heap-limit': obj.heapsnapshotNearHeapLimit,
|
|
89
|
+
'heapsnapshot-signal': obj.heapsnapshotSignal,
|
|
90
|
+
'icu-data-dir': obj.icuDataDir,
|
|
91
|
+
'import': obj.import?.map(y => y),
|
|
92
|
+
'input-type': obj.inputType,
|
|
93
|
+
'insecure-http-parser': obj.insecureHttpParser,
|
|
94
|
+
'inspect': obj.inspect,
|
|
95
|
+
'inspect-brk': obj.inspectBrk,
|
|
96
|
+
'inspect-port': obj.inspectPort,
|
|
97
|
+
'inspect-publish-uid': obj.inspectPublishUid,
|
|
98
|
+
'inspect-wait': obj.inspectWait,
|
|
99
|
+
'localstorage-file': obj.localstorageFile,
|
|
100
|
+
'max-http-header-size': obj.maxHttpHeaderSize,
|
|
101
|
+
'max-old-space-size-percentage': obj.maxOldSpaceSizePercentage,
|
|
102
|
+
'network-family-autoselection': obj.networkFamilyAutoselection,
|
|
103
|
+
'network-family-autoselection-attempt-timeout': obj.networkFamilyAutoselectionAttemptTimeout,
|
|
104
|
+
'node-snapshot': obj.nodeSnapshot,
|
|
105
|
+
'openssl-config': obj.opensslConfig,
|
|
106
|
+
'openssl-legacy-provider': obj.opensslLegacyProvider,
|
|
107
|
+
'openssl-shared-config': obj.opensslSharedConfig,
|
|
108
|
+
'pending-deprecation': obj.pendingDeprecation,
|
|
109
|
+
'permission': obj.permission,
|
|
110
|
+
'preserve-symlinks': obj.preserveSymlinks,
|
|
111
|
+
'preserve-symlinks-main': obj.preserveSymlinksMain,
|
|
112
|
+
'redirect-warnings': obj.redirectWarnings,
|
|
113
|
+
'report-compact': obj.reportCompact,
|
|
114
|
+
'report-dir': obj.reportDir,
|
|
115
|
+
'report-exclude-env': obj.reportExcludeEnv,
|
|
116
|
+
'report-exclude-network': obj.reportExcludeNetwork,
|
|
117
|
+
'report-filename': obj.reportFilename,
|
|
118
|
+
'report-on-fatalerror': obj.reportOnFatalerror,
|
|
119
|
+
'report-on-signal': obj.reportOnSignal,
|
|
120
|
+
'report-signal': obj.reportSignal,
|
|
121
|
+
'report-uncaught-exception': obj.reportUncaughtException,
|
|
122
|
+
'require': obj.require?.map(y => y),
|
|
123
|
+
'require-module': obj.requireModule,
|
|
124
|
+
'secure-heap': obj.secureHeap,
|
|
125
|
+
'secure-heap-min': obj.secureHeapMin,
|
|
126
|
+
'snapshot-blob': obj.snapshotBlob,
|
|
127
|
+
'stack-trace-limit': obj.stackTraceLimit,
|
|
128
|
+
'strip-types': obj.stripTypes,
|
|
129
|
+
'test-coverage-branches': obj.testCoverageBranches,
|
|
130
|
+
'test-coverage-exclude': obj.testCoverageExclude?.map(y => y),
|
|
131
|
+
'test-coverage-functions': obj.testCoverageFunctions,
|
|
132
|
+
'test-coverage-include': obj.testCoverageInclude?.map(y => y),
|
|
133
|
+
'test-coverage-lines': obj.testCoverageLines,
|
|
134
|
+
'test-global-setup': obj.testGlobalSetup,
|
|
135
|
+
'test-isolation': obj.testIsolation,
|
|
136
|
+
'test-name-pattern': obj.testNamePattern?.map(y => y),
|
|
137
|
+
'test-only': obj.testOnly,
|
|
138
|
+
'test-random-seed': obj.testRandomSeed,
|
|
139
|
+
'test-randomize': obj.testRandomize,
|
|
140
|
+
'test-reporter': obj.testReporter?.map(y => y),
|
|
141
|
+
'test-reporter-destination': obj.testReporterDestination?.map(y => y),
|
|
142
|
+
'test-rerun-failures': obj.testRerunFailures,
|
|
143
|
+
'test-shard': obj.testShard,
|
|
144
|
+
'test-skip-pattern': obj.testSkipPattern?.map(y => y),
|
|
145
|
+
'throw-deprecation': obj.throwDeprecation,
|
|
146
|
+
'title': obj.title,
|
|
147
|
+
'tls-cipher-list': obj.tlsCipherList,
|
|
148
|
+
'tls-keylog': obj.tlsKeylog,
|
|
149
|
+
'tls-max-v1.2': obj.tlsMaxV12,
|
|
150
|
+
'tls-max-v1.3': obj.tlsMaxV13,
|
|
151
|
+
'tls-min-v1.0': obj.tlsMinV10,
|
|
152
|
+
'tls-min-v1.1': obj.tlsMinV11,
|
|
153
|
+
'tls-min-v1.2': obj.tlsMinV12,
|
|
154
|
+
'tls-min-v1.3': obj.tlsMinV13,
|
|
155
|
+
'trace-deprecation': obj.traceDeprecation,
|
|
156
|
+
'trace-env': obj.traceEnv,
|
|
157
|
+
'trace-env-js-stack': obj.traceEnvJsStack,
|
|
158
|
+
'trace-env-native-stack': obj.traceEnvNativeStack,
|
|
159
|
+
'trace-event-categories': obj.traceEventCategories,
|
|
160
|
+
'trace-event-file-pattern': obj.traceEventFilePattern,
|
|
161
|
+
'trace-exit': obj.traceExit,
|
|
162
|
+
'trace-promises': obj.tracePromises,
|
|
163
|
+
'trace-require-module': obj.traceRequireModule,
|
|
164
|
+
'trace-sigint': obj.traceSigint,
|
|
165
|
+
'trace-sync-io': obj.traceSyncIo,
|
|
166
|
+
'trace-tls': obj.traceTls,
|
|
167
|
+
'trace-uncaught': obj.traceUncaught,
|
|
168
|
+
'trace-warnings': obj.traceWarnings,
|
|
169
|
+
'track-heap-objects': obj.trackHeapObjects,
|
|
170
|
+
'unhandled-rejections': obj.unhandledRejections,
|
|
171
|
+
'use-bundled-ca': obj.useBundledCa,
|
|
172
|
+
'use-env-proxy': obj.useEnvProxy,
|
|
173
|
+
'use-largepages': obj.useLargepages,
|
|
174
|
+
'use-openssl-ca': obj.useOpensslCa,
|
|
175
|
+
'use-system-ca': obj.useSystemCa,
|
|
176
|
+
'v8-pool-size': obj.v8PoolSize,
|
|
177
|
+
'verify-base-objects': obj.verifyBaseObjects,
|
|
178
|
+
'warnings': obj.warnings,
|
|
179
|
+
'watch': obj.watch,
|
|
180
|
+
'watch-kill-signal': obj.watchKillSignal,
|
|
181
|
+
'watch-path': obj.watchPath?.map(y => y),
|
|
182
|
+
'watch-preserve-output': obj.watchPreserveOutput,
|
|
183
|
+
'zero-fill-buffers': obj.zeroFillBuffers,
|
|
184
|
+
};
|
|
185
|
+
// filter undefined values
|
|
186
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Converts an object of type 'NodeConfigSchemaPermission' to JSON representation.
|
|
190
|
+
* @internal
|
|
191
|
+
*/
|
|
192
|
+
/* eslint-disable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
|
|
193
|
+
function toJson_NodeConfigSchemaPermission(obj) {
|
|
194
|
+
if (obj === undefined) {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
const result = {
|
|
198
|
+
'allow-addons': obj.allowAddons,
|
|
199
|
+
'allow-child-process': obj.allowChildProcess,
|
|
200
|
+
'allow-fs-read': obj.allowFsRead?.map(y => y),
|
|
201
|
+
'allow-fs-write': obj.allowFsWrite?.map(y => y),
|
|
202
|
+
'allow-inspector': obj.allowInspector,
|
|
203
|
+
'allow-wasi': obj.allowWasi,
|
|
204
|
+
'allow-worker': obj.allowWorker,
|
|
205
|
+
'permission': obj.permission,
|
|
206
|
+
};
|
|
207
|
+
// filter undefined values
|
|
208
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Converts an object of type 'NodeConfigSchemaTest' to JSON representation.
|
|
212
|
+
* @internal
|
|
213
|
+
*/
|
|
214
|
+
/* eslint-disable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
|
|
215
|
+
function toJson_NodeConfigSchemaTest(obj) {
|
|
216
|
+
if (obj === undefined) {
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
const result = {
|
|
220
|
+
'experimental-test-coverage': obj.experimentalTestCoverage,
|
|
221
|
+
'experimental-test-module-mocks': obj.experimentalTestModuleMocks,
|
|
222
|
+
'test': obj.test,
|
|
223
|
+
'test-concurrency': obj.testConcurrency,
|
|
224
|
+
'test-coverage-branches': obj.testCoverageBranches,
|
|
225
|
+
'test-coverage-exclude': obj.testCoverageExclude?.map(y => y),
|
|
226
|
+
'test-coverage-functions': obj.testCoverageFunctions,
|
|
227
|
+
'test-coverage-include': obj.testCoverageInclude?.map(y => y),
|
|
228
|
+
'test-coverage-lines': obj.testCoverageLines,
|
|
229
|
+
'test-force-exit': obj.testForceExit,
|
|
230
|
+
'test-global-setup': obj.testGlobalSetup,
|
|
231
|
+
'test-isolation': obj.testIsolation,
|
|
232
|
+
'test-name-pattern': obj.testNamePattern?.map(y => y),
|
|
233
|
+
'test-only': obj.testOnly,
|
|
234
|
+
'test-random-seed': obj.testRandomSeed,
|
|
235
|
+
'test-randomize': obj.testRandomize,
|
|
236
|
+
'test-reporter': obj.testReporter?.map(y => y),
|
|
237
|
+
'test-reporter-destination': obj.testReporterDestination?.map(y => y),
|
|
238
|
+
'test-rerun-failures': obj.testRerunFailures,
|
|
239
|
+
'test-shard': obj.testShard,
|
|
240
|
+
'test-skip-pattern': obj.testSkipPattern?.map(y => y),
|
|
241
|
+
'test-timeout': obj.testTimeout,
|
|
242
|
+
'test-update-snapshots': obj.testUpdateSnapshots,
|
|
243
|
+
};
|
|
244
|
+
// filter undefined values
|
|
245
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Converts an object of type 'NodeConfigSchemaWatch' to JSON representation.
|
|
249
|
+
* @internal
|
|
250
|
+
*/
|
|
251
|
+
/* eslint-disable max-len, @stylistic/max-len, quote-props, @stylistic/quote-props */
|
|
252
|
+
function toJson_NodeConfigSchemaWatch(obj) {
|
|
253
|
+
if (obj === undefined) {
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
const result = {
|
|
257
|
+
'watch': obj.watch,
|
|
258
|
+
'watch-kill-signal': obj.watchKillSignal,
|
|
259
|
+
'watch-path': obj.watchPath?.map(y => y),
|
|
260
|
+
'watch-preserve-output': obj.watchPreserveOutput,
|
|
261
|
+
};
|
|
262
|
+
// filter undefined values
|
|
263
|
+
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
264
|
+
}
|
|
265
|
+
/* 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=
|
|
@@ -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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
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.5" };
|
|
13
13
|
/**
|
|
14
14
|
* The output object. This object can be mutated until the project is
|
|
15
15
|
* synthesized.
|
package/lib/project-build.js
CHANGED
|
@@ -15,7 +15,7 @@ const component_1 = require("./component");
|
|
|
15
15
|
* 6. package
|
|
16
16
|
*/
|
|
17
17
|
class ProjectBuild extends component_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ProjectBuild", version: "0.103.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ProjectBuild", version: "0.103.5" };
|
|
19
19
|
/**
|
|
20
20
|
* The task responsible for a full release build.
|
|
21
21
|
*/
|