obsidian-dev-utils 83.0.0 → 83.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/dist/dev/main.js +228 -131
  3. package/dist/lib/cjs/abort-controller.cjs +2 -5
  4. package/dist/lib/cjs/blob.cjs +1 -1
  5. package/dist/lib/cjs/function.cjs +1 -1
  6. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  7. package/dist/lib/cjs/html-element.cjs +1 -1
  8. package/dist/lib/cjs/obsidian/async-with-notice.cjs +24 -4
  9. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +13 -0
  10. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +27 -11
  11. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +8 -0
  12. package/dist/lib/cjs/obsidian/constructors/get-bases-context-constructor.cjs +201 -0
  13. package/dist/lib/cjs/obsidian/constructors/get-bases-context-constructor.d.cts +27 -0
  14. package/dist/lib/cjs/obsidian/constructors/{getDomEventsHandlersConstructor.cjs → get-dom-events-handlers-constructor.cjs} +4 -4
  15. package/dist/lib/cjs/obsidian/constructors/index.cjs +7 -4
  16. package/dist/lib/cjs/obsidian/constructors/index.d.cts +2 -1
  17. package/dist/lib/cjs/obsidian/css-class.cjs +2 -1
  18. package/dist/lib/cjs/obsidian/css-class.d.cts +4 -0
  19. package/dist/lib/cjs/obsidian/markdown.cjs +3 -3
  20. package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +1 -1
  21. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +2 -28
  22. package/dist/lib/esm/abort-controller.mjs +2 -5
  23. package/dist/lib/esm/blob.mjs +1 -1
  24. package/dist/lib/esm/function.mjs +1 -1
  25. package/dist/lib/esm/generated-during-build.mjs +2 -2
  26. package/dist/lib/esm/html-element.mjs +1 -1
  27. package/dist/lib/esm/obsidian/async-with-notice.d.mts +13 -0
  28. package/dist/lib/esm/obsidian/async-with-notice.mjs +25 -4
  29. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +8 -0
  30. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +27 -11
  31. package/dist/lib/esm/obsidian/constructors/get-bases-context-constructor.d.mts +27 -0
  32. package/dist/lib/esm/obsidian/constructors/get-bases-context-constructor.mjs +96 -0
  33. package/dist/lib/esm/obsidian/constructors/get-dom-events-handlers-constructor.mjs +131 -0
  34. package/dist/lib/esm/obsidian/constructors/index.d.mts +2 -1
  35. package/dist/lib/esm/obsidian/constructors/index.mjs +5 -3
  36. package/dist/lib/esm/obsidian/css-class.d.mts +4 -0
  37. package/dist/lib/esm/obsidian/css-class.mjs +2 -1
  38. package/dist/lib/esm/obsidian/markdown.mjs +2 -2
  39. package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +1 -1
  40. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +2 -28
  41. package/dist/styles.css +6 -1
  42. package/obsidian/constructors/get-bases-context-constructor/package.json +6 -0
  43. package/obsidian/constructors/get-dom-events-handlers-constructor/package.json +6 -0
  44. package/package.json +12 -12
  45. package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +0 -131
  46. package/obsidian/constructors/getDomEventsHandlersConstructor/package.json +0 -6
  47. /package/dist/lib/cjs/obsidian/constructors/{getDomEventsHandlersConstructor.d.cts → get-dom-events-handlers-constructor.d.cts} +0 -0
  48. /package/dist/lib/esm/obsidian/constructors/{getDomEventsHandlersConstructor.d.mts → get-dom-events-handlers-constructor.d.mts} +0 -0
@@ -0,0 +1,131 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function initEsm() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ if (globalThis.process) {
9
+ return;
10
+ }
11
+
12
+ const browserProcess = {
13
+ browser: true,
14
+ cwd() {
15
+ return '/';
16
+ },
17
+ env: {},
18
+ platform: 'android'
19
+ };
20
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
21
+ globalThis.process = browserProcess;
22
+ })();
23
+
24
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
25
+ var __typeError = (msg) => {
26
+ throw TypeError(msg);
27
+ };
28
+ var __using = (stack, value, async) => {
29
+ if (value != null) {
30
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
31
+ var dispose, inner;
32
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
33
+ if (dispose === void 0) {
34
+ dispose = value[__knownSymbol("dispose")];
35
+ if (async) inner = dispose;
36
+ }
37
+ if (typeof dispose !== "function") __typeError("Object not disposable");
38
+ if (inner) dispose = function() {
39
+ try {
40
+ inner.call(this);
41
+ } catch (e) {
42
+ return Promise.reject(e);
43
+ }
44
+ };
45
+ stack.push([async, dispose, value]);
46
+ } else if (async) {
47
+ stack.push([async]);
48
+ }
49
+ return value;
50
+ };
51
+ var __callDispose = (stack, error, hasError) => {
52
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
53
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
54
+ };
55
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
56
+ var next = (it) => {
57
+ while (it = stack.pop()) {
58
+ try {
59
+ var result = it[1] && it[1].call(it[2]);
60
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
61
+ } catch (e) {
62
+ fail(e);
63
+ }
64
+ }
65
+ if (hasError) throw error;
66
+ };
67
+ return next();
68
+ };
69
+ import { MarkdownPreviewRenderer } from "obsidian";
70
+ import { retryWithTimeout } from "../../async.mjs";
71
+ import { assertNonNullable } from "../../type-guards.mjs";
72
+ import { MonkeyAroundComponent } from "../components/monkey-around-component.mjs";
73
+ import { trashSafe } from "../vault.mjs";
74
+ class MarkdownPreviewRendererRegisterDomEventsPatchComponent extends MonkeyAroundComponent {
75
+ domEventsHandlersConstructor = null;
76
+ onload() {
77
+ this.registerMethodPatch({
78
+ methodName: "registerDomEvents",
79
+ obj: MarkdownPreviewRenderer,
80
+ patchHandler: ({
81
+ fallback,
82
+ originalArgs: [, handlers]
83
+ }) => {
84
+ this.domEventsHandlersConstructor = handlers.constructor;
85
+ fallback();
86
+ }
87
+ });
88
+ }
89
+ }
90
+ async function getDomEventsHandlersConstructor(app) {
91
+ let mdFile = app.vault.getMarkdownFiles()[0];
92
+ let shouldDelete = false;
93
+ if (!mdFile) {
94
+ mdFile = await app.vault.create("__temp.md", "");
95
+ shouldDelete = true;
96
+ }
97
+ try {
98
+ var _stack = [];
99
+ try {
100
+ const patch = __using(_stack, new MarkdownPreviewRendererRegisterDomEventsPatchComponent());
101
+ patch.load();
102
+ const leaf = app.workspace.getLeaf(true);
103
+ await leaf.openFile(mdFile, {
104
+ active: true,
105
+ state: { mode: "preview" }
106
+ });
107
+ try {
108
+ await retryWithTimeout({
109
+ operationFn: () => patch.domEventsHandlersConstructor !== null,
110
+ operationName: "getDomEventsHandlersConstructor"
111
+ });
112
+ } finally {
113
+ leaf.detach();
114
+ }
115
+ assertNonNullable(patch.domEventsHandlersConstructor, "Failed to get register dom events handlers constructor");
116
+ return patch.domEventsHandlersConstructor;
117
+ } catch (_) {
118
+ var _error = _, _hasError = true;
119
+ } finally {
120
+ __callDispose(_stack, _error, _hasError);
121
+ }
122
+ } finally {
123
+ if (shouldDelete) {
124
+ await trashSafe(app, mdFile);
125
+ }
126
+ }
127
+ }
128
+ export {
129
+ getDomEventsHandlersConstructor
130
+ };
131
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGV4dHJhY3RzIHRoZSBgRG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvcmAgZnJvbSBPYnNpZGlhbidzIHJ1bnRpbWVcbiAqIGJ5IHRlbXBvcmFyaWx5IG9wZW5pbmcgYSBtYXJrZG93biBmaWxlIGluIHByZXZpZXcgbW9kZSBhbmQgaW50ZXJjZXB0aW5nIHRoZVxuICogY29uc3RydWN0b3IgcGFzc2VkIHRvIGBNYXJrZG93blByZXZpZXdSZW5kZXJlci5yZWdpc3RlckRvbUV2ZW50c2AuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBEb21FdmVudHNIYW5kbGVycyxcbiAgRXh0cmFjdENvbnN0cnVjdG9yXG59IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IE1hcmtkb3duUHJldmlld1JlbmRlcmVyIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyByZXRyeVdpdGhUaW1lb3V0IH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBNb25rZXlBcm91bmRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IHRyYXNoU2FmZSB9IGZyb20gJy4uL3ZhdWx0LnRzJztcblxudHlwZSBEb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yID0gRXh0cmFjdENvbnN0cnVjdG9yPERvbUV2ZW50c0hhbmRsZXJzPjtcblxuY2xhc3MgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXJSZWdpc3RlckRvbUV2ZW50c1BhdGNoQ29tcG9uZW50IGV4dGVuZHMgTW9ua2V5QXJvdW5kQ29tcG9uZW50IHtcbiAgcHVibGljIGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3I6IERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJNZXRob2RQYXRjaCh7XG4gICAgICBtZXRob2ROYW1lOiAncmVnaXN0ZXJEb21FdmVudHMnLFxuICAgICAgb2JqOiBNYXJrZG93blByZXZpZXdSZW5kZXJlcixcbiAgICAgIHBhdGNoSGFuZGxlcjogKHtcbiAgICAgICAgZmFsbGJhY2ssXG4gICAgICAgIG9yaWdpbmFsQXJnczogWywgaGFuZGxlcnNdXG4gICAgICB9KSA9PiB7XG4gICAgICAgIHRoaXMuZG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciA9IGhhbmRsZXJzLmNvbnN0cnVjdG9yIGFzIERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3I7XG4gICAgICAgIGZhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3JgIGZyb20gT2JzaWRpYW4ncyBydW50aW1lLlxuICpcbiAqIE9wZW5zIGEgdGVtcG9yYXJ5IG1hcmtkb3duIGZpbGUgaW4gcHJldmlldyBtb2RlIGFuZCBpbnRlcmNlcHRzIHRoZSBjb25zdHJ1Y3RvclxuICogcGFzc2VkIHRvIGBNYXJrZG93blByZXZpZXdSZW5kZXJlci5yZWdpc3RlckRvbUV2ZW50c2AuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBgRG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvcmAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yKGFwcDogQXBwKTogUHJvbWlzZTxEb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yPiB7XG4gIGxldCBtZEZpbGUgPSBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpWzBdO1xuICBsZXQgc2hvdWxkRGVsZXRlID0gZmFsc2U7XG4gIGlmICghbWRGaWxlKSB7XG4gICAgbWRGaWxlID0gYXdhaXQgYXBwLnZhdWx0LmNyZWF0ZSgnX190ZW1wLm1kJywgJycpO1xuICAgIHNob3VsZERlbGV0ZSA9IHRydWU7XG4gIH1cbiAgdHJ5IHtcbiAgICB1c2luZyBwYXRjaCA9IG5ldyBNYXJrZG93blByZXZpZXdSZW5kZXJlclJlZ2lzdGVyRG9tRXZlbnRzUGF0Y2hDb21wb25lbnQoKTtcbiAgICBwYXRjaC5sb2FkKCk7XG5cbiAgICBjb25zdCBsZWFmID0gYXBwLndvcmtzcGFjZS5nZXRMZWFmKHRydWUpO1xuICAgIGF3YWl0IGxlYWYub3BlbkZpbGUobWRGaWxlLCB7XG4gICAgICBhY3RpdmU6IHRydWUsXG4gICAgICBzdGF0ZTogeyBtb2RlOiAncHJldmlldycgfVxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXRyeVdpdGhUaW1lb3V0KHtcbiAgICAgICAgb3BlcmF0aW9uRm46ICgpID0+IHBhdGNoLmRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgIT09IG51bGwsXG4gICAgICAgIG9wZXJhdGlvbk5hbWU6ICdnZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yJ1xuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGxlYWYuZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgYXNzZXJ0Tm9uTnVsbGFibGUocGF0Y2guZG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciwgJ0ZhaWxlZCB0byBnZXQgcmVnaXN0ZXIgZG9tIGV2ZW50cyBoYW5kbGVycyBjb25zdHJ1Y3RvcicpO1xuICAgIHJldHVybiBwYXRjaC5kb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChzaG91bGREZWxldGUpIHtcbiAgICAgIGF3YWl0IHRyYXNoU2FmZShhcHAsIG1kRmlsZSk7XG4gICAgfVxuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFTLCtCQUErQjtBQUV4QyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGlCQUFpQjtBQUkxQixNQUFNLCtEQUErRCxzQkFBc0I7QUFBQSxFQUNsRiwrQkFBb0U7QUFBQSxFQUUzRCxTQUFlO0FBQzdCLFNBQUssb0JBQW9CO0FBQUEsTUFDdkIsWUFBWTtBQUFBLE1BQ1osS0FBSztBQUFBLE1BQ0wsY0FBYyxDQUFDO0FBQUEsUUFDYjtBQUFBLFFBQ0EsY0FBYyxDQUFDLEVBQUUsUUFBUTtBQUFBLE1BQzNCLE1BQU07QUFDSixhQUFLLCtCQUErQixTQUFTO0FBQzdDLGlCQUFTO0FBQUEsTUFDWDtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQVdBLGVBQXNCLGdDQUFnQyxLQUFpRDtBQUNyRyxNQUFJLFNBQVMsSUFBSSxNQUFNLGlCQUFpQixFQUFFLENBQUM7QUFDM0MsTUFBSSxlQUFlO0FBQ25CLE1BQUksQ0FBQyxRQUFRO0FBQ1gsYUFBUyxNQUFNLElBQUksTUFBTSxPQUFPLGFBQWEsRUFBRTtBQUMvQyxtQkFBZTtBQUFBLEVBQ2pCO0FBQ0EsTUFBSTtBQUNGO0FBQUE7QUFBQSxZQUFNLFFBQVEsb0JBQUksdURBQXVEO0FBQ3pFLFlBQU0sS0FBSztBQUVYLFlBQU0sT0FBTyxJQUFJLFVBQVUsUUFBUSxJQUFJO0FBQ3ZDLFlBQU0sS0FBSyxTQUFTLFFBQVE7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixPQUFPLEVBQUUsTUFBTSxVQUFVO0FBQUEsTUFDM0IsQ0FBQztBQUNELFVBQUk7QUFDRixjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCLGFBQWEsTUFBTSxNQUFNLGlDQUFpQztBQUFBLFVBQzFELGVBQWU7QUFBQSxRQUNqQixDQUFDO0FBQUEsTUFDSCxVQUFFO0FBQ0EsYUFBSyxPQUFPO0FBQUEsTUFDZDtBQUVBLHdCQUFrQixNQUFNLDhCQUE4Qix3REFBd0Q7QUFDOUcsYUFBTyxNQUFNO0FBQUEsYUFsQmI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBbUJGLFVBQUU7QUFDQSxRQUFJLGNBQWM7QUFDaEIsWUFBTSxVQUFVLEtBQUssTUFBTTtBQUFBLElBQzdCO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,2 +1,3 @@
1
1
  /// <reference path="../../library.d.mts" />
2
- export * as 'getDomEventsHandlersConstructor' from './getDomEventsHandlersConstructor.mjs';
2
+ export * as 'get-bases-context-constructor' from './get-bases-context-constructor.mjs';
3
+ export * as 'get-dom-events-handlers-constructor' from './get-dom-events-handlers-constructor.mjs';
@@ -21,8 +21,10 @@ if you want to view the source, please visit the github repository of this plugi
21
21
  globalThis.process = browserProcess;
22
22
  })();
23
23
 
24
- import * as getDomEventsHandlersConstructor from "./getDomEventsHandlersConstructor.mjs";
24
+ import * as get_bases_context_constructor from "./get-bases-context-constructor.mjs";
25
+ import * as get_dom_events_handlers_constructor from "./get-dom-events-handlers-constructor.mjs";
25
26
  export {
26
- getDomEventsHandlersConstructor
27
+ get_bases_context_constructor as "get-bases-context-constructor",
28
+ get_dom_events_handlers_constructor as "get-dom-events-handlers-constructor"
27
29
  };
28
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbnN0cnVjdG9ycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdnZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yJyBmcm9tICcuL2dldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLHFDQUF1QzsiLAogICJuYW1lcyI6IFtdCn0K
30
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbnN0cnVjdG9ycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdnZXQtYmFzZXMtY29udGV4dC1jb25zdHJ1Y3RvcicgZnJvbSAnLi9nZXQtYmFzZXMtY29udGV4dC1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgKiBhcyAnZ2V0LWRvbS1ldmVudHMtaGFuZGxlcnMtY29uc3RydWN0b3InIGZyb20gJy4vZ2V0LWRvbS1ldmVudHMtaGFuZGxlcnMtY29uc3RydWN0b3IudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZQSxtQ0FBcUM7QUFDakQsWUFBWUMseUNBQTJDOyIsCiAgIm5hbWVzIjogWyJnZXQtYmFzZXMtY29udGV4dC1jb25zdHJ1Y3RvciIsICJnZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3RvciJdCn0K
@@ -112,6 +112,10 @@ export declare enum CssClass {
112
112
  * A CSS class for the password component.
113
113
  */
114
114
  PasswordComponent = "password-component",
115
+ /**
116
+ * A CSS class for the plugin name shown as the prefix of a notice.
117
+ */
118
+ PluginNoticeName = "plugin-notice-name",
115
119
  /**
116
120
  * A CSS class for the plugin settings tab.
117
121
  */
@@ -48,6 +48,7 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
48
48
  CssClass2["OkButton"] = "ok-button";
49
49
  CssClass2["OverlayValidator"] = "overlay-validator";
50
50
  CssClass2["PasswordComponent"] = "password-component";
51
+ CssClass2["PluginNoticeName"] = "plugin-notice-name";
51
52
  CssClass2["PluginSettingsTab"] = "plugin-settings-tab";
52
53
  CssClass2["PromptModal"] = "prompt-modal";
53
54
  CssClass2["RestoreButton"] = "restore-button";
@@ -69,4 +70,4 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
69
70
  export {
70
71
  CssClass
71
72
  };
72
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Nzcy1jbGFzcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBDU1MgY2xhc3NlcyB1c2VkIGJ5IHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZW51bSBDc3NDbGFzcyB7XG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGFsZXJ0IG1vZGFsLlxuICAgKi9cbiAgQWxlcnRNb2RhbCA9ICdhbGVydC1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICovXG4gIENhbmNlbEJ1dHRvbiA9ICdjYW5jZWwtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBDaGVja2JveENvbXBvbmVudCA9ICdjaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBPYnNpZGlhbidzIGNsYXNzIGZvciBhbiBpbmxpbmUgY29kZSBlbGVtZW50ICh1c2VkIGJ5IGBhcHBlbmRDb2RlQmxvY2tgKS5cbiAgICovXG4gIENvZGUgPSAnY29kZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY29kZSBoaWdobGlnaHRlciBjb21wb25lbnQuXG4gICAqL1xuICBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgPSAnY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGNvbmZpcm0gbW9kYWwuXG4gICAqL1xuICBDb25maXJtTW9kYWwgPSAnY29uZmlybS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZGF0ZSBjb21wb25lbnQuXG4gICAqL1xuICBEYXRlQ29tcG9uZW50ID0gJ2RhdGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGFuZCB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVUaW1lQ29tcG9uZW50ID0gJ2RhdGV0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgRW1haWxDb21wb25lbnQgPSAnZW1haWwtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBmaWxlIGNvbXBvbmVudC5cbiAgICovXG4gIEZpbGVDb21wb25lbnQgPSAnZmlsZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgSXNQbGFjZWhvbGRlciA9ICdpcy1wbGFjZWhvbGRlcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbGlicmFyeSBuYW1lLlxuICAgKi9cbiAgTGlicmFyeU5hbWUgPSAnb2JzaWRpYW4tZGV2LXV0aWxzJyxcblxuICAvKipcbiAgICogT2JzaWRpYW4ncyBjbGFzcyBtYXJraW5nIHJlbmRlcmVkLW1hcmtkb3duIGNvbnRlbnQgKHVzZWQgYnkgYGFwcGVuZENvZGVCbG9ja2ApLlxuICAgKi9cbiAgTWFya2Rvd25SZW5kZXJlZCA9ICdtYXJrZG93bi1yZW5kZXJlZCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbWluaW1pemFibGUgbW9kYWwuXG4gICAqL1xuICBNaW5pbWl6YWJsZU1vZGFsID0gJ21pbmltaXphYmxlLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6ZSBidXR0b24gb2YgdGhlIG1pbmltaXphYmxlIG1vZGFsLlxuICAgKi9cbiAgTWluaW1pemVCdXR0b24gPSAnbWluaW1pemUtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyID0gJ21pbmltaXplZC1tb2RhbC1iYXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRpdGxlIG9mIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyVGl0bGUgPSAnbWluaW1pemVkLW1vZGFsLWJhci10aXRsZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbW9udGggY29tcG9uZW50LlxuICAgKi9cbiAgTW9udGhDb21wb25lbnQgPSAnbW9udGgtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50ID0gJ211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVFbWFpbENvbXBvbmVudCA9ICdtdWx0aXBsZS1lbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG11bHRpcGxlIGZpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVGaWxlQ29tcG9uZW50ID0gJ211bHRpcGxlLWZpbGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSB0ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIE11bHRpcGxlVGV4dENvbXBvbmVudCA9ICdtdWx0aXBsZS10ZXh0LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIE51bWJlckNvbXBvbmVudCA9ICdudW1iZXItY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBvayBidXR0b24uXG4gICAqL1xuICBPa0J1dHRvbiA9ICdvay1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgdmFsaWRhdG9yLlxuICAgKi9cbiAgT3ZlcmxheVZhbGlkYXRvciA9ICdvdmVybGF5LXZhbGlkYXRvcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcGFzc3dvcmQgY29tcG9uZW50LlxuICAgKi9cbiAgUGFzc3dvcmRDb21wb25lbnQgPSAncGFzc3dvcmQtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICAgKi9cbiAgUGx1Z2luU2V0dGluZ3NUYWIgPSAncGx1Z2luLXNldHRpbmdzLXRhYicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcHJvbXB0IG1vZGFsLlxuICAgKi9cbiAgUHJvbXB0TW9kYWwgPSAncHJvbXB0LW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSByZXN0b3JlIGJ1dHRvbiBvZiB0aGUgbWluaW1pemVkIG1vZGFsIGJhci5cbiAgICovXG4gIFJlc3RvcmVCdXR0b24gPSAncmVzdG9yZS1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHNlbGVjdCBpdGVtIG1vZGFsLlxuICAgKi9cbiAgU2VsZWN0SXRlbU1vZGFsID0gJ3NlbGVjdC1pdGVtLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBzZXR0aW5nIGNvbXBvbmVudCB3cmFwcGVyLlxuICAgKi9cbiAgU2V0dGluZ0NvbXBvbmVudFdyYXBwZXIgPSAnc2V0dGluZy1jb21wb25lbnQtd3JhcHBlcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdGVsZXBob25lIGNvbXBvbmVudC5cbiAgICovXG4gIFRlbGVwaG9uZUNvbXBvbmVudCA9ICd0ZWxlcGhvbmUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0ZXh0IGJveC5cbiAgICovXG4gIFRleHRCb3ggPSAndGV4dC1ib3gnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRpbWUgY29tcG9uZW50LlxuICAgKi9cbiAgVGltZUNvbXBvbmVudCA9ICd0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdG9vbHRpcC5cbiAgICovXG4gIFRvb2x0aXAgPSAndG9vbHRpcCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdG9vbHRpcCBhcnJvdy5cbiAgICovXG4gIFRvb2x0aXBBcnJvdyA9ICd0b29sdGlwLWFycm93JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwIHZhbGlkYXRvci5cbiAgICovXG4gIFRvb2x0aXBWYWxpZGF0b3IgPSAndG9vbHRpcC12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRyaS1zdGF0ZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50ID0gJ3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHR5cGVkIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICovXG4gIFR5cGVkRHJvcGRvd25Db21wb25lbnQgPSAndHlwZWQtZHJvcGRvd24tY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgPSAndHlwZWQtbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB1cmwgY29tcG9uZW50LlxuICAgKi9cbiAgVXJsQ29tcG9uZW50ID0gJ3VybC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHdlZWsgY29tcG9uZW50LlxuICAgKi9cbiAgV2Vla0NvbXBvbmVudCA9ICd3ZWVrLWNvbXBvbmVudCdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBSUwsRUFBQUEsVUFBQSxnQkFBYTtBQUtiLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLFVBQU87QUFLUCxFQUFBQSxVQUFBLDhCQUEyQjtBQUszQixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEscUJBQWtCO0FBS2xCLEVBQUFBLFVBQUEsY0FBVztBQUtYLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsaUJBQWM7QUFLZCxFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLHFCQUFrQjtBQUtsQixFQUFBQSxVQUFBLDZCQUEwQjtBQUsxQixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSxvQ0FBaUM7QUFLakMsRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsbUJBQWdCO0FBak5OLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiQ3NzQ2xhc3MiXQp9Cg==
73
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Nzcy1jbGFzcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBDU1MgY2xhc3NlcyB1c2VkIGJ5IHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZW51bSBDc3NDbGFzcyB7XG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGFsZXJ0IG1vZGFsLlxuICAgKi9cbiAgQWxlcnRNb2RhbCA9ICdhbGVydC1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICovXG4gIENhbmNlbEJ1dHRvbiA9ICdjYW5jZWwtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBDaGVja2JveENvbXBvbmVudCA9ICdjaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBPYnNpZGlhbidzIGNsYXNzIGZvciBhbiBpbmxpbmUgY29kZSBlbGVtZW50ICh1c2VkIGJ5IGBhcHBlbmRDb2RlQmxvY2tgKS5cbiAgICovXG4gIENvZGUgPSAnY29kZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY29kZSBoaWdobGlnaHRlciBjb21wb25lbnQuXG4gICAqL1xuICBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgPSAnY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGNvbmZpcm0gbW9kYWwuXG4gICAqL1xuICBDb25maXJtTW9kYWwgPSAnY29uZmlybS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZGF0ZSBjb21wb25lbnQuXG4gICAqL1xuICBEYXRlQ29tcG9uZW50ID0gJ2RhdGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGFuZCB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVUaW1lQ29tcG9uZW50ID0gJ2RhdGV0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgRW1haWxDb21wb25lbnQgPSAnZW1haWwtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBmaWxlIGNvbXBvbmVudC5cbiAgICovXG4gIEZpbGVDb21wb25lbnQgPSAnZmlsZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgSXNQbGFjZWhvbGRlciA9ICdpcy1wbGFjZWhvbGRlcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbGlicmFyeSBuYW1lLlxuICAgKi9cbiAgTGlicmFyeU5hbWUgPSAnb2JzaWRpYW4tZGV2LXV0aWxzJyxcblxuICAvKipcbiAgICogT2JzaWRpYW4ncyBjbGFzcyBtYXJraW5nIHJlbmRlcmVkLW1hcmtkb3duIGNvbnRlbnQgKHVzZWQgYnkgYGFwcGVuZENvZGVCbG9ja2ApLlxuICAgKi9cbiAgTWFya2Rvd25SZW5kZXJlZCA9ICdtYXJrZG93bi1yZW5kZXJlZCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbWluaW1pemFibGUgbW9kYWwuXG4gICAqL1xuICBNaW5pbWl6YWJsZU1vZGFsID0gJ21pbmltaXphYmxlLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6ZSBidXR0b24gb2YgdGhlIG1pbmltaXphYmxlIG1vZGFsLlxuICAgKi9cbiAgTWluaW1pemVCdXR0b24gPSAnbWluaW1pemUtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyID0gJ21pbmltaXplZC1tb2RhbC1iYXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRpdGxlIG9mIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyVGl0bGUgPSAnbWluaW1pemVkLW1vZGFsLWJhci10aXRsZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbW9udGggY29tcG9uZW50LlxuICAgKi9cbiAgTW9udGhDb21wb25lbnQgPSAnbW9udGgtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50ID0gJ211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVFbWFpbENvbXBvbmVudCA9ICdtdWx0aXBsZS1lbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG11bHRpcGxlIGZpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVGaWxlQ29tcG9uZW50ID0gJ211bHRpcGxlLWZpbGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSB0ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIE11bHRpcGxlVGV4dENvbXBvbmVudCA9ICdtdWx0aXBsZS10ZXh0LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIE51bWJlckNvbXBvbmVudCA9ICdudW1iZXItY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBvayBidXR0b24uXG4gICAqL1xuICBPa0J1dHRvbiA9ICdvay1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgdmFsaWRhdG9yLlxuICAgKi9cbiAgT3ZlcmxheVZhbGlkYXRvciA9ICdvdmVybGF5LXZhbGlkYXRvcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcGFzc3dvcmQgY29tcG9uZW50LlxuICAgKi9cbiAgUGFzc3dvcmRDb21wb25lbnQgPSAncGFzc3dvcmQtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwbHVnaW4gbmFtZSBzaG93biBhcyB0aGUgcHJlZml4IG9mIGEgbm90aWNlLlxuICAgKi9cbiAgUGx1Z2luTm90aWNlTmFtZSA9ICdwbHVnaW4tbm90aWNlLW5hbWUnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBQbHVnaW5TZXR0aW5nc1RhYiA9ICdwbHVnaW4tc2V0dGluZ3MtdGFiJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwcm9tcHQgbW9kYWwuXG4gICAqL1xuICBQcm9tcHRNb2RhbCA9ICdwcm9tcHQtbW9kYWwnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHJlc3RvcmUgYnV0dG9uIG9mIHRoZSBtaW5pbWl6ZWQgbW9kYWwgYmFyLlxuICAgKi9cbiAgUmVzdG9yZUJ1dHRvbiA9ICdyZXN0b3JlLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgc2VsZWN0IGl0ZW0gbW9kYWwuXG4gICAqL1xuICBTZWxlY3RJdGVtTW9kYWwgPSAnc2VsZWN0LWl0ZW0tbW9kYWwnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHNldHRpbmcgY29tcG9uZW50IHdyYXBwZXIuXG4gICAqL1xuICBTZXR0aW5nQ29tcG9uZW50V3JhcHBlciA9ICdzZXR0aW5nLWNvbXBvbmVudC13cmFwcGVyJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0ZWxlcGhvbmUgY29tcG9uZW50LlxuICAgKi9cbiAgVGVsZXBob25lQ29tcG9uZW50ID0gJ3RlbGVwaG9uZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRleHQgYm94LlxuICAgKi9cbiAgVGV4dEJveCA9ICd0ZXh0LWJveCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdGltZSBjb21wb25lbnQuXG4gICAqL1xuICBUaW1lQ29tcG9uZW50ID0gJ3RpbWUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwLlxuICAgKi9cbiAgVG9vbHRpcCA9ICd0b29sdGlwJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwIGFycm93LlxuICAgKi9cbiAgVG9vbHRpcEFycm93ID0gJ3Rvb2x0aXAtYXJyb3cnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAgdmFsaWRhdG9yLlxuICAgKi9cbiAgVG9vbHRpcFZhbGlkYXRvciA9ICd0b29sdGlwLXZhbGlkYXRvcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdHJpLXN0YXRlIGNoZWNrYm94IGNvbXBvbmVudC5cbiAgICovXG4gIFRyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQgPSAndHJpLXN0YXRlLWNoZWNrYm94LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdHlwZWQgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgVHlwZWREcm9wZG93bkNvbXBvbmVudCA9ICd0eXBlZC1kcm9wZG93bi1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHR5cGVkIG11bHRpcGxlIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICovXG4gIFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCA9ICd0eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHVybCBjb21wb25lbnQuXG4gICAqL1xuICBVcmxDb21wb25lbnQgPSAndXJsLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgd2VlayBjb21wb25lbnQuXG4gICAqL1xuICBXZWVrQ29tcG9uZW50ID0gJ3dlZWstY29tcG9uZW50J1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTTyxJQUFLLFdBQUwsa0JBQUtBLGNBQUw7QUFJTCxFQUFBQSxVQUFBLGdCQUFhO0FBS2IsRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsVUFBTztBQUtQLEVBQUFBLFVBQUEsOEJBQTJCO0FBSzNCLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLG9CQUFpQjtBQUtqQixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLGlCQUFjO0FBS2QsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSwyQkFBd0I7QUFLeEIsRUFBQUEsVUFBQSwyQkFBd0I7QUFLeEIsRUFBQUEsVUFBQSxxQkFBa0I7QUFLbEIsRUFBQUEsVUFBQSxjQUFXO0FBS1gsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLFVBQUEscUJBQWtCO0FBS2xCLEVBQUFBLFVBQUEsNkJBQTBCO0FBSzFCLEVBQUFBLFVBQUEsd0JBQXFCO0FBS3JCLEVBQUFBLFVBQUEsYUFBVTtBQUtWLEVBQUFBLFVBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLFVBQUEsYUFBVTtBQUtWLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHNCQUFtQjtBQUtuQixFQUFBQSxVQUFBLCtCQUE0QjtBQUs1QixFQUFBQSxVQUFBLDRCQUF5QjtBQUt6QixFQUFBQSxVQUFBLG9DQUFpQztBQUtqQyxFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUF0Tk4sU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJDc3NDbGFzcyJdCn0K
@@ -80,7 +80,7 @@ import {
80
80
  } from "../html-element.mjs";
81
81
  import { normalizeOptionalProperties } from "../object-utils.mjs";
82
82
  import { MonkeyAroundComponent } from "./components/monkey-around-component.mjs";
83
- import { getDomEventsHandlersConstructor } from "./constructors/getDomEventsHandlersConstructor.mjs";
83
+ import { getDomEventsHandlersConstructor } from "./constructors/get-dom-events-handlers-constructor.mjs";
84
84
  import {
85
85
  getAbstractFileOrNull,
86
86
  getPath,
@@ -255,4 +255,4 @@ export {
255
255
  renderExternalLink,
256
256
  renderInternalLink
257
257
  };
258
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgTWFya2Rvd24gY29udGVudCBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIERvbUV2ZW50c0hhbmRsZXJzLFxuICBEb21FdmVudHNIYW5kbGVyc0luZm8sXG4gIEVtYmVkUmVnaXN0cnlFbWJlZEJ5RXh0ZW5zaW9uUmVjb3JkXG59IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBFeHRyYWN0Q29uc3RydWN0b3IgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgSW50ZXJuYWxQbHVnaW5OYW1lIH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdC9pbXBsZW1lbnRhdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3ZlclBvcG92ZXIsXG4gIE1hcmtkb3duUHJldmlld1JlbmRlcmVyLFxuICBNYXJrZG93blJlbmRlcmVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBQYXRoT3JBYnN0cmFjdEZpbGUgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi9hc3luYy50cyc7XG5pbXBvcnQge1xuICBnZXRaSW5kZXgsXG4gIHdhaXRVbnRpbENvbm5lY3RlZFxufSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IE1vbmtleUFyb3VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBnZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3RvcnMvZ2V0RG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQge1xuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldFBhdGgsXG4gIGlzRm9sZGVyXG59IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuXG50eXBlIERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgPSBFeHRyYWN0Q29uc3RydWN0b3I8RG9tRXZlbnRzSGFuZGxlcnM+O1xuXG5sZXQgZG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvcjogRG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciB8IG51bGwgPSBudWxsO1xuXG4vKipcbiAqIFRoZSBwYXJhbXMgZm9yIHRoZSBmdWxsIHJlbmRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdWxsUmVuZGVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIENvbXBvbmVudCBpbnN0YW5jZSB0byB1c2UgZm9yIHRoZSByZW5kZXIuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnQ/OiBDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MRWxlbWVudCB0byByZW5kZXIgdG8uXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBNYXJrZG93biBzdHJpbmcgdG8gcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFya2Rvd246IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byByZWdpc3RlciBsaW5rIGhhbmRsZXJzIGZvciB0aGUgcmVuZGVyZWQgZWxlbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVnaXN0ZXJMaW5rSGFuZGxlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHBhdGggdG8gcmVzb2x2ZSByZWxhdGl2ZSBsaW5rcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcvJ2BcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG1hcmtkb3duVG9IdG1sfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXJrZG93blRvSHRtbFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBNYXJrZG93biBzdHJpbmcgdG8gY29udmVydC5cbiAgICovXG4gIHJlYWRvbmx5IG1hcmtkb3duOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgcGF0aCB0byByZXNvbHZlIHJlbGF0aXZlIGxpbmtzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZWdpc3RlckxpbmtIYW5kbGVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJMaW5rSGFuZGxlcnNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRNTEVsZW1lbnQgdG8gcmVnaXN0ZXIgbGluayBoYW5kbGVycyBmb3IuXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgcGF0aCB0byByZXNvbHZlIHJlbGF0aXZlIGxpbmtzIGZyb20uXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlbmRlckV4dGVybmFsTGlua30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyRXh0ZXJuYWxMaW5rUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGV4dGVybmFsIGxpbmsuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5VGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCB0byByZW5kZXIgdGhlIGV4dGVybmFsIGxpbmsgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlbmRlckludGVybmFsTGlua30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVySW50ZXJuYWxMaW5rUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGludGVybmFsIGxpbmsuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5VGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggb3IgYWJzdHJhY3QgZmlsZSB0byByZW5kZXIgdGhlIGludGVybmFsIGxpbmsgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aE9yQWJzdHJhY3RGaWxlOiBQYXRoT3JBYnN0cmFjdEZpbGU7XG59XG5cbmludGVyZmFjZSBGaXhlZFpJbmRleERvbUV2ZW50c0hhbmRsZXJzSW5mb0NvbnN0cnVjdG9yUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5jbGFzcyBFbWJlZEJ5RXh0ZW5zaW9uTWRQYXRjaENvbXBvbmVudCBleHRlbmRzIE1vbmtleUFyb3VuZENvbXBvbmVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVtYmVkQnlFeHRlbnNpb246IEVtYmVkUmVnaXN0cnlFbWJlZEJ5RXh0ZW5zaW9uUmVjb3JkKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbmxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3Rlck1ldGhvZFBhdGNoKHtcbiAgICAgIG1ldGhvZE5hbWU6ICdtZCcsXG4gICAgICBvYmo6IHRoaXMuZW1iZWRCeUV4dGVuc2lvbixcbiAgICAgIHBhdGNoSGFuZGxlcjogKHtcbiAgICAgICAgZmFsbGJhY2ssXG4gICAgICAgIG9yaWdpbmFsQXJnczogW2NvbnRleHRdXG4gICAgICB9KSA9PiB7XG4gICAgICAgIGNvbnRleHQuZGlzcGxheU1vZGUgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuY2xhc3MgRml4ZWRaSW5kZXhEb21FdmVudHNIYW5kbGVyc0luZm8gaW1wbGVtZW50cyBEb21FdmVudHNIYW5kbGVyc0luZm8ge1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgaG92ZXJQb3BvdmVyKCk6IEhvdmVyUG9wb3ZlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlclBvcG92ZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0IGhvdmVyUG9wb3Zlcihob3ZlclBvcG92ZXI6IEhvdmVyUG9wb3ZlciB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3ZlclBvcG92ZXIgPSBob3ZlclBvcG92ZXI7XG4gICAgaWYgKGhvdmVyUG9wb3ZlciAmJiB0aGlzLnpJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBob3ZlclBvcG92ZXIuaG92ZXJFbC5zZXRDc3NTdHlsZXMoe1xuICAgICAgICB6SW5kZXg6IFN0cmluZyh0aGlzLnpJbmRleClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hvdmVyUG9wb3ZlcjogSG92ZXJQb3BvdmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSB6SW5kZXg/OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogRml4ZWRaSW5kZXhEb21FdmVudHNIYW5kbGVyc0luZm9Db25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHRoaXMuYXBwID0gcGFyYW1zLmFwcDtcbiAgICB0aGlzLnBhdGggPSBwYXJhbXMucGF0aDtcbiAgICB0aGlzLmVsID0gcGFyYW1zLmVsO1xuXG4gICAgaW52b2tlQXN5bmNTYWZlbHkoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgd2FpdFVudGlsQ29ubmVjdGVkKHRoaXMuZWwpO1xuICAgICAgdGhpcy51cGRhdGVaSW5kZXgodGhpcy5lbCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVpJbmRleChlbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnpJbmRleCA9IGdldFpJbmRleChlbCkgKyAxO1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBtYXJrZG93biBhbmQgZW1iZWRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bGwgcmVuZGVyLlxuICogQHJldHVybnMgVGhlIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bGwgcmVuZGVyIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZnVsbFJlbmRlcihwYXJhbXM6IEZ1bGxSZW5kZXJQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgc291cmNlUGF0aCA9IHBhcmFtcy5zb3VyY2VQYXRoID8/ICcvJztcbiAgbGV0IHNob3VsZFVubG9hZENvbXBvbmVudCA9IGZhbHNlO1xuICBsZXQgY29tcG9uZW50OiBDb21wb25lbnQ7XG4gIGlmIChwYXJhbXMuY29tcG9uZW50KSB7XG4gICAgY29tcG9uZW50ID0gcGFyYW1zLmNvbXBvbmVudDtcbiAgfSBlbHNlIHtcbiAgICBjb21wb25lbnQgPSBuZXcgQ29tcG9uZW50KCk7XG4gICAgY29tcG9uZW50LmxvYWQoKTtcbiAgICBzaG91bGRVbmxvYWRDb21wb25lbnQgPSB0cnVlO1xuICB9XG5cbiAgdXNpbmcgXyA9IGNvbXBvbmVudC5hZGRDaGlsZChuZXcgRW1iZWRCeUV4dGVuc2lvbk1kUGF0Y2hDb21wb25lbnQocGFyYW1zLmFwcC5lbWJlZFJlZ2lzdHJ5LmVtYmVkQnlFeHRlbnNpb24pKTtcblxuICBhd2FpdCBNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwYXJhbXMuYXBwLCBwYXJhbXMubWFya2Rvd24sIHBhcmFtcy5lbCwgc291cmNlUGF0aCwgY29tcG9uZW50KTtcblxuICBpZiAoc2hvdWxkVW5sb2FkQ29tcG9uZW50KSB7XG4gICAgY29tcG9uZW50LnVubG9hZCgpO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5zaG91bGRSZWdpc3RlckxpbmtIYW5kbGVycykge1xuICAgIGF3YWl0IHJlZ2lzdGVyTGlua0hhbmRsZXJzKG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxSZWdpc3RlckxpbmtIYW5kbGVyc1BhcmFtcz4oe1xuICAgICAgYXBwOiBwYXJhbXMuYXBwLFxuICAgICAgZWw6IHBhcmFtcy5lbCxcbiAgICAgIHNvdXJjZVBhdGg6IHBhcmFtcy5zb3VyY2VQYXRoXG4gICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgTWFya2Rvd24gdG8gSFRNTC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjb252ZXJzaW9uLlxuICogQHJldHVybnMgVGhlIEhUTUwgc3RyaW5nLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFya2Rvd25Ub0h0bWwocGFyYW1zOiBNYXJrZG93blRvSHRtbFBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgbWFya2Rvd24sXG4gICAgc291cmNlUGF0aFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBjb21wb25lbnQgPSBuZXcgQ29tcG9uZW50KCk7XG4gIGNvbXBvbmVudC5sb2FkKCk7XG4gIGNvbnN0IHJlbmRlckRpdiA9IGNyZWF0ZURpdigpO1xuICBhd2FpdCBNYXJrZG93blJlbmRlcmVyLnJlbmRlcihhcHAsIG1hcmtkb3duLCByZW5kZXJEaXYsIHNvdXJjZVBhdGggPz8gJycsIGNvbXBvbmVudCk7XG4gIGNvbnN0IGh0bWwgPSByZW5kZXJEaXYuaW5uZXJIVE1MO1xuICBjb21wb25lbnQudW5sb2FkKCk7XG4gIHJldHVybiBodG1sO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBsaW5rIGhhbmRsZXJzIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlZ2lzdGVyaW5nIGxpbmsgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWdpc3RlckxpbmtIYW5kbGVycyhwYXJhbXM6IFJlZ2lzdGVyTGlua0hhbmRsZXJzUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgZWwsXG4gICAgc291cmNlUGF0aFxuICB9ID0gcGFyYW1zO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hdG9taWMtdXBkYXRlcyAtLSBObyByYWNlIGNvbmRpdGlvbi5cbiAgZG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvciA/Pz0gYXdhaXQgZ2V0RG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvcihhcHApO1xuICBNYXJrZG93blByZXZpZXdSZW5kZXJlci5yZWdpc3RlckRvbUV2ZW50cyhcbiAgICBlbCxcbiAgICBuZXcgZG9tRXZlbnRzSGFuZGxlcnNDb25zdHJ1Y3RvcihcbiAgICAgIG5ldyBGaXhlZFpJbmRleERvbUV2ZW50c0hhbmRsZXJzSW5mbyh7XG4gICAgICAgIGFwcCxcbiAgICAgICAgZWwsXG4gICAgICAgIHBhdGg6IHNvdXJjZVBhdGggPz8gJydcbiAgICAgIH0pXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gZXh0ZXJuYWwgbGluay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlbmRlcmluZyB0aGUgZXh0ZXJuYWwgbGluay5cbiAqIEByZXR1cm5zIFRoZSBIVE1MQW5jaG9yRWxlbWVudCBjb250YWluaW5nIHRoZSByZW5kZXJlZCBleHRlcm5hbCBsaW5rLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyRXh0ZXJuYWxMaW5rKHBhcmFtczogUmVuZGVyRXh0ZXJuYWxMaW5rUGFyYW1zKTogUHJvbWlzZTxIVE1MQW5jaG9yRWxlbWVudD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHVybFxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBkaXNwbGF5VGV4dCA9IHBhcmFtcy5kaXNwbGF5VGV4dCA/PyB1cmw7XG4gIGNvbnN0IHdyYXBwZXJFbCA9IGNyZWF0ZVNwYW4oKTtcbiAgYXdhaXQgZnVsbFJlbmRlcih7XG4gICAgYXBwLFxuICAgIGVsOiB3cmFwcGVyRWwsXG4gICAgbWFya2Rvd246IGBbJHtkaXNwbGF5VGV4dH1dKCR7dXJsfSlgXG4gIH0pO1xuICBjb25zdCBhRWwgPSB3cmFwcGVyRWwuZmluZCgnYScpIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuICBhd2FpdCByZWdpc3RlckxpbmtIYW5kbGVycyh7XG4gICAgYXBwLFxuICAgIGVsOiBhRWxcbiAgfSk7XG4gIHJldHVybiBhRWw7XG59XG5cbi8qKlxuICogUmVuZGVycyBhbiBpbnRlcm5hbCBsaW5rLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIHRoZSBpbnRlcm5hbCBsaW5rLlxuICogQHJldHVybnMgVGhlIEhUTUxBbmNob3JFbGVtZW50IGNvbnRhaW5pbmcgdGhlIHJlbmRlcmVkIGludGVybmFsIGxpbmsuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJJbnRlcm5hbExpbmsocGFyYW1zOiBSZW5kZXJJbnRlcm5hbExpbmtQYXJhbXMpOiBQcm9taXNlPEhUTUxBbmNob3JFbGVtZW50PiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgcGF0aE9yQWJzdHJhY3RGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGFic3RyYWN0RmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbCh7IGFwcCwgcGF0aE9yRmlsZTogcGF0aE9yQWJzdHJhY3RGaWxlIH0pO1xuICBjb25zdCBwYXRoID0gZ2V0UGF0aChhcHAsIHBhdGhPckFic3RyYWN0RmlsZSk7XG4gIGNvbnN0IGRpc3BsYXlUZXh0ID0gcGFyYW1zLmRpc3BsYXlUZXh0ID8/IHBhdGg7XG4gIGlmIChpc0ZvbGRlcihhYnN0cmFjdEZpbGUpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsKCdhJywgeyB0ZXh0OiBkaXNwbGF5VGV4dCB9LCAoYUVsKSA9PiB7XG4gICAgICBhRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZ0KSA9PiB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBhcHAuaW50ZXJuYWxQbHVnaW5zLmdldEVuYWJsZWRQbHVnaW5CeUlkKEludGVybmFsUGx1Z2luTmFtZS5GaWxlRXhwbG9yZXIpPy5yZXZlYWxJbkZvbGRlcihhYnN0cmFjdEZpbGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCB3cmFwcGVyRWwgPSBjcmVhdGVTcGFuKCk7XG4gIGF3YWl0IGZ1bGxSZW5kZXIoe1xuICAgIGFwcCxcbiAgICBlbDogd3JhcHBlckVsLFxuICAgIG1hcmtkb3duOiBgW1ske3BhdGh9fCR7ZGlzcGxheVRleHR9XV1gXG4gIH0pO1xuICBjb25zdCBhRWwgPSB3cmFwcGVyRWwuZmluZCgnYScpIGFzIEhUTUxBbmNob3JFbGVtZW50O1xuICBhd2FpdCByZWdpc3RlckxpbmtIYW5kbGVycyh7XG4gICAgYXBwLFxuICAgIGVsOiBhRWxcbiAgfSk7XG4gIHJldHVybiBhRWw7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFTLDBCQUEwQjtBQUNuQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBSVAsU0FBUyx5QkFBeUI7QUFDbEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHVDQUF1QztBQUNoRDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFJUCxJQUFJLCtCQUFvRTtBQW1JeEUsTUFBTSx5Q0FBeUMsc0JBQXNCO0FBQUEsRUFD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
258
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgTWFya2Rvd24gY29udGVudCBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIERvbUV2ZW50c0hhbmRsZXJzLFxuICBEb21FdmVudHNIYW5kbGVyc0luZm8sXG4gIEVtYmVkUmVnaXN0cnlFbWJlZEJ5RXh0ZW5zaW9uUmVjb3JkXG59IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBFeHRyYWN0Q29uc3RydWN0b3IgfSBmcm9tICdAb2JzaWRpYW4tdHlwaW5ncy9vYnNpZGlhbi1wdWJsaWMtbGF0ZXN0L2ltcGxlbWVudGF0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgSW50ZXJuYWxQbHVnaW5OYW1lIH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdC9pbXBsZW1lbnRhdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3ZlclBvcG92ZXIsXG4gIE1hcmtkb3duUHJldmlld1JlbmRlcmVyLFxuICBNYXJrZG93blJlbmRlcmVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBQYXRoT3JBYnN0cmFjdEZpbGUgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICcuLi9hc3luYy50cyc7XG5pbXBvcnQge1xuICBnZXRaSW5kZXgsXG4gIHdhaXRVbnRpbENvbm5lY3RlZFxufSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IE1vbmtleUFyb3VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBnZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3RvcnMvZ2V0LWRvbS1ldmVudHMtaGFuZGxlcnMtY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHtcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRQYXRoLFxuICBpc0ZvbGRlclxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcblxudHlwZSBEb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yID0gRXh0cmFjdENvbnN0cnVjdG9yPERvbUV2ZW50c0hhbmRsZXJzPjtcblxubGV0IGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3I6IERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfCBudWxsID0gbnVsbDtcblxuLyoqXG4gKiBUaGUgcGFyYW1zIGZvciB0aGUgZnVsbCByZW5kZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbFJlbmRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBDb21wb25lbnQgaW5zdGFuY2UgdG8gdXNlIGZvciB0aGUgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50PzogQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRNTEVsZW1lbnQgdG8gcmVuZGVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZWw6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgTWFya2Rvd24gc3RyaW5nIHRvIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IG1hcmtkb3duOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVnaXN0ZXIgbGluayBoYW5kbGVycyBmb3IgdGhlIHJlbmRlcmVkIGVsZW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJlZ2lzdGVyTGlua0hhbmRsZXJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBwYXRoIHRvIHJlc29sdmUgcmVsYXRpdmUgbGlua3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnLydgXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBtYXJrZG93blRvSHRtbH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2Rvd25Ub0h0bWxQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgTWFya2Rvd24gc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqL1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHBhdGggdG8gcmVzb2x2ZSByZWxhdGl2ZSBsaW5rcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVnaXN0ZXJMaW5rSGFuZGxlcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyTGlua0hhbmRsZXJzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIEhUTUxFbGVtZW50IHRvIHJlZ2lzdGVyIGxpbmsgaGFuZGxlcnMgZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgZWw6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHBhdGggdG8gcmVzb2x2ZSByZWxhdGl2ZSBsaW5rcyBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZW5kZXJFeHRlcm5hbExpbmt9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckV4dGVybmFsTGlua1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgZm9yIHRoZSBleHRlcm5hbCBsaW5rLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheVRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgdG8gcmVuZGVyIHRoZSBleHRlcm5hbCBsaW5rIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZW5kZXJJbnRlcm5hbExpbmt9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckludGVybmFsTGlua1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgZm9yIHRoZSBpbnRlcm5hbCBsaW5rLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheVRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9yIGFic3RyYWN0IGZpbGUgdG8gcmVuZGVyIHRoZSBpbnRlcm5hbCBsaW5rIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhPckFic3RyYWN0RmlsZTogUGF0aE9yQWJzdHJhY3RGaWxlO1xufVxuXG5pbnRlcmZhY2UgRml4ZWRaSW5kZXhEb21FdmVudHNIYW5kbGVyc0luZm9Db25zdHJ1Y3RvclBhcmFtcyB7XG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuY2xhc3MgRW1iZWRCeUV4dGVuc2lvbk1kUGF0Y2hDb21wb25lbnQgZXh0ZW5kcyBNb25rZXlBcm91bmRDb21wb25lbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbWJlZEJ5RXh0ZW5zaW9uOiBFbWJlZFJlZ2lzdHJ5RW1iZWRCeUV4dGVuc2lvblJlY29yZCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJNZXRob2RQYXRjaCh7XG4gICAgICBtZXRob2ROYW1lOiAnbWQnLFxuICAgICAgb2JqOiB0aGlzLmVtYmVkQnlFeHRlbnNpb24sXG4gICAgICBwYXRjaEhhbmRsZXI6ICh7XG4gICAgICAgIGZhbGxiYWNrLFxuICAgICAgICBvcmlnaW5hbEFyZ3M6IFtjb250ZXh0XVxuICAgICAgfSkgPT4ge1xuICAgICAgICBjb250ZXh0LmRpc3BsYXlNb2RlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBmYWxsYmFjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIEZpeGVkWkluZGV4RG9tRXZlbnRzSGFuZGxlcnNJbmZvIGltcGxlbWVudHMgRG9tRXZlbnRzSGFuZGxlcnNJbmZvIHtcbiAgcHVibGljIHJlYWRvbmx5IGFwcDogQXBwO1xuICBwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGhvdmVyUG9wb3ZlcigpOiBIb3ZlclBvcG92ZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faG92ZXJQb3BvdmVyO1xuICB9XG5cbiAgcHVibGljIHNldCBob3ZlclBvcG92ZXIoaG92ZXJQb3BvdmVyOiBIb3ZlclBvcG92ZXIgfCBudWxsKSB7XG4gICAgdGhpcy5faG92ZXJQb3BvdmVyID0gaG92ZXJQb3BvdmVyO1xuICAgIGlmIChob3ZlclBvcG92ZXIgJiYgdGhpcy56SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgaG92ZXJQb3BvdmVyLmhvdmVyRWwuc2V0Q3NzU3R5bGVzKHtcbiAgICAgICAgekluZGV4OiBTdHJpbmcodGhpcy56SW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ob3ZlclBvcG92ZXI6IEhvdmVyUG9wb3ZlciB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgekluZGV4PzogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEZpeGVkWkluZGV4RG9tRXZlbnRzSGFuZGxlcnNJbmZvQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5wYXRoID0gcGFyYW1zLnBhdGg7XG4gICAgdGhpcy5lbCA9IHBhcmFtcy5lbDtcblxuICAgIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbENvbm5lY3RlZCh0aGlzLmVsKTtcbiAgICAgIHRoaXMudXBkYXRlWkluZGV4KHRoaXMuZWwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVaSW5kZXgoZWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy56SW5kZXggPSBnZXRaSW5kZXgoZWwpICsgMTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgbWFya2Rvd24gYW5kIGVtYmVkcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdWxsIHJlbmRlci5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmdWxsIHJlbmRlciBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZ1bGxSZW5kZXIocGFyYW1zOiBGdWxsUmVuZGVyUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHNvdXJjZVBhdGggPSBwYXJhbXMuc291cmNlUGF0aCA/PyAnLyc7XG4gIGxldCBzaG91bGRVbmxvYWRDb21wb25lbnQgPSBmYWxzZTtcbiAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50O1xuICBpZiAocGFyYW1zLmNvbXBvbmVudCkge1xuICAgIGNvbXBvbmVudCA9IHBhcmFtcy5jb21wb25lbnQ7XG4gIH0gZWxzZSB7XG4gICAgY29tcG9uZW50ID0gbmV3IENvbXBvbmVudCgpO1xuICAgIGNvbXBvbmVudC5sb2FkKCk7XG4gICAgc2hvdWxkVW5sb2FkQ29tcG9uZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHVzaW5nIF8gPSBjb21wb25lbnQuYWRkQ2hpbGQobmV3IEVtYmVkQnlFeHRlbnNpb25NZFBhdGNoQ29tcG9uZW50KHBhcmFtcy5hcHAuZW1iZWRSZWdpc3RyeS5lbWJlZEJ5RXh0ZW5zaW9uKSk7XG5cbiAgYXdhaXQgTWFya2Rvd25SZW5kZXJlci5yZW5kZXIocGFyYW1zLmFwcCwgcGFyYW1zLm1hcmtkb3duLCBwYXJhbXMuZWwsIHNvdXJjZVBhdGgsIGNvbXBvbmVudCk7XG5cbiAgaWYgKHNob3VsZFVubG9hZENvbXBvbmVudCkge1xuICAgIGNvbXBvbmVudC51bmxvYWQoKTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2hvdWxkUmVnaXN0ZXJMaW5rSGFuZGxlcnMpIHtcbiAgICBhd2FpdCByZWdpc3RlckxpbmtIYW5kbGVycyhub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8UmVnaXN0ZXJMaW5rSGFuZGxlcnNQYXJhbXM+KHtcbiAgICAgIGFwcDogcGFyYW1zLmFwcCxcbiAgICAgIGVsOiBwYXJhbXMuZWwsXG4gICAgICBzb3VyY2VQYXRoOiBwYXJhbXMuc291cmNlUGF0aFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIE1hcmtkb3duIHRvIEhUTUwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY29udmVyc2lvbi5cbiAqIEByZXR1cm5zIFRoZSBIVE1MIHN0cmluZy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1hcmtkb3duVG9IdG1sKHBhcmFtczogTWFya2Rvd25Ub0h0bWxQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIG1hcmtkb3duLFxuICAgIHNvdXJjZVBhdGhcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgY29tcG9uZW50ID0gbmV3IENvbXBvbmVudCgpO1xuICBjb21wb25lbnQubG9hZCgpO1xuICBjb25zdCByZW5kZXJEaXYgPSBjcmVhdGVEaXYoKTtcbiAgYXdhaXQgTWFya2Rvd25SZW5kZXJlci5yZW5kZXIoYXBwLCBtYXJrZG93biwgcmVuZGVyRGl2LCBzb3VyY2VQYXRoID8/ICcnLCBjb21wb25lbnQpO1xuICBjb25zdCBodG1sID0gcmVuZGVyRGl2LmlubmVySFRNTDtcbiAgY29tcG9uZW50LnVubG9hZCgpO1xuICByZXR1cm4gaHRtbDtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgbGluayBoYW5kbGVycyBmb3IgdGhlIGdpdmVuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZWdpc3RlcmluZyBsaW5rIGhhbmRsZXJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVnaXN0ZXJMaW5rSGFuZGxlcnMocGFyYW1zOiBSZWdpc3RlckxpbmtIYW5kbGVyc1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGVsLFxuICAgIHNvdXJjZVBhdGhcbiAgfSA9IHBhcmFtcztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXMgLS0gTm8gcmFjZSBjb25kaXRpb24uXG4gIGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgPz89IGF3YWl0IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IoYXBwKTtcbiAgTWFya2Rvd25QcmV2aWV3UmVuZGVyZXIucmVnaXN0ZXJEb21FdmVudHMoXG4gICAgZWwsXG4gICAgbmV3IGRvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IoXG4gICAgICBuZXcgRml4ZWRaSW5kZXhEb21FdmVudHNIYW5kbGVyc0luZm8oe1xuICAgICAgICBhcHAsXG4gICAgICAgIGVsLFxuICAgICAgICBwYXRoOiBzb3VyY2VQYXRoID8/ICcnXG4gICAgICB9KVxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGFuIGV4dGVybmFsIGxpbmsuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgdGhlIGV4dGVybmFsIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgSFRNTEFuY2hvckVsZW1lbnQgY29udGFpbmluZyB0aGUgcmVuZGVyZWQgZXh0ZXJuYWwgbGluay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckV4dGVybmFsTGluayhwYXJhbXM6IFJlbmRlckV4dGVybmFsTGlua1BhcmFtcyk6IFByb21pc2U8SFRNTEFuY2hvckVsZW1lbnQ+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICB1cmxcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgZGlzcGxheVRleHQgPSBwYXJhbXMuZGlzcGxheVRleHQgPz8gdXJsO1xuICBjb25zdCB3cmFwcGVyRWwgPSBjcmVhdGVTcGFuKCk7XG4gIGF3YWl0IGZ1bGxSZW5kZXIoe1xuICAgIGFwcCxcbiAgICBlbDogd3JhcHBlckVsLFxuICAgIG1hcmtkb3duOiBgWyR7ZGlzcGxheVRleHR9XSgke3VybH0pYFxuICB9KTtcbiAgY29uc3QgYUVsID0gd3JhcHBlckVsLmZpbmQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgYXdhaXQgcmVnaXN0ZXJMaW5rSGFuZGxlcnMoe1xuICAgIGFwcCxcbiAgICBlbDogYUVsXG4gIH0pO1xuICByZXR1cm4gYUVsO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gaW50ZXJuYWwgbGluay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlbmRlcmluZyB0aGUgaW50ZXJuYWwgbGluay5cbiAqIEByZXR1cm5zIFRoZSBIVE1MQW5jaG9yRWxlbWVudCBjb250YWluaW5nIHRoZSByZW5kZXJlZCBpbnRlcm5hbCBsaW5rLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVySW50ZXJuYWxMaW5rKHBhcmFtczogUmVuZGVySW50ZXJuYWxMaW5rUGFyYW1zKTogUHJvbWlzZTxIVE1MQW5jaG9yRWxlbWVudD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHBhdGhPckFic3RyYWN0RmlsZVxuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhYnN0cmFjdEZpbGUgPSBnZXRBYnN0cmFjdEZpbGVPck51bGwoeyBhcHAsIHBhdGhPckZpbGU6IHBhdGhPckFic3RyYWN0RmlsZSB9KTtcbiAgY29uc3QgcGF0aCA9IGdldFBhdGgoYXBwLCBwYXRoT3JBYnN0cmFjdEZpbGUpO1xuICBjb25zdCBkaXNwbGF5VGV4dCA9IHBhcmFtcy5kaXNwbGF5VGV4dCA/PyBwYXRoO1xuICBpZiAoaXNGb2xkZXIoYWJzdHJhY3RGaWxlKSkge1xuICAgIHJldHVybiBjcmVhdGVFbCgnYScsIHsgdGV4dDogZGlzcGxheVRleHQgfSwgKGFFbCkgPT4ge1xuICAgICAgYUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2dCkgPT4ge1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXBwLmludGVybmFsUGx1Z2lucy5nZXRFbmFibGVkUGx1Z2luQnlJZChJbnRlcm5hbFBsdWdpbk5hbWUuRmlsZUV4cGxvcmVyKT8ucmV2ZWFsSW5Gb2xkZXIoYWJzdHJhY3RGaWxlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qgd3JhcHBlckVsID0gY3JlYXRlU3BhbigpO1xuICBhd2FpdCBmdWxsUmVuZGVyKHtcbiAgICBhcHAsXG4gICAgZWw6IHdyYXBwZXJFbCxcbiAgICBtYXJrZG93bjogYFtbJHtwYXRofXwke2Rpc3BsYXlUZXh0fV1dYFxuICB9KTtcbiAgY29uc3QgYUVsID0gd3JhcHBlckVsLmZpbmQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgYXdhaXQgcmVnaXN0ZXJMaW5rSGFuZGxlcnMoe1xuICAgIGFwcCxcbiAgICBlbDogYUVsXG4gIH0pO1xuICByZXR1cm4gYUVsO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsU0FBUywwQkFBMEI7QUFDbkM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUlQLFNBQVMseUJBQXlCO0FBQ2xDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxtQ0FBbUM7QUFDNUMsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUyx1Q0FBdUM7QUFDaEQ7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBSVAsSUFBSSwrQkFBb0U7QUFtSXhFLE1BQU0seUNBQXlDLHNCQUFzQjtBQUFB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
@@ -85,4 +85,4 @@ export {
85
85
  initDebugController,
86
86
  initPluginContext
87
87
  };
88
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHR5cGUgeyBEZWJ1Z0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy1jb250cm9sbGVyLnRzJztcblxuaW1wb3J0IHtcbiAgZ2V0RGVidWdDb250cm9sbGVyLFxuICBzaG93SW5pdGlhbERlYnVnTWVzc2FnZVxufSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBMSUJSQVJZX1NUWUxFUyxcbiAgTElCUkFSWV9WRVJTSU9OXG59IGZyb20gJy4uLy4uL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuaW1wb3J0IHtcbiAgTGlicmFyeSxcbiAgTElCUkFSWV9OQU1FXG59IGZyb20gJy4uLy4uL2xpYnJhcnkudHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRXaW5kb3cge1xuICBERUJVRzogRGVidWdDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBTVFlMRVNfSUQgPSBgJHtMSUJSQVJZX05BTUV9LXN0eWxlc2A7XG5cbi8qKlxuICogU2V0cyB0aGUgQ1NTIGNsYXNzIG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsIC0gVGhlIGVsZW1lbnQgdG8gc2V0IHRoZSBDU1MgY2xhc3Mgb2YuXG4gKiBAcGFyYW0gY3NzQ2xhc3NlcyAtIFRoZSBDU1MgY2xhc3NlcyB0byBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQbHVnaW5Dc3NDbGFzc2VzKGVsOiBIVE1MRWxlbWVudCwgY3NzQ2xhc3Nlcz86IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IGNzc0NsYXNzZXNBcnI6IHN0cmluZ1tdID0gW0Nzc0NsYXNzLkxpYnJhcnlOYW1lXTtcbiAgLy8gVGhlIHNjb3BlIGlzIGVtcHR5IHVudGlsIHRoZSBwbHVnaW4gY29udGV4dCBpcyBpbml0aWFsaXplZDsgc2tpcCBpdCBzbyB3ZSBuZXZlciBhZGQgYW4gZW1wdHkgY2xhc3MuXG4gIGlmIChMaWJyYXJ5LmNzc0NsYXNzU2NvcGUpIHtcbiAgICBjc3NDbGFzc2VzQXJyLnB1c2goTGlicmFyeS5jc3NDbGFzc1Njb3BlKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShjc3NDbGFzc2VzKSkge1xuICAgIGNzc0NsYXNzZXNBcnIucHVzaCguLi5jc3NDbGFzc2VzKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgY3NzQ2xhc3NlcyA9PT0gJ3N0cmluZycpIHtcbiAgICBjc3NDbGFzc2VzQXJyLnB1c2goY3NzQ2xhc3Nlcyk7XG4gIH1cbiAgZWwuYWRkQ2xhc3MoLi4uY3NzQ2xhc3Nlc0Fycik7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gKlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdG8gaW5pdGlhbGl6ZSB0aGUgZGVidWcgY29udHJvbGxlciBmb3IuXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byByZWdpc3RlciBjbGVhbnVwIG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdERlYnVnQ29udHJvbGxlcih3aW46IFdpbmRvdywgY29tcG9uZW50OiBDb21wb25lbnQpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luQ29udGV4dFdpbmRvdyA9IHdpbiBhcyBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+O1xuICBjb25zdCBvbGREZWJ1ZyA9IHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUc7XG4gIGNvbnN0IG5ld0RlYnVnID0gZ2V0RGVidWdDb250cm9sbGVyKCk7XG4gIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBuZXdEZWJ1ZztcblxuICBjb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIGlmIChwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID09PSBuZXdEZWJ1Zykge1xuICAgICAgcGx1Z2luQ29udGV4dFdpbmRvdy5ERUJVRyA9IG9sZERlYnVnO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gSUQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0UGx1Z2luQ29udGV4dChwbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIExpYnJhcnkuaW5pdCh7XG4gICAgY3NzQ2xhc3NTY29wZTogcGx1Z2luSWQsXG4gICAgZGVidWdQcmVmaXhOYW1lc3BhY2U6IGAke3BsdWdpbklkfTpgLFxuICAgIHNob3VsZFByaW50U3RhY2tUcmFjZTogdHJ1ZVxuICB9KTtcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQpO1xuXG4gIGNvbnN0IGxhc3RMaWJyYXJ5VmVyc2lvbldyYXBwZXIgPSBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUoJ2xhc3RMaWJyYXJ5VmVyc2lvbicsICcwLjAuMCcpO1xuICBpZiAoY29tcGFyZVZlcnNpb25zKExJQlJBUllfVkVSU0lPTiwgbGFzdExpYnJhcnlWZXJzaW9uV3JhcHBlci52YWx1ZSkgPD0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxhc3RMaWJyYXJ5VmVyc2lvbldyYXBwZXIudmFsdWUgPSBMSUJSQVJZX1ZFUlNJT047XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvcHJlZmVyLWFjdGl2ZS1kb2MgLS0gTmVlZCB0byBhY2Nlc3MgZG9jdW1lbnQuXG4gIGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcihgIyR7U1RZTEVTX0lEfWApPy5yZW1vdmUoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZm9yYmlkZGVuLWVsZW1lbnRzLCBvYnNpZGlhbm1kL3ByZWZlci1hY3RpdmUtZG9jIC0tIFdlIG5lZWQgdG8gY3JlYXRlIGEgc3R5bGUgZWxlbWVudCB0byBhcHBseSB0aGUgbGlicmFyeSBzdHlsZXMuXG4gIGRvY3VtZW50LmhlYWQuY3JlYXRlRWwoJ3N0eWxlJywge1xuICAgIGF0dHI6IHtcbiAgICAgIGlkOiBTVFlMRVNfSURcbiAgICB9LFxuICAgIHRleHQ6IExJQlJBUllfU1RZTEVTXG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLHVCQUF1QjtBQUloQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGdDQUFnQztBQUN6QyxTQUFTLGdCQUFnQjtBQU16QixNQUFNLFlBQVksR0FBRyxZQUFZO0FBUTFCLFNBQVMsb0JBQW9CLElBQWlCLFlBQXNDO0FBQ3pGLFFBQU0sZ0JBQTBCLENBQUMsU0FBUyxXQUFXO0FBRXJELE1BQUksUUFBUSxlQUFlO0FBQ3pCLGtCQUFjLEtBQUssUUFBUSxhQUFhO0FBQUEsRUFDMUM7QUFDQSxNQUFJLE1BQU0sUUFBUSxVQUFVLEdBQUc7QUFDN0Isa0JBQWMsS0FBSyxHQUFHLFVBQVU7QUFBQSxFQUNsQyxXQUFXLE9BQU8sZUFBZSxVQUFVO0FBQ3pDLGtCQUFjLEtBQUssVUFBVTtBQUFBLEVBQy9CO0FBQ0EsS0FBRyxTQUFTLEdBQUcsYUFBYTtBQUM5QjtBQVFPLFNBQVMsb0JBQW9CLEtBQWEsV0FBNEI7QUFDM0UsUUFBTSxzQkFBc0I7QUFDNUIsUUFBTSxXQUFXLG9CQUFvQjtBQUNyQyxRQUFNLFdBQVcsbUJBQW1CO0FBQ3BDLHNCQUFvQixRQUFRO0FBRTVCLFlBQVUsU0FBUyxNQUFNO0FBQ3ZCLFFBQUksb0JBQW9CLFVBQVUsVUFBVTtBQUMxQywwQkFBb0IsUUFBUTtBQUFBLElBQzlCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPTyxTQUFTLGtCQUFrQixVQUF3QjtBQUN4RCxVQUFRLEtBQUs7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLHNCQUFzQixHQUFHLFFBQVE7QUFBQSxJQUNqQyx1QkFBdUI7QUFBQSxFQUN6QixDQUFDO0FBQ0QsMEJBQXdCLFFBQVE7QUFFaEMsUUFBTSw0QkFBNEIseUJBQXlCLHNCQUFzQixPQUFPO0FBQ3hGLE1BQUksZ0JBQWdCLGlCQUFpQiwwQkFBMEIsS0FBSyxLQUFLLEdBQUc7QUFDMUU7QUFBQSxFQUNGO0FBRUEsNEJBQTBCLFFBQVE7QUFHbEMsV0FBUyxLQUFLLGNBQWMsSUFBSSxTQUFTLEVBQUUsR0FBRyxPQUFPO0FBRXJELFdBQVMsS0FBSyxTQUFTLFNBQVM7QUFBQSxJQUM5QixNQUFNO0FBQUEsTUFDSixJQUFJO0FBQUEsSUFDTjtBQUFBLElBQ0EsTUFBTTtBQUFBLEVBQ1IsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
88
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHR5cGUgeyBEZWJ1Z0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy1jb250cm9sbGVyLnRzJztcblxuaW1wb3J0IHtcbiAgZ2V0RGVidWdDb250cm9sbGVyLFxuICBzaG93SW5pdGlhbERlYnVnTWVzc2FnZVxufSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBMSUJSQVJZX1NUWUxFUyxcbiAgTElCUkFSWV9WRVJTSU9OXG59IGZyb20gJy4uLy4uL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuaW1wb3J0IHtcbiAgTGlicmFyeSxcbiAgTElCUkFSWV9OQU1FXG59IGZyb20gJy4uLy4uL2xpYnJhcnkudHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4tZGV2LXV0aWxzLXN0YXRlLnRzJztcbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcblxuaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRXaW5kb3cge1xuICBERUJVRzogRGVidWdDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBTVFlMRVNfSUQgPSBgJHtMSUJSQVJZX05BTUV9LXN0eWxlc2A7XG5cbi8qKlxuICogU2V0cyB0aGUgQ1NTIGNsYXNzIG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsIC0gVGhlIGVsZW1lbnQgdG8gc2V0IHRoZSBDU1MgY2xhc3Mgb2YuXG4gKiBAcGFyYW0gY3NzQ2xhc3NlcyAtIFRoZSBDU1MgY2xhc3NlcyB0byBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQbHVnaW5Dc3NDbGFzc2VzKGVsOiBIVE1MRWxlbWVudCwgY3NzQ2xhc3Nlcz86IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IGNzc0NsYXNzZXNBcnI6IHN0cmluZ1tdID0gW0Nzc0NsYXNzLkxpYnJhcnlOYW1lXTtcbiAgLy8gVGhlIHNjb3BlIGlzIGVtcHR5IHVudGlsIHRoZSBwbHVnaW4gY29udGV4dCBpcyBpbml0aWFsaXplZDsgc2tpcCBpdCBzbyB3ZSBuZXZlciBhZGQgYW4gZW1wdHkgY2xhc3MuXG4gIGlmIChMaWJyYXJ5LmNzc0NsYXNzU2NvcGUpIHtcbiAgICBjc3NDbGFzc2VzQXJyLnB1c2goTGlicmFyeS5jc3NDbGFzc1Njb3BlKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShjc3NDbGFzc2VzKSkge1xuICAgIGNzc0NsYXNzZXNBcnIucHVzaCguLi5jc3NDbGFzc2VzKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgY3NzQ2xhc3NlcyA9PT0gJ3N0cmluZycpIHtcbiAgICBjc3NDbGFzc2VzQXJyLnB1c2goY3NzQ2xhc3Nlcyk7XG4gIH1cbiAgZWwuYWRkQ2xhc3MoLi4uY3NzQ2xhc3Nlc0Fycik7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gKlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdG8gaW5pdGlhbGl6ZSB0aGUgZGVidWcgY29udHJvbGxlciBmb3IuXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byByZWdpc3RlciBjbGVhbnVwIG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdERlYnVnQ29udHJvbGxlcih3aW46IFdpbmRvdywgY29tcG9uZW50OiBDb21wb25lbnQpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luQ29udGV4dFdpbmRvdyA9IHdpbiBhcyBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+O1xuICBjb25zdCBvbGREZWJ1ZyA9IHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUc7XG4gIGNvbnN0IG5ld0RlYnVnID0gZ2V0RGVidWdDb250cm9sbGVyKCk7XG4gIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBuZXdEZWJ1ZztcblxuICBjb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIGlmIChwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID09PSBuZXdEZWJ1Zykge1xuICAgICAgcGx1Z2luQ29udGV4dFdpbmRvdy5ERUJVRyA9IG9sZERlYnVnO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gSUQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0UGx1Z2luQ29udGV4dChwbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIExpYnJhcnkuaW5pdCh7XG4gICAgY3NzQ2xhc3NTY29wZTogcGx1Z2luSWQsXG4gICAgZGVidWdQcmVmaXhOYW1lc3BhY2U6IGAke3BsdWdpbklkfTpgLFxuICAgIHNob3VsZFByaW50U3RhY2tUcmFjZTogdHJ1ZVxuICB9KTtcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQpO1xuXG4gIGNvbnN0IGxhc3RMaWJyYXJ5VmVyc2lvbldyYXBwZXIgPSBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUoJ2xhc3RMaWJyYXJ5VmVyc2lvbicsICcwLjAuMCcpO1xuICBpZiAoY29tcGFyZVZlcnNpb25zKExJQlJBUllfVkVSU0lPTiwgbGFzdExpYnJhcnlWZXJzaW9uV3JhcHBlci52YWx1ZSkgPD0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxhc3RMaWJyYXJ5VmVyc2lvbldyYXBwZXIudmFsdWUgPSBMSUJSQVJZX1ZFUlNJT047XG5cbiAgZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKGAjJHtTVFlMRVNfSUR9YCk/LnJlbW92ZSgpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1mb3JiaWRkZW4tZWxlbWVudHMgLS0gV2UgbmVlZCB0byBjcmVhdGUgYSBzdHlsZSBlbGVtZW50IHRvIGFwcGx5IHRoZSBsaWJyYXJ5IHN0eWxlcy5cbiAgZG9jdW1lbnQuaGVhZC5jcmVhdGVFbCgnc3R5bGUnLCB7XG4gICAgYXR0cjoge1xuICAgICAgaWQ6IFNUWUxFU19JRFxuICAgIH0sXG4gICAgdGV4dDogTElCUkFSWV9TVFlMRVNcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsdUJBQXVCO0FBSWhDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZ0NBQWdDO0FBQ3pDLFNBQVMsZ0JBQWdCO0FBTXpCLE1BQU0sWUFBWSxHQUFHLFlBQVk7QUFRMUIsU0FBUyxvQkFBb0IsSUFBaUIsWUFBc0M7QUFDekYsUUFBTSxnQkFBMEIsQ0FBQyxTQUFTLFdBQVc7QUFFckQsTUFBSSxRQUFRLGVBQWU7QUFDekIsa0JBQWMsS0FBSyxRQUFRLGFBQWE7QUFBQSxFQUMxQztBQUNBLE1BQUksTUFBTSxRQUFRLFVBQVUsR0FBRztBQUM3QixrQkFBYyxLQUFLLEdBQUcsVUFBVTtBQUFBLEVBQ2xDLFdBQVcsT0FBTyxlQUFlLFVBQVU7QUFDekMsa0JBQWMsS0FBSyxVQUFVO0FBQUEsRUFDL0I7QUFDQSxLQUFHLFNBQVMsR0FBRyxhQUFhO0FBQzlCO0FBUU8sU0FBUyxvQkFBb0IsS0FBYSxXQUE0QjtBQUMzRSxRQUFNLHNCQUFzQjtBQUM1QixRQUFNLFdBQVcsb0JBQW9CO0FBQ3JDLFFBQU0sV0FBVyxtQkFBbUI7QUFDcEMsc0JBQW9CLFFBQVE7QUFFNUIsWUFBVSxTQUFTLE1BQU07QUFDdkIsUUFBSSxvQkFBb0IsVUFBVSxVQUFVO0FBQzFDLDBCQUFvQixRQUFRO0FBQUEsSUFDOUI7QUFBQSxFQUNGLENBQUM7QUFDSDtBQU9PLFNBQVMsa0JBQWtCLFVBQXdCO0FBQ3hELFVBQVEsS0FBSztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2Ysc0JBQXNCLEdBQUcsUUFBUTtBQUFBLElBQ2pDLHVCQUF1QjtBQUFBLEVBQ3pCLENBQUM7QUFDRCwwQkFBd0IsUUFBUTtBQUVoQyxRQUFNLDRCQUE0Qix5QkFBeUIsc0JBQXNCLE9BQU87QUFDeEYsTUFBSSxnQkFBZ0IsaUJBQWlCLDBCQUEwQixLQUFLLEtBQUssR0FBRztBQUMxRTtBQUFBLEVBQ0Y7QUFFQSw0QkFBMEIsUUFBUTtBQUVsQyxXQUFTLEtBQUssY0FBYyxJQUFJLFNBQVMsRUFBRSxHQUFHLE9BQU87QUFFckQsV0FBUyxLQUFLLFNBQVMsU0FBUztBQUFBLElBQzlCLE1BQU07QUFBQSxNQUNKLElBQUk7QUFBQSxJQUNOO0FBQUEsSUFDQSxNQUFNO0FBQUEsRUFDUixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -31,7 +31,6 @@ import nodePlugin from "eslint-plugin-n";
31
31
  import obsidianmd from "eslint-plugin-obsidianmd";
32
32
  import { configs as perfectionistConfigs } from "eslint-plugin-perfectionist";
33
33
  import { defineConfig } from "eslint/config";
34
- import globals from "globals";
35
34
  import { existsSync } from "node:fs";
36
35
  import tseslint from "typescript-eslint";
37
36
  import { ObsidianPluginRepoPaths } from "../../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
@@ -419,36 +418,11 @@ function getObsidianLintConfigs(context) {
419
418
  };
420
419
  });
421
420
  return defineConfig([
422
- ...scopedObsidianRecommendedConfigs,
423
421
  {
422
+ extends: [scopedObsidianRecommendedConfigs],
424
423
  plugins: {
425
424
  obsidianmd
426
425
  }
427
- },
428
- {
429
- languageOptions: {
430
- globals: {
431
- ...globals.browser,
432
- ...globals.node,
433
- activeDocument: "readonly",
434
- activeWindow: "readonly",
435
- ajax: "readonly",
436
- ajaxPromise: "readonly",
437
- createDiv: "readonly",
438
- createEl: "readonly",
439
- createFragment: "readonly",
440
- createSpan: "readonly",
441
- createSvg: "readonly",
442
- DomElementInfo: "readonly",
443
- fish: "readonly",
444
- fishAll: "readonly",
445
- isBoolean: "readonly",
446
- nextFrame: "readonly",
447
- NodeJS: "readonly",
448
- ready: "readonly",
449
- sleep: "readonly"
450
- }
451
- }
452
426
  }
453
427
  ]);
454
428
  }
@@ -582,4 +556,4 @@ export {
582
556
  EslintConfigContext,
583
557
  defineEslintConfigs
584
558
  };
585
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29uZmlnLWhlbHBlcnMnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBub2RlUGx1Z2luIGZyb20gJ2VzbGludC1wbHVnaW4tbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IGdsb2JhbHMgZnJvbSAnZ2xvYmFscyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHRzZXNsaW50IGZyb20gJ3R5cGVzY3JpcHQtZXNsaW50JztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgbm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXMgfSBmcm9tICcuL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlV0aWxzUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbi50cyc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbmVFc2xpbnRDb25maWdzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgYnVpbGRzIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgY3VzdG9tQ29uZmlncz8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGVkaXRzIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgZWRpdENvbnRleHQ/KGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBjb250ZXh0IGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2xpbnRDb25maWdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSByb290IGNvbmZpZ3VyYXRpb24gZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdENvbmZpZ0ZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NyaXB0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjcmlwdEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZUZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVzdCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXN0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbGwgZmlsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhbGwgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgYWxsRmlsZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy50ZXN0RmlsZXMsIC4uLnRoaXMuc2NyaXB0RmlsZXMsIC4uLnRoaXMucm9vdENvbmZpZ0ZpbGVzLCAuLi50aGlzLnNvdXJjZUZpbGVzXTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGJ1aWxkcyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgZGVmaW5pbmcgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICogQHJldHVybnMgVGhlIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUVzbGludENvbmZpZ3Mob3B0aW9uczogRGVmaW5lRXNsaW50Q29uZmlnc09wdGlvbnMgPSB7fSk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGNvbnRleHQgPSBuZXcgRXNsaW50Q29uZmlnQ29udGV4dCgpO1xuICBjb250ZXh0LnJvb3RDb25maWdGaWxlcy5wdXNoKFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNvbW1pdGxpbnRDb25maWdUcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVml0ZXN0Q29uZmlnVHNcbiAgKTtcbiAgY29udGV4dC5zY3JpcHRGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU2NyaXB0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICk7XG4gIGNvbnRleHQuc291cmNlRmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUc3gpXG4gICk7XG4gIGNvbnRleHQudGVzdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5UZXN0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTW9ja3MsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VGVzdFRzKVxuICApO1xuXG4gIGlmIChvcHRpb25zLmVkaXRDb250ZXh0KSB7XG4gICAgb3B0aW9ucy5lZGl0Q29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGN1c3RvbUNvbmZpZ3MgPSBvcHRpb25zLmN1c3RvbUNvbmZpZ3M/Lihjb250ZXh0KSA/PyBbXTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIC4uLmdldEdpdElnbm9yZUNvbmZpZ3MoKSxcbiAgICAvLyBPYnNpZGlhbm1kIGNvbmZpZ3MgcnVuIGZpcnN0IHNvIG91ciBzdHJpY3RlciBydWxlcyBvdmVycmlkZSB0aGVpciByZWxheGVkIGRlZmF1bHRzXG4gICAgLi4uZ2V0T2JzaWRpYW5MaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRFc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEltcG9ydFhDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFBlcmZlY3Rpb25pc3RDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludEltcG9ydFJlc29sdmVyVHlwZXNjcmlwdENvbmZpZ3MoKSxcbiAgICAuLi5nZXRFc2xpbnRDb21tZW50c0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0Tm9kZUNvbXBhdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uY3VzdG9tQ29uZmlnc1xuICApO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb21tZW50c0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcmVjb21tZW5kZWRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICBleHRlbmRzOiBbY29tbWVudHNDb25maWdzLnJlY29tbWVuZGVkXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LWNvbW1lbnRzL3JlcXVpcmUtZGVzY3JpcHRpb24nOiAnZXJyb3InXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW2VzbGludC5jb25maWdzLnJlY29tbWVuZGVkXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnYWNjZXNzb3ItcGFpcnMnOiAnZXJyb3InLFxuICAgICAgICAnYXJyYXktY2FsbGJhY2stcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhbWVsY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdjYXBpdGFsaXplZC1jb21tZW50cyc6IFsnZXJyb3InLCAnYWx3YXlzJywgeyBibG9jazogeyBpZ25vcmVQYXR0ZXJuOiAndjgnIH0gfV0sXG4gICAgICAgICdjb21wbGV4aXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2NvbnNpc3RlbnQtdGhpcyc6ICdlcnJvcicsXG4gICAgICAgICdjdXJseSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UnOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1jYXNlLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1wYXJhbS1sYXN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2VxZXFlcSc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWUtbWF0Y2hpbmcnOiAnZXJyb3InLFxuICAgICAgICAnZnVuYy1uYW1lcyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLXN0eWxlJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2RlY2xhcmF0aW9uJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Fycm93RnVuY3Rpb25zOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ2dyb3VwZWQtYWNjZXNzb3ItcGFpcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZ2V0QmVmb3JlU2V0J1xuICAgICAgICBdLFxuICAgICAgICAnZ3VhcmQtZm9yLWluJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWFsZXJ0JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWFycmF5LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWJpdHdpc2UnOiAnZXJyb3InLFxuICAgICAgICAnbm8tY2FsbGVyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWNvbnNvbGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnd2FybicsXG4gICAgICAgICAgICAgICdlcnJvcidcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1jb25zdHJ1Y3Rvci1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tZGl2LXJlZ2V4JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWVsc2UtcmV0dXJuJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dFbHNlSWY6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tZW1wdHktZnVuY3Rpb24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0ZW5kLW5hdGl2ZSc6ICdlcnJvcicsXG4gICAgICAgICduby1leHRyYS1iaW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWxhYmVsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWltcGxpY2l0LWNvZXJjaW9uJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJyEhJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWltcGxpZWQtZXZhbCc6ICdlcnJvcicsXG4gICAgICAgICduby1pbm5lci1kZWNsYXJhdGlvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8taXRlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWwtdmFyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxhYmVscyc6ICdlcnJvcicsXG4gICAgICAgICduby1sb25lLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICduby1sb25lbHktaWYnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbG9vcC1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW1hZ2ljLW51bWJlcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXRlY3RPYmplY3RzOiB0cnVlLFxuICAgICAgICAgICAgZW5mb3JjZUNvbnN0OiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlOiBbXG4gICAgICAgICAgICAgIC0xLFxuICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAxXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tbXVsdGktYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW11bHRpLXN0cic6ICdlcnJvcicsXG4gICAgICAgICduby1uZWdhdGVkLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1uZXN0ZWQtdGVybmFyeSc6ICdlcnJvcicsXG4gICAgICAgICduby1uZXctZnVuYyc6ICdlcnJvcicsXG4gICAgICAgICduby1uZXctd3JhcHBlcnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2JqZWN0LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW9jdGFsLWVzY2FwZSc6ICdlcnJvcicsXG4gICAgICAgICduby1wcm9taXNlLWV4ZWN1dG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1wcm90byc6ICdlcnJvcicsXG4gICAgICAgICduby1yZXN0cmljdGVkLXN5bnRheCc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIC4uLm5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzXG4gICAgICAgIF0sXG4gICAgICAgICduby1yZXR1cm4tYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNjcmlwdC11cmwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VsZi1jb21wYXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNlcXVlbmNlcyc6ICdlcnJvcicsXG4gICAgICAgICduby1zaGFkb3cnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXRocm93LWxpdGVyYWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5tb2RpZmllZC1sb29wLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby11bm5lZWRlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVucmVhY2hhYmxlLWxvb3AnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW51c2VkLWV4cHJlc3Npb25zJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNhbGwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb21wdXRlZC1rZXknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25jYXQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25zdHJ1Y3Rvcic6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJlbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tdm9pZCc6ICdlcnJvcicsXG4gICAgICAgICdvYmplY3Qtc2hvcnRoYW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ29wZXJhdG9yLWFzc2lnbm1lbnQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWFycm93LWNhbGxiYWNrJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1jb25zdCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItZXhwb25lbnRpYXRpb24tb3BlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW5hbWVkLWNhcHR1cmUtZ3JvdXAnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW51bWVyaWMtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1oYXMtb3duJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1vYmplY3Qtc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlZ2V4LWxpdGVyYWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1yZXN0LXBhcmFtcyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdyYWRpeCc6ICdlcnJvcicsXG4gICAgICAgICdyZXF1aXJlLWF0b21pYy11cGRhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXdhaXQnOiAnZXJyb3InLFxuICAgICAgICAnc3ltYm9sLWRlc2NyaXB0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ3VuaWNvZGUtYm9tJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ZhcnMtb24tdG9wJzogJ2Vycm9yJyxcbiAgICAgICAgJ3lvZGEnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICAnaW1wb3J0LXgvcmVzb2x2ZXItbmV4dCc6IFtcbiAgICAgICAgICBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIoe1xuICAgICAgICAgICAgYWx3YXlzVHJ5VHlwZXM6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0R2l0SWdub3JlQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBnaXRpZ25vcmVQYXRoID0gam9pbihnZXRSb290Rm9sZGVyKCkgPz8gJycsICcuZ2l0aWdub3JlJyk7XG4gIGlmICghZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW2luY2x1ZGVJZ25vcmVGaWxlKGdpdGlnbm9yZVBhdGgpXTtcbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MudHlwZXNjcmlwdCxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLmVycm9ycyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLndhcm5pbmdzXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9jb25zaXN0ZW50LXR5cGUtc3BlY2lmaWVyLXN0eWxlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2V4dGVuc2lvbnMnOiBbJ2Vycm9yJywgJ2lnbm9yZVBhY2thZ2VzJ10sXG4gICAgICAgICdpbXBvcnQteC9maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9pbXBvcnRzLWZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25ld2xpbmUtYWZ0ZXItaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFic29sdXRlLXBhdGgnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW1kJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jb21tb25qcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jeWNsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZXByZWNhdGVkJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR1cGxpY2F0ZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWVtcHR5LW5hbWVkLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbXV0YWJsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVkLWRlZmF1bHQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZXNwYWNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlbGF0aXZlLXBhY2thZ2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlc3RyaWN0ZWQtcGF0aHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tc2VsZi1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnQnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zYXNzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2NzcydcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdpbXBvcnQteC9uby11bnVzZWQtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNjcmlwdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbXG4gICAgICAgIC4uLmNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLFxuICAgICAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpblRzKVxuICAgICAgXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0Tm9kZUNvbXBhdENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIC8vIFRoZSBtaW5pbXVtIE9ic2lkaWFuIGluc3RhbGxlciB0aGF0IHN0aWxsIHJlY2VpdmVzIGFwcCB1cGRhdGVzICgwLjE0LjUpIHNoaXBzIEVsZWN0cm9uIDE4LjAuMywgd2hpY2ggcnVucyBOb2RlIDE2LjEzLjIuXG4gIC8vIFNoaXBwZWQgc291cmNlIG11c3QgdGhlcmVmb3JlIGF2b2lkIE5vZGUvRVMgcnVudGltZSBidWlsdGlucyB1bmF2YWlsYWJsZSBpbiB0aGF0IHZlcnNpb24uIFRlc3RzIGFuZCBzY3JpcHRzIGFyZSBkZXYtb25seSBhbmQgZXhlbXB0LlxuICBjb25zdCBtaW5pbXVtTm9kZVZlcnNpb24gPSAnPj0xNi4xMy4yJztcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGaWxlcyxcbiAgICAgIGlnbm9yZXM6IFtcbiAgICAgICAgLi4uY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICAgIC8vIERldi1vbmx5IHRvb2xpbmcgKGJ1aWxkLCBsaW50LCB2ZXJzaW9uKSB1bmRlciBgc3JjL3NjcmlwdC11dGlscy8qKmAgcnVucyB2aWEgYGppdGlgIGluIHRoZSBjb25zdW1lcidzIE5vZGUgZW52aXJvbm1lbnQgd2hlbiBidWlsZGluZyBhIHBsdWdpbiBhbmQgbmV2ZXIgc2hpcHMgaW50byB0aGUgT2JzaWRpYW4gcnVudGltZSwgc28gdGhlIE5vZGUtMTYgZmxvb3IgZG9lcyBub3QgYXBwbHkgdG8gaXQuXG4gICAgICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU2NyaXB0VXRpbHMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKVxuICAgICAgXSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgbjogbm9kZVBsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICduL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL2VzLWJ1aWx0aW5zJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmVyc2lvbjogbWluaW11bU5vZGVWZXJzaW9uXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gYEJsb2JgIGFuZCBgRmlsZWAgYXJlIERPTSB3ZWIgZ2xvYmFscyBhbHdheXMgcHJlc2VudCBpbiB0aGUgT2JzaWRpYW4vRWxlY3Ryb24gcmVuZGVyZXIgKGV2ZXJ5IHN1cHBvcnRlZCBDaHJvbWl1bSksIGJ1dCB0aGUgcnVsZSBhbHNvIGtub3dzIHRoZW0gYXMgTm9kZSdzIGV4cGVyaW1lbnRhbCBidWlsdGlucyBhbmQgY2Fubm90IHRlbGwgd2hpY2ggaXMgbWVhbnQuIElnbm9yZSB0aGVtIGdsb2JhbGx5OyBnZW51aW5lbHkgbmV3ZXIgQVBJcyAoZS5nLiBgQWJvcnRTaWduYWwuYW55YCkgc3RheSBmbGFnZ2VkLlxuICAgICAgICAgICAgaWdub3JlczogW1xuICAgICAgICAgICAgICAnQmxvYicsXG4gICAgICAgICAgICAgICdGaWxlJ1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHZlcnNpb246IG1pbmltdW1Ob2RlVmVyc2lvblxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE9ic2lkaWFuRGV2VXRpbHNQbHVnaW5Db25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzJzogb2JzaWRpYW5EZXZVdGlsc1BsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdW51c2VkLXBhcmFtcy1tZW1iZXJzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wcmVmZXItbm9vcC1hc3luYyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtcmVzdWx0LW1lbWJlcnMnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtc3VwZXItY2FsbCc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5MaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3Qgb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBvYnNpZGlhbm1kLmNvbmZpZ3MucmVjb21tZW5kZWQ7XG5cbiAgY29uc3Qgc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncy5tYXAoKGNvbmZpZykgPT4ge1xuICAgIGlmIChjb25maWcuZmlsZXM/LmluY2x1ZGVzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmlsZXM6IGNvbnRleHQuc291cmNlRmlsZXNcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICAuLi5zY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyxcbiAgICB7XG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG9ic2lkaWFubWRcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBnbG9iYWxzOiB7XG4gICAgICAgICAgLi4uZ2xvYmFscy5icm93c2VyLFxuICAgICAgICAgIC4uLmdsb2JhbHMubm9kZSxcbiAgICAgICAgICBhY3RpdmVEb2N1bWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhY3RpdmVXaW5kb3c6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4UHJvbWlzZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVEaXY6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRWw6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRnJhZ21lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3BhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTdmc6ICdyZWFkb25seScsXG4gICAgICAgICAgRG9tRWxlbWVudEluZm86ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoQWxsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGlzQm9vbGVhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBuZXh0RnJhbWU6ICdyZWFkb25seScsXG4gICAgICAgICAgTm9kZUpTOiAncmVhZG9ubHknLFxuICAgICAgICAgIHJlYWR5OiAncmVhZG9ubHknLFxuICAgICAgICAgIHNsZWVwOiAncmVhZG9ubHknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJmZWN0aW9uaXN0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbe1xuICAgIGV4dGVuZHM6IFtwZXJmZWN0aW9uaXN0Q29uZmlnc1sncmVjb21tZW5kZWQtYWxwaGFiZXRpY2FsJ11dLFxuICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKClcbiAgfV0pO1xufVxuXG5mdW5jdGlvbiBnZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5jdXN0b21pemUoe1xuICAgICAgICAgIGFycm93UGFyZW5zOiB0cnVlLFxuICAgICAgICAgIGJyYWNlU3R5bGU6ICcxdGJzJyxcbiAgICAgICAgICBjb21tYURhbmdsZTogJ25ldmVyJyxcbiAgICAgICAgICBzZW1pOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAc3R5bGlzdGljL2dlbmVyYXRvci1zdGFyLXNwYWNpbmcnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50JzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudC1iaW5hcnktb3BzJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2pzeC1vbmUtZXhwcmVzc2lvbi1wZXItbGluZSc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9uby1leHRyYS1zZW1pJzogJ2Vycm9yJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb2JqZWN0LWN1cmx5LW5ld2xpbmUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFeHBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJbXBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL29wZXJhdG9yLWxpbmVicmVhayc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdiZWZvcmUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAnPSc6ICdhZnRlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL3F1b3Rlcyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdzaW5nbGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93VGVtcGxhdGVMaXRlcmFsczogJ25ldmVyJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0cmljdFR5cGVDaGVja2VkLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0eWxpc3RpY1R5cGVDaGVja2VkXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgZWNtYUZlYXR1cmVzOiB7XG4gICAgICAgICAgICBqc3g6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2plY3RTZXJ2aWNlOiB0cnVlLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogZ2V0Um9vdEZvbGRlcigpID8/ICcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZSc6IFsnZXJyb3InLCAnbWV0aG9kJ10sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGNoZWNrVGhlbmFibGVzOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd0FzVGhpc1BhcmFtZXRlcjogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd2VkTmFtZXM6IFtcbiAgICAgICAgICAgICd0aGF0J1xuICAgICAgICAgIF1cbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcmdzOiAnYWxsJyxcbiAgICAgICAgICAgIGFyZ3NJZ25vcmVQYXR0ZXJuOiAnXl8nLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzOiAnYWxsJyxcbiAgICAgICAgICAgIGNhdWdodEVycm9yc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBkZXN0cnVjdHVyZWRBcnJheUlnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBpZ25vcmVSZXN0U2libGluZ3M6IHRydWUsXG4gICAgICAgICAgICB2YXJzSWdub3JlUGF0dGVybjogJ15fJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmVhZG9ubHknOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2RvdC1ub3RhdGlvbic6IFsnZXJyb3InLCB7XG4gICAgICAgICAgYWxsb3dQcml2YXRlQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZSxcbiAgICAgICAgICBhbGxvd1Byb3RlY3RlZENsYXNzUHJvcGVydHlBY2Nlc3M6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICB2ZXJzaW9uOiAnZGV0ZWN0J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLyogZXNsaW50LWVuYWJsZSBuby1tYWdpYy1udW1iZXJzIC0tIFdlIGRpc2FibGVkIG1hZ2ljIG51bWJlcnMgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGFsbCBvdmVyIHRoZSBjb25maWdzLiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsT0FBTyxxQkFBcUI7QUFDNUIsU0FBUyx5QkFBeUI7QUFDbEMsT0FBTyxZQUFZO0FBRW5CLE9BQU8sZUFBZTtBQUN0QixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLGVBQWUsc0NBQXNDO0FBRTlELE9BQU8sZ0JBQWdCO0FBRXZCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsV0FBVyw0QkFBNEI7QUFDaEQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxhQUFhO0FBQ3BCLFNBQVMsa0JBQWtCO0FBRTNCLE9BQU8sY0FBYztBQUVyQixTQUFTLCtCQUErQjtBQUN4QyxTQUFTLFlBQVk7QUFDckIsU0FBUyxxQkFBcUI7QUFDOUIsU0FBUyxxQ0FBcUM7QUFDOUMsU0FBUyw4QkFBOEI7QUF5QmhDLE1BQU0sb0JBQW9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZixrQkFBNEIsQ0FB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
559
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29uZmlnLWhlbHBlcnMnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBub2RlUGx1Z2luIGZyb20gJ2VzbGludC1wbHVnaW4tbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCB0c2VzbGludCBmcm9tICd0eXBlc2NyaXB0LWVzbGludCc7XG5cbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGdldFJvb3RGb2xkZXIgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7IG5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzIH0gZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuaW1wb3J0IHsgb2JzaWRpYW5EZXZVdGlsc1BsdWdpbiB9IGZyb20gJy4vZXNsaW50LXJ1bGVzL29ic2lkaWFuLWRldi11dGlscy1wbHVnaW4udHMnO1xuXG4vKipcbiAqIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5lRXNsaW50Q29uZmlnc09wdGlvbnMge1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGJ1aWxkcyBjdXN0b20gRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBUaGUgY3VzdG9tIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAgICovXG4gIGN1c3RvbUNvbmZpZ3M/KGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW107XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBlZGl0cyB0aGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICovXG4gIGVkaXRDb250ZXh0Pyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgY29udGV4dCBmb3IgZGVmaW5pbmcgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgRXNsaW50Q29uZmlnQ29udGV4dCB7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCBjb25maWd1cmF0aW9uIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvb3RDb25maWdGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIHNjcmlwdCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY3JpcHRGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIHRlc3QgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGVzdEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxsIGZpbGVzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYWxsIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIGFsbEZpbGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMudGVzdEZpbGVzLCAuLi50aGlzLnNjcmlwdEZpbGVzLCAuLi50aGlzLnJvb3RDb25maWdGaWxlcywgLi4udGhpcy5zb3VyY2VGaWxlc107XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBidWlsZHMgRVNMaW50IGNvbmZpZ3VyYXRpb25zIGZvciBUeXBlU2NyaXB0IHByb2plY3RzLCBpbnRlZ3JhdGluZyBtdWx0aXBsZSBFU0xpbnQgcGx1Z2luc1xuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKG9wdGlvbnM6IERlZmluZUVzbGludENvbmZpZ3NPcHRpb25zID0ge30pOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBjb250ZXh0ID0gbmV3IEVzbGludENvbmZpZ0NvbnRleHQoKTtcbiAgY29udGV4dC5yb290Q29uZmlnRmlsZXMucHVzaChcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Db21taXRsaW50Q29uZmlnVHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlZpdGVzdENvbmZpZ1RzXG4gICk7XG4gIGNvbnRleHQuc2NyaXB0RmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNjcmlwdHMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKVxuICApO1xuICBjb250ZXh0LnNvdXJjZUZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHN4KVxuICApO1xuICBjb250ZXh0LnRlc3RGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVGVzdHMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1vY2tzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRlc3RUcylcbiAgKTtcblxuICBpZiAob3B0aW9ucy5lZGl0Q29udGV4dCkge1xuICAgIG9wdGlvbnMuZWRpdENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBjdXN0b21Db25maWdzID0gb3B0aW9ucy5jdXN0b21Db25maWdzPy4oY29udGV4dCkgPz8gW107XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcbiAgICAuLi5nZXRHaXRJZ25vcmVDb25maWdzKCksXG4gICAgLy8gT2JzaWRpYW5tZCBjb25maWdzIHJ1biBmaXJzdCBzbyBvdXIgc3RyaWN0ZXIgcnVsZXMgb3ZlcnJpZGUgdGhlaXIgcmVsYXhlZCBkZWZhdWx0c1xuICAgIC4uLmdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRUc2VzbGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0U3R5bGlzdGljQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRJbXBvcnRYQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRQZXJmZWN0aW9uaXN0Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCksXG4gICAgLi4uZ2V0RXNsaW50Q29tbWVudHNDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldE9ic2lkaWFuRGV2VXRpbHNQbHVnaW5Db25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldE5vZGVDb21wYXRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmN1c3RvbUNvbmZpZ3NcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50Q29tbWVudHNDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHJlY29tbWVuZGVkYCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgZXh0ZW5kczogW2NvbW1lbnRzQ29uZmlncy5yZWNvbW1lbmRlZF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0Blc2xpbnQtY29tbXVuaXR5L2VzbGludC1jb21tZW50cy9yZXF1aXJlLWRlc2NyaXB0aW9uJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtlc2xpbnQuY29uZmlncy5yZWNvbW1lbmRlZF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2FjY2Vzc29yLXBhaXJzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2FycmF5LWNhbGxiYWNrLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICdjYW1lbGNhc2UnOiAnZXJyb3InLFxuICAgICAgICAnY2FwaXRhbGl6ZWQtY29tbWVudHMnOiBbJ2Vycm9yJywgJ2Fsd2F5cycsIHsgYmxvY2s6IHsgaWdub3JlUGF0dGVybjogJ3Y4JyB9IH1dLFxuICAgICAgICAnY29tcGxleGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdjb25zaXN0ZW50LXRoaXMnOiAnZXJyb3InLFxuICAgICAgICAnY3VybHknOiAnZXJyb3InLFxuICAgICAgICAnZGVmYXVsdC1jYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZS1sYXN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtcGFyYW0tbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdlcWVxZXEnOiAnZXJyb3InLFxuICAgICAgICAnZnVuYy1uYW1lLW1hdGNoaW5nJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZXMnOiAnZXJyb3InLFxuICAgICAgICAnZnVuYy1zdHlsZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdkZWNsYXJhdGlvbicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dBcnJvd0Z1bmN0aW9uczogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdncm91cGVkLWFjY2Vzc29yLXBhaXJzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2dldEJlZm9yZVNldCdcbiAgICAgICAgXSxcbiAgICAgICAgJ2d1YXJkLWZvci1pbic6ICdlcnJvcicsXG4gICAgICAgICduby1hbGVydCc6ICdlcnJvcicsXG4gICAgICAgICduby1hcnJheS1jb25zdHJ1Y3Rvcic6ICdlcnJvcicsXG4gICAgICAgICduby1iaXR3aXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWNhbGxlcic6ICdlcnJvcicsXG4gICAgICAgICduby1jb25zb2xlJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJ3dhcm4nLFxuICAgICAgICAgICAgICAnZXJyb3InXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8tY29uc3RydWN0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWRpdi1yZWdleCc6ICdlcnJvcicsXG4gICAgICAgICduby1lbHNlLXJldHVybic6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93RWxzZUlmOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWVtcHR5LWZ1bmN0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dGVuZC1uYXRpdmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtYmluZCc6ICdlcnJvcicsXG4gICAgICAgICduby1leHRyYS1sYWJlbCc6ICdlcnJvcicsXG4gICAgICAgICduby1pbXBsaWNpdC1jb2VyY2lvbic6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICchISdcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1pbXBsaWVkLWV2YWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW5uZXItZGVjbGFyYXRpb25zJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWl0ZXJhdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxhYmVsLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbHMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbG9uZS1ibG9ja3MnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbG9uZWx5LWlmJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvb3AtZnVuYyc6ICdlcnJvcicsXG4gICAgICAgICduby1tYWdpYy1udW1iZXJzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGV0ZWN0T2JqZWN0czogdHJ1ZSxcbiAgICAgICAgICAgIGVuZm9yY2VDb25zdDogdHJ1ZSxcbiAgICAgICAgICAgIGlnbm9yZTogW1xuICAgICAgICAgICAgICAtMSxcbiAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLW11bHRpLWFzc2lnbic6ICdlcnJvcicsXG4gICAgICAgICduby1tdWx0aS1zdHInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbmVnYXRlZC1jb25kaXRpb24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbmVzdGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tbmV3LWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbmV3LXdyYXBwZXJzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW9iamVjdC1jb25zdHJ1Y3Rvcic6ICdlcnJvcicsXG4gICAgICAgICduby1vY3RhbC1lc2NhcGUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tcHJvbWlzZS1leGVjdXRvci1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tcHJvdG8nOiAnZXJyb3InLFxuICAgICAgICAnbm8tcmVzdHJpY3RlZC1zeW50YXgnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAuLi5ub1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cmllc1xuICAgICAgICBdLFxuICAgICAgICAnbm8tcmV0dXJuLWFzc2lnbic6ICdlcnJvcicsXG4gICAgICAgICduby1zY3JpcHQtdXJsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNlbGYtY29tcGFyZSc6ICdlcnJvcicsXG4gICAgICAgICduby1zZXF1ZW5jZXMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2hhZG93JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZyc6ICdlcnJvcicsXG4gICAgICAgICduby10aHJvdy1saXRlcmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubW9kaWZpZWQtbG9vcC1jb25kaXRpb24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5uZWVkZWQtdGVybmFyeSc6ICdlcnJvcicsXG4gICAgICAgICduby11bnJlYWNoYWJsZS1sb29wJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVudXNlZC1leHByZXNzaW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWFzc2lnbm1lbnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jYWxsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY29tcHV0ZWQta2V5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY29uY2F0JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1yZW5hbWUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tdmFyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZvaWQnOiAnZXJyb3InLFxuICAgICAgICAnb2JqZWN0LXNob3J0aGFuZCc6ICdlcnJvcicsXG4gICAgICAgICdvcGVyYXRvci1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1hcnJvdy1jYWxsYmFjayc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItY29uc3QnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWV4cG9uZW50aWF0aW9uLW9wZXJhdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1uYW1lZC1jYXB0dXJlLWdyb3VwJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1udW1lcmljLWxpdGVyYWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1vYmplY3QtaGFzLW93bic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LXNwcmVhZCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1yZWdleC1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVzdC1wYXJhbXMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXNwcmVhZCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItdGVtcGxhdGUnOiAnZXJyb3InLFxuICAgICAgICAncmFkaXgnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hdG9taWMtdXBkYXRlcyc6ICdlcnJvcicsXG4gICAgICAgICdyZXF1aXJlLWF3YWl0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3N5bWJvbC1kZXNjcmlwdGlvbic6ICdlcnJvcicsXG4gICAgICAgICd1bmljb2RlLWJvbSc6ICdlcnJvcicsXG4gICAgICAgICd2YXJzLW9uLXRvcCc6ICdlcnJvcicsXG4gICAgICAgICd5b2RhJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IGNvbnRleHQudGVzdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ25vLW1hZ2ljLW51bWJlcnMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludEltcG9ydFJlc29sdmVyVHlwZXNjcmlwdENvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgJ2ltcG9ydC14L3Jlc29sdmVyLW5leHQnOiBbXG4gICAgICAgICAgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyKHtcbiAgICAgICAgICAgIGFsd2F5c1RyeVR5cGVzOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldEdpdElnbm9yZUNvbmZpZ3MoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgZ2l0aWdub3JlUGF0aCA9IGpvaW4oZ2V0Um9vdEZvbGRlcigpID8/ICcnLCAnLmdpdGlnbm9yZScpO1xuICBpZiAoIWV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFtpbmNsdWRlSWdub3JlRmlsZShnaXRpZ25vcmVQYXRoKV07XG59XG5cbmZ1bmN0aW9uIGdldEltcG9ydFhDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy5yZWNvbW1lbmRlZCxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnR5cGVzY3JpcHQsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy5lcnJvcnMsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy53YXJuaW5nc1xuICAgICAgXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvY29uc2lzdGVudC10eXBlLXNwZWNpZmllci1zdHlsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9leHRlbnNpb25zJzogWydlcnJvcicsICdpZ25vcmVQYWNrYWdlcyddLFxuICAgICAgICAnaW1wb3J0LXgvZmlyc3QnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvaW1wb3J0cy1maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uZXdsaW5lLWFmdGVyLWltcG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hYnNvbHV0ZS1wYXRoJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFtZCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tY29tbW9uanMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tY3ljbGUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZGVwcmVjYXRlZCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kdXBsaWNhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR5bmFtaWMtcmVxdWlyZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1lbXB0eS1uYW1lZC1ibG9ja3MnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8taW1wb3J0LW1vZHVsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW11dGFibGUtZXhwb3J0cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1uYW1lZC1kZWZhdWx0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVzcGFjZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1yZWxhdGl2ZS1wYWNrYWdlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1yZXN0cmljdGVkLXBhdGhzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXNlbGYtaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVuYXNzaWduZWQtaW1wb3J0JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJyoqLyouY3NzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2FzcycsXG4gICAgICAgICAgICAgICcqKi8qLnNjc3MnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW51c2VkLW1vZHVsZXMnOiAnb2ZmJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5zY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1xuICAgICAgICAuLi5jb250ZXh0LnJvb3RDb25maWdGaWxlcyxcbiAgICAgICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5UcylcbiAgICAgIF0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE5vZGVDb21wYXRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICAvLyBUaGUgbWluaW11bSBPYnNpZGlhbiBpbnN0YWxsZXIgdGhhdCBzdGlsbCByZWNlaXZlcyBhcHAgdXBkYXRlcyAoMC4xNC41KSBzaGlwcyBFbGVjdHJvbiAxOC4wLjMsIHdoaWNoIHJ1bnMgTm9kZSAxNi4xMy4yLlxuICAvLyBTaGlwcGVkIHNvdXJjZSBtdXN0IHRoZXJlZm9yZSBhdm9pZCBOb2RlL0VTIHJ1bnRpbWUgYnVpbHRpbnMgdW5hdmFpbGFibGUgaW4gdGhhdCB2ZXJzaW9uLiBUZXN0cyBhbmQgc2NyaXB0cyBhcmUgZGV2LW9ubHkgYW5kIGV4ZW1wdC5cbiAgY29uc3QgbWluaW11bU5vZGVWZXJzaW9uID0gJz49MTYuMTMuMic7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZmlsZXM6IGNvbnRleHQuc291cmNlRmlsZXMsXG4gICAgICBpZ25vcmVzOiBbXG4gICAgICAgIC4uLmNvbnRleHQudGVzdEZpbGVzLFxuICAgICAgICAvLyBEZXYtb25seSB0b29saW5nIChidWlsZCwgbGludCwgdmVyc2lvbikgdW5kZXIgYHNyYy9zY3JpcHQtdXRpbHMvKipgIHJ1bnMgdmlhIGBqaXRpYCBpbiB0aGUgY29uc3VtZXIncyBOb2RlIGVudmlyb25tZW50IHdoZW4gYnVpbGRpbmcgYSBwbHVnaW4gYW5kIG5ldmVyIHNoaXBzIGludG8gdGhlIE9ic2lkaWFuIHJ1bnRpbWUsIHNvIHRoZSBOb2RlLTE2IGZsb29yIGRvZXMgbm90IGFwcGx5IHRvIGl0LlxuICAgICAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNjcmlwdFV0aWxzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcylcbiAgICAgIF0sXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG46IG5vZGVQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9lcy1idWlsdGlucyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZlcnNpb246IG1pbmltdW1Ob2RlVmVyc2lvblxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ24vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvbm9kZS1idWlsdGlucyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGBCbG9iYCBhbmQgYEZpbGVgIGFyZSBET00gd2ViIGdsb2JhbHMgYWx3YXlzIHByZXNlbnQgaW4gdGhlIE9ic2lkaWFuL0VsZWN0cm9uIHJlbmRlcmVyIChldmVyeSBzdXBwb3J0ZWQgQ2hyb21pdW0pLCBidXQgdGhlIHJ1bGUgYWxzbyBrbm93cyB0aGVtIGFzIE5vZGUncyBleHBlcmltZW50YWwgYnVpbHRpbnMgYW5kIGNhbm5vdCB0ZWxsIHdoaWNoIGlzIG1lYW50LiBJZ25vcmUgdGhlbSBnbG9iYWxseTsgZ2VudWluZWx5IG5ld2VyIEFQSXMgKGUuZy4gYEFib3J0U2lnbmFsLmFueWApIHN0YXkgZmxhZ2dlZC5cbiAgICAgICAgICAgIGlnbm9yZXM6IFtcbiAgICAgICAgICAgICAgJ0Jsb2InLFxuICAgICAgICAgICAgICAnRmlsZSdcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB2ZXJzaW9uOiBtaW5pbXVtTm9kZVZlcnNpb25cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscyc6IG9ic2lkaWFuRGV2VXRpbHNQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL25vLXVudXNlZC1wYXJhbXMtbWVtYmVycyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcHJlZmVyLW5vb3AtYXN5bmMnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3JlYWRvbmx5LXBhcmFtcy1vcHRpb25zLXJlc3VsdC1tZW1iZXJzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtbWV0aG9kLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLXN1cGVyLWNhbGwnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IG9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5tZC5jb25maWdzLnJlY29tbWVuZGVkO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICBpZiAoY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJykpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW3Njb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzXSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgb2JzaWRpYW5tZFxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFBlcmZlY3Rpb25pc3RDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFt7XG4gICAgZXh0ZW5kczogW3BlcmZlY3Rpb25pc3RDb25maWdzWydyZWNvbW1lbmRlZC1hbHBoYWJldGljYWwnXV0sXG4gICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKVxuICB9XSk7XG59XG5cbmZ1bmN0aW9uIGdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgc3R5bGlzdGljLmNvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLmN1c3RvbWl6ZSh7XG4gICAgICAgICAgYXJyb3dQYXJlbnM6IHRydWUsXG4gICAgICAgICAgYnJhY2VTdHlsZTogJzF0YnMnLFxuICAgICAgICAgIGNvbW1hRGFuZ2xlOiAnbmV2ZXInLFxuICAgICAgICAgIHNlbWk6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0BzdHlsaXN0aWMvZ2VuZXJhdG9yLXN0YXItc3BhY2luZyc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50LWJpbmFyeS1vcHMnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL25vLWV4dHJhLXNlbWknOiAnZXJyb3InLFxuICAgICAgICAnQHN0eWxpc3RpYy9vYmplY3QtY3VybHktbmV3bGluZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEV4cG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEltcG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb3BlcmF0b3ItbGluZWJyZWFrJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2JlZm9yZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgICAgICc9JzogJ2FmdGVyJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvcXVvdGVzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ3NpbmdsZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dUZW1wbGF0ZUxpdGVyYWxzOiAnbmV2ZXInXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3RyaWN0VHlwZUNoZWNrZWQsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3R5bGlzdGljVHlwZUNoZWNrZWRcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICBlY21hRmVhdHVyZXM6IHtcbiAgICAgICAgICAgIGpzeDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICAgICAgdHNjb25maWdSb290RGlyOiBnZXRSb290Rm9sZGVyKCkgPz8gJydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtZnVuY3Rpb24tcmV0dXJuLXR5cGUnOiAnZXJyb3InLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlJzogWydlcnJvcicsICdtZXRob2QnXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlcyc6IFsnZXJyb3InLCB7XG4gICAgICAgICAgY2hlY2tUaGVuYWJsZXM6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd1ByaXZhdGVDbGFzc1Byb3BlcnR5QWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGFsbG93UHJvdGVjdGVkQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxPQUFPLHFCQUFxQjtBQUM1QixTQUFTLHlCQUF5QjtBQUNsQyxPQUFPLFlBQVk7QUFFbkIsT0FBTyxlQUFlO0FBQ3RCLFNBQVMsc0NBQXNDO0FBQy9DLFNBQVMsZUFBZSxzQ0FBc0M7QUFFOUQsT0FBTyxnQkFBZ0I7QUFFdkIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxXQUFXLDRCQUE0QjtBQUNoRCxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLGtCQUFrQjtBQUUzQixPQUFP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