obsidian-dev-utils 70.1.0 → 70.2.1
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/CHANGELOG.md +23 -5
- package/dist/dev/main.js +138 -67
- package/dist/dprint.json +1 -1
- package/dist/lib/cjs/abort-controller.cjs +1 -1
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/library.d.cts +1 -1
- package/dist/lib/cjs/object-utils.cjs +1 -1
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +17 -10
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +13 -2
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +9 -1
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +6 -0
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +77 -25
- package/dist/lib/cjs/obsidian/link.cjs +2 -4
- package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +2 -4
- package/dist/lib/cjs/obsidian/markdown.cjs +80 -28
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +2 -0
- package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +1 -1
- package/dist/lib/cjs/script-utils/build.cjs +22 -1
- package/dist/lib/cjs/script-utils/build.d.cts +6 -0
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +2 -2
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +1 -1
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +2 -2
- package/dist/lib/cjs/script-utils/check-project-types.cjs +209 -0
- package/dist/lib/cjs/script-utils/check-project-types.d.cts +76 -0
- package/dist/lib/cjs/script-utils/exec.cjs +1 -1
- package/dist/lib/cjs/script-utils/index.cjs +7 -1
- package/dist/lib/cjs/script-utils/index.d.cts +2 -0
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +38 -1
- package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +1 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +1 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +1 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +3 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +4 -0
- package/dist/lib/cjs/script-utils/validate-declarations.cjs +203 -0
- package/dist/lib/cjs/script-utils/validate-declarations.d.cts +24 -0
- package/dist/lib/cjs/type.cjs +1 -1
- package/dist/lib/esm/abort-controller.mjs +1 -1
- package/dist/lib/esm/library.d.mts +1 -1
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/object-utils.mjs +1 -1
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +13 -2
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +17 -10
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +6 -0
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +9 -1
- package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +1 -1
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +1 -1
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +77 -25
- package/dist/lib/esm/obsidian/link.mjs +2 -4
- package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +2 -4
- package/dist/lib/esm/obsidian/markdown.mjs +80 -28
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +2 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
- package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +1 -1
- package/dist/lib/esm/script-utils/build.d.mts +6 -0
- package/dist/lib/esm/script-utils/build.mjs +27 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +2 -2
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +1 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +2 -2
- package/dist/lib/esm/script-utils/check-project-types.d.mts +76 -0
- package/dist/lib/esm/script-utils/check-project-types.mjs +98 -0
- package/dist/lib/esm/script-utils/exec.mjs +1 -1
- package/dist/lib/esm/script-utils/index.d.mts +2 -0
- package/dist/lib/esm/script-utils/index.mjs +5 -1
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +38 -1
- package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +1 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +1 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +1 -1
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +4 -0
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
- package/dist/lib/esm/script-utils/validate-declarations.d.mts +24 -0
- package/dist/lib/esm/script-utils/validate-declarations.mjs +106 -0
- package/dist/lib/esm/type.mjs +1 -1
- package/package.json +9 -9
- package/script-utils/check-project-types/package.json +6 -0
- package/script-utils/validate-declarations/package.json +6 -0
- package/scripts/postinstall.mjs +0 -29
|
@@ -137,6 +137,7 @@ var script_utils_exports = {};
|
|
|
137
137
|
__export(script_utils_exports, {
|
|
138
138
|
build: () => build,
|
|
139
139
|
bundlers: () => bundlers,
|
|
140
|
+
"check-project-types": () => check_project_types,
|
|
140
141
|
"cli-utils": () => cli_utils,
|
|
141
142
|
"code-generator": () => code_generator,
|
|
142
143
|
"commitlint-config": () => commitlint_config,
|
|
@@ -152,11 +153,13 @@ __export(script_utils_exports, {
|
|
|
152
153
|
"obsidian-dev-utils-repo-paths": () => obsidian_dev_utils_repo_paths,
|
|
153
154
|
root: () => root,
|
|
154
155
|
"test-runners": () => test_runners,
|
|
156
|
+
"validate-declarations": () => validate_declarations,
|
|
155
157
|
version: () => version
|
|
156
158
|
});
|
|
157
159
|
module.exports = __toCommonJS(script_utils_exports);
|
|
158
160
|
var build = __toESM(__extractDefault(require('./build.cjs')), 1);
|
|
159
161
|
var bundlers = __toESM(__extractDefault(require('./bundlers/index.cjs')), 1);
|
|
162
|
+
var check_project_types = __toESM(__extractDefault(require('./check-project-types.cjs')), 1);
|
|
160
163
|
var cli_utils = __toESM(__extractDefault(require('./cli-utils.cjs')), 1);
|
|
161
164
|
var code_generator = __toESM(__extractDefault(require('./code-generator.cjs')), 1);
|
|
162
165
|
var commitlint_config = __toESM(__extractDefault(require('./commitlint-config.cjs')), 1);
|
|
@@ -172,11 +175,13 @@ var npm = __toESM(__extractDefault(require('./npm.cjs')), 1);
|
|
|
172
175
|
var obsidian_dev_utils_repo_paths = __toESM(__extractDefault(require('./obsidian-dev-utils-repo-paths.cjs')), 1);
|
|
173
176
|
var root = __toESM(__extractDefault(require('./root.cjs')), 1);
|
|
174
177
|
var test_runners = __toESM(__extractDefault(require('./test-runners/index.cjs')), 1);
|
|
178
|
+
var validate_declarations = __toESM(__extractDefault(require('./validate-declarations.cjs')), 1);
|
|
175
179
|
var version = __toESM(__extractDefault(require('./version.cjs')), 1);
|
|
176
180
|
// Annotate the CommonJS export names for ESM import in node:
|
|
177
181
|
0 && (module.exports = {
|
|
178
182
|
build,
|
|
179
183
|
bundlers,
|
|
184
|
+
"check-project-types": null,
|
|
180
185
|
"cli-utils": null,
|
|
181
186
|
"code-generator": null,
|
|
182
187
|
"commitlint-config": null,
|
|
@@ -192,6 +197,7 @@ var version = __toESM(__extractDefault(require('./version.cjs')), 1);
|
|
|
192
197
|
"obsidian-dev-utils-repo-paths": null,
|
|
193
198
|
root,
|
|
194
199
|
"test-runners": null,
|
|
200
|
+
"validate-declarations": null,
|
|
195
201
|
version
|
|
196
202
|
});
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdidWlsZCcgZnJvbSAnLi9idWlsZC50cyc7XG5leHBvcnQgKiBhcyAnYnVuZGxlcnMnIGZyb20gJy4vYnVuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NoZWNrLXByb2plY3QtdHlwZXMnIGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5leHBvcnQgKiBhcyAnY2xpLXV0aWxzJyBmcm9tICcuL2NsaS11dGlscy50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1nZW5lcmF0b3InIGZyb20gJy4vY29kZS1nZW5lcmF0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtY29uZmlnJyBmcm9tICcuL2NvbW1pdGxpbnQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdleGVjJyBmcm9tICcuL2V4ZWMudHMnO1xuZXhwb3J0ICogYXMgJ2Zvcm1hdHRlcnMnIGZyb20gJy4vZm9ybWF0dGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZnMnIGZyb20gJy4vZnMudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGludGVycycgZnJvbSAnLi9saW50ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICduYW5vLXN0YWdlZC1jb25maWcnIGZyb20gJy4vbmFuby1zdGFnZWQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICducG0tcHVibGlzaCcgZnJvbSAnLi9ucG0tcHVibGlzaC50cyc7XG5leHBvcnQgKiBhcyAnbnBtLXJ1bicgZnJvbSAnLi9ucG0tcnVuLnRzJztcbmV4cG9ydCAqIGFzICducG0nIGZyb20gJy4vbnBtLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocycgZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5leHBvcnQgKiBhcyAncm9vdCcgZnJvbSAnLi9yb290LnRzJztcbmV4cG9ydCAqIGFzICd0ZXN0LXJ1bm5lcnMnIGZyb20gJy4vdGVzdC1ydW5uZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0ZS1kZWNsYXJhdGlvbnMnIGZyb20gJy4vdmFsaWRhdGUtZGVjbGFyYXRpb25zLnRzJztcbmV4cG9ydCAqIGFzICd2ZXJzaW9uJyBmcm9tICcuL3ZlcnNpb24udHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFBQUE7QUFBQSxFQUFBLG1CQUFBQztBQUFBLEVBQUEsd0JBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw4QkFBQUM7QUFBQSxFQUFBO0FBQUEsdUJBQUFDO0FBQUEsRUFBQSxpQkFBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUE7QUFBQSx3QkFBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBRUEsWUFBeUI7QUFDekIsZUFBNEI7QUFDNUIsSUFBQVQsc0JBQXVDO0FBQ3ZDLElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGlCQUFrQztBQUNsQyxJQUFBQyxvQkFBcUM7QUFDckMsV0FBd0I7QUFDeEIsaUJBQThCO0FBQzlCLFNBQXNCO0FBQ3RCLFdBQXdCO0FBQ3hCLGNBQTJCO0FBQzNCLElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQyxjQUErQjtBQUMvQixJQUFBQyxVQUEyQjtBQUMzQixVQUF1QjtBQUN2QixJQUFBQyxnQ0FBaUQ7QUFDakQsV0FBd0I7QUFDeEIsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUMsd0JBQXlDO0FBQ3pDLGNBQTJCOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJuYW5vLXN0YWdlZC1jb25maWciLCAibnBtLXB1Ymxpc2giLCAibnBtLXJ1biIsICJvYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocyIsICJ0ZXN0LXJ1bm5lcnMiLCAidmFsaWRhdGUtZGVjbGFyYXRpb25zIl0KfQo=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference path="../library.d.cts" />
|
|
2
2
|
export * as 'build' from './build.cjs';
|
|
3
3
|
export * as 'bundlers' from './bundlers/index.cjs';
|
|
4
|
+
export * as 'check-project-types' from './check-project-types.cjs';
|
|
4
5
|
export * as 'cli-utils' from './cli-utils.cjs';
|
|
5
6
|
export * as 'code-generator' from './code-generator.cjs';
|
|
6
7
|
export * as 'commitlint-config' from './commitlint-config.cjs';
|
|
@@ -16,4 +17,5 @@ export * as 'npm' from './npm.cjs';
|
|
|
16
17
|
export * as 'obsidian-dev-utils-repo-paths' from './obsidian-dev-utils-repo-paths.cjs';
|
|
17
18
|
export * as 'root' from './root.cjs';
|
|
18
19
|
export * as 'test-runners' from './test-runners/index.cjs';
|
|
20
|
+
export * as 'validate-declarations' from './validate-declarations.cjs';
|
|
19
21
|
export * as 'version' from './version.cjs';
|
|
@@ -145,6 +145,7 @@ var import_js = __toESM(__extractDefault(require('@eslint/js')), 1);
|
|
|
145
145
|
var import_eslint_plugin = __toESM(__extractDefault(require('@stylistic/eslint-plugin')), 1);
|
|
146
146
|
var import_eslint_import_resolver_typescript = require('eslint-import-resolver-typescript');
|
|
147
147
|
var import_eslint_plugin_import_x = require('eslint-plugin-import-x');
|
|
148
|
+
var import_eslint_plugin_n = __toESM(__extractDefault(require('eslint-plugin-n')), 1);
|
|
148
149
|
var import_eslint_plugin_obsidianmd = __toESM(__extractDefault(require('eslint-plugin-obsidianmd')), 1);
|
|
149
150
|
var import_eslint_plugin_perfectionist = require('eslint-plugin-perfectionist');
|
|
150
151
|
var import_config = require('eslint/config');
|
|
@@ -216,6 +217,7 @@ function defineEslintConfigs(params = {}) {
|
|
|
216
217
|
...getEslintImportResolverTypescriptConfigs(),
|
|
217
218
|
...getEslintCommentsConfigs(context),
|
|
218
219
|
...getObsidianDevUtilsPluginConfigs(context),
|
|
220
|
+
...getNodeCompatConfigs(context),
|
|
219
221
|
...customConfigs
|
|
220
222
|
);
|
|
221
223
|
}
|
|
@@ -467,6 +469,41 @@ function getImportXConfigs(context) {
|
|
|
467
469
|
}
|
|
468
470
|
]);
|
|
469
471
|
}
|
|
472
|
+
function getNodeCompatConfigs(context) {
|
|
473
|
+
const minimumNodeVersion = ">=16.13.2";
|
|
474
|
+
return (0, import_config.defineConfig)([
|
|
475
|
+
{
|
|
476
|
+
files: context.sourceFiles,
|
|
477
|
+
ignores: [
|
|
478
|
+
...context.testFiles,
|
|
479
|
+
// Dev-only tooling (build, lint, version) under `src/script-utils/**` runs via `jiti` in the consumer's Node environment when building a plugin and never ships into the Obsidian runtime, so the Node-16 floor does not apply to it.
|
|
480
|
+
(0, import_path.join)(import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.ScriptUtils, import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.AnyPath, import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.AnyTs)
|
|
481
|
+
],
|
|
482
|
+
plugins: {
|
|
483
|
+
n: import_eslint_plugin_n.default
|
|
484
|
+
},
|
|
485
|
+
rules: {
|
|
486
|
+
"n/no-unsupported-features/es-builtins": [
|
|
487
|
+
"error",
|
|
488
|
+
{
|
|
489
|
+
version: minimumNodeVersion
|
|
490
|
+
}
|
|
491
|
+
],
|
|
492
|
+
"n/no-unsupported-features/node-builtins": [
|
|
493
|
+
"error",
|
|
494
|
+
{
|
|
495
|
+
// `Blob` and `File` are DOM web globals always present in the Obsidian/Electron renderer (every supported Chromium), but the rule also knows them as Node's experimental builtins and cannot tell which is meant. Ignore them globally; genuinely newer APIs (e.g. `AbortSignal.any`) stay flagged.
|
|
496
|
+
ignores: [
|
|
497
|
+
"Blob",
|
|
498
|
+
"File"
|
|
499
|
+
],
|
|
500
|
+
version: minimumNodeVersion
|
|
501
|
+
}
|
|
502
|
+
]
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
]);
|
|
506
|
+
}
|
|
470
507
|
function getObsidianDevUtilsPluginConfigs(context) {
|
|
471
508
|
return (0, import_config.defineConfig)([
|
|
472
509
|
{
|
|
@@ -663,4 +700,4 @@ function getTseslintConfigs(context) {
|
|
|
663
700
|
EslintConfigContext,
|
|
664
701
|
defineEslintConfigs
|
|
665
702
|
});
|
|
666
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29uZmlnLWhlbHBlcnMnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgb2JzaWRpYW5tZCBmcm9tICdlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWQnO1xuaW1wb3J0IHsgY29uZmlncyBhcyBwZXJmZWN0aW9uaXN0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4tcGVyZmVjdGlvbmlzdCc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICdlc2xpbnQvY29uZmlnJztcbmltcG9ydCBnbG9iYWxzIGZyb20gJ2dsb2JhbHMnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCB0c2VzbGludCBmcm9tICd0eXBlc2NyaXB0LWVzbGludCc7XG5cbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGdldFJvb3RGb2xkZXIgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7IG5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzIH0gZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuaW1wb3J0IHsgb2JzaWRpYW5EZXZVdGlsc1BsdWdpbiB9IGZyb20gJy4vZXNsaW50LXJ1bGVzL29ic2lkaWFuLWRldi11dGlscy1wbHVnaW4udHMnO1xuXG4vKipcbiAqIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgYnVpbGRzIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgY3VzdG9tQ29uZmlncz8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGVkaXRzIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgZWRpdENvbnRleHQ/KGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBjb250ZXh0IGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2xpbnRDb25maWdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSByb290IGNvbmZpZ3VyYXRpb24gZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdENvbmZpZ0ZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NyaXB0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjcmlwdEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZUZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVzdCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXN0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbGwgZmlsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhbGwgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgYWxsRmlsZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy50ZXN0RmlsZXMsIC4uLnRoaXMuc2NyaXB0RmlsZXMsIC4uLnRoaXMucm9vdENvbmZpZ0ZpbGVzLCAuLi50aGlzLnNvdXJjZUZpbGVzXTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGJ1aWxkcyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRXNsaW50Q29uZmlncyhwYXJhbXM6IERlZmluZUVzbGludENvbmZpZ3NQYXJhbXMgPSB7fSk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGNvbnRleHQgPSBuZXcgRXNsaW50Q29uZmlnQ29udGV4dCgpO1xuICBjb250ZXh0LnJvb3RDb25maWdGaWxlcy5wdXNoKFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNvbW1pdGxpbnRDb25maWdUcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVml0ZXN0Q29uZmlnVHNcbiAgKTtcbiAgY29udGV4dC5zY3JpcHRGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU2NyaXB0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICk7XG4gIGNvbnRleHQuc291cmNlRmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUc3gpXG4gICk7XG4gIGNvbnRleHQudGVzdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5UZXN0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTW9ja3MsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VGVzdFRzKVxuICApO1xuXG4gIGlmIChwYXJhbXMuZWRpdENvbnRleHQpIHtcbiAgICBwYXJhbXMuZWRpdENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBjdXN0b21Db25maWdzID0gcGFyYW1zLmN1c3RvbUNvbmZpZ3M/Lihjb250ZXh0KSA/PyBbXTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIC4uLmdldEdpdElnbm9yZUNvbmZpZ3MoKSxcbiAgICAvLyBPYnNpZGlhbm1kIGNvbmZpZ3MgcnVuIGZpcnN0IHNvIG91ciBzdHJpY3RlciBydWxlcyBvdmVycmlkZSB0aGVpciByZWxheGVkIGRlZmF1bHRzXG4gICAgLi4uZ2V0T2JzaWRpYW5MaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRFc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEltcG9ydFhDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFBlcmZlY3Rpb25pc3RDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludEltcG9ydFJlc29sdmVyVHlwZXNjcmlwdENvbmZpZ3MoKSxcbiAgICAuLi5nZXRFc2xpbnRDb21tZW50c0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uY3VzdG9tQ29uZmlnc1xuICApO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb21tZW50c0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcmVjb21tZW5kZWRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICBleHRlbmRzOiBbY29tbWVudHNDb25maWdzLnJlY29tbWVuZGVkXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LWNvbW1lbnRzL3JlcXVpcmUtZGVzY3JpcHRpb24nOiAnZXJyb3InXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW2VzbGludC5jb25maWdzLnJlY29tbWVuZGVkXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnYWNjZXNzb3ItcGFpcnMnOiAnZXJyb3InLFxuICAgICAgICAnYXJyYXktY2FsbGJhY2stcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhbWVsY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdjYXBpdGFsaXplZC1jb21tZW50cyc6IFsnZXJyb3InLCAnYWx3YXlzJywgeyBibG9jazogeyBpZ25vcmVQYXR0ZXJuOiAndjgnIH0gfV0sXG4gICAgICAgICdjb21wbGV4aXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2NvbnNpc3RlbnQtdGhpcyc6ICdlcnJvcicsXG4gICAgICAgICdjdXJseSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UnOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1jYXNlLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1wYXJhbS1sYXN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2VxZXFlcSc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWUtbWF0Y2hpbmcnOiAnZXJyb3InLFxuICAgICAgICAnZnVuYy1uYW1lcyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLXN0eWxlJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2RlY2xhcmF0aW9uJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Fycm93RnVuY3Rpb25zOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ2dyb3VwZWQtYWNjZXNzb3ItcGFpcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZ2V0QmVmb3JlU2V0J1xuICAgICAgICBdLFxuICAgICAgICAnZ3VhcmQtZm9yLWluJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWFsZXJ0JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWFycmF5LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWJpdHdpc2UnOiAnZXJyb3InLFxuICAgICAgICAnbm8tY2FsbGVyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWNvbnNvbGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnd2FybicsXG4gICAgICAgICAgICAgICdlcnJvcidcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1jb25zdHJ1Y3Rvci1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tZGl2LXJlZ2V4JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWVsc2UtcmV0dXJuJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dFbHNlSWY6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tZW1wdHktZnVuY3Rpb24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0ZW5kLW5hdGl2ZSc6ICdlcnJvcicsXG4gICAgICAgICduby1leHRyYS1iaW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWxhYmVsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWltcGxpY2l0LWNvZXJjaW9uJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJyEhJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWltcGxpZWQtZXZhbCc6ICdlcnJvcicsXG4gICAgICAgICduby1pbm5lci1kZWNsYXJhdGlvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8taXRlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWwtdmFyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxhYmVscyc6ICdlcnJvcicsXG4gICAgICAgICduby1sb25lLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICduby1sb25lbHktaWYnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbG9vcC1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW1hZ2ljLW51bWJlcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRlY3RPYmplY3RzOiB0cnVlLFxuICAgICAgICAgICAgZW5mb3JjZUNvbnN0OiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlOiBbXG4gICAgICAgICAgICAgIC0xLFxuICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAxXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tbXVsdGktYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW11bHRpLXN0cic6ICdlcnJvcicsXG4gICAgICAgICduby1uZWdhdGVkLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1uZXN0ZWQtdGVybmFyeSc6ICdlcnJvcicsXG4gICAgICAgICduby1uZXctZnVuYyc6ICdlcnJvcicsXG4gICAgICAgICduby1uZXctd3JhcHBlcnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2JqZWN0LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW9jdGFsLWVzY2FwZSc6ICdlcnJvcicsXG4gICAgICAgICduby1wcm9taXNlLWV4ZWN1dG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1wcm90byc6ICdlcnJvcicsXG4gICAgICAgICduby1yZXN0cmljdGVkLXN5bnRheCc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIC4uLm5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzXG4gICAgICAgIF0sXG4gICAgICAgICduby1yZXR1cm4tYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNjcmlwdC11cmwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VsZi1jb21wYXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNlcXVlbmNlcyc6ICdlcnJvcicsXG4gICAgICAgICduby1zaGFkb3cnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXRocm93LWxpdGVyYWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5tb2RpZmllZC1sb29wLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby11bm5lZWRlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVucmVhY2hhYmxlLWxvb3AnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW51c2VkLWV4cHJlc3Npb25zJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNhbGwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb21wdXRlZC1rZXknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25jYXQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25zdHJ1Y3Rvcic6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJlbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tdm9pZCc6ICdlcnJvcicsXG4gICAgICAgICdvYmplY3Qtc2hvcnRoYW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ29wZXJhdG9yLWFzc2lnbm1lbnQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWFycm93LWNhbGxiYWNrJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1jb25zdCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItZXhwb25lbnRpYXRpb24tb3BlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW5hbWVkLWNhcHR1cmUtZ3JvdXAnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW51bWVyaWMtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1oYXMtb3duJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1vYmplY3Qtc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlZ2V4LWxpdGVyYWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1yZXN0LXBhcmFtcyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdyYWRpeCc6ICdlcnJvcicsXG4gICAgICAgICdyZXF1aXJlLWF0b21pYy11cGRhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXdhaXQnOiAnZXJyb3InLFxuICAgICAgICAnc3ltYm9sLWRlc2NyaXB0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ3VuaWNvZGUtYm9tJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ZhcnMtb24tdG9wJzogJ2Vycm9yJyxcbiAgICAgICAgJ3lvZGEnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICAnaW1wb3J0LXgvcmVzb2x2ZXItbmV4dCc6IFtcbiAgICAgICAgICBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIoe1xuICAgICAgICAgICAgYWx3YXlzVHJ5VHlwZXM6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0R2l0SWdub3JlQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBnaXRpZ25vcmVQYXRoID0gam9pbihnZXRSb290Rm9sZGVyKCkgPz8gJycsICcuZ2l0aWdub3JlJyk7XG4gIGlmICghZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW2luY2x1ZGVJZ25vcmVGaWxlKGdpdGlnbm9yZVBhdGgpXTtcbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MudHlwZXNjcmlwdCxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLmVycm9ycyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLndhcm5pbmdzXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9jb25zaXN0ZW50LXR5cGUtc3BlY2lmaWVyLXN0eWxlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2V4dGVuc2lvbnMnOiBbJ2Vycm9yJywgJ2lnbm9yZVBhY2thZ2VzJ10sXG4gICAgICAgICdpbXBvcnQteC9maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9pbXBvcnRzLWZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25ld2xpbmUtYWZ0ZXItaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFic29sdXRlLXBhdGgnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW1kJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jb21tb25qcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jeWNsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZXByZWNhdGVkJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR1cGxpY2F0ZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWVtcHR5LW5hbWVkLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbXV0YWJsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVkLWRlZmF1bHQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZXNwYWNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlbGF0aXZlLXBhY2thZ2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlc3RyaWN0ZWQtcGF0aHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tc2VsZi1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnQnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zYXNzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2NzcydcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdpbXBvcnQteC9uby11bnVzZWQtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNjcmlwdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbXG4gICAgICAgIC4uLmNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLFxuICAgICAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpblRzKVxuICAgICAgXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiBvYnNpZGlhbkRldlV0aWxzUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wcmVmZXItbm9vcC1hc3luYyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtbWVtYmVycyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1jb21wb25lbnQtc3VmZml4JzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1zdXBlci1jYWxsJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFubWQuY29uZmlncy5yZWNvbW1lbmRlZDtcblxuICBjb25zdCBzY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLm1hcCgoY29uZmlnKSA9PiB7XG4gICAgaWYgKGNvbmZpZy5maWxlcz8uaW5jbHVkZXMoJ3BhY2thZ2UuanNvbicpKSB7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGaWxlc1xuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIC4uLnNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLFxuICAgIHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgb2JzaWRpYW5tZFxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIGdsb2JhbHM6IHtcbiAgICAgICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsXG4gICAgICAgICAgLi4uZ2xvYmFscy5ub2RlLFxuICAgICAgICAgIGFjdGl2ZURvY3VtZW50OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFjdGl2ZVdpbmRvdzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFqYXhQcm9taXNlOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZURpdjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVFbDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVGcmFnbWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTcGFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZVN2ZzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBEb21FbGVtZW50SW5mbzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoOiAncmVhZG9ubHknLFxuICAgICAgICAgIGZpc2hBbGw6ICdyZWFkb25seScsXG4gICAgICAgICAgaXNCb29sZWFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIG5leHRGcmFtZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBOb2RlSlM6ICdyZWFkb25seScsXG4gICAgICAgICAgcmVhZHk6ICdyZWFkb25seScsXG4gICAgICAgICAgc2xlZXA6ICdyZWFkb25seSdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFBlcmZlY3Rpb25pc3RDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFt7XG4gICAgZXh0ZW5kczogW3BlcmZlY3Rpb25pc3RDb25maWdzWydyZWNvbW1lbmRlZC1hbHBoYWJldGljYWwnXV0sXG4gICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKVxuICB9XSk7XG59XG5cbmZ1bmN0aW9uIGdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgc3R5bGlzdGljLmNvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLmN1c3RvbWl6ZSh7XG4gICAgICAgICAgYXJyb3dQYXJlbnM6IHRydWUsXG4gICAgICAgICAgYnJhY2VTdHlsZTogJzF0YnMnLFxuICAgICAgICAgIGNvbW1hRGFuZ2xlOiAnbmV2ZXInLFxuICAgICAgICAgIHNlbWk6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0BzdHlsaXN0aWMvZ2VuZXJhdG9yLXN0YXItc3BhY2luZyc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50LWJpbmFyeS1vcHMnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL25vLWV4dHJhLXNlbWknOiAnZXJyb3InLFxuICAgICAgICAnQHN0eWxpc3RpYy9vYmplY3QtY3VybHktbmV3bGluZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEV4cG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEltcG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb3BlcmF0b3ItbGluZWJyZWFrJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2JlZm9yZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgICAgICc9JzogJ2FmdGVyJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvcXVvdGVzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ3NpbmdsZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dUZW1wbGF0ZUxpdGVyYWxzOiAnbmV2ZXInXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3RyaWN0VHlwZUNoZWNrZWQsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3R5bGlzdGljVHlwZUNoZWNrZWRcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICBlY21hRmVhdHVyZXM6IHtcbiAgICAgICAgICAgIGpzeDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICAgICAgdHNjb25maWdSb290RGlyOiBnZXRSb290Rm9sZGVyKCkgPz8gJydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtZnVuY3Rpb24tcmV0dXJuLXR5cGUnOiAnZXJyb3InLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlJzogWydlcnJvcicsICdtZXRob2QnXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlcyc6IFsnZXJyb3InLCB7XG4gICAgICAgICAgY2hlY2tUaGVuYWJsZXM6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd1ByaXZhdGVDbGFzc1Byb3BlcnR5QWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGFsbG93UHJvdGVjdGVkQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEscUJBQTRCO0FBQzVCLDRCQUFrQztBQUNsQyxnQkFBbUI7QUFFbkIsMkJBQXNCO0FBQ3RCLCtDQUErQztBQUMvQyxvQ0FBOEQ7QUFFOUQsc0NBQXVCO0FBQ3ZCLHlDQUFnRDtBQUNoRCxvQkFBNkI7QUFDN0IscUJBQW9CO0FBQ3BCLHFCQUEyQjtBQUUzQiwrQkFBcUI7QUFFckIsd0NBQXdDO0FBQ3hDLGtCQUFxQjtBQUNyQixrQkFBOEI7QUFDOUIseUNBQThDO0FBQzlDLHVDQUF1QztBQXlCaEMsTUFBTSxvQkFBb0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlmLGtCQUE0QixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLN0IsY0FBd0IsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS3pCLGNBQXdCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFB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
|
|
703
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29uZmlnLWhlbHBlcnMnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBub2RlUGx1Z2luIGZyb20gJ2VzbGludC1wbHVnaW4tbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IGdsb2JhbHMgZnJvbSAnZ2xvYmFscyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHRzZXNsaW50IGZyb20gJ3R5cGVzY3JpcHQtZXNsaW50JztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgbm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXMgfSBmcm9tICcuL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlV0aWxzUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbi50cyc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbmVFc2xpbnRDb25maWdzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBidWlsZHMgY3VzdG9tIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICBjdXN0b21Db25maWdzPyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgZWRpdHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqL1xuICBlZGl0Q29udGV4dD8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVzbGludENvbmZpZ0NvbnRleHQge1xuICAvKipcbiAgICogVGhlIHJvb3QgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290Q29uZmlnRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JpcHQgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NyaXB0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRlc3RGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGFsbCBmaWxlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFsbCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhbGxGaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnRlc3RGaWxlcywgLi4udGhpcy5zY3JpcHRGaWxlcywgLi4udGhpcy5yb290Q29uZmlnRmlsZXMsIC4uLnRoaXMuc291cmNlRmlsZXNdO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKHBhcmFtczogRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgY29udGV4dCA9IG5ldyBFc2xpbnRDb25maWdDb250ZXh0KCk7XG4gIGNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLnB1c2goXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ29tbWl0bGludENvbmZpZ1RzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WaXRlc3RDb25maWdUc1xuICApO1xuICBjb250ZXh0LnNjcmlwdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcylcbiAgKTtcbiAgY29udGV4dC5zb3VyY2VGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzeClcbiAgKTtcbiAgY29udGV4dC50ZXN0RmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlRlc3RzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Nb2NrcywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUZXN0VHMpXG4gICk7XG5cbiAgaWYgKHBhcmFtcy5lZGl0Q29udGV4dCkge1xuICAgIHBhcmFtcy5lZGl0Q29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGN1c3RvbUNvbmZpZ3MgPSBwYXJhbXMuY3VzdG9tQ29uZmlncz8uKGNvbnRleHQpID8/IFtdO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgLi4uZ2V0R2l0SWdub3JlQ29uZmlncygpLFxuICAgIC8vIE9ic2lkaWFubWQgY29uZmlncyBydW4gZmlyc3Qgc28gb3VyIHN0cmljdGVyIHJ1bGVzIG92ZXJyaWRlIHRoZWlyIHJlbGF4ZWQgZGVmYXVsdHNcbiAgICAuLi5nZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXROb2RlQ29tcGF0Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgLi4ubm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXNcbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICduby1tYWdpYy1udW1iZXJzJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRHaXRJZ25vcmVDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBqb2luKGdldFJvb3RGb2xkZXIoKSA/PyAnJywgJy5naXRpZ25vcmUnKTtcbiAgaWYgKCFleGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBbaW5jbHVkZUlnbm9yZUZpbGUoZ2l0aWdub3JlUGF0aCldO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy50eXBlc2NyaXB0LFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MuZXJyb3JzLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3Mud2FybmluZ3NcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L2NvbnNpc3RlbnQtdHlwZS1zcGVjaWZpZXItc3R5bGUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvZXh0ZW5zaW9ucyc6IFsnZXJyb3InLCAnaWdub3JlUGFja2FnZXMnXSxcbiAgICAgICAgJ2ltcG9ydC14L2ZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2ltcG9ydHMtZmlyc3QnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbmV3bGluZS1hZnRlci1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYWJzb2x1dGUtcGF0aCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hbWQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWNvbW1vbmpzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWN5Y2xlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlcHJlY2F0ZWQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHVwbGljYXRlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1keW5hbWljLXJlcXVpcmUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZW1wdHktbmFtZWQtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWltcG9ydC1tb2R1bGUtZXhwb3J0cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1tdXRhYmxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZWQtZGVmYXVsdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1uYW1lc3BhY2UnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tcmVsYXRpdmUtcGFja2FnZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tcmVzdHJpY3RlZC1wYXRocyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1zZWxmLWltcG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby11bmFzc2lnbmVkLWltcG9ydCc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICcqKi8qLmNzcycsXG4gICAgICAgICAgICAgICcqKi8qLnNhc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zY3NzJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVudXNlZC1tb2R1bGVzJzogJ29mZicsXG4gICAgICAgICdpbXBvcnQteC9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8td2VicGFjay1sb2FkZXItc3ludGF4JzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IGNvbnRleHQuc2NyaXB0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcbiAgICAgICAgLi4uY29udGV4dC5yb290Q29uZmlnRmlsZXMsXG4gICAgICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYWluVHMpXG4gICAgICBdLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0JzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXROb2RlQ29tcGF0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgLy8gVGhlIG1pbmltdW0gT2JzaWRpYW4gaW5zdGFsbGVyIHRoYXQgc3RpbGwgcmVjZWl2ZXMgYXBwIHVwZGF0ZXMgKDAuMTQuNSkgc2hpcHMgRWxlY3Ryb24gMTguMC4zLCB3aGljaCBydW5zIE5vZGUgMTYuMTMuMi5cbiAgLy8gU2hpcHBlZCBzb3VyY2UgbXVzdCB0aGVyZWZvcmUgYXZvaWQgTm9kZS9FUyBydW50aW1lIGJ1aWx0aW5zIHVuYXZhaWxhYmxlIGluIHRoYXQgdmVyc2lvbi4gVGVzdHMgYW5kIHNjcmlwdHMgYXJlIGRldi1vbmx5IGFuZCBleGVtcHQuXG4gIGNvbnN0IG1pbmltdW1Ob2RlVmVyc2lvbiA9ICc+PTE2LjEzLjInO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzLFxuICAgICAgaWdub3JlczogW1xuICAgICAgICAuLi5jb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgICAgLy8gRGV2LW9ubHkgdG9vbGluZyAoYnVpbGQsIGxpbnQsIHZlcnNpb24pIHVuZGVyIGBzcmMvc2NyaXB0LXV0aWxzLyoqYCBydW5zIHZpYSBgaml0aWAgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCB3aGVuIGJ1aWxkaW5nIGEgcGx1Z2luIGFuZCBuZXZlciBzaGlwcyBpbnRvIHRoZSBPYnNpZGlhbiBydW50aW1lLCBzbyB0aGUgTm9kZS0xNiBmbG9vciBkb2VzIG5vdCBhcHBseSB0byBpdC5cbiAgICAgICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRVdGlscywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICAgICBdLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICBuOiBub2RlUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ24vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvZXMtYnVpbHRpbnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2ZXJzaW9uOiBtaW5pbXVtTm9kZVZlcnNpb25cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBgQmxvYmAgYW5kIGBGaWxlYCBhcmUgRE9NIHdlYiBnbG9iYWxzIGFsd2F5cyBwcmVzZW50IGluIHRoZSBPYnNpZGlhbi9FbGVjdHJvbiByZW5kZXJlciAoZXZlcnkgc3VwcG9ydGVkIENocm9taXVtKSwgYnV0IHRoZSBydWxlIGFsc28ga25vd3MgdGhlbSBhcyBOb2RlJ3MgZXhwZXJpbWVudGFsIGJ1aWx0aW5zIGFuZCBjYW5ub3QgdGVsbCB3aGljaCBpcyBtZWFudC4gSWdub3JlIHRoZW0gZ2xvYmFsbHk7IGdlbnVpbmVseSBuZXdlciBBUElzIChlLmcuIGBBYm9ydFNpZ25hbC5hbnlgKSBzdGF5IGZsYWdnZWQuXG4gICAgICAgICAgICBpZ25vcmVzOiBbXG4gICAgICAgICAgICAgICdCbG9iJyxcbiAgICAgICAgICAgICAgJ0ZpbGUnXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdmVyc2lvbjogbWluaW11bU5vZGVWZXJzaW9uXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiBvYnNpZGlhbkRldlV0aWxzUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wcmVmZXItbm9vcC1hc3luYyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtbWVtYmVycyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1jb21wb25lbnQtc3VmZml4JzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1zdXBlci1jYWxsJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFubWQuY29uZmlncy5yZWNvbW1lbmRlZDtcblxuICBjb25zdCBzY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLm1hcCgoY29uZmlnKSA9PiB7XG4gICAgaWYgKGNvbmZpZy5maWxlcz8uaW5jbHVkZXMoJ3BhY2thZ2UuanNvbicpKSB7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGaWxlc1xuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIC4uLnNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLFxuICAgIHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgb2JzaWRpYW5tZFxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIGdsb2JhbHM6IHtcbiAgICAgICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsXG4gICAgICAgICAgLi4uZ2xvYmFscy5ub2RlLFxuICAgICAgICAgIGFjdGl2ZURvY3VtZW50OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFjdGl2ZVdpbmRvdzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFqYXhQcm9taXNlOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZURpdjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVFbDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVGcmFnbWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTcGFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZVN2ZzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBEb21FbGVtZW50SW5mbzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoOiAncmVhZG9ubHknLFxuICAgICAgICAgIGZpc2hBbGw6ICdyZWFkb25seScsXG4gICAgICAgICAgaXNCb29sZWFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIG5leHRGcmFtZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBOb2RlSlM6ICdyZWFkb25seScsXG4gICAgICAgICAgcmVhZHk6ICdyZWFkb25seScsXG4gICAgICAgICAgc2xlZXA6ICdyZWFkb25seSdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFBlcmZlY3Rpb25pc3RDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFt7XG4gICAgZXh0ZW5kczogW3BlcmZlY3Rpb25pc3RDb25maWdzWydyZWNvbW1lbmRlZC1hbHBoYWJldGljYWwnXV0sXG4gICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKVxuICB9XSk7XG59XG5cbmZ1bmN0aW9uIGdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgc3R5bGlzdGljLmNvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLmN1c3RvbWl6ZSh7XG4gICAgICAgICAgYXJyb3dQYXJlbnM6IHRydWUsXG4gICAgICAgICAgYnJhY2VTdHlsZTogJzF0YnMnLFxuICAgICAgICAgIGNvbW1hRGFuZ2xlOiAnbmV2ZXInLFxuICAgICAgICAgIHNlbWk6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0BzdHlsaXN0aWMvZ2VuZXJhdG9yLXN0YXItc3BhY2luZyc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50LWJpbmFyeS1vcHMnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL25vLWV4dHJhLXNlbWknOiAnZXJyb3InLFxuICAgICAgICAnQHN0eWxpc3RpYy9vYmplY3QtY3VybHktbmV3bGluZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEV4cG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEltcG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb3BlcmF0b3ItbGluZWJyZWFrJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2JlZm9yZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgICAgICc9JzogJ2FmdGVyJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvcXVvdGVzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ3NpbmdsZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dUZW1wbGF0ZUxpdGVyYWxzOiAnbmV2ZXInXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3RyaWN0VHlwZUNoZWNrZWQsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3R5bGlzdGljVHlwZUNoZWNrZWRcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICBlY21hRmVhdHVyZXM6IHtcbiAgICAgICAgICAgIGpzeDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICAgICAgdHNjb25maWdSb290RGlyOiBnZXRSb290Rm9sZGVyKCkgPz8gJydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtZnVuY3Rpb24tcmV0dXJuLXR5cGUnOiAnZXJyb3InLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlJzogWydlcnJvcicsICdtZXRob2QnXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlcyc6IFsnZXJyb3InLCB7XG4gICAgICAgICAgY2hlY2tUaGVuYWJsZXM6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd1ByaXZhdGVDbGFzc1Byb3BlcnR5QWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGFsbG93UHJvdGVjdGVkQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEscUJBQTRCO0FBQzVCLDRCQUFrQztBQUNsQyxnQkFBbUI7QUFFbkIsMkJBQXNCO0FBQ3RCLCtDQUErQztBQUMvQyxvQ0FBOEQ7QUFFOUQsNkJBQXVCO0FBRXZCLHNDQUF1QjtBQUN2Qix5Q0FBZ0Q7QUFDaEQsb0JBQTZCO0FBQzdCLHFCQUFvQjtBQUNwQixxQkFBMkI7QUFFM0IsK0JBQXFCO0FBRXJCLHdDQUF3QztBQUN4QyxrQkFBcUI7QUFDckIsa0JBQThCO0FBQzlCLHlDQUE4QztBQUM5Qyx1Q0FBdUM7QUF5QmhDLE1BQU0sb0JBQW9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZixrQkFBNEIsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSzdC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QXNCO0FBQUEsUUFDeEIsQ0FBQztBQUFBLFFBQ0Qsb0NBQW9DLENBQUMsU0FBUztBQUFBLFVBQzVDLGNBQWM7QUFBQSxZQUNaO0FBQUEsVUFDRjtBQUFBLFFBQ0YsQ0FBQztBQUFBLFFBQ0QscUNBQXFDO0FBQUEsVUFDbkM7QUFBQSxVQUNBO0FBQUEsWUFDRSxNQUFNO0FBQUEsWUFDTixtQkFBbUI7QUFBQSxZQUNuQixjQUFjO0FBQUEsWUFDZCwyQkFBMkI7QUFBQSxZQUMzQixnQ0FBZ0M7QUFBQSxZQUNoQyxvQkFBb0I7QUFBQSxZQUNwQixtQkFBbUI7QUFBQSxVQUNyQjtBQUFBLFFBQ0Y7QUFBQSxRQUNBLHNDQUFzQztBQUFBLE1BQ3hDO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLE9BQU8sUUFBUTtBQUFBLE1BQ2YsT0FBTztBQUFBLFFBQ0wsbUNBQW1DLENBQUMsU0FBUztBQUFBLFVBQzNDLGlDQUFpQztBQUFBLFVBQ2pDLG1DQUFtQztBQUFBLFFBQ3JDLENBQUM7QUFBQSxRQUNELHFDQUFxQztBQUFBLE1BQ3ZDO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLFVBQVU7QUFBQSxRQUNSLE9BQU87QUFBQSxVQUNMLFNBQVM7QUFBQSxRQUNYO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsiY29tbWVudHNDb25maWdzIiwgImVzbGludCIsICJlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MiLCAibm9kZVBsdWdpbiIsICJvYnNpZGlhbm1kIiwgImdsb2JhbHMiLCAicGVyZmVjdGlvbmlzdENvbmZpZ3MiLCAic3R5bGlzdGljIiwgInRzZXNsaW50Il0KfQo=
|
|
@@ -198,4 +198,4 @@ const noRestrictedSyntaxRuleEntries = [
|
|
|
198
198
|
0 && (module.exports = {
|
|
199
199
|
noRestrictedSyntaxRuleEntries
|
|
200
200
|
});
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIGBuby1yZXN0cmljdGVkLXN5bnRheGAgcnVsZSBlbnRyaWVzIGZvciB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKlxuICogRXhwb3J0ZWQgYXMgYSBzdGFuZGFsb25lIGNvbnN0YW50IHNvIGVhY2ggc2VsZWN0b3IgY2FuIGJlIHVuaXQtdGVzdGVkXG4gKiBpbmRlcGVuZGVudGx5IG9mIHRoZSBsYXJnZXIgZGVjbGFyYXRpdmUgY29uZmlnLlxuICovXG5cbi8qKlxuICogQSBzaW5nbGUgYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBlbnRyeSBwYWlyaW5nIGFuIEVTTGludCBBU1Qgc2VsZWN0b3Igd2l0aCBhXG4gKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIGV4cGxhaW5pbmcgd2h5IHRoZSBwYXR0ZXJuIGlzIGJhbm5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnkge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbWVzc2FnZSBzaG93biB3aGVuIHRoZSBzZWxlY3RvciBtYXRjaGVzLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFU0xpbnQgQVNUIHNlbGVjdG9yIGlkZW50aWZ5aW5nIHRoZSBiYW5uZWQgcGF0dGVybi5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdHJpY3RlZC1zeW50YXggZW50cmllcyBlbmZvcmNlZCBieSB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKi9cbmV4cG9ydCBjb25zdCBub1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cmllczogcmVhZG9ubHkgTm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJ5W10gPSBbXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpLiBJbml0aWFsaXplIHRoZSBmaWVsZCBvciBtYWtlIGl0IG9wdGlvbmFsLicsXG4gICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgIHNlbGVjdG9yOiAnVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzIGluIGZ1bmN0aW9uIHBhcmFtZXRlcnMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBJZGVudGlmaWVyIFRTVHlwZUxpdGVyYWwnXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBmdW5jdGlvbiByZXR1cm4gdHlwZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBUU1R5cGVBbm5vdGF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBpbnRlcmZhY2UvbWV0aG9kIHNpZ25hdHVyZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgc2VsZWN0b3I6ICdUU01ldGhvZFNpZ25hdHVyZSBUU1R5cGVMaXRlcmFsJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgYXMgdHlwZSBhcmd1bWVudHMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgc2VsZWN0b3I6ICdUU1R5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiB0eXBlIGFubm90YXRpb25zLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhc3NlcnRpb25zLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gVFNUeXBlTGl0ZXJhbCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdBdm9pZCBkeW5hbWljIGltcG9ydCgpLiBVc2Ugc3RhdGljIGltcG9ydHMgaW5zdGVhZC4gT25seSB1c2UgZHluYW1pYyBpbXBvcnRzIGZvciBsYXp5L2NvbmRpdGlvbmFsIGxvYWRpbmcuJyxcbiAgICBzZWxlY3RvcjogJ0ltcG9ydEV4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgZGVjbGFyZWAgb24gY2xhc3MgcHJvcGVydGllcy4gSW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb3IgdXNlIGEgcmVndWxhciB0eXBlIGFubm90YXRpb24uJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5RGVmaW5pdGlvbltkZWNsYXJlPXRydWVdJ1xuICB9XG5dO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNEJPLE1BQU0sZ0NBQXdFO0FBQUEsRUFDbkY7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs
CHANGED
|
@@ -218,4 +218,4 @@ const noAsyncCallbackToUnsafeReturn = {
|
|
|
218
218
|
MESSAGE_ID,
|
|
219
219
|
noAsyncCallbackToUnsafeReturn
|
|
220
220
|
});
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IG5vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm5cbiAqXG4gKiBSZXBvcnRzIGFuIGVycm9yIHdoZW4gYW4gYXN5bmMgZnVuY3Rpb24gaXMgcGFzc2VkIGFzIGEgY2FsbGJhY2sgYXJndW1lbnRcbiAqIHRvIGEgZnVuY3Rpb24gcGFyYW1ldGVyIHdob3NlIHJldHVybiB0eXBlIGlzIGBhbnlgIG9yIGB1bmtub3duYC4gQmVjYXVzZVxuICogdGhlc2UgdHlwZXMgc2lsZW50bHkgYWNjZXB0IGBQcm9taXNlPFQ+YCwgdGhlIGNhbGxlciB3b24ndCBhd2FpdCB0aGVcbiAqIHJlc3VsdCwgbGVhZGluZyB0byB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zIGF0IHJ1bnRpbWUuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIG9uQ2xpY2soZm46IChldnQ6IE1vdXNlRXZlbnQpID0+IGFueSlcbiAqIGJ1dHRvbi5vbkNsaWNrKGFzeW5jICgpID0+IHtcbiAqICAgYXdhaXQgc29tZUZuKCk7IC8vIFVuaGFuZGxlZCByZWplY3Rpb24gaWYgc29tZUZuIHRocm93c1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBgQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtcHJvbWlzZXNgIG9ubHkgY2F0Y2hlcyBgPT4gdm9pZGAgY2FsbGJhY2tzLlxuICogVGhpcyBydWxlIGNsb3NlcyB0aGUgZ2FwIGZvciBgPT4gYW55YCBhbmQgYD0+IHVua25vd25gIGNhbGxiYWNrcy5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUge1xuICBTaWduYXR1cmUsXG4gIFR5cGUsXG4gIFR5cGVDaGVja2VyLFxuICBUeXBlTm9kZVxufSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtcbiAgaXNJZGVudGlmaWVyLFxuICBpc1R5cGVBbGlhc0RlY2xhcmF0aW9uLFxuICBpc1R5cGVSZWZlcmVuY2VOb2RlLFxuICBpc1VuaW9uVHlwZU5vZGUsXG4gIFN5bWJvbEZsYWdzLFxuICBUeXBlRmxhZ3Ncbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybic7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIFR5cGVTY3JpcHQgdHlwZSBpcyBhIGZ1bmN0aW9uIHR5cGUgd2l0aCBhbiB1bnNhZmVcbiAqIHJldHVybiB0eXBlIGZvciBhc3luYyBjYWxsYmFja3MuXG4gKlxuICogQHBhcmFtIGNoZWNrZXIgLSBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEBwYXJhbSB0eXBlIC0gVGhlIHR5cGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdHlwZSBoYXMgYXQgbGVhc3Qgb25lIGNhbGwgc2lnbmF0dXJlIHdpdGggYW4gdW5zYWZlIHJldHVybi5cbiAqL1xuZnVuY3Rpb24gaGFzVW5zYWZlUmV0dXJuQ2FsbFNpZ25hdHVyZShjaGVja2VyOiBUeXBlQ2hlY2tlciwgdHlwZTogVHlwZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZS5nZXRDYWxsU2lnbmF0dXJlcygpLnNvbWUoKHNpZykgPT4gaXNVbnNhZmVSZXR1cm5TaWduYXR1cmUoY2hlY2tlciwgc2lnKSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGlzIGFuIGFzeW5jIGZ1bmN0aW9uIGV4cHJlc3Npb24gKGFycm93IG9yIHJlZ3VsYXIpLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gQVNUIG5vZGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYW4gYXN5bmMgYXJyb3cgb3IgZnVuY3Rpb24gZXhwcmVzc2lvbi5cbiAqL1xuZnVuY3Rpb24gaXNBc3luY0Z1bmN0aW9uTm9kZShub2RlOiBUU0VTVHJlZS5Ob2RlKTogbm9kZSBpcyBUU0VTVHJlZS5BcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiB8IFRTRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvbiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuXG4gIHJldHVybiAobm9kZS50eXBlID09PSAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24nIHx8IG5vZGUudHlwZSA9PT0gJ0Z1bmN0aW9uRXhwcmVzc2lvbicpICYmIG5vZGUuYXN5bmM7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlIC0tIEJpdHdpc2UgZmxhZyBtYXNrIGlzIGlkaW9tYXRpYyBmb3IgVHlwZVNjcmlwdCBjb21waWxlciBBUEkuXG5jb25zdCBVTlNBRkVfUkVUVVJOX0ZMQUdTID0gVHlwZUZsYWdzLkFueSB8IFR5cGVGbGFncy5Vbmtub3duO1xuXG5jb25zdCBQUk9NSVNFX1RZUEVfTkFNRVMgPSBuZXcgU2V0KFsnUHJvbWlzZScsICdQcm9taXNlTGlrZSddKTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHR5cGUgbm9kZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byBgUHJvbWlzZWAgb3IgYFByb21pc2VMaWtlYCxcbiAqIGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIGEgdHlwZSBhbGlhcy4gVGhpcyBpbmRpY2F0ZXMgdGhlIGNhbGxlciBleHBsaWNpdGx5XG4gKiBhY2NvdW50cyBmb3IgcHJvbWlzZSByZXR1cm5zLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSB0eXBlIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSByZWZlcmVuY2VzIGBQcm9taXNlYCBvciBgUHJvbWlzZUxpa2VgLlxuICovXG5mdW5jdGlvbiBjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlcjogVHlwZUNoZWNrZXIsIG5vZGU6IFR5cGVOb2RlKTogYm9vbGVhbiB7XG4gIGlmIChpc1VuaW9uVHlwZU5vZGUobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS50eXBlcy5zb21lKChtZW1iZXIpID0+IGNvbnRhaW5zUHJvbWlzZVJlZmVyZW5jZShjaGVja2VyLCBtZW1iZXIpKTtcbiAgfVxuXG4gIGlmIChpc1R5cGVSZWZlcmVuY2VOb2RlKG5vZGUpKSB7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFF1YWxpZmllZCBuYW1lcyAoZS5nLiwgbnMuUHJvbWlzZSkgYW5kIGltcG9ydCBhbGlhc2VzIHJlcXVpcmUgbXVsdGktZmlsZSBzZXR1cCBub3QgYXZhaWxhYmxlIGluIFJ1bGVUZXN0ZXIuICovXG4gICAgY29uc3QgbmFtZSA9IGlzSWRlbnRpZmllcihub2RlLnR5cGVOYW1lKSA/IG5vZGUudHlwZU5hbWUudGV4dCA6ICcnO1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgaWYgKFBST01JU0VfVFlQRV9OQU1FUy5oYXMobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgdHlwZSBhbGlhcyAoZm9sbG93aW5nIGltcG9ydHMpIGFuZCBjaGVjayBpdHMgZGVmaW5pdGlvbiBib2R5XG4gICAgbGV0IHN5bWJvbCA9IGNoZWNrZXIuZ2V0U3ltYm9sQXRMb2NhdGlvbihub2RlLnR5cGVOYW1lKTtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW1wb3J0IGFsaWFzZXMgcmVxdWlyZSBtdWx0aS1maWxlIHNldHVwIG5vdCBhdmFpbGFibGUgaW4gUnVsZVRlc3Rlci4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgY2hlY2sgaXMgaWRpb21hdGljIGZvciBUeXBlU2NyaXB0IGNvbXBpbGVyIEFQSS5cbiAgICBpZiAoc3ltYm9sICYmIHN5bWJvbC5mbGFncyAmIFN5bWJvbEZsYWdzLkFsaWFzKSB7XG4gICAgICBzeW1ib2wgPSBjaGVja2VyLmdldEFsaWFzZWRTeW1ib2woc3ltYm9sKTtcbiAgICB9XG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICBjb25zdCBkZWNsID0gc3ltYm9sPy5kZWNsYXJhdGlvbnM/LlswXTtcbiAgICBpZiAoZGVjbCAmJiBpc1R5cGVBbGlhc0RlY2xhcmF0aW9uKGRlY2wpKSB7XG4gICAgICByZXR1cm4gY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXIsIGRlY2wudHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBzaWduYXR1cmUgaGFzIGFuIHVuc2FmZSByZXR1cm4gdHlwZSAoYGFueWAgb3IgYHVua25vd25gKVxuICogd2l0aG91dCBleHBsaWNpdGx5IGFjY291bnRpbmcgZm9yIHByb21pc2VzLlxuICpcbiAqIEZsYWdzIGJhcmUgYGFueWAsIGB1bmtub3duYCwgYW5kIHVuaW9ucyBsaWtlIGBhbnkgfCBzdHJpbmdgIHRoYXQgcmVzb2x2ZSB0b1xuICogYGFueWAvYHVua25vd25gIHdpdGhvdXQgaW5jbHVkaW5nIGBQcm9taXNlYC9gUHJvbWlzZUxpa2VgLiBEb2VzIE5PVCBmbGFnIHR5cGVcbiAqIGFsaWFzZXMgbGlrZSBgQXdhaXRhYmxlPFQ+YCBvciB1bmlvbnMgbGlrZSBgYW55IHwgUHJvbWlzZTxhbnk+YCB0aGF0IGV4cGxpY2l0bHlcbiAqIGhhbmRsZSBwcm9taXNlIHJldHVybnMuXG4gKlxuICogQHBhcmFtIGNoZWNrZXIgLSBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEBwYXJhbSBzaWcgLSBUaGUgY2FsbCBzaWduYXR1cmUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgdW5zYWZlIGZvciBhc3luYyBjYWxsYmFja3MuXG4gKi9cbmZ1bmN0aW9uIGlzVW5zYWZlUmV0dXJuU2lnbmF0dXJlKGNoZWNrZXI6IFR5cGVDaGVja2VyLCBzaWc6IFNpZ25hdHVyZSk6IGJvb2xlYW4ge1xuICBjb25zdCByZXR1cm5UeXBlID0gY2hlY2tlci5nZXRSZXR1cm5UeXBlT2ZTaWduYXR1cmUoc2lnKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgY2hlY2sgaXMgaWRpb21hdGljIGZvciBUeXBlU2NyaXB0IGNvbXBpbGVyIEFQSS5cbiAgaWYgKCEocmV0dXJuVHlwZS5mbGFncyAmIFVOU0FGRV9SRVRVUk5fRkxBR1MpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhlIHN5bnRhY3RpYyByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLiBJZiBpdCBjb250YWlucyBhIHJlZmVyZW5jZSB0b1xuICAvLyBQcm9taXNlL1Byb21pc2VMaWtlIChkaXJlY3RseSBvciB2aWEgYSB0eXBlIGFsaWFzKSwgdGhlIGNhbGxlciBleHBsaWNpdGx5XG4gIC8vIEhhbmRsZXMgYXN5bmMgcmV0dXJucyBhbmQgc2hvdWxkIG5vdCBiZSBmbGFnZ2VkLlxuICBjb25zdCBkZWNsID0gc2lnLmdldERlY2xhcmF0aW9uKCk7XG4gIGNvbnN0IHJldHVyblR5cGVOb2RlID0gZGVjbC50eXBlO1xuICBhc3NlcnROb25OdWxsYWJsZShyZXR1cm5UeXBlTm9kZSwgJ1NpZ25hdHVyZSBkZWNsYXJhdGlvbnMgd2l0aCBhbnkvdW5rbm93biByZXR1cm4gYWx3YXlzIGhhdmUgYSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uJyk7XG5cbiAgcmV0dXJuICFjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlciwgcmV0dXJuVHlwZU5vZGUpO1xufVxuXG5leHBvcnQgY29uc3Qgbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm46IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGNvbnRleHQuc291cmNlQ29kZS5wYXJzZXJTZXJ2aWNlcyBhcyBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb247XG4gICAgY29uc3QgY2hlY2tlciA9IHNlcnZpY2VzLnByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsbE5vZGUuYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgYXJnID0gY2FsbE5vZGUuYXJndW1lbnRzW2ldO1xuICAgICAgICAgIGlmICghYXJnIHx8ICFpc0FzeW5jRnVuY3Rpb25Ob2RlKGFyZykpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRzQ2FsbGVlTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoY2FsbE5vZGUuY2FsbGVlKTtcbiAgICAgICAgICBjb25zdCBjYWxsZWVUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NhbGxlZU5vZGUpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBzaWcgb2YgY2FsbGVlVHlwZS5nZXRDYWxsU2lnbmF0dXJlcygpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbSA9IHNpZy5nZXRQYXJhbWV0ZXJzKClbaV07XG4gICAgICAgICAgICBpZiAoIXBhcmFtKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJhbVR5cGUgPSBjaGVja2VyLmdldFR5cGVPZlN5bWJvbChwYXJhbSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbnNhZmVSZXR1cm5DYWxsU2lnbmF0dXJlKGNoZWNrZXIsIHBhcmFtVHlwZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICAgICAgICBub2RlOiBhcmdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Rpc2FsbG93IHBhc3NpbmcgYXN5bmMgZnVuY3Rpb25zIGFzIGNhbGxiYWNrcyB0byBwYXJhbWV0ZXJzIHdpdGggYGFueWAgb3IgYHVua25vd25gIHJldHVybiB0eXBlJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTpcbiAgICAgICAgJ0FzeW5jIGZ1bmN0aW9uIHBhc3NlZCBhcyBjYWxsYmFjayB0byBhIHBhcmFtZXRlciB3aXRoIGBhbnlgL2B1bmtub3duYCByZXR1cm4gdHlwZS4gVGhpcyBtYXkgY2F1c2UgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9ucy4gV3JhcCB0aGUgY2FsbDogYCguLi5hcmdzKSA9PiB7IHlvdXJBc3luY0ZuKC4uLmFyZ3MpOyB9YC4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQ0Esd0JBT087QUFFUCx5QkFBa0M7QUFFM0IsTUFBTSxhQUFhO0FBVTFCLFNBQVMsNkJBQTZCLFNBQXNCLE1BQXFCO0FBQy9FLFNBQU8sS0FBSyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsUUFBUSx3QkFBd0IsU0FBUyxHQUFHLENBQUM7QUFDckY7QUFRQSxTQUFTLG9CQUFvQixNQUE2RjtBQUV4SCxVQUFRLEtBQUssU0FBUyw2QkFBNkIsS0FBSyxTQUFTLHlCQUF5QixLQUFLO0FBQ2pHO0FBR0EsTUFBTSxzQkFBc0IsNEJBQVUsTUFBTSw0QkFBVTtBQUV0RCxNQUFNLHFCQUFxQixvQkFBSSxJQUFJLENBQUMsV0FBVyxhQUFhLENBQUM7QUFXN0QsU0FBUyx5QkFBeUIsU0FBc0IsTUFBeUI7QUFDL0UsVUFBSSxtQ0FBZ0IsSUFBSSxHQUFHO0FBQ3pCLFdBQU8sS0FBSyxNQUFNLEtBQUssQ0FBQyxXQUFXLHlCQUF5QixTQUFTLE1BQU0sQ0FBQztBQUFBLEVBQzlFO0FBRUEsVUFBSSx1Q0FBb0IsSUFBSSxHQUFHO0FBRTdCLFVBQU0sV0FBTyxnQ0FBYSxLQUFLLFFBQVEsSUFBSSxLQUFLLFNBQVMsT0FBTztBQUVoRSxRQUFJLG1CQUFtQixJQUFJLElBQUksR0FBRztBQUNoQyxhQUFPO0FBQUEsSUFDVDtBQUdBLFFBQUksU0FBUyxRQUFRLG9CQUFvQixLQUFLLFFBQVE7QUFHdEQsUUFBSSxVQUFVLE9BQU8sUUFBUSw4QkFBWSxPQUFPO0FBQzlDLGVBQVMsUUFBUSxpQkFBaUIsTUFBTTtBQUFBLElBQzFDO0FBRUEsVUFBTSxPQUFPLFFBQVEsZUFBZSxDQUFDO0FBQ3JDLFFBQUksWUFBUSwwQ0FBdUIsSUFBSSxHQUFHO0FBQ3hDLGFBQU8seUJBQXlCLFNBQVMsS0FBSyxJQUFJO0FBQUEsSUFDcEQ7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUO0FBZUEsU0FBUyx3QkFBd0IsU0FBc0IsS0FBeUI7QUFDOUUsUUFBTSxhQUFhLFFBQVEseUJBQXlCLEdBQUc7QUFHdkQsTUFBSSxFQUFFLFdBQVcsUUFBUSxzQkFBc0I7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFLQSxRQUFNLE9BQU8sSUFBSSxlQUFlO0FBQ2hDLFFBQU0saUJBQWlCLEtBQUs7QUFDNUIsNENBQWtCLGdCQUFnQixxRkFBcUY7QUFFdkgsU0FBTyxDQUFDLHlCQUF5QixTQUFTLGNBQWM7QUFDMUQ7QUFFTyxNQUFNLGdDQUFpRDtBQUFBLEVBQzVELE9BQU8sU0FBUztBQUNkLFVBQU0sV0FBVyxRQUFRLFdBQVc7QUFDcEMsVUFBTSxVQUFVLFNBQVMsUUFBUSxlQUFlO0FBRWhELFdBQU87QUFBQSxNQUNMLGVBQWUsTUFBdUI7QUFDcEMsY0FBTSxXQUFXO0FBRWpCLGlCQUFTLElBQUksR0FBRyxJQUFJLFNBQVMsVUFBVSxRQUFRLEtBQUs7QUFDbEQsZ0JBQU0sTUFBTSxTQUFTLFVBQVUsQ0FBQztBQUNoQyxjQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixHQUFHLEdBQUc7QUFDckM7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sZUFBZSxTQUFTLHNCQUFzQixJQUFJLFNBQVMsTUFBTTtBQUN2RSxnQkFBTSxhQUFhLFFBQVEsa0JBQWtCLFlBQVk7QUFFekQscUJBQVcsT0FBTyxXQUFXLGtCQUFrQixHQUFHO0FBQ2hELGtCQUFNLFFBQVEsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNuQyxnQkFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLFlBQ0Y7QUFFQSxrQkFBTSxZQUFZLFFBQVEsZ0JBQWdCLEtBQUs7QUFFL0MsZ0JBQUksNkJBQTZCLFNBQVMsU0FBUyxHQUFHO0FBQ3BELHNCQUFRLE9BQU87QUFBQSxnQkFDYixXQUFXO0FBQUEsZ0JBQ1gsTUFBTTtBQUFBLGNBQ1IsQ0FBQztBQUNEO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxVQUFVLEdBQ1Q7QUFBQSxJQUNKO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxJQUNULE1BQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IG5vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm5cbiAqXG4gKiBSZXBvcnRzIGFuIGVycm9yIHdoZW4gYW4gYXN5bmMgZnVuY3Rpb24gaXMgcGFzc2VkIGFzIGEgY2FsbGJhY2sgYXJndW1lbnRcbiAqIHRvIGEgZnVuY3Rpb24gcGFyYW1ldGVyIHdob3NlIHJldHVybiB0eXBlIGlzIGBhbnlgIG9yIGB1bmtub3duYC4gQmVjYXVzZVxuICogdGhlc2UgdHlwZXMgc2lsZW50bHkgYWNjZXB0IGBQcm9taXNlPFQ+YCwgdGhlIGNhbGxlciB3b24ndCBhd2FpdCB0aGVcbiAqIHJlc3VsdCwgbGVhZGluZyB0byB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zIGF0IHJ1bnRpbWUuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIG9uQ2xpY2soZm46IChldnQ6IE1vdXNlRXZlbnQpID0+IGFueSlcbiAqIGJ1dHRvbi5vbkNsaWNrKGFzeW5jICgpID0+IHtcbiAqICAgYXdhaXQgc29tZUZuKCk7IC8vIFVuaGFuZGxlZCByZWplY3Rpb24gaWYgc29tZUZuIHRocm93c1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBgQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtcHJvbWlzZXNgIG9ubHkgY2F0Y2hlcyBgPT4gdm9pZGAgY2FsbGJhY2tzLlxuICogVGhpcyBydWxlIGNsb3NlcyB0aGUgZ2FwIGZvciBgPT4gYW55YCBhbmQgYD0+IHVua25vd25gIGNhbGxiYWNrcy5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUge1xuICBTaWduYXR1cmUsXG4gIFR5cGUsXG4gIFR5cGVDaGVja2VyLFxuICBUeXBlTm9kZVxufSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtcbiAgaXNJZGVudGlmaWVyLFxuICBpc1R5cGVBbGlhc0RlY2xhcmF0aW9uLFxuICBpc1R5cGVSZWZlcmVuY2VOb2RlLFxuICBpc1VuaW9uVHlwZU5vZGUsXG4gIFN5bWJvbEZsYWdzLFxuICBUeXBlRmxhZ3Ncbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybic7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIFR5cGVTY3JpcHQgdHlwZSBpcyBhIGZ1bmN0aW9uIHR5cGUgd2l0aCBhbiB1bnNhZmVcbiAqIHJldHVybiB0eXBlIGZvciBhc3luYyBjYWxsYmFja3MuXG4gKlxuICogQHBhcmFtIGNoZWNrZXIgLSBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEBwYXJhbSB0eXBlIC0gVGhlIHR5cGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdHlwZSBoYXMgYXQgbGVhc3Qgb25lIGNhbGwgc2lnbmF0dXJlIHdpdGggYW4gdW5zYWZlIHJldHVybi5cbiAqL1xuZnVuY3Rpb24gaGFzVW5zYWZlUmV0dXJuQ2FsbFNpZ25hdHVyZShjaGVja2VyOiBUeXBlQ2hlY2tlciwgdHlwZTogVHlwZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZS5nZXRDYWxsU2lnbmF0dXJlcygpLnNvbWUoKHNpZykgPT4gaXNVbnNhZmVSZXR1cm5TaWduYXR1cmUoY2hlY2tlciwgc2lnKSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGlzIGFuIGFzeW5jIGZ1bmN0aW9uIGV4cHJlc3Npb24gKGFycm93IG9yIHJlZ3VsYXIpLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gQVNUIG5vZGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYW4gYXN5bmMgYXJyb3cgb3IgZnVuY3Rpb24gZXhwcmVzc2lvbi5cbiAqL1xuZnVuY3Rpb24gaXNBc3luY0Z1bmN0aW9uTm9kZShub2RlOiBUU0VTVHJlZS5Ob2RlKTogbm9kZSBpcyBUU0VTVHJlZS5BcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiB8IFRTRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvbiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuXG4gIHJldHVybiAobm9kZS50eXBlID09PSAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24nIHx8IG5vZGUudHlwZSA9PT0gJ0Z1bmN0aW9uRXhwcmVzc2lvbicpICYmIG5vZGUuYXN5bmM7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlIC0tIEJpdHdpc2UgZmxhZyBtYXNrIGlzIGlkaW9tYXRpYyBmb3IgVHlwZVNjcmlwdCBjb21waWxlciBBUEkuXG5jb25zdCBVTlNBRkVfUkVUVVJOX0ZMQUdTID0gVHlwZUZsYWdzLkFueSB8IFR5cGVGbGFncy5Vbmtub3duO1xuXG5jb25zdCBQUk9NSVNFX1RZUEVfTkFNRVMgPSBuZXcgU2V0KFsnUHJvbWlzZScsICdQcm9taXNlTGlrZSddKTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHR5cGUgbm9kZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byBgUHJvbWlzZWAgb3IgYFByb21pc2VMaWtlYCxcbiAqIGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIGEgdHlwZSBhbGlhcy4gVGhpcyBpbmRpY2F0ZXMgdGhlIGNhbGxlciBleHBsaWNpdGx5XG4gKiBhY2NvdW50cyBmb3IgcHJvbWlzZSByZXR1cm5zLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSB0eXBlIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSByZWZlcmVuY2VzIGBQcm9taXNlYCBvciBgUHJvbWlzZUxpa2VgLlxuICovXG5mdW5jdGlvbiBjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlcjogVHlwZUNoZWNrZXIsIG5vZGU6IFR5cGVOb2RlKTogYm9vbGVhbiB7XG4gIGlmIChpc1VuaW9uVHlwZU5vZGUobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS50eXBlcy5zb21lKChtZW1iZXIpID0+IGNvbnRhaW5zUHJvbWlzZVJlZmVyZW5jZShjaGVja2VyLCBtZW1iZXIpKTtcbiAgfVxuXG4gIGlmIChpc1R5cGVSZWZlcmVuY2VOb2RlKG5vZGUpKSB7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFF1YWxpZmllZCBuYW1lcyAoZS5nLiwgbnMuUHJvbWlzZSkgYW5kIGltcG9ydCBhbGlhc2VzIHJlcXVpcmUgbXVsdGktZmlsZSBzZXR1cCBub3QgYXZhaWxhYmxlIGluIFJ1bGVUZXN0ZXIuICovXG4gICAgY29uc3QgbmFtZSA9IGlzSWRlbnRpZmllcihub2RlLnR5cGVOYW1lKSA/IG5vZGUudHlwZU5hbWUudGV4dCA6ICcnO1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgaWYgKFBST01JU0VfVFlQRV9OQU1FUy5oYXMobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgdHlwZSBhbGlhcyAoZm9sbG93aW5nIGltcG9ydHMpIGFuZCBjaGVjayBpdHMgZGVmaW5pdGlvbiBib2R5XG4gICAgbGV0IHN5bWJvbCA9IGNoZWNrZXIuZ2V0U3ltYm9sQXRMb2NhdGlvbihub2RlLnR5cGVOYW1lKTtcbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW1wb3J0IGFsaWFzZXMgcmVxdWlyZSBtdWx0aS1maWxlIHNldHVwIG5vdCBhdmFpbGFibGUgaW4gUnVsZVRlc3Rlci4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgY2hlY2sgaXMgaWRpb21hdGljIGZvciBUeXBlU2NyaXB0IGNvbXBpbGVyIEFQSS5cbiAgICBpZiAoc3ltYm9sICYmIHN5bWJvbC5mbGFncyAmIFN5bWJvbEZsYWdzLkFsaWFzKSB7XG4gICAgICBzeW1ib2wgPSBjaGVja2VyLmdldEFsaWFzZWRTeW1ib2woc3ltYm9sKTtcbiAgICB9XG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICBjb25zdCBkZWNsID0gc3ltYm9sPy5kZWNsYXJhdGlvbnM/LlswXTtcbiAgICBpZiAoZGVjbCAmJiBpc1R5cGVBbGlhc0RlY2xhcmF0aW9uKGRlY2wpKSB7XG4gICAgICByZXR1cm4gY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXIsIGRlY2wudHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBzaWduYXR1cmUgaGFzIGFuIHVuc2FmZSByZXR1cm4gdHlwZSAoYGFueWAgb3IgYHVua25vd25gKVxuICogd2l0aG91dCBleHBsaWNpdGx5IGFjY291bnRpbmcgZm9yIHByb21pc2VzLlxuICpcbiAqIEZsYWdzIGJhcmUgYGFueWAsIGB1bmtub3duYCwgYW5kIHVuaW9ucyBsaWtlIGBhbnkgfCBzdHJpbmdgIHRoYXQgcmVzb2x2ZSB0b1xuICogYGFueWAvYHVua25vd25gIHdpdGhvdXQgaW5jbHVkaW5nIGBQcm9taXNlYC9gUHJvbWlzZUxpa2VgLiBEb2VzIE5PVCBmbGFnIHR5cGVcbiAqIGFsaWFzZXMgbGlrZSBgQXdhaXRhYmxlPFQ+YCBvciB1bmlvbnMgbGlrZSBgYW55IHwgUHJvbWlzZTxhbnk+YCB0aGF0IGV4cGxpY2l0bHlcbiAqIGhhbmRsZSBwcm9taXNlIHJldHVybnMuXG4gKlxuICogQHBhcmFtIGNoZWNrZXIgLSBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEBwYXJhbSBzaWcgLSBUaGUgY2FsbCBzaWduYXR1cmUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgdW5zYWZlIGZvciBhc3luYyBjYWxsYmFja3MuXG4gKi9cbmZ1bmN0aW9uIGlzVW5zYWZlUmV0dXJuU2lnbmF0dXJlKGNoZWNrZXI6IFR5cGVDaGVja2VyLCBzaWc6IFNpZ25hdHVyZSk6IGJvb2xlYW4ge1xuICBjb25zdCByZXR1cm5UeXBlID0gY2hlY2tlci5nZXRSZXR1cm5UeXBlT2ZTaWduYXR1cmUoc2lnKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgY2hlY2sgaXMgaWRpb21hdGljIGZvciBUeXBlU2NyaXB0IGNvbXBpbGVyIEFQSS5cbiAgaWYgKCEocmV0dXJuVHlwZS5mbGFncyAmIFVOU0FGRV9SRVRVUk5fRkxBR1MpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhlIHN5bnRhY3RpYyByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLiBJZiBpdCBjb250YWlucyBhIHJlZmVyZW5jZSB0b1xuICAvLyBQcm9taXNlL1Byb21pc2VMaWtlIChkaXJlY3RseSBvciB2aWEgYSB0eXBlIGFsaWFzKSwgdGhlIGNhbGxlciBleHBsaWNpdGx5XG4gIC8vIEhhbmRsZXMgYXN5bmMgcmV0dXJucyBhbmQgc2hvdWxkIG5vdCBiZSBmbGFnZ2VkLlxuICBjb25zdCBkZWNsID0gc2lnLmdldERlY2xhcmF0aW9uKCk7XG4gIGNvbnN0IHJldHVyblR5cGVOb2RlID0gZGVjbC50eXBlO1xuICBhc3NlcnROb25OdWxsYWJsZShyZXR1cm5UeXBlTm9kZSwgJ1NpZ25hdHVyZSBkZWNsYXJhdGlvbnMgd2l0aCBhbnkvdW5rbm93biByZXR1cm4gYWx3YXlzIGhhdmUgYSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uJyk7XG5cbiAgcmV0dXJuICFjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlciwgcmV0dXJuVHlwZU5vZGUpO1xufVxuXG5leHBvcnQgY29uc3Qgbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm46IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGNvbnRleHQuc291cmNlQ29kZS5wYXJzZXJTZXJ2aWNlcyBhcyBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb247XG4gICAgY29uc3QgY2hlY2tlciA9IHNlcnZpY2VzLnByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsbE5vZGUuYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgYXJnID0gY2FsbE5vZGUuYXJndW1lbnRzW2ldO1xuICAgICAgICAgIGlmICghYXJnIHx8ICFpc0FzeW5jRnVuY3Rpb25Ob2RlKGFyZykpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRzQ2FsbGVlTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoY2FsbE5vZGUuY2FsbGVlKTtcbiAgICAgICAgICBjb25zdCBjYWxsZWVUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NhbGxlZU5vZGUpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBzaWcgb2YgY2FsbGVlVHlwZS5nZXRDYWxsU2lnbmF0dXJlcygpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbSA9IHNpZy5nZXRQYXJhbWV0ZXJzKClbaV07XG4gICAgICAgICAgICBpZiAoIXBhcmFtKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJhbVR5cGUgPSBjaGVja2VyLmdldFR5cGVPZlN5bWJvbChwYXJhbSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNVbnNhZmVSZXR1cm5DYWxsU2lnbmF0dXJlKGNoZWNrZXIsIHBhcmFtVHlwZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICAgICAgICBub2RlOiBhcmdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Rpc2FsbG93IHBhc3NpbmcgYXN5bmMgZnVuY3Rpb25zIGFzIGNhbGxiYWNrcyB0byBwYXJhbWV0ZXJzIHdpdGggYGFueWAgb3IgYHVua25vd25gIHJldHVybiB0eXBlJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ0FzeW5jIGZ1bmN0aW9uIHBhc3NlZCBhcyBjYWxsYmFjayB0byBhIHBhcmFtZXRlciB3aXRoIGBhbnlgL2B1bmtub3duYCByZXR1cm4gdHlwZS4gVGhpcyBtYXkgY2F1c2UgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9ucy4gV3JhcCB0aGUgY2FsbDogYCguLi5hcmdzKSA9PiB7IHlvdXJBc3luY0ZuKC4uLmFyZ3MpOyB9YC4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQ0Esd0JBT087QUFFUCx5QkFBa0M7QUFFM0IsTUFBTSxhQUFhO0FBVTFCLFNBQVMsNkJBQTZCLFNBQXNCLE1BQXFCO0FBQy9FLFNBQU8sS0FBSyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsUUFBUSx3QkFBd0IsU0FBUyxHQUFHLENBQUM7QUFDckY7QUFRQSxTQUFTLG9CQUFvQixNQUE2RjtBQUV4SCxVQUFRLEtBQUssU0FBUyw2QkFBNkIsS0FBSyxTQUFTLHlCQUF5QixLQUFLO0FBQ2pHO0FBR0EsTUFBTSxzQkFBc0IsNEJBQVUsTUFBTSw0QkFBVTtBQUV0RCxNQUFNLHFCQUFxQixvQkFBSSxJQUFJLENBQUMsV0FBVyxhQUFhLENBQUM7QUFXN0QsU0FBUyx5QkFBeUIsU0FBc0IsTUFBeUI7QUFDL0UsVUFBSSxtQ0FBZ0IsSUFBSSxHQUFHO0FBQ3pCLFdBQU8sS0FBSyxNQUFNLEtBQUssQ0FBQyxXQUFXLHlCQUF5QixTQUFTLE1BQU0sQ0FBQztBQUFBLEVBQzlFO0FBRUEsVUFBSSx1Q0FBb0IsSUFBSSxHQUFHO0FBRTdCLFVBQU0sV0FBTyxnQ0FBYSxLQUFLLFFBQVEsSUFBSSxLQUFLLFNBQVMsT0FBTztBQUVoRSxRQUFJLG1CQUFtQixJQUFJLElBQUksR0FBRztBQUNoQyxhQUFPO0FBQUEsSUFDVDtBQUdBLFFBQUksU0FBUyxRQUFRLG9CQUFvQixLQUFLLFFBQVE7QUFHdEQsUUFBSSxVQUFVLE9BQU8sUUFBUSw4QkFBWSxPQUFPO0FBQzlDLGVBQVMsUUFBUSxpQkFBaUIsTUFBTTtBQUFBLElBQzFDO0FBRUEsVUFBTSxPQUFPLFFBQVEsZUFBZSxDQUFDO0FBQ3JDLFFBQUksWUFBUSwwQ0FBdUIsSUFBSSxHQUFHO0FBQ3hDLGFBQU8seUJBQXlCLFNBQVMsS0FBSyxJQUFJO0FBQUEsSUFDcEQ7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUO0FBZUEsU0FBUyx3QkFBd0IsU0FBc0IsS0FBeUI7QUFDOUUsUUFBTSxhQUFhLFFBQVEseUJBQXlCLEdBQUc7QUFHdkQsTUFBSSxFQUFFLFdBQVcsUUFBUSxzQkFBc0I7QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFLQSxRQUFNLE9BQU8sSUFBSSxlQUFlO0FBQ2hDLFFBQU0saUJBQWlCLEtBQUs7QUFDNUIsNENBQWtCLGdCQUFnQixxRkFBcUY7QUFFdkgsU0FBTyxDQUFDLHlCQUF5QixTQUFTLGNBQWM7QUFDMUQ7QUFFTyxNQUFNLGdDQUFpRDtBQUFBLEVBQzVELE9BQU8sU0FBUztBQUNkLFVBQU0sV0FBVyxRQUFRLFdBQVc7QUFDcEMsVUFBTSxVQUFVLFNBQVMsUUFBUSxlQUFlO0FBRWhELFdBQU87QUFBQSxNQUNMLGVBQWUsTUFBdUI7QUFDcEMsY0FBTSxXQUFXO0FBRWpCLGlCQUFTLElBQUksR0FBRyxJQUFJLFNBQVMsVUFBVSxRQUFRLEtBQUs7QUFDbEQsZ0JBQU0sTUFBTSxTQUFTLFVBQVUsQ0FBQztBQUNoQyxjQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixHQUFHLEdBQUc7QUFDckM7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sZUFBZSxTQUFTLHNCQUFzQixJQUFJLFNBQVMsTUFBTTtBQUN2RSxnQkFBTSxhQUFhLFFBQVEsa0JBQWtCLFlBQVk7QUFFekQscUJBQVcsT0FBTyxXQUFXLGtCQUFrQixHQUFHO0FBQ2hELGtCQUFNLFFBQVEsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNuQyxnQkFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLFlBQ0Y7QUFFQSxrQkFBTSxZQUFZLFFBQVEsZ0JBQWdCLEtBQUs7QUFFL0MsZ0JBQUksNkJBQTZCLFNBQVMsU0FBUyxHQUFHO0FBQ3BELHNCQUFRLE9BQU87QUFBQSxnQkFDYixXQUFXO0FBQUEsZ0JBQ1gsTUFBTTtBQUFBLGNBQ1IsQ0FBQztBQUNEO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxVQUFVLEdBQUc7QUFBQSxJQUNoQjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -239,4 +239,4 @@ function collectAncestorNames(type) {
|
|
|
239
239
|
MESSAGE_ID_MISSING_SUFFIX,
|
|
240
240
|
requireComponentSuffix
|
|
241
241
|
});
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1jb21wb25lbnQtc3VmZml4XG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgY2xhc3MgdGhhdCBleHRlbmRzIGBDb21wb25lbnRgIChmcm9tIE9ic2lkaWFuLFxuICogZGlyZWN0bHkgb3IgdHJhbnNpdGl2ZWx5KSBkb2VzIG5vdCBoYXZlIGEgbmFtZSBlbmRpbmcgd2l0aCBgQ29tcG9uZW50YFxuICogKG9yIGBDb21wb25lbnRCYXNlYCBmb3IgYWJzdHJhY3QgYmFzZSBjbGFzc2VzKS5cbiAqXG4gKiBDbGFzc2VzIHdob3NlIGluaGVyaXRhbmNlIGNoYWluIGluY2x1ZGVzIGFueSBvZiB0aGUgT2JzaWRpYW4gZnJhbWV3b3JrXG4gKiBjbGFzc2VzIHRoYXQgZXh0ZW5kIGBDb21wb25lbnRgIChlLmcuIGBQbHVnaW5gLCBgVmlld2AsXG4gKiBgTWFya2Rvd25SZW5kZXJDaGlsZGAsIGBNZW51YCwgYEhvdmVyUG9wb3ZlcmAsIGBRdWVyeUNvbnRyb2xsZXJgKVxuICogYXJlIGV4Y2x1ZGVkIGJlY2F1c2UgdGhleSBmb2xsb3cgT2JzaWRpYW4ncyBvd24gbmFtaW5nIGNvbnZlbnRpb25zLlxuICpcbiAqIFRoZSBydWxlIHVzZXMgdGhlIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHRvIHdhbGsgdGhlIGZ1bGwgaW5oZXJpdGFuY2VcbiAqIGNoYWluLCBzbyBpdCB3b3JrcyByZWdhcmRsZXNzIG9mIGhvdyBtYW55IGludGVybWVkaWF0ZSBjbGFzc2VzIHNpdFxuICogYmV0d2VlbiB0aGUgdXNlcidzIGNsYXNzIGFuZCBgQ29tcG9uZW50YC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX01JU1NJTkdfU1VGRklYID0gJ3JlcXVpcmVDb21wb25lbnRTdWZmaXgnO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfQUJTVFJBQ1RfTkVFRFNfQkFTRSA9ICdhYnN0cmFjdE5lZWRzQ29tcG9uZW50QmFzZSc7XG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9CQVNFX05PVF9BQlNUUkFDVCA9ICdjb21wb25lbnRCYXNlTm90QWJzdHJhY3QnO1xuXG4vKiogQW5jZXN0b3IgY2xhc3MgbmFtZXMgdGhhdCBvcHQgYSBzdWJ0cmVlIG91dCBvZiB0aGUgc3VmZml4IHJlcXVpcmVtZW50LiAqL1xuY29uc3QgRVhDTFVERURfQU5DRVNUT1JTID0gbmV3IFNldChbJ0hvdmVyUG9wb3ZlcicsICdNYXJrZG93blJlbmRlckNoaWxkJywgJ01lbnUnLCAnUGx1Z2luJywgJ1F1ZXJ5Q29udHJvbGxlcicsICdWaWV3J10pO1xuXG4vKiogVGhlIGFuY2VzdG9yIGNsYXNzIG5hbWUgdGhhdCB0cmlnZ2VycyB0aGUgc3VmZml4IHJlcXVpcmVtZW50LiAqL1xuY29uc3QgUkVRVUlSRURfQU5DRVNUT1IgPSAnQ29tcG9uZW50JztcblxuaW50ZXJmYWNlIFR5cGVXaXRoQmFzZVR5cGVzIHtcbiAgZ2V0QmFzZVR5cGVzPygpOiBUeXBlW10gfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCByZXF1aXJlQ29tcG9uZW50U3VmZml4OiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBjb250ZXh0LnNvdXJjZUNvZGUucGFyc2VyU2VydmljZXMgYXMgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uO1xuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0NsYXNzRGVjbGFyYXRpb25baWRdJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY2hlY2tDbGFzcyhjb250ZXh0LCBzZXJ2aWNlcywgY2hlY2tlciwgbm9kZSk7XG4gICAgICB9LFxuICAgICAgJ0NsYXNzRXhwcmVzc2lvbltpZF0nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjaGVja0NsYXNzKGNvbnRleHQsIHNlcnZpY2VzLCBjaGVja2VyLCBub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdSZXF1aXJlIGNsYXNzZXMgZXh0ZW5kaW5nIGBDb21wb25lbnRgIHRvIGhhdmUgbmFtZXMgZW5kaW5nIHdpdGggYENvbXBvbmVudGAnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURfQUJTVFJBQ1RfTkVFRFNfQkFTRV06ICdBYnN0cmFjdCBjbGFzcyBge3sgY2xhc3NOYW1lIH19YCBleHRlbmRzIGBDb21wb25lbnRgIGJ1dCBpdHMgbmFtZSBkb2VzIG5vdCBlbmQgd2l0aCBgQ29tcG9uZW50QmFzZWAuJyxcbiAgICAgIFtNRVNTQUdFX0lEX0JBU0VfTk9UX0FCU1RSQUNUXTpcbiAgICAgICAgJ0NsYXNzIGB7eyBjbGFzc05hbWUgfX1gIGVuZHMgd2l0aCBgQ29tcG9uZW50QmFzZWAgYnV0IGlzIG5vdCBhYnN0cmFjdC4gT25seSBhYnN0cmFjdCBjbGFzc2VzIG1heSB1c2UgdGhlIGBDb21wb25lbnRCYXNlYCBzdWZmaXguJyxcbiAgICAgIFtNRVNTQUdFX0lEX01JU1NJTkdfU1VGRklYXTogJ0NsYXNzIGB7eyBjbGFzc05hbWUgfX1gIGV4dGVuZHMgYENvbXBvbmVudGAgYnV0IGl0cyBuYW1lIGRvZXMgbm90IGVuZCB3aXRoIGBDb21wb25lbnRgLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2tzIGEgc2luZ2xlIGNsYXNzIGRlY2xhcmF0aW9uIG9yIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAqIEBwYXJhbSBzZXJ2aWNlcyAtIFRoZSBwYXJzZXIgc2VydmljZXMgd2l0aCB0eXBlIGluZm9ybWF0aW9uLlxuICogQHBhcmFtIGNoZWNrZXIgLSBUaGUgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBjbGFzcyBBU1Qgbm9kZS5cbiAqL1xuZnVuY3Rpb24gY2hlY2tDbGFzcyhcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgc2VydmljZXM6IFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbixcbiAgY2hlY2tlcjogUmV0dXJuVHlwZTxQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb25bJ3Byb2dyYW0nXVsnZ2V0VHlwZUNoZWNrZXInXT4sXG4gIG5vZGU6IFJ1bGUuTm9kZVxuKTogdm9pZCB7XG4gIGNvbnN0IGNsYXNzTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuQ2xhc3NEZWNsYXJhdGlvbiB8IFRTRVNUcmVlLkNsYXNzRXhwcmVzc2lvbjtcbiAgY29uc3QgY2xhc3NJZCA9IGNsYXNzTm9kZS5pZDtcblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRVNMaW50IHNlbGVjdG9yIGBbaWRdYCBndWFyYW50ZWVzIGNsYXNzSWQgaXMgcHJlc2VudC4gKi9cbiAgaWYgKCFjbGFzc0lkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgY29uc3QgY2xhc3NOYW1lID0gY2xhc3NJZC5uYW1lO1xuICBjb25zdCB7IGFic3RyYWN0OiBpc0Fic3RyYWN0IH0gPSBjbGFzc05vZGU7XG4gIGNvbnN0IGVuZHNXaXRoQ29tcG9uZW50QmFzZSA9IGNsYXNzTmFtZS5lbmRzV2l0aCgnQ29tcG9uZW50QmFzZScpO1xuICBjb25zdCBlbmRzV2l0aENvbXBvbmVudCA9ICFlbmRzV2l0aENvbXBvbmVudEJhc2UgJiYgY2xhc3NOYW1lLmVuZHNXaXRoKCdDb21wb25lbnQnKTtcblxuICAvLyBDb3JyZWN0OiBub24tYWJzdHJhY3QgZW5kaW5nIHdpdGggQ29tcG9uZW50XG4gIGlmIChlbmRzV2l0aENvbXBvbmVudCAmJiAhaXNBYnN0cmFjdCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIENvcnJlY3Q6IGFic3RyYWN0IGVuZGluZyB3aXRoIENvbXBvbmVudEJhc2VcbiAgaWYgKGVuZHNXaXRoQ29tcG9uZW50QmFzZSAmJiBpc0Fic3RyYWN0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdHNOb2RlID0gc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChjbGFzc05vZGUpO1xuICBjb25zdCBjbGFzc1R5cGUgPSBjaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKHRzTm9kZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGNvbGxlY3RBbmNlc3Rvck5hbWVzKGNsYXNzVHlwZSk7XG5cbiAgaWYgKCFhbmNlc3RvcnMuaGFzKFJFUVVJUkVEX0FOQ0VTVE9SKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZvciAoY29uc3QgZXhjbHVkZWQgb2YgRVhDTFVERURfQU5DRVNUT1JTKSB7XG4gICAgaWYgKGFuY2VzdG9ycy5oYXMoZXhjbHVkZWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKGVuZHNXaXRoQ29tcG9uZW50QmFzZSAmJiAhaXNBYnN0cmFjdCkge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgY2xhc3NOYW1lIH0sXG4gICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfQkFTRV9OT1RfQUJTVFJBQ1QsXG4gICAgICBub2RlXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNBYnN0cmFjdCkge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgY2xhc3NOYW1lIH0sXG4gICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfQUJTVFJBQ1RfTkVFRFNfQkFTRSxcbiAgICAgIG5vZGVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBkYXRhOiB7IGNsYXNzTmFtZSB9LFxuICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX01JU1NJTkdfU1VGRklYLFxuICAgICAgbm9kZVxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIG5hbWVzIG9mIGFsbCBhbmNlc3RvciB0eXBlcyBpbiB0aGUgaW5oZXJpdGFuY2UgY2hhaW4uXG4gKlxuICogQHBhcmFtIHR5cGUgLSBUaGUgVHlwZVNjcmlwdCB0eXBlIHRvIHN0YXJ0IGZyb20uXG4gKiBAcmV0dXJucyBBIHNldCBvZiBhbmNlc3RvciBjbGFzcyBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yTmFtZXModHlwZTogVHlwZSk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgbmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8VHlwZT4oKTtcblxuICB3YWxrQW5jZXN0b3JzKHR5cGUsIG5hbWVzLCB2aXNpdGVkKTtcblxuICByZXR1cm4gbmFtZXM7XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IHdhbGtzIHRoZSBiYXNlIHR5cGVzIG9mIGEgdHlwZSwgY29sbGVjdGluZyB0aGVpciBuYW1lcy5cbiAgICpcbiAgICogQHBhcmFtIGN1cnJlbnRUeXBlIC0gVGhlIGN1cnJlbnQgdHlwZSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0gY29sbGVjdGVkTmFtZXMgLSBUaGUgc2V0IHRvIGFkZCBkaXNjb3ZlcmVkIGFuY2VzdG9yIG5hbWVzIHRvLlxuICAgKiBAcGFyYW0gdmlzaXRlZFR5cGVzIC0gVHlwZXMgYWxyZWFkeSB2aXNpdGVkLCB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzLlxuICAgKi9cbiAgZnVuY3Rpb24gd2Fsa0FuY2VzdG9ycyhjdXJyZW50VHlwZTogVHlwZSwgY29sbGVjdGVkTmFtZXM6IFNldDxzdHJpbmc+LCB2aXNpdGVkVHlwZXM6IFNldDxUeXBlPik6IHZvaWQge1xuICAgIGlmICh2aXNpdGVkVHlwZXMuaGFzKGN1cnJlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpc2l0ZWRUeXBlcy5hZGQoY3VycmVudFR5cGUpO1xuXG4gICAgY29uc3QgYmFzZVR5cGVzID0gKGN1cnJlbnRUeXBlIGFzIFR5cGVXaXRoQmFzZVR5cGVzKS5nZXRCYXNlVHlwZXM/LigpO1xuXG4gICAgaWYgKCFiYXNlVHlwZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGJhc2VUeXBlIG9mIGJhc2VUeXBlcykge1xuICAgICAgY29uc3Qgc3ltYm9sID0gYmFzZVR5cGUuZ2V0U3ltYm9sKCk7XG5cbiAgICAgIGlmIChzeW1ib2wpIHtcbiAgICAgICAgY29sbGVjdGVkTmFtZXMuYWRkKHN5bWJvbC5nZXROYW1lKCkpO1xuICAgICAgfVxuXG4gICAgICB3YWxrQW5jZXN0b3JzKGJhc2VUeXBlLCBjb2xsZWN0ZWROYW1lcywgdmlzaXRlZFR5cGVzKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFB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
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1jb21wb25lbnQtc3VmZml4XG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgY2xhc3MgdGhhdCBleHRlbmRzIGBDb21wb25lbnRgIChmcm9tIE9ic2lkaWFuLFxuICogZGlyZWN0bHkgb3IgdHJhbnNpdGl2ZWx5KSBkb2VzIG5vdCBoYXZlIGEgbmFtZSBlbmRpbmcgd2l0aCBgQ29tcG9uZW50YFxuICogKG9yIGBDb21wb25lbnRCYXNlYCBmb3IgYWJzdHJhY3QgYmFzZSBjbGFzc2VzKS5cbiAqXG4gKiBDbGFzc2VzIHdob3NlIGluaGVyaXRhbmNlIGNoYWluIGluY2x1ZGVzIGFueSBvZiB0aGUgT2JzaWRpYW4gZnJhbWV3b3JrXG4gKiBjbGFzc2VzIHRoYXQgZXh0ZW5kIGBDb21wb25lbnRgIChlLmcuIGBQbHVnaW5gLCBgVmlld2AsXG4gKiBgTWFya2Rvd25SZW5kZXJDaGlsZGAsIGBNZW51YCwgYEhvdmVyUG9wb3ZlcmAsIGBRdWVyeUNvbnRyb2xsZXJgKVxuICogYXJlIGV4Y2x1ZGVkIGJlY2F1c2UgdGhleSBmb2xsb3cgT2JzaWRpYW4ncyBvd24gbmFtaW5nIGNvbnZlbnRpb25zLlxuICpcbiAqIFRoZSBydWxlIHVzZXMgdGhlIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHRvIHdhbGsgdGhlIGZ1bGwgaW5oZXJpdGFuY2VcbiAqIGNoYWluLCBzbyBpdCB3b3JrcyByZWdhcmRsZXNzIG9mIGhvdyBtYW55IGludGVybWVkaWF0ZSBjbGFzc2VzIHNpdFxuICogYmV0d2VlbiB0aGUgdXNlcidzIGNsYXNzIGFuZCBgQ29tcG9uZW50YC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX01JU1NJTkdfU1VGRklYID0gJ3JlcXVpcmVDb21wb25lbnRTdWZmaXgnO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfQUJTVFJBQ1RfTkVFRFNfQkFTRSA9ICdhYnN0cmFjdE5lZWRzQ29tcG9uZW50QmFzZSc7XG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9CQVNFX05PVF9BQlNUUkFDVCA9ICdjb21wb25lbnRCYXNlTm90QWJzdHJhY3QnO1xuXG4vKiogQW5jZXN0b3IgY2xhc3MgbmFtZXMgdGhhdCBvcHQgYSBzdWJ0cmVlIG91dCBvZiB0aGUgc3VmZml4IHJlcXVpcmVtZW50LiAqL1xuY29uc3QgRVhDTFVERURfQU5DRVNUT1JTID0gbmV3IFNldChbJ0hvdmVyUG9wb3ZlcicsICdNYXJrZG93blJlbmRlckNoaWxkJywgJ01lbnUnLCAnUGx1Z2luJywgJ1F1ZXJ5Q29udHJvbGxlcicsICdWaWV3J10pO1xuXG4vKiogVGhlIGFuY2VzdG9yIGNsYXNzIG5hbWUgdGhhdCB0cmlnZ2VycyB0aGUgc3VmZml4IHJlcXVpcmVtZW50LiAqL1xuY29uc3QgUkVRVUlSRURfQU5DRVNUT1IgPSAnQ29tcG9uZW50JztcblxuaW50ZXJmYWNlIFR5cGVXaXRoQmFzZVR5cGVzIHtcbiAgZ2V0QmFzZVR5cGVzPygpOiBUeXBlW10gfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCByZXF1aXJlQ29tcG9uZW50U3VmZml4OiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBjb250ZXh0LnNvdXJjZUNvZGUucGFyc2VyU2VydmljZXMgYXMgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uO1xuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0NsYXNzRGVjbGFyYXRpb25baWRdJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY2hlY2tDbGFzcyhjb250ZXh0LCBzZXJ2aWNlcywgY2hlY2tlciwgbm9kZSk7XG4gICAgICB9LFxuICAgICAgJ0NsYXNzRXhwcmVzc2lvbltpZF0nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjaGVja0NsYXNzKGNvbnRleHQsIHNlcnZpY2VzLCBjaGVja2VyLCBub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdSZXF1aXJlIGNsYXNzZXMgZXh0ZW5kaW5nIGBDb21wb25lbnRgIHRvIGhhdmUgbmFtZXMgZW5kaW5nIHdpdGggYENvbXBvbmVudGAnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURfQUJTVFJBQ1RfTkVFRFNfQkFTRV06ICdBYnN0cmFjdCBjbGFzcyBge3sgY2xhc3NOYW1lIH19YCBleHRlbmRzIGBDb21wb25lbnRgIGJ1dCBpdHMgbmFtZSBkb2VzIG5vdCBlbmQgd2l0aCBgQ29tcG9uZW50QmFzZWAuJyxcbiAgICAgIFtNRVNTQUdFX0lEX0JBU0VfTk9UX0FCU1RSQUNUXTogJ0NsYXNzIGB7eyBjbGFzc05hbWUgfX1gIGVuZHMgd2l0aCBgQ29tcG9uZW50QmFzZWAgYnV0IGlzIG5vdCBhYnN0cmFjdC4gT25seSBhYnN0cmFjdCBjbGFzc2VzIG1heSB1c2UgdGhlIGBDb21wb25lbnRCYXNlYCBzdWZmaXguJyxcbiAgICAgIFtNRVNTQUdFX0lEX01JU1NJTkdfU1VGRklYXTogJ0NsYXNzIGB7eyBjbGFzc05hbWUgfX1gIGV4dGVuZHMgYENvbXBvbmVudGAgYnV0IGl0cyBuYW1lIGRvZXMgbm90IGVuZCB3aXRoIGBDb21wb25lbnRgLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2tzIGEgc2luZ2xlIGNsYXNzIGRlY2xhcmF0aW9uIG9yIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAqIEBwYXJhbSBzZXJ2aWNlcyAtIFRoZSBwYXJzZXIgc2VydmljZXMgd2l0aCB0eXBlIGluZm9ybWF0aW9uLlxuICogQHBhcmFtIGNoZWNrZXIgLSBUaGUgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBjbGFzcyBBU1Qgbm9kZS5cbiAqL1xuZnVuY3Rpb24gY2hlY2tDbGFzcyhcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgc2VydmljZXM6IFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbixcbiAgY2hlY2tlcjogUmV0dXJuVHlwZTxQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb25bJ3Byb2dyYW0nXVsnZ2V0VHlwZUNoZWNrZXInXT4sXG4gIG5vZGU6IFJ1bGUuTm9kZVxuKTogdm9pZCB7XG4gIGNvbnN0IGNsYXNzTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuQ2xhc3NEZWNsYXJhdGlvbiB8IFRTRVNUcmVlLkNsYXNzRXhwcmVzc2lvbjtcbiAgY29uc3QgY2xhc3NJZCA9IGNsYXNzTm9kZS5pZDtcblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRVNMaW50IHNlbGVjdG9yIGBbaWRdYCBndWFyYW50ZWVzIGNsYXNzSWQgaXMgcHJlc2VudC4gKi9cbiAgaWYgKCFjbGFzc0lkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG5cbiAgY29uc3QgY2xhc3NOYW1lID0gY2xhc3NJZC5uYW1lO1xuICBjb25zdCB7IGFic3RyYWN0OiBpc0Fic3RyYWN0IH0gPSBjbGFzc05vZGU7XG4gIGNvbnN0IGVuZHNXaXRoQ29tcG9uZW50QmFzZSA9IGNsYXNzTmFtZS5lbmRzV2l0aCgnQ29tcG9uZW50QmFzZScpO1xuICBjb25zdCBlbmRzV2l0aENvbXBvbmVudCA9ICFlbmRzV2l0aENvbXBvbmVudEJhc2UgJiYgY2xhc3NOYW1lLmVuZHNXaXRoKCdDb21wb25lbnQnKTtcblxuICAvLyBDb3JyZWN0OiBub24tYWJzdHJhY3QgZW5kaW5nIHdpdGggQ29tcG9uZW50XG4gIGlmIChlbmRzV2l0aENvbXBvbmVudCAmJiAhaXNBYnN0cmFjdCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIENvcnJlY3Q6IGFic3RyYWN0IGVuZGluZyB3aXRoIENvbXBvbmVudEJhc2VcbiAgaWYgKGVuZHNXaXRoQ29tcG9uZW50QmFzZSAmJiBpc0Fic3RyYWN0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdHNOb2RlID0gc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChjbGFzc05vZGUpO1xuICBjb25zdCBjbGFzc1R5cGUgPSBjaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKHRzTm9kZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGNvbGxlY3RBbmNlc3Rvck5hbWVzKGNsYXNzVHlwZSk7XG5cbiAgaWYgKCFhbmNlc3RvcnMuaGFzKFJFUVVJUkVEX0FOQ0VTVE9SKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZvciAoY29uc3QgZXhjbHVkZWQgb2YgRVhDTFVERURfQU5DRVNUT1JTKSB7XG4gICAgaWYgKGFuY2VzdG9ycy5oYXMoZXhjbHVkZWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKGVuZHNXaXRoQ29tcG9uZW50QmFzZSAmJiAhaXNBYnN0cmFjdCkge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgY2xhc3NOYW1lIH0sXG4gICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfQkFTRV9OT1RfQUJTVFJBQ1QsXG4gICAgICBub2RlXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNBYnN0cmFjdCkge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgY2xhc3NOYW1lIH0sXG4gICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfQUJTVFJBQ1RfTkVFRFNfQkFTRSxcbiAgICAgIG5vZGVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBkYXRhOiB7IGNsYXNzTmFtZSB9LFxuICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX01JU1NJTkdfU1VGRklYLFxuICAgICAgbm9kZVxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIG5hbWVzIG9mIGFsbCBhbmNlc3RvciB0eXBlcyBpbiB0aGUgaW5oZXJpdGFuY2UgY2hhaW4uXG4gKlxuICogQHBhcmFtIHR5cGUgLSBUaGUgVHlwZVNjcmlwdCB0eXBlIHRvIHN0YXJ0IGZyb20uXG4gKiBAcmV0dXJucyBBIHNldCBvZiBhbmNlc3RvciBjbGFzcyBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gY29sbGVjdEFuY2VzdG9yTmFtZXModHlwZTogVHlwZSk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgbmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8VHlwZT4oKTtcblxuICB3YWxrQW5jZXN0b3JzKHR5cGUsIG5hbWVzLCB2aXNpdGVkKTtcblxuICByZXR1cm4gbmFtZXM7XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IHdhbGtzIHRoZSBiYXNlIHR5cGVzIG9mIGEgdHlwZSwgY29sbGVjdGluZyB0aGVpciBuYW1lcy5cbiAgICpcbiAgICogQHBhcmFtIGN1cnJlbnRUeXBlIC0gVGhlIGN1cnJlbnQgdHlwZSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0gY29sbGVjdGVkTmFtZXMgLSBUaGUgc2V0IHRvIGFkZCBkaXNjb3ZlcmVkIGFuY2VzdG9yIG5hbWVzIHRvLlxuICAgKiBAcGFyYW0gdmlzaXRlZFR5cGVzIC0gVHlwZXMgYWxyZWFkeSB2aXNpdGVkLCB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzLlxuICAgKi9cbiAgZnVuY3Rpb24gd2Fsa0FuY2VzdG9ycyhjdXJyZW50VHlwZTogVHlwZSwgY29sbGVjdGVkTmFtZXM6IFNldDxzdHJpbmc+LCB2aXNpdGVkVHlwZXM6IFNldDxUeXBlPik6IHZvaWQge1xuICAgIGlmICh2aXNpdGVkVHlwZXMuaGFzKGN1cnJlbnRUeXBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpc2l0ZWRUeXBlcy5hZGQoY3VycmVudFR5cGUpO1xuXG4gICAgY29uc3QgYmFzZVR5cGVzID0gKGN1cnJlbnRUeXBlIGFzIFR5cGVXaXRoQmFzZVR5cGVzKS5nZXRCYXNlVHlwZXM/LigpO1xuXG4gICAgaWYgKCFiYXNlVHlwZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGJhc2VUeXBlIG9mIGJhc2VUeXBlcykge1xuICAgICAgY29uc3Qgc3ltYm9sID0gYmFzZVR5cGUuZ2V0U3ltYm9sKCk7XG5cbiAgICAgIGlmIChzeW1ib2wpIHtcbiAgICAgICAgY29sbGVjdGVkTmFtZXMuYWRkKHN5bWJvbC5nZXROYW1lKCkpO1xuICAgICAgfVxuXG4gICAgICB3YWxrQW5jZXN0b3JzKGJhc2VUeXBlLCBjb2xsZWN0ZWROYW1lcywgdmlzaXRlZFR5cGVzKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlCTyxN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
|
|
@@ -173,6 +173,8 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
173
173
|
ObsidianDevUtilsRepoPaths2["StylesCss"] = "styles.css";
|
|
174
174
|
ObsidianDevUtilsRepoPaths2["TestHelpers"] = "test-helpers";
|
|
175
175
|
ObsidianDevUtilsRepoPaths2["TsConfigJson"] = "tsconfig.json";
|
|
176
|
+
ObsidianDevUtilsRepoPaths2["TsConfigValidateDeclarationsCjsJson"] = "tsconfig.validate-declarations-cjs.json";
|
|
177
|
+
ObsidianDevUtilsRepoPaths2["TsConfigValidateDeclarationsJson"] = "tsconfig.validate-declarations.json";
|
|
176
178
|
ObsidianDevUtilsRepoPaths2["TsExtension"] = ".ts";
|
|
177
179
|
ObsidianDevUtilsRepoPaths2["Types"] = "@types";
|
|
178
180
|
return ObsidianDevUtilsRepoPaths2;
|
|
@@ -181,4 +183,4 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
181
183
|
0 && (module.exports = {
|
|
182
184
|
ObsidianDevUtilsRepoPaths
|
|
183
185
|
});
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gKi9cbiAgRGlzdExpYiA9ICdkaXN0L2xpYicsXG5cbiAgLyoqIFRyYW5zcGlsZWQgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIENvbW1vbkpTIEphdmFTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKiogQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuICovXG4gIEluZGV4RGN0cyA9ICdpbmRleC5kLmN0cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEbXRzID0gJ2luZGV4LmQubXRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKiogVHlwZVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleFRzID0gJ2luZGV4LnRzJyxcblxuICAvKiogSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgSnNFeHRlbnNpb24gPSAnLmpzJyxcblxuICAvKiogTGlicmFyeSBDb21tb25KUyBmaWxlLiAqL1xuICBMaWJyYXJ5Q2pzID0gJ2xpYnJhcnkuY2pzJyxcblxuICAvKiogTGlicmFyeSBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBMaWJyYXJ5TWpzID0gJ2xpYnJhcnkubWpzJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTXRzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tdHMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgTWpzRXh0ZW5zaW9uID0gJy5tanMnLFxuXG4gIC8qKiBOb2RlIG1vZHVsZXMgZm9sZGVyLiAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKiBQYWNrYWdlIEpTT04gZmlsZS4gKi9cbiAgUGFja2FnZUpzb24gPSAncGFja2FnZS5qc29uJyxcblxuICAvKiogUm9vdCBmb2xkZXIuICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTY3JpcHRVdGlscyBmb2xkZXIuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NjcmlwdC11dGlscycsXG5cbiAgLyoqIFNvdXJjZSBmb2xkZXIuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBTdGF0aWMgZm9sZGVyLiAqL1xuICBTdGF0aWMgPSAnc3RhdGljJyxcblxuICAvKiogU3R5bGVzIGZvbGRlci4gKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqIFN0eWxlcyBDU1MgZmlsZS4gKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKiBUZXN0IGhlbHBlcnMgZm9sZGVyLiAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIENvbW1vbkpTIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLWNqcy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBFU00gZGVjbGFyYXRpb25zLiAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIFRzRXh0ZW5zaW9uID0gJy50cycsXG5cbiAgLyoqIFR5cGVzIGZvbGRlci4gKi9cbiAgVHlwZXMgPSAnQHR5cGVzJ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV08sSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFFTCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsV0FBUTtBQUdSLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLFVBQU87QUFHUCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGdCQUFhO0FBR2IsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEsMkJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLDJCQUFBLHNEQUFtRDtBQUduRCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEseUNBQXNDO0FBR3RDLEVBQUFBLDJCQUFBLHNDQUFtQztBQUduQyxFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLFdBQVE7QUEvSUUsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIl0KfQo=
|
|
@@ -98,6 +98,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
98
98
|
TestHelpers = "test-helpers",
|
|
99
99
|
/** TypeScript configuration file. */
|
|
100
100
|
TsConfigJson = "tsconfig.json",
|
|
101
|
+
/** TypeScript configuration file that validates the generated CommonJS declarations. */
|
|
102
|
+
TsConfigValidateDeclarationsCjsJson = "tsconfig.validate-declarations-cjs.json",
|
|
103
|
+
/** TypeScript configuration file that validates the generated ESM declarations. */
|
|
104
|
+
TsConfigValidateDeclarationsJson = "tsconfig.validate-declarations.json",
|
|
101
105
|
/** TypeScript file extension. */
|
|
102
106
|
TsExtension = ".ts",
|
|
103
107
|
/** Types folder. */
|