@mnaoumov/obsidian-dev-toolkit 3.2.0 → 3.3.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 (96) hide show
  1. package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +1 -75
  2. package/dist/lib/cjs/bundlers/esbuild-impl/dependency.cjs +3 -77
  3. package/dist/lib/cjs/bundlers/esbuild-impl/feature-options.cjs +1 -75
  4. package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +1 -75
  5. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +1 -75
  6. package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +1 -75
  7. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +3 -76
  8. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  9. package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.cjs +1 -75
  10. package/dist/lib/cjs/bundlers/esbuild.cjs +1 -75
  11. package/dist/lib/cjs/bundlers/index.cjs +1 -75
  12. package/dist/lib/cjs/bundlers/obsidian-cli-reload.cjs +1 -75
  13. package/dist/lib/cjs/bundlers/obsidian-plugin-build.cjs +1 -75
  14. package/dist/lib/cjs/bundlers/obsidian-plugin-features.cjs +1 -75
  15. package/dist/lib/cjs/bundlers/obsidian-plugin-transforms.cjs +1 -75
  16. package/dist/lib/cjs/bundlers/obsidian-plugin-webpack-loader.cjs +1 -75
  17. package/dist/lib/cjs/bundlers/obsidian-plugins-folder-deployment.cjs +32 -85
  18. package/dist/lib/cjs/bundlers/parcel.cjs +112 -81
  19. package/dist/lib/cjs/bundlers/parcel.d.cts +13 -6
  20. package/dist/lib/cjs/bundlers/rollup-compatible-features.cjs +1 -75
  21. package/dist/lib/cjs/bundlers/rollup-compatible.cjs +1 -75
  22. package/dist/lib/cjs/bundlers/rollup.cjs +1 -75
  23. package/dist/lib/cjs/bundlers/vite.cjs +1 -75
  24. package/dist/lib/cjs/bundlers/webpack.cjs +3 -77
  25. package/dist/lib/cjs/demo-vault-app-json.cjs +1 -75
  26. package/dist/lib/cjs/demo-vault-buttons.cjs +1 -75
  27. package/dist/lib/cjs/demo-vault-cli.cjs +1 -75
  28. package/dist/lib/cjs/demo-vault-coverage.cjs +139 -118
  29. package/dist/lib/cjs/demo-vault-coverage.d.cts +100 -5
  30. package/dist/lib/cjs/demo-vault.cjs +3 -77
  31. package/dist/lib/cjs/docs-site/index.cjs +1 -75
  32. package/dist/lib/cjs/docs-site/obsidian-external-type-links.cjs +1 -75
  33. package/dist/lib/cjs/formatters/dprint.cjs +1 -75
  34. package/dist/lib/cjs/formatters/index.cjs +1 -75
  35. package/dist/lib/cjs/index.cjs +1 -81
  36. package/dist/lib/cjs/index.d.cts +0 -2
  37. package/dist/lib/cjs/integration-test-setup.cjs +1 -75
  38. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +1 -75
  39. package/dist/lib/cjs/jest-setup.cjs +1 -75
  40. package/dist/lib/cjs/linters/eslint-config.cjs +1 -75
  41. package/dist/lib/cjs/linters/eslint-rules/index.cjs +1 -75
  42. package/dist/lib/cjs/linters/eslint-rules/manifest-description.cjs +1 -75
  43. package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs +1 -75
  44. package/dist/lib/cjs/linters/eslint-rules/manifest-id.cjs +1 -75
  45. package/dist/lib/cjs/linters/eslint-rules/manifest-name.cjs +1 -75
  46. package/dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs +1 -75
  47. package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.cjs +1 -75
  48. package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.cjs +2 -77
  49. package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.cjs +1 -75
  50. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.cjs +1 -75
  51. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.cjs +1 -75
  52. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.cjs +1 -75
  53. package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.cjs +1 -75
  54. package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.cjs +1 -75
  55. package/dist/lib/cjs/linters/eslint.cjs +1 -75
  56. package/dist/lib/cjs/linters/index.cjs +1 -75
  57. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +1 -75
  58. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +1 -75
  59. package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.cjs +1 -75
  60. package/dist/lib/cjs/linters/markdownlint.cjs +1 -75
  61. package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.cjs +1 -75
  62. package/dist/lib/cjs/linters/plugin-names.cjs +1 -75
  63. package/dist/lib/cjs/obsidian-plugin-repo-paths.cjs +1 -75
  64. package/dist/lib/cjs/setup.cjs +1 -75
  65. package/dist/lib/cjs/templates.cjs +3 -77
  66. package/dist/lib/cjs/test-runners/coverage-badge-cli.cjs +1 -75
  67. package/dist/lib/cjs/test-runners/coverage-badge.cjs +1 -75
  68. package/dist/lib/cjs/test-runners/e2e-runner-support.cjs +1 -75
  69. package/dist/lib/cjs/test-runners/index.cjs +1 -78
  70. package/dist/lib/cjs/test-runners/index.d.cts +0 -1
  71. package/dist/lib/cjs/test-runners/integration-test-plugin.cjs +3 -77
  72. package/dist/lib/cjs/test-runners/jest-config.cjs +1 -75
  73. package/dist/lib/cjs/test-runners/obsidian-test-runner.cjs +1 -75
  74. package/dist/lib/cjs/test-runners/performance-eval-cap.cjs +4 -75
  75. package/dist/lib/cjs/test-runners/performance-eval-cap.d.cts +12 -3
  76. package/dist/lib/cjs/test-runners/stale-build-global-setup.cjs +1 -75
  77. package/dist/lib/cjs/test-runners/vitest-config.cjs +4 -80
  78. package/dist/lib/cjs/test-runners/wdio-obsidian.cjs +1 -75
  79. package/dist/lib/cjs/version.cjs +1 -75
  80. package/dist/lib/cjs/vitest-setup.cjs +1 -75
  81. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
  82. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +3 -2
  83. package/dist/lib/esm/bundlers/obsidian-plugins-folder-deployment.mjs +32 -15
  84. package/dist/lib/esm/bundlers/parcel.d.mts +13 -6
  85. package/dist/lib/esm/bundlers/parcel.mjs +110 -5
  86. package/dist/lib/esm/demo-vault-coverage.d.mts +100 -5
  87. package/dist/lib/esm/demo-vault-coverage.mjs +139 -44
  88. package/dist/lib/esm/index.d.mts +0 -2
  89. package/dist/lib/esm/index.mjs +1 -5
  90. package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.mjs +2 -2
  91. package/dist/lib/esm/test-runners/index.d.mts +0 -1
  92. package/dist/lib/esm/test-runners/index.mjs +1 -3
  93. package/dist/lib/esm/test-runners/performance-eval-cap.d.mts +12 -3
  94. package/dist/lib/esm/test-runners/performance-eval-cap.mjs +3 -1
  95. package/dist/lib/esm/test-runners/vitest-config.mjs +4 -5
  96. package/package.json +3 -2
@@ -29,80 +29,6 @@ function ensureBrowserProcess() {
29
29
 
30
30
  ensureBrowserProcess();
31
31
  })();
32
- (function patchObsidianRequire() {
33
- const originalRequire = require;
34
- if (!originalRequire || originalRequire.__isPatched) {
35
- return;
36
- }
37
-
38
- require = Object.assign(
39
- (id) => requirePatched(id),
40
- originalRequire,
41
- {
42
- __isPatched: true
43
- }
44
- );
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
51
- '@codemirror/autocomplete',
52
- '@codemirror/collab',
53
- '@codemirror/commands',
54
- '@codemirror/language',
55
- '@codemirror/lint',
56
- '@codemirror/search',
57
- '@codemirror/state',
58
- '@codemirror/text',
59
- '@codemirror/view',
60
- '@lezer/common',
61
- '@lezer/highlight',
62
- '@lezer/lr',
63
- 'obsidian']
64
- );
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip']
79
- );
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
87
- if (globalThis.app.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- // eslint-disable-next-line no-console -- Valid usage.
90
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
91
-
92
- return process;
93
- }
94
- } else {
95
- const module = originalRequire?.(id);
96
- if (module) {
97
- return extractDefault(module);
98
- }
99
- }
100
-
101
- // eslint-disable-next-line no-console -- Valid usage.
102
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
103
- return {};
104
- }
105
- })();
106
32
 
107
33
  "use strict";
108
34
  var __create = Object.create;
@@ -384,4 +310,4 @@ function getObsidianOverrideConfigs(context) {
384
310
  EslintConfigContext,
385
311
  defineEslintConfigs
386
312
  });
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKlxuICogSXQgaXMgdGhlIGdlbmVyaWMgY29uZmlndXJhdGlvbiBvZiBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXRgIHBsdXMgdGhlIE9ic2lkaWFuIGxheWVycyBhbG9uZTpcbiAqIGBlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWRgJ3MgcmVjb21tZW5kZWQgcnVsZXMsIHRoZSByb290IGBtYW5pZmVzdC5qc29uYCBhbmQgYExJQ0VOU0VgLCB0aGUgTm9kZS1idWlsdGlucyBleGVtcHRpb25zXG4gKiBvZiBkZXNrdG9wLW9ubHkgbW9kdWxlcyBhbmQgdGVzdHMsIHRoZSBpbnRlZ3JhdGlvbi10ZXN0IHJ1bGVzIGFuZCB0aGUgT2JzaWRpYW4gaW4taG91c2UgcnVsZXMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgRGVmaW5lRXNsaW50Q29uZmlnc09wdGlvbnMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL2VzbGludC1jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVEZWZhdWx0RXNsaW50Q29uZmlnQ29udGV4dCxcbiAgRXNsaW50Q29uZmlnQ29udGV4dCxcbiAgZ2V0RXNsaW50Q29yZUNvbmZpZ3MsXG4gIGdldEdsb2JhbElnbm9yZUNvbmZpZ3MsXG4gIGdldFR5cGVTY3JpcHRFc2xpbnRDb25maWdzXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50LWNvbmZpZyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgb2JzaWRpYW5tZCBmcm9tICdlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWQnO1xuaW1wb3J0IHsgUGxhaW5UZXh0UGFyc2VyIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1vYnNpZGlhbm1kL2Rpc3QvbGliL3BsYWluVGV4dFBhcnNlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICdlc2xpbnQvY29uZmlnJztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqc29uUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvbWFuaWZlc3QtaGVscGVycy50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW4gfSBmcm9tICcuL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdG9vbGtpdC1wbHVnaW4udHMnO1xuaW1wb3J0IHsgc3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllcyB9IGZyb20gJy4vb2JzaWRpYW5tZC1ydWxlLWN1c3RvbS1tZXNzYWdlLnRzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWV4cG9ydC1mcm9tIC0tIFJlLWV4cG9ydGVkIHNvIGEgcGx1Z2luJ3MgYHNjcmlwdHMvZXNsaW50LWNvbmZpZy50c2Aga2VlcHMgaW1wb3J0aW5nIGJvdGggZnJvbSBoZXJlLlxuZXhwb3J0IHR5cGUgeyBEZWZpbmVFc2xpbnRDb25maWdzT3B0aW9ucyB9O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWV4cG9ydC1mcm9tIC0tIFJlLWV4cG9ydGVkIHNvIGEgcGx1Z2luJ3MgYHNjcmlwdHMvZXNsaW50LWNvbmZpZy50c2Aga2VlcHMgaW1wb3J0aW5nIGJvdGggZnJvbSBoZXJlLlxuZXhwb3J0IHsgRXNsaW50Q29uZmlnQ29udGV4dCB9O1xuXG4vKlxuICogVGhlIG1pbmltdW0gT2JzaWRpYW4gaW5zdGFsbGVyIHRoYXQgc3RpbGwgcmVjZWl2ZXMgYXBwIHVwZGF0ZXMgYW5kIHdvcmtzIGlzIDEuMS45LCB3aGljaCBzaGlwcyBFbGVjdHJvblxuICogMjEuMy4zIGFuZCBydW5zIE5vZGUgMTYuMTYuMC4gU2hpcHBlZCBzb3VyY2UgbXVzdCB0aGVyZWZvcmUgYXZvaWQgTm9kZS9FUyBydW50aW1lIGJ1aWx0aW5zIHVuYXZhaWxhYmxlIGluXG4gKiB0aGF0IHZlcnNpb24uIFRlc3RzIGFuZCBzY3JpcHRzIGFyZSBkZXYtb25seSBhbmQgZXhlbXB0LlxuICpcbiAqIFNvdXJjZSBvZiB0cnV0aDogYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcvbWV0YWRhdGEuanNvbmAg4oCUIHRoZSBuZXdlc3QgcmVsZWFzZSBjYXJyeWluZyB0aGUgZmllbGRcbiAqICgxLjEzLjEpIGRlY2xhcmVzIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb246IFwiMS4xLjlcImAsIGFuZCB0aGF0IGluc3RhbGxlcidzIGBydW50aW1lVmVyc2lvbnNgIGdpdmVzIHRoZVxuICogRWxlY3Ryb24gYW5kIE5vZGUgdmVyc2lvbnMgYWJvdmUuIFJlLWRlcml2ZSBmcm9tIHRoZXJlIHJhdGhlciB0aGFuIGVkaXRpbmcgdGhpcyBudW1iZXIgYnkgaGFuZC5cbiAqL1xuY29uc3QgTUlOSU1VTV9OT0RFX1ZFUlNJT04gPSAnPj0xNi4xNi4wJztcblxuLyoqXG4gKiBCdWlsZCBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBidWlsZHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9ucyBvZiBhbiBPYnNpZGlhbiBwbHVnaW46IHRoZSBnZW5lcmljIGNvbmZpZ3VyYXRpb24gb2ZcbiAqIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdGAgcGx1cyB0aGUgT2JzaWRpYW4gbGF5ZXJzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKG9wdGlvbnM6IERlZmluZUVzbGludENvbmZpZ3NPcHRpb25zID0ge30pOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBjb250ZXh0ID0gY3JlYXRlRGVmYXVsdEVzbGludENvbmZpZ0NvbnRleHQoKTtcblxuICBpZiAob3B0aW9ucy5lZGl0Q29udGV4dCkge1xuICAgIG9wdGlvbnMuZWRpdENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBjdXN0b21Db25maWdzID0gb3B0aW9ucy5jdXN0b21Db25maWdzPy4oY29udGV4dCkgPz8gW107XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcbiAgICAuLi5nZXRHbG9iYWxJZ25vcmVDb25maWdzKCksXG4gICAgLy8gT2JzaWRpYW5tZCBjb25maWdzIHJ1biBmaXJzdCBzbyBvdXIgc3RyaWN0ZXIgcnVsZXMgb3ZlcnJpZGUgdGhlaXIgcmVsYXhlZCBkZWZhdWx0c1xuICAgIC4uLmdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHlwZVNjcmlwdEVzbGludENvbmZpZ3MoeyBjb250ZXh0LCBtaW5pbXVtTm9kZVZlcnNpb246IE1JTklNVU1fTk9ERV9WRVJTSU9OIH0pLFxuICAgIC4uLmdldE9ic2lkaWFuT3ZlcnJpZGVDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldE5vZGVCdWlsdGluc0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW50ZWdyYXRpb25UZXN0Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRNYW5pZmVzdENvbmZpZ3MoKSxcbiAgICAuLi5nZXRMaWNlbnNlQ29uZmlncygpLFxuICAgIC4uLmN1c3RvbUNvbmZpZ3NcbiAgKTtcbn1cbmZ1bmN0aW9uIGdldEludGVncmF0aW9uVGVzdENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8qXG4gICAgICAgKiBBbiBpbnRlZ3JhdGlvbiB0ZXN0IHRoYXQgZHJpdmVzIHRoZSBVSSB3aXRoIGBkaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KC4uLikpYCBwcm9kdWNlcyBhblxuICAgICAgICogVU5UUlVTVEVEIGV2ZW50LCBhbmQgT2JzaWRpYW4gYW5kIENvZGVNaXJyb3IgZ2F0ZSBvbiBgaXNUcnVzdGVkYCDigJQgc28gdGhlIHRlc3QgY2FuIGV4ZXJjaXNlXG4gICAgICAgKiBub3RoaW5nIHdoaWxlIHN0aWxsIHBhc3NpbmcuIE9ubHkgaW50ZWdyYXRpb24gdGVzdHMgYXJlIGNvdmVyZWQ6IGEgdW5pdCB0ZXN0IGhhcyBubyByZWFsIGlucHV0XG4gICAgICAgKiBwaXBlbGluZSB0byByZWFjaCwgc28gZGlzcGF0Y2hpbmcgaXMgdGhlIG9ubHkgdGhpbmcgaXQgY2FuIGRvLlxuICAgICAgICpcbiAgICAgICAqIEFuZHJvaWQgZmlsZXMgdXNlZCB0byBiZSBleGVtcHQgQlkgRklMRU5BTUUsIG9uIHRoZSBncm91bmRzIHRoYXQgdGhlIHRydXN0ZWQgaGVscGVycyB3ZXJlIGJ1aWx0IG9uXG4gICAgICAgKiBgd2luZG93LmVsZWN0cm9uYCBhbmQgc28gY291bGQgbm90IGJlIHJlYWNoZWQgZnJvbSBhIHBob25lIGF0IGFsbC4gVGhhdCBleGVtcHRpb24gaXMgZ29uZTogdGhlXG4gICAgICAgKiBoYXJuZXNzIGdhaW5lZCBhIG1vYmlsZSB0cnVzdGVkLWlucHV0IHBhdGgsIGFuZCBgY2xpY2tFbGVtZW50YCwgYGNsaWNrTW91c2VgLCBgcHJlc3NLZXlgIGFuZFxuICAgICAgICogYHR5cGVJbnRvRWRpdG9yYCBhbGwgd29yayB0aGVyZS4gT25seSB0aGUgaG92ZXIgaGVscGVycyBzdGlsbCB0aHJvdywgYmVjYXVzZSBgOmhvdmVyYCBoYXMgbm8gdG91Y2hcbiAgICAgICAqIGVxdWl2YWxlbnQg4oCUIGEgZmlsZSByZWFjaGluZyBmb3IgdGhvc2UgaGFzIHRvIGJyYW5jaCBvbiBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYCwgd2hpY2ggaXMgdGhlIHNhbWVcbiAgICAgICAqIHRoaW5nIGEgYCouY3Jvc3MtcGxhdGZvcm0uKmAgZmlsZSBoYXMgYWx3YXlzIGhhZCB0byBkby5cbiAgICAgICAqL1xuICAgICAgZmlsZXM6IGNvbnRleHQuc291cmNlRm9sZGVycy5tYXAoKHNvdXJjZUZvbGRlcikgPT4gam9pbihzb3VyY2VGb2xkZXIsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueUludGVncmF0aW9uVGVzdFRzKSksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdCc6IG9ic2lkaWFuRGV2VG9vbGtpdFBsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9uby11bnRydXN0ZWQtaW5wdXQtZXZlbnRzJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbi8qXG4gKiBUaGUgQ29tbXVuaXR5IGRpcmVjdG9yeSByZXF1aXJlcyBhIHJvb3QgYExJQ0VOU0VgLCBhbmQgYG9ic2lkaWFubWQvdmFsaWRhdGUtbGljZW5zZWAgaXMgdGhlIG9ubHkgY2hlY2tcbiAqIG9uIHdoYXQgaXQgc2F5czogdGhlIGNvcHlyaWdodCBob2xkZXIgbXVzdCBub3Qgc3RpbGwgYmUgdGhlIHNhbXBsZSBwbHVnaW4ncywgYW5kIHRoZSB5ZWFyIG11c3QgYmVcbiAqIGN1cnJlbnQuIEJvdGggbmVlZCBgUGxhaW5UZXh0UGFyc2VyYCwgd2hpY2ggdGhlIHBsdWdpbiBkb2VzIG5vdCBleHBvcnQsIHNvIGl0IGlzIHJlYWNoZWQgdGhyb3VnaCBpdHNcbiAqIGJ1aWxkIG91dHB1dCAtLSB0aGUgcGFja2FnZSBkZWNsYXJlcyBubyBgZXhwb3J0c2AgbWFwIGFuZCBzaGlwcyBhIGRlY2xhcmF0aW9uIGJlc2lkZSB0aGUgbW9kdWxlLCBzbyB0aGVcbiAqIGRlZXAgcGF0aCByZXNvbHZlcywgYnV0IGl0IGlzIHRoZSBvbmUgaW1wb3J0IGhlcmUgdGhhdCBhIHBhdGNoIHJlbGVhc2UgdXBzdHJlYW0gY291bGQgYnJlYWsuXG4gKlxuICogVGhlIHJ1bGUgY29tcGFyZXMgdGhlIHllYXIgYWdhaW5zdCBgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpYCBhdCBsaW50IHRpbWUsIHNvIGEgcmVwbyBnb2VzIHJlZCBhdCB0aGVcbiAqIHR1cm4gb2YgdGhlIHllYXIgdW50aWwgaXRzIExJQ0VOU0UgaXMgYnVtcGVkLiBgLmdpdGh1Yi93b3JrZmxvd3MvdXBkYXRlLWxpY2Vuc2UteWVhci55bWxgIGRvZXMgdGhhdCBvblxuICogMSBKYW51YXJ5OyBhIHJlcG8gYWRvcHRpbmcgdGhpcyBjb25maWcgbmVlZHMgdGhlIHNhbWUgd29ya2Zsb3csIG9yIHRoZSB5ZWFyIGNoZWNrIHdpbGwgZmFpbCBpdHMgQ0kuXG4gKi9cbmZ1bmN0aW9uIGdldExpY2Vuc2VDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTGljZW5zZV0sXG4gICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcbiAgICAgICAgcGFyc2VyOiBQbGFpblRleHRQYXJzZXJcbiAgICAgIH0sXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG9ic2lkaWFubWRcbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW5tZC92YWxpZGF0ZS1saWNlbnNlJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbi8qXG4gKiBUaGUgcm9vdCBgbWFuaWZlc3QuanNvbmAgaXMgd2hhdCB0aGUgQ29tbXVuaXR5IGRpcmVjdG9yeSdzIGF1dG9tYXRlZCByZXZpZXcgYWN0dWFsbHkgcmVhZHMsIGFuZCB1bnRpbFxuICogdGhpcyBjb25maWcgZXhpc3RlZCBubyBsaW50ZXIgcmVhZCBpdCBhdCBhbGw6IGBvYnNpZGlhbm1kL3ZhbGlkYXRlLW1hbmlmZXN0YCByZWdpc3RlcnMgYSBgUHJvZ3JhbWBcbiAqIHZpc2l0b3IgYW5kIGV4cGVjdHMgYW4gRVNUcmVlIGBPYmplY3RFeHByZXNzaW9uYCwgd2hpbGUgZXZlcnkgSlNPTiBwYXJzZXIgdGhhdCBzaGlwcyBwcm9kdWNlcyBzb21ldGhpbmdcbiAqIGVsc2UgLS0gYEBlc2xpbnQvanNvbmAgcHJvZHVjZXMgTW9tb2EgKGBEb2N1bWVudGApLCBganNvbmMtZXNsaW50LXBhcnNlcmAgcHJvZHVjZXNcbiAqIGBKU09OT2JqZWN0RXhwcmVzc2lvbmAgLS0gc28gdGhlIHJ1bGUgc2lsZW50bHkgbWF0Y2hlcyBub3RoaW5nIG5vIG1hdHRlciB3aGljaCBmaWxlcyBpdCBpcyBzY29wZWQgdG8uXG4gKiBUaGUgaW4taG91c2UgcnVsZXMgYmVsb3cgdmlzaXQgdGhlIE1vbW9hIEFTVCBpbnN0ZWFkLlxuICpcbiAqIGBtYW5pZmVzdC5qc29uYCBpcyBzdHJpY3QgSlNPTiwgc28gYW4gYGVzbGludC1kaXNhYmxlYCBjb21tZW50IGluIGl0IGlzIGEgcGFyc2UgZXJyb3IgQU5EIHdvdWxkIHN0b3BcbiAqIE9ic2lkaWFuIGxvYWRpbmcgdGhlIHBsdWdpbi4gVGhhdCBtYWtlcyB0aGUgY29uZmlnIHRoZSBvbmx5IHBsYWNlIGEgY2hlY2sgY2FuIGJlIHdhaXZlZCwgd2hpY2ggaXMgd2h5XG4gKiB0aGVzZSBhcmUgZm91ciBydWxlcyByYXRoZXIgdGhhbiBvbmU6IGEgcmVwbyB3aXRoIGEgZ3JhbmRmYXRoZXJlZCBgaWRgIGNhbiB0dXJuIG9mZiBgbWFuaWZlc3QtaWRgIGFsb25lXG4gKiBhbmQga2VlcCB0aGUgcmVzdC5cbiAqL1xuZnVuY3Rpb24gZ2V0TWFuaWZlc3RDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uXSxcbiAgICAgIGxhbmd1YWdlOiAnanNvbi9qc29uJyxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgJ2pzb24nOiBqc29uUGx1Z2luLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvbWFuaWZlc3QtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvbWFuaWZlc3QtaWQnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvbWFuaWZlc3QtbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9tYW5pZmVzdC1zY2hlbWEnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLypcbiAqIEV2ZXJ5IGZpbGUgc2V0IHRoYXQgaXMgZXhlbXB0IGZyb20gdGhlIE5vZGUtYnVpbHRpbnMgYmFucywgaW4gb25lIHBsYWNlLlxuICpcbiAqIFR3byBydWxlcyBiYW4gTm9kZSBidWlsdGlucywgYW5kIHRoZXkgYXJlIE5PVCBpbnRlcmNoYW5nZWFibGUuIGBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlc2AgaXMgb3VycywgaXQgaXNcbiAqIGFuIGVycm9yLCBhbmQgaXRzIHdhaXZlcnMgYXJlIHRvbGVyYXRlZCBieSB0aGUgY29tbXVuaXR5LWRpcmVjdG9yeSByZXZpZXcgcnVubmVyLiBgb2JzaWRpYW5tZC9uby1ub2RlanMtbW9kdWxlc2BcbiAqIGFycml2ZXMgdmlhIGBvYnNpZGlhbm1kLmNvbmZpZ3MucmVjb21tZW5kZWRgIChzZWUgYGdldE9ic2lkaWFuTGludENvbmZpZ3NgKSBhbmQgaXMgc3RyaWN0bHkgd2Vha2VyIG9uIHN0YXRpY1xuICogaW1wb3J0cyDigJQgaXRzIG93biBzb3VyY2Ugc2F5cyBcIlN0YXRpYyBpbXBvcnQgZGVjbGFyYXRpb25zIGNhbiBuZXZlciBiZSBndWFyZGVkIGF0IHJ1bnRpbWVcIiwgc28gaXQgcmVwb3J0cyBldmVyeVxuICogYEltcG9ydERlY2xhcmF0aW9uYCBvZiBhIGJ1aWx0aW4gdW5jb25kaXRpb25hbGx5IGFuZCBvbmx5IGBpbXBvcnQoKWAgLyBgcmVxdWlyZSgpYCBnZXQgZ3VhcmQtYXdhcmVuZXNzLiBJdCBpc1xuICogYWxzbyBvbmUgdGhlIGNvbnN1bWVyIENBTk5PVCBXQUlWRTogdGhlIGRpcmVjdG9yeSBydW5uZXIgc2V0c1xuICogYGVzbGludC1jb21tZW50cy9uby1yZXN0cmljdGVkLWRpc2FibGU6IFsnZXJyb3InLCAnb2JzaWRpYW5tZC8qJywgLi4uXWAsIHdoaXRlbGlzdGluZyBvbmx5XG4gKiBgb2JzaWRpYW5tZC91aS9zZW50ZW5jZS1jYXNlYCwgc28gYW4gaW5saW5lIGRpc2FibGUgb2YgaXQgdHJhZGVzIGEgd2FybmluZyBmb3IgYW4gZXJyb3IgaW4gYSByZXZpZXcuIFRoYXQgaXMgd2h5XG4gKiBldmVyeSBleGVtcHRpb24gYmVsb3cgaGFzIHRvIGxpdmUgaGVyZSBpbiB0aGUgc2hhcmVkIGNvbmZpZyByYXRoZXIgdGhhbiBhcyBhIGNvbW1lbnQgYXQgdGhlIGNhbGwgc2l0ZS5cbiAqXG4gKiBPbmUgZnVydGhlciBleGVtcHRpb24gZGVsaWJlcmF0ZWx5IGxpdmVzIGVsc2V3aGVyZTogYGdldEltcG9ydFhDb25maWdzYCB0dXJucyBvZmYgb25seSBgaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXNgXG4gKiBmb3IgYGNvbnRleHQuc2NyaXB0RmlsZXNgLiBJdCBuZWVkcyBubyBgb2JzaWRpYW5tZGAgdHdpbiwgYmVjYXVzZSBgZ2V0T2JzaWRpYW5MaW50Q29uZmlnc2Agc2NvcGVzIHRoZSBvYnNpZGlhbm1kXG4gKiBydWxlcyB0byBgY29udGV4dC5zb3VyY2VGaWxlc2AsIHNvIHRoZXkgbmV2ZXIgcmVhY2ggc2NyaXB0cyBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gKi9cbmZ1bmN0aW9uIGdldE5vZGVCdWlsdGluc0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8vIEludGVncmF0aW9uIHRlc3RzIHJ1biBpbiBhIE5vZGUgZW52aXJvbm1lbnQgYW5kIGxlZ2l0aW1hdGVseSByZWFkIGZpbGVzIC8gcGF0aHMsIHNvIHRoZSBOb2RlLWJ1aWx0aW5zIGJhbnMgZG8gbm90IGFwcGx5IHRvIHRoZW0uXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGb2xkZXJzLm1hcCgoc291cmNlRm9sZGVyKSA9PiBqb2luKHNvdXJjZUZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55SW50ZWdyYXRpb25UZXN0VHMpKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnb2JzaWRpYW5tZC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAvKlxuICAgICAgICogQSBgZGVza3RvcC1gIHByZWZpeGVkIG1vZHVsZSBpcyBkZXNrdG9wLW9ubHkgYnkgY29udmVudGlvbjogaXQgaXMgcmVhY2hlZCBvbmx5IHRocm91Z2ggYVxuICAgICAgICogYFBsYXRmb3JtLmlzRGVza3RvcEFwcGAtZ2F0ZWQgZHluYW1pYyBgaW1wb3J0KClgIGluIGl0cyBjYWxsZXIsIHNvIGl0cyBzdGF0aWMgTm9kZSBpbXBvcnRzIG5ldmVyXG4gICAgICAgKiBsb2FkIG9uIG1vYmlsZS4gTmVpdGhlciBydWxlIGNhbiBzZWUgdGhhdCBnYXRlLCBiZWNhdXNlIGl0IHNpdHMgb25lIGZpbGUgdXAg4oCUIHRoZSBjb3JyZWN0bHktd3JpdHRlbiBwYXR0ZXJuXG4gICAgICAgKiByZXBvcnRzIGFueXdheSwgYW5kIG5vIGF1dGhvci1zaWRlIHJld3JpdGUgc2lsZW5jZXMgaXQuXG4gICAgICAgKlxuICAgICAgICogRXhlbXB0aW5nIEJZIEZJTEVOQU1FIHJhdGhlciB0aGFuIGJ5IGEgZGlzYWJsZSBjb21tZW50IGNhcnJpZXMgYSB0cmFkZS1vZmYga25vd2luZ2x5OiB0aGUgZXhlbXB0aW9uIGtleXNcbiAgICAgICAqIG9mZiB3aGF0IHRoZSBmaWxlIGlzIE5BTUVEIHJhdGhlciB0aGFuIHdoYXQgaXQgZG9lcywgc28gdGhlIHByZWZpeCBpcyBsb2FkLWJlYXJpbmcuIEEgZGVza3RvcC1vbmx5IG1vZHVsZVxuICAgICAgICogdGhhdCBza2lwcyB0aGUgcHJlZml4IGtlZXBzIHJlcG9ydGluZywgYW5kIGEgY3Jvc3MtcGxhdGZvcm0gbW9kdWxlIHRoYXQgd3JvbmdseSB0YWtlcyBpdCBnZXRzIGFuIGV4ZW1wdGlvblxuICAgICAgICogaXQgc2hvdWxkIG5vdCBoYXZlLlxuICAgICAgICovXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGb2xkZXJzLm1hcCgoc291cmNlRm9sZGVyKSA9PiBqb2luKHNvdXJjZUZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55RGVza3RvcFRzKSksXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJyxcbiAgICAgICAgJ29ic2lkaWFubWQvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgLypcbiAgICAgICAqIEEgdW5pdCB0ZXN0IHJ1bnMgdW5kZXIgdml0ZXN0IGluIE5vZGUgYW5kIGlzIG5ldmVyIGJ1bmRsZWQgaW50byBgbWFpbi5qc2AsIHNvIHRoZSBOb2RlLWJ1aWx0aW5zIGJhbnMgZG8gbm90XG4gICAgICAgKiBhcHBseSB0byBpdCBlaXRoZXIg4oCUIHRoZSBpZGVudGljYWwgYXJndW1lbnQgdGhlIGludGVncmF0aW9uLXRlc3QgYmxvY2sgYWJvdmUgYWxyZWFkeSBhY2NlcHRzLiBUaGlzIGFsc29cbiAgICAgICAqIGNvdmVycyB0aGUgU1VULWdyb3VwZWQgYCouZGVza3RvcC50ZXN0LnRzYCBzaGFwZSwgd2hpY2ggbmFtZXMgdGhlIHBsYXRmb3JtIGFzIGEgZG90IHNlZ21lbnQgYWZ0ZXIgdGhlXG4gICAgICAgKiBzdWJqZWN0IHVuZGVyIHRlc3QgcmF0aGVyIHRoYW4gYXMgYSBgZGVza3RvcC1gIHByZWZpeC5cbiAgICAgICAqL1xuICAgICAgZmlsZXM6IGNvbnRleHQudGVzdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZicsXG4gICAgICAgICdvYnNpZGlhbm1kL25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFubWQuY29uZmlncy5yZWNvbW1lbmRlZDtcblxuICAvKlxuICAgKiBBIGJ1aWx0aW4gdGhpcyBjb25maWcgc2V0cyBpdHNlbGYgbXVzdCBub3QgQUxTTyBydW4gdGhyb3VnaCBgb2JzaWRpYW5tZC9ydWxlLWN1c3RvbS1tZXNzYWdlYCwgb3IgYSBjb25zdW1lcidzIG93blxuICAgKiBgJ25vLWNvbnNvbGUnOiAnb2ZmJ2AgaXMgaW5lcnQgYW5kIGV2ZXJ5IGNvbnNvbGUgbGluZSBpcyByZXBvcnRlZCB0d2ljZS4gU2VlIGBvYnNpZGlhbm1kLXJ1bGUtY3VzdG9tLW1lc3NhZ2UudHNgLlxuICAgKi9cbiAgY29uc3Qgb3duZWRSdWxlTmFtZXMgPSBuZXcgU2V0KGdldEVzbGludENvcmVDb25maWdzKGNvbnRleHQpLmZsYXRNYXAoKGNvbmZpZykgPT4gT2JqZWN0LmtleXMoY29uZmlnLnJ1bGVzID8/IHt9KSkpO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICByZXR1cm4gY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJylcbiAgICAgID8gY29uZmlnXG4gICAgICA6IHtcbiAgICAgICAgLi4uc3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllcyh7IGNvbmZpZywgb3duZWRSdWxlTmFtZXMgfSksXG4gICAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzXG4gICAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3NdLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICBvYnNpZGlhbm1kXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5PdmVycmlkZUNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZvbGRlcnMubWFwKChzb3VyY2VGb2xkZXIpID0+IGpvaW4oc291cmNlRm9sZGVyLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYWluVHMpKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAvKlxuICAgICAgICAgKiBEZWxpYmVyYXRlbHkgaGVyZSwgb24gYGFsbEZpbGVzKClgLCByYXRoZXIgdGhhbiBiZXNpZGUgYG5vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHNgIGluXG4gICAgICAgICAqIGBnZXRJbnRlZ3JhdGlvblRlc3RDb25maWdzKClgIChvd25lciwgMjAyNi0wOS0wOSkuIEFuIGBldmFsSW5PYnNpZGlhbmAgY2FsbCBpcyB1bm1pc3Rha2FibGUsIHNvIGFcbiAgICAgICAgICogZmlsZSB0aGF0IG1ha2VzIG5vbmUgaXMgdW50b3VjaGVkIGFuZCBhIGJyb2FkIGdsb2IgY29zdHMgbm90aGluZyAtLSB3aGlsZSBzY3JpcHQgY29kZSB0aGF0IGRyaXZlc1xuICAgICAgICAgKiBhIHJlYWwgT2JzaWRpYW4gb3V0c2lkZSBhIHRlc3QgKGBkZW1vLXZhdWx0LWJ1dHRvbnMudHNgKSBpcyB1bmRlciB0aGUgc2FtZSB0cmFuc3BvcnQgY2FwIGFuZCB3b3VsZFxuICAgICAgICAgKiBvdGhlcndpc2UgYmUgZW5mb3JjZWQgbm93aGVyZS5cbiAgICAgICAgICovXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9uby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4nOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcmVxdWlyZS1jb21wb25lbnQtc3VmZml4JzogJ2Vycm9yJyxcbiAgICAgICAgLypcbiAgICAgICAgICogT2JzaWRpYW4ncyBgQ29tcG9uZW50YCBoYXMgaXRzIG93biBgcmVtb3ZlQ2hpbGQoY29tcG9uZW50KWAgZm9yIHRoZSBjb21wb25lbnQgbGlmZWN5Y2xlLCB1bnJlbGF0ZWRcbiAgICAgICAgICogdG8gYE5vZGUjcmVtb3ZlQ2hpbGRgLiBUaGUgcnVsZSBtYXRjaGVzIG9uIHRoZSBtZXRob2QgbmFtZSBhbG9uZSwgc28gZXZlcnkgcmVwb3J0IGhlcmUgaXMgYVxuICAgICAgICAgKiBjb21wb25lbnQgYmVpbmcgdW5sb2FkZWQsIGFuZCBmb2xsb3dpbmcgdGhlIGFkdmljZSBjYWxscyBhIGByZW1vdmUoKWAgdGhhdCBkb2VzIG5vdCBleGlzdCAtLSB3aGljaFxuICAgICAgICAgKiBpcyB3aGF0IGB0c2NgIHNhaWQgd2hlbiB0aGUgZml4ZXIgd2FzIGxldCBsb29zZSBvbiB0aGVtLlxuICAgICAgICAgKi9cbiAgICAgICAgJ3VuaWNvcm4vcHJlZmVyLWRvbS1ub2RlLXJlbW92ZSc6ICdvZmYnLFxuICAgICAgICAvKlxuICAgICAgICAgKiBEaXJlY3RseSBjb250cmFkaWN0cyBgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpc2A6IHRoaXMgcnVsZSByZXdyaXRlcyBgd2luZG93LnhgIHRvIGBnbG9iYWxUaGlzLnhgLCBhbmRcbiAgICAgICAgICogdGhhdCBvbmUgZm9yYmlkcyBgZ2xvYmFsVGhpc2Agb3V0cmlnaHQuIFdpdGggYm90aCBlbmFibGVkLCBgLS1maXhgIGFwcGxpZXMgb25lIGFuZCB0aGVuIHRoZSBvdGhlclxuICAgICAgICAgKiByZXZlcnRzIGl0LCB3aGljaCBFU0xpbnQgcmVwb3J0cyBhcyBgRVNMaW50Q2lyY3VsYXJGaXhlc1dhcm5pbmdgIGFjcm9zcyAyOSBmaWxlcy4gT2JzaWRpYW4ncyBvd25cbiAgICAgICAgICogZ3VpZGFuY2Ugd2lucyBpbiBhbiBPYnNpZGlhbiBsaWJyYXJ5LCBzbyB0aGlzIGlzIHRoZSBydWxlIHRoYXQgZ2l2ZXMgd2F5LlxuICAgICAgICAgKi9cbiAgICAgICAgJ3VuaWNvcm4vcHJlZmVyLWdsb2JhbC10aGlzJzogJ29mZidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIC8qXG4gICAgICAgKiBPYnNpZGlhbidzIGludGVybmFsIEFQSSBpcyB0eXBlZCBpbiBgb2JzaWRpYW4tdHlwaW5nc2AsIHNvIGEgYGRlY2xhcmUgbW9kdWxlICdvYnNpZGlhbidgIGF1Z21lbnRhdGlvbiBpblxuICAgICAgICogc2hpcHBlZCBzb3VyY2UgbWF5IGNhcnJ5IG9ubHkgdGhlIHBsdWdpbidzIG93biBjdXN0b20tZXZlbnQgb3ZlcmxvYWRzLiBUZXN0cyBhcmUgZXhlbXB0OiBhIG1vY2sgc2hhcGUgb3IgYVxuICAgICAgICogaGFybmVzcyBnbG9iYWwgbmV2ZXIgc2hpcHMuXG4gICAgICAgKi9cbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzLFxuICAgICAgaWdub3JlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdCc6IG9ic2lkaWFuRGV2VG9vbGtpdFBsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9uby1sb2NhbC1vYnNpZGlhbi1pbnRlcm5hbHMnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAvKlxuICAgICAgICogRXZlcnkgbWV0aG9kIGVudHJ5IG9mIGEgcGx1Z2luIEFQSSBjb250cmFjdCBjYXJyaWVzIGFuIGBpbnB1dGAgYW5kIGFuIGBvdXRwdXRgIHNjaGVtYSwgc28gYSBge31gIGVudHJ5IHRoYXRcbiAgICAgICAqIHZhbGlkYXRlcyBub3RoaW5nIGNhbm5vdCBjb21lIGJhY2sgd2hlcmUgdGhlIGNvbnRyYWN0IHR5cGUgaXMgdW50eXBlZCBhbmQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IHJlZnVzZSBpdC5cbiAgICAgICAqIFRlc3RzIGFyZSBleGVtcHQ6IHRoZXkgbWF5IHB1Ymxpc2ggYSBkZWxpYmVyYXRlbHkgYnJva2VuIGNvbnRyYWN0LlxuICAgICAgICpcbiAgICAgICAqIFJlZ2lzdGVyZWQgYnV0IE9GRjogc2V2ZXJhbCBwcm92aWRlcnMgYW5kIGNvbnN1bWVycyBzdGlsbCBjYXJyeSBge31gIGVudHJpZXMsIGFuZCB0dXJuaW5nIGl0IG9uIGZpcnN0IHdvdWxkXG4gICAgICAgKiBtYWtlIHRoZWlyIGxpbnQgcmVkLiBTd2l0Y2ggaXQgdG8gYCdlcnJvcidgIG9uY2Ugbm9uZSBpcyBsZWZ0LlxuICAgICAgICovXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGaWxlcyxcbiAgICAgIGlnbm9yZXM6IGNvbnRleHQudGVzdEZpbGVzLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcmVxdWlyZS1wbHVnaW4tYXBpLWNvbnRyYWN0LXNjaGVtYXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgLypcbiAgICAgICAqIEEgcGx1Z2luJ3MgZGlzcGxheSBuYW1lIGlzIG1hcmtlZCBhcyBjb2RlOiBiYWNrdGlja3MgaW4gYSBjb21tZW50IChgcGx1Z2luLW5hbWUtYXMtY29kZWAsIGF1dG9maXhlZCksIGFcbiAgICAgICAqIGA8Y29kZT5gIGVsZW1lbnQgaW4gVUkgKGBwbHVnaW4tbmFtZS1hcy1jb2RlLWluLXVpYCwgcmVwb3J0ZWQgb25seSkuXG4gICAgICAgKlxuICAgICAgICogUmVnaXN0ZXJlZCBidXQgT0ZGOiByZXBvc2l0b3JpZXMgc3RpbGwgY2FycnkgcGxhaW4gcGx1Z2luIG5hbWVzIGZyb20gYmVmb3JlIHRoZSBydWxlcyBleGlzdGVkLCBhbmQgdHVybmluZ1xuICAgICAgICogdGhlbSBvbiBmaXJzdCB3b3VsZCBtYWtlIHRoZWlyIGxpbnQgcmVkLiBTd2l0Y2ggdGhlbSB0byBgJ2Vycm9yJ2Agb25jZSB0aG9zZSBhcmUgZml4ZWQuIEJvdGggdGFrZVxuICAgICAgICogYHsgYWRkaXRpb25hbFBsdWdpbk5hbWVzOiBbLi4uXSB9YCBmb3IgbmFtZXMgdGhlIHNoYXJlZCBsaXN0IGxhY2tzLlxuICAgICAgICovXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcGx1Z2luLW5hbWUtYXMtY29kZSc6ICdvZmYnLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aSc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQSwyQkFNTztBQUNQLGtCQUFxQjtBQUVyQixzQ0FBdUI7QUFDdkIsNkJBQWdDO0FBQ2hDLG9CQUE2QjtBQUU3Qix3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
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKlxuICogSXQgaXMgdGhlIGdlbmVyaWMgY29uZmlndXJhdGlvbiBvZiBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXRgIHBsdXMgdGhlIE9ic2lkaWFuIGxheWVycyBhbG9uZTpcbiAqIGBlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWRgJ3MgcmVjb21tZW5kZWQgcnVsZXMsIHRoZSByb290IGBtYW5pZmVzdC5qc29uYCBhbmQgYExJQ0VOU0VgLCB0aGUgTm9kZS1idWlsdGlucyBleGVtcHRpb25zXG4gKiBvZiBkZXNrdG9wLW9ubHkgbW9kdWxlcyBhbmQgdGVzdHMsIHRoZSBpbnRlZ3JhdGlvbi10ZXN0IHJ1bGVzIGFuZCB0aGUgT2JzaWRpYW4gaW4taG91c2UgcnVsZXMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgRGVmaW5lRXNsaW50Q29uZmlnc09wdGlvbnMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL2VzbGludC1jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVEZWZhdWx0RXNsaW50Q29uZmlnQ29udGV4dCxcbiAgRXNsaW50Q29uZmlnQ29udGV4dCxcbiAgZ2V0RXNsaW50Q29yZUNvbmZpZ3MsXG4gIGdldEdsb2JhbElnbm9yZUNvbmZpZ3MsXG4gIGdldFR5cGVTY3JpcHRFc2xpbnRDb25maWdzXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50LWNvbmZpZyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgb2JzaWRpYW5tZCBmcm9tICdlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWQnO1xuaW1wb3J0IHsgUGxhaW5UZXh0UGFyc2VyIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1vYnNpZGlhbm1kL2Rpc3QvbGliL3BsYWluVGV4dFBhcnNlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICdlc2xpbnQvY29uZmlnJztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqc29uUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvbWFuaWZlc3QtaGVscGVycy50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW4gfSBmcm9tICcuL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdG9vbGtpdC1wbHVnaW4udHMnO1xuaW1wb3J0IHsgc3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllcyB9IGZyb20gJy4vb2JzaWRpYW5tZC1ydWxlLWN1c3RvbS1tZXNzYWdlLnRzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWV4cG9ydC1mcm9tIC0tIFJlLWV4cG9ydGVkIHNvIGEgcGx1Z2luJ3MgYHNjcmlwdHMvZXNsaW50LWNvbmZpZy50c2Aga2VlcHMgaW1wb3J0aW5nIGJvdGggZnJvbSBoZXJlLlxuZXhwb3J0IHR5cGUgeyBEZWZpbmVFc2xpbnRDb25maWdzT3B0aW9ucyB9O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWV4cG9ydC1mcm9tIC0tIFJlLWV4cG9ydGVkIHNvIGEgcGx1Z2luJ3MgYHNjcmlwdHMvZXNsaW50LWNvbmZpZy50c2Aga2VlcHMgaW1wb3J0aW5nIGJvdGggZnJvbSBoZXJlLlxuZXhwb3J0IHsgRXNsaW50Q29uZmlnQ29udGV4dCB9O1xuXG4vKlxuICogVGhlIG1pbmltdW0gT2JzaWRpYW4gaW5zdGFsbGVyIHRoYXQgc3RpbGwgcmVjZWl2ZXMgYXBwIHVwZGF0ZXMgYW5kIHdvcmtzIGlzIDEuMS45LCB3aGljaCBzaGlwcyBFbGVjdHJvblxuICogMjEuMy4zIGFuZCBydW5zIE5vZGUgMTYuMTYuMC4gU2hpcHBlZCBzb3VyY2UgbXVzdCB0aGVyZWZvcmUgYXZvaWQgTm9kZS9FUyBydW50aW1lIGJ1aWx0aW5zIHVuYXZhaWxhYmxlIGluXG4gKiB0aGF0IHZlcnNpb24uIFRlc3RzIGFuZCBzY3JpcHRzIGFyZSBkZXYtb25seSBhbmQgZXhlbXB0LlxuICpcbiAqIFNvdXJjZSBvZiB0cnV0aDogYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcvbWV0YWRhdGEuanNvbmAg4oCUIHRoZSBuZXdlc3QgcmVsZWFzZSBjYXJyeWluZyB0aGUgZmllbGRcbiAqICgxLjEzLjEpIGRlY2xhcmVzIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb246IFwiMS4xLjlcImAsIGFuZCB0aGF0IGluc3RhbGxlcidzIGBydW50aW1lVmVyc2lvbnNgIGdpdmVzIHRoZVxuICogRWxlY3Ryb24gYW5kIE5vZGUgdmVyc2lvbnMgYWJvdmUuIFJlLWRlcml2ZSBmcm9tIHRoZXJlIHJhdGhlciB0aGFuIGVkaXRpbmcgdGhpcyBudW1iZXIgYnkgaGFuZC5cbiAqL1xuY29uc3QgTUlOSU1VTV9OT0RFX1ZFUlNJT04gPSAnPj0xNi4xNi4wJztcblxuLyoqXG4gKiBCdWlsZCBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBidWlsZHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9ucyBvZiBhbiBPYnNpZGlhbiBwbHVnaW46IHRoZSBnZW5lcmljIGNvbmZpZ3VyYXRpb24gb2ZcbiAqIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdGAgcGx1cyB0aGUgT2JzaWRpYW4gbGF5ZXJzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKG9wdGlvbnM6IERlZmluZUVzbGludENvbmZpZ3NPcHRpb25zID0ge30pOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBjb250ZXh0ID0gY3JlYXRlRGVmYXVsdEVzbGludENvbmZpZ0NvbnRleHQoKTtcblxuICBpZiAob3B0aW9ucy5lZGl0Q29udGV4dCkge1xuICAgIG9wdGlvbnMuZWRpdENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBjdXN0b21Db25maWdzID0gb3B0aW9ucy5jdXN0b21Db25maWdzPy4oY29udGV4dCkgPz8gW107XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcbiAgICAuLi5nZXRHbG9iYWxJZ25vcmVDb25maWdzKCksXG4gICAgLy8gT2JzaWRpYW5tZCBjb25maWdzIHJ1biBmaXJzdCBzbyBvdXIgc3RyaWN0ZXIgcnVsZXMgb3ZlcnJpZGUgdGhlaXIgcmVsYXhlZCBkZWZhdWx0c1xuICAgIC4uLmdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHlwZVNjcmlwdEVzbGludENvbmZpZ3MoeyBjb250ZXh0LCBtaW5pbXVtTm9kZVZlcnNpb246IE1JTklNVU1fTk9ERV9WRVJTSU9OIH0pLFxuICAgIC4uLmdldE9ic2lkaWFuT3ZlcnJpZGVDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldE5vZGVCdWlsdGluc0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW50ZWdyYXRpb25UZXN0Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRNYW5pZmVzdENvbmZpZ3MoKSxcbiAgICAuLi5nZXRMaWNlbnNlQ29uZmlncygpLFxuICAgIC4uLmN1c3RvbUNvbmZpZ3NcbiAgKTtcbn1cbmZ1bmN0aW9uIGdldEludGVncmF0aW9uVGVzdENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8qXG4gICAgICAgKiBBbiBpbnRlZ3JhdGlvbiB0ZXN0IHRoYXQgZHJpdmVzIHRoZSBVSSB3aXRoIGBkaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KC4uLikpYCBwcm9kdWNlcyBhblxuICAgICAgICogVU5UUlVTVEVEIGV2ZW50LCBhbmQgT2JzaWRpYW4gYW5kIENvZGVNaXJyb3IgZ2F0ZSBvbiBgaXNUcnVzdGVkYCDigJQgc28gdGhlIHRlc3QgY2FuIGV4ZXJjaXNlXG4gICAgICAgKiBub3RoaW5nIHdoaWxlIHN0aWxsIHBhc3NpbmcuIE9ubHkgaW50ZWdyYXRpb24gdGVzdHMgYXJlIGNvdmVyZWQ6IGEgdW5pdCB0ZXN0IGhhcyBubyByZWFsIGlucHV0XG4gICAgICAgKiBwaXBlbGluZSB0byByZWFjaCwgc28gZGlzcGF0Y2hpbmcgaXMgdGhlIG9ubHkgdGhpbmcgaXQgY2FuIGRvLlxuICAgICAgICpcbiAgICAgICAqIEFuZHJvaWQgZmlsZXMgdXNlZCB0byBiZSBleGVtcHQgQlkgRklMRU5BTUUsIG9uIHRoZSBncm91bmRzIHRoYXQgdGhlIHRydXN0ZWQgaGVscGVycyB3ZXJlIGJ1aWx0IG9uXG4gICAgICAgKiBgd2luZG93LmVsZWN0cm9uYCBhbmQgc28gY291bGQgbm90IGJlIHJlYWNoZWQgZnJvbSBhIHBob25lIGF0IGFsbC4gVGhhdCBleGVtcHRpb24gaXMgZ29uZTogdGhlXG4gICAgICAgKiBoYXJuZXNzIGdhaW5lZCBhIG1vYmlsZSB0cnVzdGVkLWlucHV0IHBhdGgsIGFuZCBgY2xpY2tFbGVtZW50YCwgYGNsaWNrTW91c2VgLCBgcHJlc3NLZXlgIGFuZFxuICAgICAgICogYHR5cGVJbnRvRWRpdG9yYCBhbGwgd29yayB0aGVyZS4gT25seSB0aGUgaG92ZXIgaGVscGVycyBzdGlsbCB0aHJvdywgYmVjYXVzZSBgOmhvdmVyYCBoYXMgbm8gdG91Y2hcbiAgICAgICAqIGVxdWl2YWxlbnQg4oCUIGEgZmlsZSByZWFjaGluZyBmb3IgdGhvc2UgaGFzIHRvIGJyYW5jaCBvbiBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYCwgd2hpY2ggaXMgdGhlIHNhbWVcbiAgICAgICAqIHRoaW5nIGEgYCouY3Jvc3MtcGxhdGZvcm0uKmAgZmlsZSBoYXMgYWx3YXlzIGhhZCB0byBkby5cbiAgICAgICAqL1xuICAgICAgZmlsZXM6IGNvbnRleHQuc291cmNlRm9sZGVycy5tYXAoKHNvdXJjZUZvbGRlcikgPT4gam9pbihzb3VyY2VGb2xkZXIsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueUludGVncmF0aW9uVGVzdFRzKSksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdCc6IG9ic2lkaWFuRGV2VG9vbGtpdFBsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9uby11bnRydXN0ZWQtaW5wdXQtZXZlbnRzJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbi8qXG4gKiBUaGUgQ29tbXVuaXR5IGRpcmVjdG9yeSByZXF1aXJlcyBhIHJvb3QgYExJQ0VOU0VgLCBhbmQgYG9ic2lkaWFubWQvdmFsaWRhdGUtbGljZW5zZWAgaXMgdGhlIG9ubHkgY2hlY2tcbiAqIG9uIHdoYXQgaXQgc2F5czogdGhlIGNvcHlyaWdodCBob2xkZXIgbXVzdCBub3Qgc3RpbGwgYmUgdGhlIHNhbXBsZSBwbHVnaW4ncywgYW5kIHRoZSB5ZWFyIG11c3QgYmVcbiAqIGN1cnJlbnQuIEJvdGggbmVlZCBgUGxhaW5UZXh0UGFyc2VyYCwgd2hpY2ggdGhlIHBsdWdpbiBkb2VzIG5vdCBleHBvcnQsIHNvIGl0IGlzIHJlYWNoZWQgdGhyb3VnaCBpdHNcbiAqIGJ1aWxkIG91dHB1dCAtLSB0aGUgcGFja2FnZSBkZWNsYXJlcyBubyBgZXhwb3J0c2AgbWFwIGFuZCBzaGlwcyBhIGRlY2xhcmF0aW9uIGJlc2lkZSB0aGUgbW9kdWxlLCBzbyB0aGVcbiAqIGRlZXAgcGF0aCByZXNvbHZlcywgYnV0IGl0IGlzIHRoZSBvbmUgaW1wb3J0IGhlcmUgdGhhdCBhIHBhdGNoIHJlbGVhc2UgdXBzdHJlYW0gY291bGQgYnJlYWsuXG4gKlxuICogVGhlIHJ1bGUgY29tcGFyZXMgdGhlIHllYXIgYWdhaW5zdCBgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpYCBhdCBsaW50IHRpbWUsIHNvIGEgcmVwbyBnb2VzIHJlZCBhdCB0aGVcbiAqIHR1cm4gb2YgdGhlIHllYXIgdW50aWwgaXRzIExJQ0VOU0UgaXMgYnVtcGVkLiBgLmdpdGh1Yi93b3JrZmxvd3MvdXBkYXRlLWxpY2Vuc2UteWVhci55bWxgIGRvZXMgdGhhdCBvblxuICogMSBKYW51YXJ5OyBhIHJlcG8gYWRvcHRpbmcgdGhpcyBjb25maWcgbmVlZHMgdGhlIHNhbWUgd29ya2Zsb3csIG9yIHRoZSB5ZWFyIGNoZWNrIHdpbGwgZmFpbCBpdHMgQ0kuXG4gKi9cbmZ1bmN0aW9uIGdldExpY2Vuc2VDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTGljZW5zZV0sXG4gICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcbiAgICAgICAgcGFyc2VyOiBQbGFpblRleHRQYXJzZXJcbiAgICAgIH0sXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG9ic2lkaWFubWRcbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW5tZC92YWxpZGF0ZS1saWNlbnNlJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbi8qXG4gKiBUaGUgcm9vdCBgbWFuaWZlc3QuanNvbmAgaXMgd2hhdCB0aGUgQ29tbXVuaXR5IGRpcmVjdG9yeSdzIGF1dG9tYXRlZCByZXZpZXcgYWN0dWFsbHkgcmVhZHMsIGFuZCB1bnRpbFxuICogdGhpcyBjb25maWcgZXhpc3RlZCBubyBsaW50ZXIgcmVhZCBpdCBhdCBhbGw6IGBvYnNpZGlhbm1kL3ZhbGlkYXRlLW1hbmlmZXN0YCByZWdpc3RlcnMgYSBgUHJvZ3JhbWBcbiAqIHZpc2l0b3IgYW5kIGV4cGVjdHMgYW4gRVNUcmVlIGBPYmplY3RFeHByZXNzaW9uYCwgd2hpbGUgZXZlcnkgSlNPTiBwYXJzZXIgdGhhdCBzaGlwcyBwcm9kdWNlcyBzb21ldGhpbmdcbiAqIGVsc2UgLS0gYEBlc2xpbnQvanNvbmAgcHJvZHVjZXMgTW9tb2EgKGBEb2N1bWVudGApLCBganNvbmMtZXNsaW50LXBhcnNlcmAgcHJvZHVjZXNcbiAqIGBKU09OT2JqZWN0RXhwcmVzc2lvbmAgLS0gc28gdGhlIHJ1bGUgc2lsZW50bHkgbWF0Y2hlcyBub3RoaW5nIG5vIG1hdHRlciB3aGljaCBmaWxlcyBpdCBpcyBzY29wZWQgdG8uXG4gKiBUaGUgaW4taG91c2UgcnVsZXMgYmVsb3cgdmlzaXQgdGhlIE1vbW9hIEFTVCBpbnN0ZWFkLlxuICpcbiAqIGBtYW5pZmVzdC5qc29uYCBpcyBzdHJpY3QgSlNPTiwgc28gYW4gYGVzbGludC1kaXNhYmxlYCBjb21tZW50IGluIGl0IGlzIGEgcGFyc2UgZXJyb3IgQU5EIHdvdWxkIHN0b3BcbiAqIE9ic2lkaWFuIGxvYWRpbmcgdGhlIHBsdWdpbi4gVGhhdCBtYWtlcyB0aGUgY29uZmlnIHRoZSBvbmx5IHBsYWNlIGEgY2hlY2sgY2FuIGJlIHdhaXZlZCwgd2hpY2ggaXMgd2h5XG4gKiB0aGVzZSBhcmUgZm91ciBydWxlcyByYXRoZXIgdGhhbiBvbmU6IGEgcmVwbyB3aXRoIGEgZ3JhbmRmYXRoZXJlZCBgaWRgIGNhbiB0dXJuIG9mZiBgbWFuaWZlc3QtaWRgIGFsb25lXG4gKiBhbmQga2VlcCB0aGUgcmVzdC5cbiAqL1xuZnVuY3Rpb24gZ2V0TWFuaWZlc3RDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uXSxcbiAgICAgIGxhbmd1YWdlOiAnanNvbi9qc29uJyxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgJ2pzb24nOiBqc29uUGx1Z2luLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvbWFuaWZlc3QtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvbWFuaWZlc3QtaWQnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvbWFuaWZlc3QtbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9tYW5pZmVzdC1zY2hlbWEnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLypcbiAqIEV2ZXJ5IGZpbGUgc2V0IHRoYXQgaXMgZXhlbXB0IGZyb20gdGhlIE5vZGUtYnVpbHRpbnMgYmFucywgaW4gb25lIHBsYWNlLlxuICpcbiAqIFR3byBydWxlcyBiYW4gTm9kZSBidWlsdGlucywgYW5kIHRoZXkgYXJlIE5PVCBpbnRlcmNoYW5nZWFibGUuIGBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlc2AgaXMgb3VycywgaXQgaXNcbiAqIGFuIGVycm9yLCBhbmQgaXRzIHdhaXZlcnMgYXJlIHRvbGVyYXRlZCBieSB0aGUgY29tbXVuaXR5LWRpcmVjdG9yeSByZXZpZXcgcnVubmVyLiBgb2JzaWRpYW5tZC9uby1ub2RlanMtbW9kdWxlc2BcbiAqIGFycml2ZXMgdmlhIGBvYnNpZGlhbm1kLmNvbmZpZ3MucmVjb21tZW5kZWRgIChzZWUgYGdldE9ic2lkaWFuTGludENvbmZpZ3NgKSBhbmQgaXMgc3RyaWN0bHkgd2Vha2VyIG9uIHN0YXRpY1xuICogaW1wb3J0cyDigJQgaXRzIG93biBzb3VyY2Ugc2F5cyBcIlN0YXRpYyBpbXBvcnQgZGVjbGFyYXRpb25zIGNhbiBuZXZlciBiZSBndWFyZGVkIGF0IHJ1bnRpbWVcIiwgc28gaXQgcmVwb3J0cyBldmVyeVxuICogYEltcG9ydERlY2xhcmF0aW9uYCBvZiBhIGJ1aWx0aW4gdW5jb25kaXRpb25hbGx5IGFuZCBvbmx5IGBpbXBvcnQoKWAgLyBgcmVxdWlyZSgpYCBnZXQgZ3VhcmQtYXdhcmVuZXNzLiBJdCBpc1xuICogYWxzbyBvbmUgdGhlIGNvbnN1bWVyIENBTk5PVCBXQUlWRTogdGhlIGRpcmVjdG9yeSBydW5uZXIgc2V0c1xuICogYGVzbGludC1jb21tZW50cy9uby1yZXN0cmljdGVkLWRpc2FibGU6IFsnZXJyb3InLCAnb2JzaWRpYW5tZC8qJywgLi4uXWAsIHdoaXRlbGlzdGluZyBvbmx5XG4gKiBgb2JzaWRpYW5tZC91aS9zZW50ZW5jZS1jYXNlYCwgc28gYW4gaW5saW5lIGRpc2FibGUgb2YgaXQgdHJhZGVzIGEgd2FybmluZyBmb3IgYW4gZXJyb3IgaW4gYSByZXZpZXcuIFRoYXQgaXMgd2h5XG4gKiBldmVyeSBleGVtcHRpb24gYmVsb3cgaGFzIHRvIGxpdmUgaGVyZSBpbiB0aGUgc2hhcmVkIGNvbmZpZyByYXRoZXIgdGhhbiBhcyBhIGNvbW1lbnQgYXQgdGhlIGNhbGwgc2l0ZS5cbiAqXG4gKiBPbmUgZnVydGhlciBleGVtcHRpb24gZGVsaWJlcmF0ZWx5IGxpdmVzIGVsc2V3aGVyZTogYGdldEltcG9ydFhDb25maWdzYCB0dXJucyBvZmYgb25seSBgaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXNgXG4gKiBmb3IgYGNvbnRleHQuc2NyaXB0RmlsZXNgLiBJdCBuZWVkcyBubyBgb2JzaWRpYW5tZGAgdHdpbiwgYmVjYXVzZSBgZ2V0T2JzaWRpYW5MaW50Q29uZmlnc2Agc2NvcGVzIHRoZSBvYnNpZGlhbm1kXG4gKiBydWxlcyB0byBgY29udGV4dC5zb3VyY2VGaWxlc2AsIHNvIHRoZXkgbmV2ZXIgcmVhY2ggc2NyaXB0cyBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gKi9cbmZ1bmN0aW9uIGdldE5vZGVCdWlsdGluc0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIC8vIEludGVncmF0aW9uIHRlc3RzIHJ1biBpbiBhIE5vZGUgZW52aXJvbm1lbnQgYW5kIGxlZ2l0aW1hdGVseSByZWFkIGZpbGVzIC8gcGF0aHMsIHNvIHRoZSBOb2RlLWJ1aWx0aW5zIGJhbnMgZG8gbm90IGFwcGx5IHRvIHRoZW0uXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGb2xkZXJzLm1hcCgoc291cmNlRm9sZGVyKSA9PiBqb2luKHNvdXJjZUZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55SW50ZWdyYXRpb25UZXN0VHMpKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnb2JzaWRpYW5tZC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAvKlxuICAgICAgICogQSBgZGVza3RvcC1gIHByZWZpeGVkIG1vZHVsZSBpcyBkZXNrdG9wLW9ubHkgYnkgY29udmVudGlvbjogaXQgaXMgcmVhY2hlZCBvbmx5IHRocm91Z2ggYVxuICAgICAgICogYFBsYXRmb3JtLmlzRGVza3RvcEFwcGAtZ2F0ZWQgZHluYW1pYyBgaW1wb3J0KClgIGluIGl0cyBjYWxsZXIsIHNvIGl0cyBzdGF0aWMgTm9kZSBpbXBvcnRzIG5ldmVyXG4gICAgICAgKiBsb2FkIG9uIG1vYmlsZS4gTmVpdGhlciBydWxlIGNhbiBzZWUgdGhhdCBnYXRlLCBiZWNhdXNlIGl0IHNpdHMgb25lIGZpbGUgdXAg4oCUIHRoZSBjb3JyZWN0bHktd3JpdHRlbiBwYXR0ZXJuXG4gICAgICAgKiByZXBvcnRzIGFueXdheSwgYW5kIG5vIGF1dGhvci1zaWRlIHJld3JpdGUgc2lsZW5jZXMgaXQuXG4gICAgICAgKlxuICAgICAgICogRXhlbXB0aW5nIEJZIEZJTEVOQU1FIHJhdGhlciB0aGFuIGJ5IGEgZGlzYWJsZSBjb21tZW50IGNhcnJpZXMgYSB0cmFkZS1vZmYga25vd2luZ2x5OiB0aGUgZXhlbXB0aW9uIGtleXNcbiAgICAgICAqIG9mZiB3aGF0IHRoZSBmaWxlIGlzIE5BTUVEIHJhdGhlciB0aGFuIHdoYXQgaXQgZG9lcywgc28gdGhlIHByZWZpeCBpcyBsb2FkLWJlYXJpbmcuIEEgZGVza3RvcC1vbmx5IG1vZHVsZVxuICAgICAgICogdGhhdCBza2lwcyB0aGUgcHJlZml4IGtlZXBzIHJlcG9ydGluZywgYW5kIGEgY3Jvc3MtcGxhdGZvcm0gbW9kdWxlIHRoYXQgd3JvbmdseSB0YWtlcyBpdCBnZXRzIGFuIGV4ZW1wdGlvblxuICAgICAgICogaXQgc2hvdWxkIG5vdCBoYXZlLlxuICAgICAgICovXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGb2xkZXJzLm1hcCgoc291cmNlRm9sZGVyKSA9PiBqb2luKHNvdXJjZUZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55RGVza3RvcFRzKSksXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJyxcbiAgICAgICAgJ29ic2lkaWFubWQvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgLypcbiAgICAgICAqIEEgdW5pdCB0ZXN0IHJ1bnMgdW5kZXIgdml0ZXN0IGluIE5vZGUgYW5kIGlzIG5ldmVyIGJ1bmRsZWQgaW50byBgbWFpbi5qc2AsIHNvIHRoZSBOb2RlLWJ1aWx0aW5zIGJhbnMgZG8gbm90XG4gICAgICAgKiBhcHBseSB0byBpdCBlaXRoZXIg4oCUIHRoZSBpZGVudGljYWwgYXJndW1lbnQgdGhlIGludGVncmF0aW9uLXRlc3QgYmxvY2sgYWJvdmUgYWxyZWFkeSBhY2NlcHRzLiBUaGlzIGFsc29cbiAgICAgICAqIGNvdmVycyB0aGUgU1VULWdyb3VwZWQgYCouZGVza3RvcC50ZXN0LnRzYCBzaGFwZSwgd2hpY2ggbmFtZXMgdGhlIHBsYXRmb3JtIGFzIGEgZG90IHNlZ21lbnQgYWZ0ZXIgdGhlXG4gICAgICAgKiBzdWJqZWN0IHVuZGVyIHRlc3QgcmF0aGVyIHRoYW4gYXMgYSBgZGVza3RvcC1gIHByZWZpeC5cbiAgICAgICAqL1xuICAgICAgZmlsZXM6IGNvbnRleHQudGVzdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZicsXG4gICAgICAgICdvYnNpZGlhbm1kL25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFubWQuY29uZmlncy5yZWNvbW1lbmRlZDtcblxuICAvKlxuICAgKiBBIGJ1aWx0aW4gdGhpcyBjb25maWcgc2V0cyBpdHNlbGYgbXVzdCBub3QgQUxTTyBydW4gdGhyb3VnaCBgb2JzaWRpYW5tZC9ydWxlLWN1c3RvbS1tZXNzYWdlYCwgb3IgYSBjb25zdW1lcidzIG93blxuICAgKiBgJ25vLWNvbnNvbGUnOiAnb2ZmJ2AgaXMgaW5lcnQgYW5kIGV2ZXJ5IGNvbnNvbGUgbGluZSBpcyByZXBvcnRlZCB0d2ljZS4gU2VlIGBvYnNpZGlhbm1kLXJ1bGUtY3VzdG9tLW1lc3NhZ2UudHNgLlxuICAgKi9cbiAgY29uc3Qgb3duZWRSdWxlTmFtZXMgPSBuZXcgU2V0KGdldEVzbGludENvcmVDb25maWdzKGNvbnRleHQpLmZsYXRNYXAoKGNvbmZpZykgPT4gT2JqZWN0LmtleXMoY29uZmlnLnJ1bGVzID8/IHt9KSkpO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICByZXR1cm4gY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJylcbiAgICAgID8gY29uZmlnXG4gICAgICA6IHtcbiAgICAgICAgLi4uc3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllcyh7IGNvbmZpZywgb3duZWRSdWxlTmFtZXMgfSksXG4gICAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzXG4gICAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3NdLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICBvYnNpZGlhbm1kXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5PdmVycmlkZUNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZvbGRlcnMubWFwKChzb3VyY2VGb2xkZXIpID0+IGpvaW4oc291cmNlRm9sZGVyLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYWluVHMpKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAvKlxuICAgICAgICAgKiBEZWxpYmVyYXRlbHkgaGVyZSwgb24gYGFsbEZpbGVzKClgLCByYXRoZXIgdGhhbiBiZXNpZGUgYG5vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHNgIGluXG4gICAgICAgICAqIGBnZXRJbnRlZ3JhdGlvblRlc3RDb25maWdzKClgIChvd25lciwgMjAyNi0wOS0wOSkuIEFuIGBldmFsSW5PYnNpZGlhbmAgY2FsbCBpcyB1bm1pc3Rha2FibGUsIHNvIGFcbiAgICAgICAgICogZmlsZSB0aGF0IG1ha2VzIG5vbmUgaXMgdW50b3VjaGVkIGFuZCBhIGJyb2FkIGdsb2IgY29zdHMgbm90aGluZyAtLSB3aGlsZSBzY3JpcHQgY29kZSB0aGF0IGRyaXZlc1xuICAgICAgICAgKiBhIHJlYWwgT2JzaWRpYW4gb3V0c2lkZSBhIHRlc3QgKGBkZW1vLXZhdWx0LWJ1dHRvbnMudHNgKSBpcyB1bmRlciB0aGUgc2FtZSB0cmFuc3BvcnQgY2FwIGFuZCB3b3VsZFxuICAgICAgICAgKiBvdGhlcndpc2UgYmUgZW5mb3JjZWQgbm93aGVyZS5cbiAgICAgICAgICovXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9uby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4nOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcmVxdWlyZS1jb21wb25lbnQtc3VmZml4JzogJ2Vycm9yJyxcbiAgICAgICAgLypcbiAgICAgICAgICogT2JzaWRpYW4ncyBgQ29tcG9uZW50YCBoYXMgaXRzIG93biBgcmVtb3ZlQ2hpbGQoY29tcG9uZW50KWAgZm9yIHRoZSBjb21wb25lbnQgbGlmZWN5Y2xlLCB1bnJlbGF0ZWRcbiAgICAgICAgICogdG8gYE5vZGUjcmVtb3ZlQ2hpbGRgLiBUaGUgcnVsZSBtYXRjaGVzIG9uIHRoZSBtZXRob2QgbmFtZSBhbG9uZSwgc28gZXZlcnkgcmVwb3J0IGhlcmUgaXMgYVxuICAgICAgICAgKiBjb21wb25lbnQgYmVpbmcgdW5sb2FkZWQsIGFuZCBmb2xsb3dpbmcgdGhlIGFkdmljZSBjYWxscyBhIGByZW1vdmUoKWAgdGhhdCBkb2VzIG5vdCBleGlzdCAtLSB3aGljaFxuICAgICAgICAgKiBpcyB3aGF0IGB0c2NgIHNhaWQgd2hlbiB0aGUgZml4ZXIgd2FzIGxldCBsb29zZSBvbiB0aGVtLlxuICAgICAgICAgKi9cbiAgICAgICAgJ3VuaWNvcm4vcHJlZmVyLWRvbS1ub2RlLXJlbW92ZSc6ICdvZmYnLFxuICAgICAgICAvKlxuICAgICAgICAgKiBEaXJlY3RseSBjb250cmFkaWN0cyBgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpc2A6IHRoaXMgcnVsZSByZXdyaXRlcyBgd2luZG93LnhgIHRvIGBnbG9iYWxUaGlzLnhgLCBhbmRcbiAgICAgICAgICogdGhhdCBvbmUgZm9yYmlkcyBgZ2xvYmFsVGhpc2Agb3V0cmlnaHQuIFdpdGggYm90aCBlbmFibGVkLCBgLS1maXhgIGFwcGxpZXMgb25lIGFuZCB0aGVuIHRoZSBvdGhlclxuICAgICAgICAgKiByZXZlcnRzIGl0LCB3aGljaCBFU0xpbnQgcmVwb3J0cyBhcyBgRVNMaW50Q2lyY3VsYXJGaXhlc1dhcm5pbmdgIGFjcm9zcyAyOSBmaWxlcy4gT2JzaWRpYW4ncyBvd25cbiAgICAgICAgICogZ3VpZGFuY2Ugd2lucyBpbiBhbiBPYnNpZGlhbiBsaWJyYXJ5LCBzbyB0aGlzIGlzIHRoZSBydWxlIHRoYXQgZ2l2ZXMgd2F5LlxuICAgICAgICAgKi9cbiAgICAgICAgJ3VuaWNvcm4vcHJlZmVyLWdsb2JhbC10aGlzJzogJ29mZidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIC8qXG4gICAgICAgKiBPYnNpZGlhbidzIGludGVybmFsIEFQSSBpcyB0eXBlZCBpbiBgb2JzaWRpYW4tdHlwaW5nc2AsIHNvIGEgYGRlY2xhcmUgbW9kdWxlICdvYnNpZGlhbidgIGF1Z21lbnRhdGlvbiBpblxuICAgICAgICogc2hpcHBlZCBzb3VyY2UgbWF5IGNhcnJ5IG9ubHkgdGhlIHBsdWdpbidzIG93biBjdXN0b20tZXZlbnQgb3ZlcmxvYWRzLiBUZXN0cyBhcmUgZXhlbXB0OiBhIG1vY2sgc2hhcGUgb3IgYVxuICAgICAgICogaGFybmVzcyBnbG9iYWwgbmV2ZXIgc2hpcHMuXG4gICAgICAgKi9cbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzLFxuICAgICAgaWdub3JlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdCc6IG9ic2lkaWFuRGV2VG9vbGtpdFBsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdG9vbGtpdC9uby1sb2NhbC1vYnNpZGlhbi1pbnRlcm5hbHMnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAvKlxuICAgICAgICogRXZlcnkgbWV0aG9kIGVudHJ5IG9mIGEgcGx1Z2luIEFQSSBjb250cmFjdCBjYXJyaWVzIGFuIGBpbnB1dGAgYW5kIGFuIGBvdXRwdXRgIHNjaGVtYSwgc28gYSBge31gIGVudHJ5IHRoYXRcbiAgICAgICAqIHZhbGlkYXRlcyBub3RoaW5nIGNhbm5vdCBjb21lIGJhY2sgd2hlcmUgdGhlIGNvbnRyYWN0IHR5cGUgaXMgdW50eXBlZCBhbmQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IHJlZnVzZSBpdC5cbiAgICAgICAqIFRlc3RzIGFyZSBleGVtcHQ6IHRoZXkgbWF5IHB1Ymxpc2ggYSBkZWxpYmVyYXRlbHkgYnJva2VuIGNvbnRyYWN0LlxuICAgICAgICpcbiAgICAgICAqIFJlZ2lzdGVyZWQgYnV0IE9GRjogc2V2ZXJhbCBwcm92aWRlcnMgYW5kIGNvbnN1bWVycyBzdGlsbCBjYXJyeSBge31gIGVudHJpZXMsIGFuZCB0dXJuaW5nIGl0IG9uIGZpcnN0IHdvdWxkXG4gICAgICAgKiBtYWtlIHRoZWlyIGxpbnQgcmVkLiBTd2l0Y2ggaXQgdG8gYCdlcnJvcidgIG9uY2Ugbm9uZSBpcyBsZWZ0LlxuICAgICAgICovXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGaWxlcyxcbiAgICAgIGlnbm9yZXM6IGNvbnRleHQudGVzdEZpbGVzLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcmVxdWlyZS1wbHVnaW4tYXBpLWNvbnRyYWN0LXNjaGVtYXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgLypcbiAgICAgICAqIEEgcGx1Z2luJ3MgZGlzcGxheSBuYW1lIGlzIG1hcmtlZCBhcyBjb2RlOiBiYWNrdGlja3MgaW4gYSBjb21tZW50IChgcGx1Z2luLW5hbWUtYXMtY29kZWAsIGF1dG9maXhlZCksIGFcbiAgICAgICAqIGA8Y29kZT5gIGVsZW1lbnQgaW4gVUkgKGBwbHVnaW4tbmFtZS1hcy1jb2RlLWluLXVpYCwgcmVwb3J0ZWQgb25seSkuXG4gICAgICAgKlxuICAgICAgICogUmVnaXN0ZXJlZCBidXQgT0ZGOiByZXBvc2l0b3JpZXMgc3RpbGwgY2FycnkgcGxhaW4gcGx1Z2luIG5hbWVzIGZyb20gYmVmb3JlIHRoZSBydWxlcyBleGlzdGVkLCBhbmQgdHVybmluZ1xuICAgICAgICogdGhlbSBvbiBmaXJzdCB3b3VsZCBtYWtlIHRoZWlyIGxpbnQgcmVkLiBTd2l0Y2ggdGhlbSB0byBgJ2Vycm9yJ2Agb25jZSB0aG9zZSBhcmUgZml4ZWQuIEJvdGggdGFrZVxuICAgICAgICogYHsgYWRkaXRpb25hbFBsdWdpbk5hbWVzOiBbLi4uXSB9YCBmb3IgbmFtZXMgdGhlIHNoYXJlZCBsaXN0IGxhY2tzLlxuICAgICAgICovXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQnOiBvYnNpZGlhbkRldlRvb2xraXRQbHVnaW5cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcGx1Z2luLW5hbWUtYXMtY29kZSc6ICdvZmYnLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXRvb2xraXQvcGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aSc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsMkJBTU87QUFDUCxrQkFBcUI7QUFFckIsc0NBQXVCO0FBQ3ZCLDZCQUFnQztBQUNoQyxvQkFBNkI7QUFFN0Isd0NBQXdDO0FBQ3hDLDhCQUEyQjtBQUMzQix5Q0FBeUM7QUFDekMsNENBQW1EO0FBZ0JuRCxNQUFNLHVCQUF1QjtBQVd0QixTQUFT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
@@ -2,80 +2,6 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
- (function patchObsidianRequire() {
6
- const originalRequire = require;
7
- if (!originalRequire || originalRequire.__isPatched) {
8
- return;
9
- }
10
-
11
- require = Object.assign(
12
- (id) => requirePatched(id),
13
- originalRequire,
14
- {
15
- __isPatched: true
16
- }
17
- );
18
-
19
- function extractDefault(module) {
20
- return module && module.__esModule && 'default' in module ? module.default : module;
21
- }
22
-
23
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
24
- '@codemirror/autocomplete',
25
- '@codemirror/collab',
26
- '@codemirror/commands',
27
- '@codemirror/language',
28
- '@codemirror/lint',
29
- '@codemirror/search',
30
- '@codemirror/state',
31
- '@codemirror/text',
32
- '@codemirror/view',
33
- '@lezer/common',
34
- '@lezer/highlight',
35
- '@lezer/lr',
36
- 'obsidian']
37
- );
38
-
39
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
40
- '@codemirror/closebrackets',
41
- '@codemirror/comment',
42
- '@codemirror/fold',
43
- '@codemirror/gutter',
44
- '@codemirror/highlight',
45
- '@codemirror/history',
46
- '@codemirror/matchbrackets',
47
- '@codemirror/panel',
48
- '@codemirror/rangeset',
49
- '@codemirror/rectangular-selection',
50
- '@codemirror/stream-parser',
51
- '@codemirror/tooltip']
52
- );
53
-
54
- function requirePatched(id) {
55
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
56
- return originalRequire?.(id);
57
- }
58
-
59
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
60
- if (globalThis.app.isMobile) {
61
- if (id === 'process' || id === 'node:process') {
62
- // eslint-disable-next-line no-console -- Valid usage.
63
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
64
-
65
- return process;
66
- }
67
- } else {
68
- const module = originalRequire?.(id);
69
- if (module) {
70
- return extractDefault(module);
71
- }
72
- }
73
-
74
- // eslint-disable-next-line no-console -- Valid usage.
75
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
76
- return {};
77
- }
78
- })();
79
5
 
80
6
  "use strict";
81
7
  var __create = Object.create;
@@ -151,4 +77,4 @@ var require_plugin_api_contract_schemas = __toESM(((module) => module && module.
151
77
  "require-component-suffix": null,
152
78
  "require-plugin-api-contract-schemas": null
153
79
  });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ21hbmlmZXN0LWRlc2NyaXB0aW9uJyBmcm9tICcuL21hbmlmZXN0LWRlc2NyaXB0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdtYW5pZmVzdC1oZWxwZXJzJyBmcm9tICcuL21hbmlmZXN0LWhlbHBlcnMudHMnO1xuZXhwb3J0ICogYXMgJ21hbmlmZXN0LWlkJyBmcm9tICcuL21hbmlmZXN0LWlkLnRzJztcbmV4cG9ydCAqIGFzICdtYW5pZmVzdC1uYW1lJyBmcm9tICcuL21hbmlmZXN0LW5hbWUudHMnO1xuZXhwb3J0ICogYXMgJ21hbmlmZXN0LXNjaGVtYScgZnJvbSAnLi9tYW5pZmVzdC1zY2hlbWEudHMnO1xuZXhwb3J0ICogYXMgJ25vLWxvY2FsLW9ic2lkaWFuLWludGVybmFscycgZnJvbSAnLi9uby1sb2NhbC1vYnNpZGlhbi1pbnRlcm5hbHMudHMnO1xuZXhwb3J0ICogYXMgJ25vLW92ZXItY2FwLXdhaXQtaW4tZXZhbC1pbi1vYnNpZGlhbicgZnJvbSAnLi9uby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ25vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHMnIGZyb20gJy4vbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cy50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tZGV2LXRvb2xraXQtcGx1Z2luJyBmcm9tICcuL29ic2lkaWFuLWRldi10b29sa2l0LXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aScgZnJvbSAnLi9wbHVnaW4tbmFtZS1hcy1jb2RlLWluLXVpLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbmFtZS1hcy1jb2RlJyBmcm9tICcuL3BsdWdpbi1uYW1lLWFzLWNvZGUudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCcgZnJvbSAnLi9yZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzJyBmcm9tICcuL3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzLnRzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEsZ0NBQUFBO0FBQUEsRUFBQSwwQkFBQUM7QUFBQSxFQUFBLHFCQUFBQztBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBLHFDQUFBQztBQUFBLEVBQUEsOENBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLHFDQUFBQztBQUFBLEVBQUEsNkJBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsNkNBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUFaLHVCQUF3QztBQUN4QyxJQUFBQyxtQkFBb0M7QUFDcEMsSUFBQUMsY0FBK0I7QUFDL0IsSUFBQUMsZ0JBQWlDO0FBQ2pDLElBQUFDLGtCQUFtQztBQUNuQyxJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUMsdUNBQXdEO0FBQ3hELElBQUFDLDRCQUE2QztBQUM3QyxJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUUsNEJBQTZDO0FBQzdDLElBQUFELHNCQUF1QztBQUN2QyxJQUFBRSwyQkFBNEM7QUFDNUMsSUFBQUMsc0NBQXVEOyIsIm5hbWVzIjpbIm1hbmlmZXN0LWRlc2NyaXB0aW9uIiwibWFuaWZlc3QtaGVscGVycyIsIm1hbmlmZXN0LWlkIiwibWFuaWZlc3QtbmFtZSIsIm1hbmlmZXN0LXNjaGVtYSIsIm5vLWxvY2FsLW9ic2lkaWFuLWludGVybmFscyIsIm5vLW92ZXItY2FwLXdhaXQtaW4tZXZhbC1pbi1vYnNpZGlhbiIsIm5vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHMiLCJvYnNpZGlhbi1kZXYtdG9vbGtpdC1wbHVnaW4iLCJwbHVnaW4tbmFtZS1hcy1jb2RlIiwicGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aSIsInJlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCIsInJlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzIl19
80
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ21hbmlmZXN0LWRlc2NyaXB0aW9uJyBmcm9tICcuL21hbmlmZXN0LWRlc2NyaXB0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdtYW5pZmVzdC1oZWxwZXJzJyBmcm9tICcuL21hbmlmZXN0LWhlbHBlcnMudHMnO1xuZXhwb3J0ICogYXMgJ21hbmlmZXN0LWlkJyBmcm9tICcuL21hbmlmZXN0LWlkLnRzJztcbmV4cG9ydCAqIGFzICdtYW5pZmVzdC1uYW1lJyBmcm9tICcuL21hbmlmZXN0LW5hbWUudHMnO1xuZXhwb3J0ICogYXMgJ21hbmlmZXN0LXNjaGVtYScgZnJvbSAnLi9tYW5pZmVzdC1zY2hlbWEudHMnO1xuZXhwb3J0ICogYXMgJ25vLWxvY2FsLW9ic2lkaWFuLWludGVybmFscycgZnJvbSAnLi9uby1sb2NhbC1vYnNpZGlhbi1pbnRlcm5hbHMudHMnO1xuZXhwb3J0ICogYXMgJ25vLW92ZXItY2FwLXdhaXQtaW4tZXZhbC1pbi1vYnNpZGlhbicgZnJvbSAnLi9uby1vdmVyLWNhcC13YWl0LWluLWV2YWwtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ25vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHMnIGZyb20gJy4vbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cy50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tZGV2LXRvb2xraXQtcGx1Z2luJyBmcm9tICcuL29ic2lkaWFuLWRldi10b29sa2l0LXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aScgZnJvbSAnLi9wbHVnaW4tbmFtZS1hcy1jb2RlLWluLXVpLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbmFtZS1hcy1jb2RlJyBmcm9tICcuL3BsdWdpbi1uYW1lLWFzLWNvZGUudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCcgZnJvbSAnLi9yZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzJyBmcm9tICcuL3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxnQ0FBQUE7QUFBQSxFQUFBLDBCQUFBQztBQUFBLEVBQUEscUJBQUFDO0FBQUEsRUFBQSx1QkFBQUM7QUFBQSxFQUFBLHlCQUFBQztBQUFBLEVBQUEscUNBQUFDO0FBQUEsRUFBQSw4Q0FBQUM7QUFBQSxFQUFBLG1DQUFBQztBQUFBLEVBQUEscUNBQUFDO0FBQUEsRUFBQSw2QkFBQUM7QUFBQSxFQUFBLG1DQUFBQztBQUFBLEVBQUEsa0NBQUFDO0FBQUEsRUFBQSw2Q0FBQUM7QUFBQTtBQUFBO0FBRUEsSUFBQVosdUJBQXdDO0FBQ3hDLElBQUFDLG1CQUFvQztBQUNwQyxJQUFBQyxjQUErQjtBQUMvQixJQUFBQyxnQkFBaUM7QUFDakMsSUFBQUMsa0JBQW1DO0FBQ25DLElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyx1Q0FBd0Q7QUFDeEQsSUFBQUMsNEJBQTZDO0FBQzdDLElBQUFDLDhCQUErQztBQUMvQyxJQUFBRSw0QkFBNkM7QUFDN0MsSUFBQUQsc0JBQXVDO0FBQ3ZDLElBQUFFLDJCQUE0QztBQUM1QyxJQUFBQyxzQ0FBdUQ7IiwKICAibmFtZXMiOiBbIm1hbmlmZXN0LWRlc2NyaXB0aW9uIiwgIm1hbmlmZXN0LWhlbHBlcnMiLCAibWFuaWZlc3QtaWQiLCAibWFuaWZlc3QtbmFtZSIsICJtYW5pZmVzdC1zY2hlbWEiLCAibm8tbG9jYWwtb2JzaWRpYW4taW50ZXJuYWxzIiwgIm5vLW92ZXItY2FwLXdhaXQtaW4tZXZhbC1pbi1vYnNpZGlhbiIsICJuby11bnRydXN0ZWQtaW5wdXQtZXZlbnRzIiwgIm9ic2lkaWFuLWRldi10b29sa2l0LXBsdWdpbiIsICJwbHVnaW4tbmFtZS1hcy1jb2RlIiwgInBsdWdpbi1uYW1lLWFzLWNvZGUtaW4tdWkiLCAicmVxdWlyZS1jb21wb25lbnQtc3VmZml4IiwgInJlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzIl0KfQo=
@@ -2,80 +2,6 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
- (function patchObsidianRequire() {
6
- const originalRequire = require;
7
- if (!originalRequire || originalRequire.__isPatched) {
8
- return;
9
- }
10
-
11
- require = Object.assign(
12
- (id) => requirePatched(id),
13
- originalRequire,
14
- {
15
- __isPatched: true
16
- }
17
- );
18
-
19
- function extractDefault(module) {
20
- return module && module.__esModule && 'default' in module ? module.default : module;
21
- }
22
-
23
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
24
- '@codemirror/autocomplete',
25
- '@codemirror/collab',
26
- '@codemirror/commands',
27
- '@codemirror/language',
28
- '@codemirror/lint',
29
- '@codemirror/search',
30
- '@codemirror/state',
31
- '@codemirror/text',
32
- '@codemirror/view',
33
- '@lezer/common',
34
- '@lezer/highlight',
35
- '@lezer/lr',
36
- 'obsidian']
37
- );
38
-
39
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
40
- '@codemirror/closebrackets',
41
- '@codemirror/comment',
42
- '@codemirror/fold',
43
- '@codemirror/gutter',
44
- '@codemirror/highlight',
45
- '@codemirror/history',
46
- '@codemirror/matchbrackets',
47
- '@codemirror/panel',
48
- '@codemirror/rangeset',
49
- '@codemirror/rectangular-selection',
50
- '@codemirror/stream-parser',
51
- '@codemirror/tooltip']
52
- );
53
-
54
- function requirePatched(id) {
55
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
56
- return originalRequire?.(id);
57
- }
58
-
59
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
60
- if (globalThis.app.isMobile) {
61
- if (id === 'process' || id === 'node:process') {
62
- // eslint-disable-next-line no-console -- Valid usage.
63
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
64
-
65
- return process;
66
- }
67
- } else {
68
- const module = originalRequire?.(id);
69
- if (module) {
70
- return extractDefault(module);
71
- }
72
- }
73
-
74
- // eslint-disable-next-line no-console -- Valid usage.
75
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
76
- return {};
77
- }
78
- })();
79
5
 
80
6
  "use strict";
81
7
  var __defProp = Object.defineProperty;
@@ -206,4 +132,4 @@ const manifestDescription = {
206
132
  MESSAGE_ID_TOO_SHORT,
207
133
  manifestDescription
208
134
  });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9tYW5pZmVzdC1kZXNjcmlwdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IG1hbmlmZXN0LWRlc2NyaXB0aW9uXG4gKlxuICogRW5mb3JjZXMgdGhlIENvbW11bml0eSBkaXJlY3RvcnkncyBjb25zdHJhaW50cyBvbiBhIHBsdWdpbidzIGBtYW5pZmVzdC5qc29uYCBgZGVzY3JpcHRpb25gLlxuICpcbiAqIFR3byBvZiB0aGVzZSBjaGVja3MgZGVsaWJlcmF0ZWx5IGRpdmVyZ2UgZnJvbSBgb2JzaWRpYW5tZC92YWxpZGF0ZS1tYW5pZmVzdGA6XG4gKlxuICogLSAqKlNlbGYtcmVmZXJlbmNlLCBub3QgdGhlIHdvcmQgYHBsdWdpbmAuKiogVXBzdHJlYW0ncyBgRk9SQklEREVOX1dPUkRTYCBiYW5zIHRoZSBiYXJlIHN1YnN0cmluZ1xuICogICBgcGx1Z2luYCBpbiB0aGUgZGVzY3JpcHRpb24sIHdoaWNoIHJlamVjdHMgdHdvIGRlc2NyaXB0aW9ucyB0aGUgZGlyZWN0b3J5IGl0c2VsZiBwYXNzZWQgdW50b3VjaGVkIC1cbiAqICAgYEVuaGFuY2VzIE5vdGUgY29tcG9zZXIgY29yZSBwbHVnaW4uYCBhbmQgYC4uLm5vdCBwbHVnaW4gdXBkYXRlcy4uLmAgLSBiZWNhdXNlIGVhY2ggbmFtZXMgc29tZXRoaW5nXG4gKiAgIG90aGVyIHRoYW4gaXRzZWxmLiBUaGUgZGlyZWN0b3J5J3MgYWN0dWFsIG9iamVjdGlvbiBpcyBzZWxmLXJlZmVyZW5jZSwgc28gb25seSBzZWxmLXJlZmVyZW50aWFsXG4gKiAgIHBocmFzZXMgYXJlIG1hdGNoZWQgaGVyZS5cbiAqIC0gKipObyBjaGFyYWN0ZXIgd2hpdGVsaXN0LioqIFVwc3RyZWFtJ3MgZm9ybWF0IGNoZWNrIHJlamVjdHMgYW55dGhpbmcgb3V0c2lkZVxuICogICBgW0EtWmEtejAtOVxccy4sIT8nXCItXWAsIHdoaWNoIGZhaWxzIGJhY2t0aWNrcywgZW0gZGFzaGVzLCBwYXJlbnRoZXNlcywgY29sb25zIGFuZCBzbGFzaGVzLiBTZXZlblxuICogICBsaXZlIGxpc3RpbmdzIGNhcnJ5IHRob3NlIGFuZCB0aGUgZGlyZWN0b3J5IGZsYWdnZWQgbm9uZSwgc28gdGhlIGNoZWNrIGlzIG5vaXNlIHJhdGhlciB0aGFuIGEgZ2F0ZS5cbiAqXG4gKiBUaGUgbm8tYE9ic2lkaWFuYCBjaGVjayBoYXMgdGhlIG9wcG9zaXRlIHByb3ZlbmFuY2U6IHRoZSBkaXJlY3RvcnkgZW5mb3JjZXMgaXQgYW5kIG5vIE9ic2lkaWFuXG4gKiBkb2N1bWVudCBzdGF0ZXMgaXQsIHdoaWNoIGlzIHdoYXQgY29zdCBhIHJlbGVhc2VkIHBsdWdpbiBhIHZlcnNpb24gYnVtcCBmb3Igb25lIHdvcmQuXG4gKlxuICogUnVucyBvbiB0aGUgYEBlc2xpbnQvanNvbmAgYGpzb24vanNvbmAgbGFuZ3VhZ2U7IHNlZSBgbWFuaWZlc3QtaGVscGVycy50c2AgZm9yIHdoeSB0aGUgQVNUIGlzIE1vbW9hXG4gKiByYXRoZXIgdGhhbiBFU1RyZWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHtcbiAgZmluZE1hbmlmZXN0TWVtYmVyLFxuICBnZXRNYW5pZmVzdE9iamVjdCxcbiAgZ2V0U3RyaW5nVmFsdWUsXG4gIHRvUmVwb3J0Tm9kZVxufSBmcm9tICcuL21hbmlmZXN0LWhlbHBlcnMudHMnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgZGVzY3JpcHRpb24gY29udGFpbnMgdGhlIHdvcmQgYE9ic2lkaWFuYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfQ09OVEFJTlNfT0JTSURJQU4gPSAnZGVzY3JpcHRpb25Db250YWluc09ic2lkaWFuJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gdGhlIGRlc2NyaXB0aW9uIGRvZXMgbm90IGVuZCB3aXRoIGEgcGVyaW9kLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9NSVNTSU5HX1BFUklPRCA9ICdkZXNjcmlwdGlvbk1pc3NpbmdQZXJpb2QnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgZGVzY3JpcHRpb24gZG9lcyBub3Qgc3RhcnQgd2l0aCBhIGNhcGl0YWwgbGV0dGVyLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9OT1RfQ0FQSVRBTElaRUQgPSAnZGVzY3JpcHRpb25Ob3RDYXBpdGFsaXplZCc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIHRoZSBkZXNjcmlwdGlvbiByZWZlcnMgdG8gaXRzZWxmLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9TRUxGX1JFRkVSRU5DRSA9ICdkZXNjcmlwdGlvblNlbGZSZWZlcmVuY2UnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgZGVzY3JpcHRpb24gaXMgbG9uZ2VyIHRoYW4gdGhlIGRpcmVjdG9yeSBhbGxvd3MuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX1RPT19MT05HID0gJ2Rlc2NyaXB0aW9uVG9vTG9uZyc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIHRoZSBkZXNjcmlwdGlvbiBpcyB0b28gc2hvcnQgdG8gZGVzY3JpYmUgYW55dGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX1RPT19TSE9SVCA9ICdkZXNjcmlwdGlvblRvb1Nob3J0JztcblxuLyoqXG5UaGUgbG9uZ2VzdCBkZXNjcmlwdGlvbiB0aGUgQ29tbXVuaXR5IGRpcmVjdG9yeSBhY2NlcHRzLlxuICovXG5jb25zdCBNQVhfREVTQ1JJUFRJT05fTEVOR1RIID0gMjUwO1xuXG4vKipcblRoZSBzaG9ydGVzdCBkZXNjcmlwdGlvbiB0aGF0IGNhbiBwbGF1c2libHkgc2F5IHdoYXQgYSBwbHVnaW4gZG9lcy5cbiAqL1xuY29uc3QgTUlOX0RFU0NSSVBUSU9OX0xFTkdUSCA9IDEwO1xuXG4vKipcblRoZSB3b3JkIGBPYnNpZGlhbmAsIHdoaWNoIHRoZSBkaXJlY3RvcnkgcmVqZWN0cyBpbiBhIGRlc2NyaXB0aW9uIGV2ZW4gdGhvdWdoIG5vIE9ic2lkaWFuIGRvY3VtZW50IHNheXMgc28uXG4gKi9cbmNvbnN0IE9CU0lESUFOX1dPUkQgPSAvXFxib2JzaWRpYW5cXGIvaTtcblxuLyoqXG5UaGUgcGhyYXNpbmdzIHRoZSBkaXJlY3RvcnkgY2FsbHMgb3V0IGFzIHNlbGYtcmVmZXJlbmNlLiBBIGJhcmUgYHBsdWdpbmAgaXMgZGVsaWJlcmF0ZWx5IG5vdCBhbW9uZyB0aGVtOlxubmFtaW5nIGFub3RoZXIgcGx1Z2luLCBvciBwbHVnaW5zIGluIGdlbmVyYWwsIGlzIG5vdCByZWZlcnJpbmcgdG8gb25lc2VsZi5cbiAqL1xuY29uc3QgU0VMRl9SRUZFUkVOQ0VfUEFUVEVSTlMgPSBbXG4gIC9cXGJ0aGlzIHBsdWdpblxcYi9pLFxuICAvXFxidGhpcyBpcyBhIHBsdWdpblxcYi9pLFxuICAvXFxiYSBwbHVnaW4gKD86dGhhdHx3aGljaClcXGIvaSxcbiAgL150aGUgcGx1Z2luXFxiL2ksXG4gIC9ecGx1Z2luXFxiL2lcbl07XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgZW5mb3JjaW5nIHRoZSBDb21tdW5pdHkgZGlyZWN0b3J5J3MgY29uc3RyYWludHMgb24gYSBwbHVnaW4ncyBgbWFuaWZlc3QuanNvbmAgYGRlc2NyaXB0aW9uYC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hbmlmZXN0RGVzY3JpcHRpb246IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgRG9jdW1lbnQobm9kZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICBjb25zdCBtYW5pZmVzdE9iamVjdCA9IGdldE1hbmlmZXN0T2JqZWN0KG5vZGUpO1xuXG4gICAgICAgIGlmICghbWFuaWZlc3RPYmplY3QpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZW1iZXIgPSBmaW5kTWFuaWZlc3RNZW1iZXIobWFuaWZlc3RPYmplY3QsICdkZXNjcmlwdGlvbicpO1xuXG4gICAgICAgIGlmICghbWVtYmVyKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBnZXRTdHJpbmdWYWx1ZShtZW1iZXIudmFsdWUpO1xuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcG9ydE5vZGUgPSB0b1JlcG9ydE5vZGUobWVtYmVyLnZhbHVlKTtcblxuICAgICAgICBpZiAoT0JTSURJQU5fV09SRC50ZXN0KGRlc2NyaXB0aW9uKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9DT05UQUlOU19PQlNJRElBTixcbiAgICAgICAgICAgIG5vZGU6IHJlcG9ydE5vZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChTRUxGX1JFRkVSRU5DRV9QQVRURVJOUy5zb21lKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRlc3QoZGVzY3JpcHRpb24pKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9TRUxGX1JFRkVSRU5DRSxcbiAgICAgICAgICAgIG5vZGU6IHJlcG9ydE5vZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGggPCBNSU5fREVTQ1JJUFRJT05fTEVOR1RIKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX1RPT19TSE9SVCxcbiAgICAgICAgICAgIG5vZGU6IHJlcG9ydE5vZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGggPiBNQVhfREVTQ1JJUFRJT05fTEVOR1RIKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgZGF0YTogeyBtYXhMZW5ndGg6IE1BWF9ERVNDUklQVElPTl9MRU5HVEgudG9TdHJpbmcoKSB9LFxuICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX1RPT19MT05HLFxuICAgICAgICAgICAgbm9kZTogcmVwb3J0Tm9kZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEvXltBLVpdLy50ZXN0KGRlc2NyaXB0aW9uKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9OT1RfQ0FQSVRBTElaRUQsXG4gICAgICAgICAgICBub2RlOiByZXBvcnROb2RlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRlc2NyaXB0aW9uLmVuZHNXaXRoKCcuJykpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfTUlTU0lOR19QRVJJT0QsXG4gICAgICAgICAgICBub2RlOiByZXBvcnROb2RlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdFbmZvcmNlIHRoZSBDb21tdW5pdHkgZGlyZWN0b3J5XFwncyBjb25zdHJhaW50cyBvbiBhIHBsdWdpblxcJ3MgYG1hbmlmZXN0Lmpzb25gIGBkZXNjcmlwdGlvbmAnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURfQ09OVEFJTlNfT0JTSURJQU5dOiAnVGhlIGBkZXNjcmlwdGlvbmAgbXVzdCBub3QgY29udGFpbiB0aGUgd29yZCBgT2JzaWRpYW5gLiBJdCBpcyBpbXBsaWVkIGJ5IHRoZSBjb250ZXh0IG9mIHRoZSBwbHVnaW4gZGlyZWN0b3J5LicsXG4gICAgICBbTUVTU0FHRV9JRF9NSVNTSU5HX1BFUklPRF06ICdUaGUgYGRlc2NyaXB0aW9uYCBtdXN0IGVuZCB3aXRoIGEgcGVyaW9kLicsXG4gICAgICBbTUVTU0FHRV9JRF9OT1RfQ0FQSVRBTElaRURdOiAnVGhlIGBkZXNjcmlwdGlvbmAgbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbCBsZXR0ZXIuJyxcbiAgICAgIFtNRVNTQUdFX0lEX1NFTEZfUkVGRVJFTkNFXTogJ1RoZSBgZGVzY3JpcHRpb25gIG11c3Qgbm90IHJlZmVyIHRvIGl0c2VsZiwgZS5nLiBgdGhpcyBwbHVnaW5gIG9yIGBhIHBsdWdpbiB0aGF0YC4gRGVzY3JpYmUgd2hhdCBpdCBkb2VzIGluc3RlYWQuJyxcbiAgICAgIFtNRVNTQUdFX0lEX1RPT19MT05HXTogJ1RoZSBgZGVzY3JpcHRpb25gIG11c3QgYmUgYXQgbW9zdCB7eyBtYXhMZW5ndGggfX0gY2hhcmFjdGVycy4nLFxuICAgICAgW01FU1NBR0VfSURfVE9PX1NIT1JUXTogJ1RoZSBgZGVzY3JpcHRpb25gIGlzIHRvbyBzaG9ydCB0byBzYXkgd2hhdCB0aGUgcGx1Z2luIGRvZXMuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEyQkEsOEJBS087QUFLQSxNQUFNLCtCQUErQjtBQUtyQyxNQUFNLDRCQUE0QjtBQUtsQyxNQUFNLDZCQUE2QjtBQUtuQyxNQUFNLDRCQUE0QjtBQUtsQyxNQUFNLHNCQUFzQjtBQUs1QixNQUFNLHVCQUF1QjtBQUtwQyxNQUFNLHlCQUF5QjtBQUsvQixNQUFNLHlCQUF5QjtBQUsvQixNQUFNLGdCQUFnQjtBQU10QixNQUFNLDBCQUEwQjtBQUFBLEVBQzlCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBS08sTUFBTSxzQkFBdUM7QUFBQSxFQUNsRCxPQUFPLFNBQVM7QUFDZCxXQUFPO0FBQUEsTUFDTCxTQUFTLE1BQXFCO0FBQzVCLGNBQU0scUJBQWlCLDJDQUFrQixJQUFJO0FBRTdDLFlBQUksQ0FBQyxnQkFBZ0I7QUFDbkI7QUFBQSxRQUNGO0FBRUEsY0FBTSxhQUFTLDRDQUFtQixnQkFBZ0IsYUFBYTtBQUUvRCxZQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsUUFDRjtBQUVBLGNBQU0sa0JBQWMsd0NBQWUsT0FBTyxLQUFLO0FBRS9DLFlBQUksZ0JBQWdCLE1BQU07QUFDeEI7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBYSxzQ0FBYSxPQUFPLEtBQUs7QUFFNUMsWUFBSSxjQUFjLEtBQUssV0FBVyxHQUFHO0FBQ25DLGtCQUFRLE9BQU87QUFBQSxZQUNiLFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSx3QkFBd0IsS0FBSyxDQUFDLFlBQVksUUFBUSxLQUFLLFdBQVcsQ0FBQyxHQUFHO0FBQ3hFLGtCQUFRLE9BQU87QUFBQSxZQUNiLFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxZQUFZLFNBQVMsd0JBQXdCO0FBQy9DLGtCQUFRLE9BQU87QUFBQSxZQUNiLFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxZQUFZLFNBQVMsd0JBQXdCO0FBQy9DLGtCQUFRLE9BQU87QUFBQSxZQUNiLE1BQU0sRUFBRSxXQUFXLHVCQUF1QixTQUFTLEVBQUU7QUFBQSxZQUNyRCxXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSDtBQUVBLFlBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxHQUFHO0FBQy9CLGtCQUFRLE9BQU87QUFBQSxZQUNiLFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxDQUFDLFlBQVksU0FBUyxHQUFHLEdBQUc7QUFDOUIsa0JBQVEsT0FBTztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixDQUFDLDRCQUE0QixHQUFHO0FBQUEsTUFDaEMsQ0FBQyx5QkFBeUIsR0FBRztBQUFBLE1BQzdCLENBQUMsMEJBQTBCLEdBQUc7QUFBQSxNQUM5QixDQUFDLHlCQUF5QixHQUFHO0FBQUEsTUFDN0IsQ0FBQyxtQkFBbUIsR0FBRztBQUFBLE1BQ3ZCLENBQUMsb0JBQW9CLEdBQUc7QUFBQSxJQUMxQjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsIm5hbWVzIjpbXX0=
135
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL21hbmlmZXN0LWRlc2NyaXB0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IG1hbmlmZXN0LWRlc2NyaXB0aW9uXG4gKlxuICogRW5mb3JjZXMgdGhlIENvbW11bml0eSBkaXJlY3RvcnkncyBjb25zdHJhaW50cyBvbiBhIHBsdWdpbidzIGBtYW5pZmVzdC5qc29uYCBgZGVzY3JpcHRpb25gLlxuICpcbiAqIFR3byBvZiB0aGVzZSBjaGVja3MgZGVsaWJlcmF0ZWx5IGRpdmVyZ2UgZnJvbSBgb2JzaWRpYW5tZC92YWxpZGF0ZS1tYW5pZmVzdGA6XG4gKlxuICogLSAqKlNlbGYtcmVmZXJlbmNlLCBub3QgdGhlIHdvcmQgYHBsdWdpbmAuKiogVXBzdHJlYW0ncyBgRk9SQklEREVOX1dPUkRTYCBiYW5zIHRoZSBiYXJlIHN1YnN0cmluZ1xuICogICBgcGx1Z2luYCBpbiB0aGUgZGVzY3JpcHRpb24sIHdoaWNoIHJlamVjdHMgdHdvIGRlc2NyaXB0aW9ucyB0aGUgZGlyZWN0b3J5IGl0c2VsZiBwYXNzZWQgdW50b3VjaGVkIC1cbiAqICAgYEVuaGFuY2VzIE5vdGUgY29tcG9zZXIgY29yZSBwbHVnaW4uYCBhbmQgYC4uLm5vdCBwbHVnaW4gdXBkYXRlcy4uLmAgLSBiZWNhdXNlIGVhY2ggbmFtZXMgc29tZXRoaW5nXG4gKiAgIG90aGVyIHRoYW4gaXRzZWxmLiBUaGUgZGlyZWN0b3J5J3MgYWN0dWFsIG9iamVjdGlvbiBpcyBzZWxmLXJlZmVyZW5jZSwgc28gb25seSBzZWxmLXJlZmVyZW50aWFsXG4gKiAgIHBocmFzZXMgYXJlIG1hdGNoZWQgaGVyZS5cbiAqIC0gKipObyBjaGFyYWN0ZXIgd2hpdGVsaXN0LioqIFVwc3RyZWFtJ3MgZm9ybWF0IGNoZWNrIHJlamVjdHMgYW55dGhpbmcgb3V0c2lkZVxuICogICBgW0EtWmEtejAtOVxccy4sIT8nXCItXWAsIHdoaWNoIGZhaWxzIGJhY2t0aWNrcywgZW0gZGFzaGVzLCBwYXJlbnRoZXNlcywgY29sb25zIGFuZCBzbGFzaGVzLiBTZXZlblxuICogICBsaXZlIGxpc3RpbmdzIGNhcnJ5IHRob3NlIGFuZCB0aGUgZGlyZWN0b3J5IGZsYWdnZWQgbm9uZSwgc28gdGhlIGNoZWNrIGlzIG5vaXNlIHJhdGhlciB0aGFuIGEgZ2F0ZS5cbiAqXG4gKiBUaGUgbm8tYE9ic2lkaWFuYCBjaGVjayBoYXMgdGhlIG9wcG9zaXRlIHByb3ZlbmFuY2U6IHRoZSBkaXJlY3RvcnkgZW5mb3JjZXMgaXQgYW5kIG5vIE9ic2lkaWFuXG4gKiBkb2N1bWVudCBzdGF0ZXMgaXQsIHdoaWNoIGlzIHdoYXQgY29zdCBhIHJlbGVhc2VkIHBsdWdpbiBhIHZlcnNpb24gYnVtcCBmb3Igb25lIHdvcmQuXG4gKlxuICogUnVucyBvbiB0aGUgYEBlc2xpbnQvanNvbmAgYGpzb24vanNvbmAgbGFuZ3VhZ2U7IHNlZSBgbWFuaWZlc3QtaGVscGVycy50c2AgZm9yIHdoeSB0aGUgQVNUIGlzIE1vbW9hXG4gKiByYXRoZXIgdGhhbiBFU1RyZWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHtcbiAgZmluZE1hbmlmZXN0TWVtYmVyLFxuICBnZXRNYW5pZmVzdE9iamVjdCxcbiAgZ2V0U3RyaW5nVmFsdWUsXG4gIHRvUmVwb3J0Tm9kZVxufSBmcm9tICcuL21hbmlmZXN0LWhlbHBlcnMudHMnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgZGVzY3JpcHRpb24gY29udGFpbnMgdGhlIHdvcmQgYE9ic2lkaWFuYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfQ09OVEFJTlNfT0JTSURJQU4gPSAnZGVzY3JpcHRpb25Db250YWluc09ic2lkaWFuJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gdGhlIGRlc2NyaXB0aW9uIGRvZXMgbm90IGVuZCB3aXRoIGEgcGVyaW9kLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9NSVNTSU5HX1BFUklPRCA9ICdkZXNjcmlwdGlvbk1pc3NpbmdQZXJpb2QnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgZGVzY3JpcHRpb24gZG9lcyBub3Qgc3RhcnQgd2l0aCBhIGNhcGl0YWwgbGV0dGVyLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9OT1RfQ0FQSVRBTElaRUQgPSAnZGVzY3JpcHRpb25Ob3RDYXBpdGFsaXplZCc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIHRoZSBkZXNjcmlwdGlvbiByZWZlcnMgdG8gaXRzZWxmLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9TRUxGX1JFRkVSRU5DRSA9ICdkZXNjcmlwdGlvblNlbGZSZWZlcmVuY2UnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgZGVzY3JpcHRpb24gaXMgbG9uZ2VyIHRoYW4gdGhlIGRpcmVjdG9yeSBhbGxvd3MuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX1RPT19MT05HID0gJ2Rlc2NyaXB0aW9uVG9vTG9uZyc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIHRoZSBkZXNjcmlwdGlvbiBpcyB0b28gc2hvcnQgdG8gZGVzY3JpYmUgYW55dGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX1RPT19TSE9SVCA9ICdkZXNjcmlwdGlvblRvb1Nob3J0JztcblxuLyoqXG5UaGUgbG9uZ2VzdCBkZXNjcmlwdGlvbiB0aGUgQ29tbXVuaXR5IGRpcmVjdG9yeSBhY2NlcHRzLlxuICovXG5jb25zdCBNQVhfREVTQ1JJUFRJT05fTEVOR1RIID0gMjUwO1xuXG4vKipcblRoZSBzaG9ydGVzdCBkZXNjcmlwdGlvbiB0aGF0IGNhbiBwbGF1c2libHkgc2F5IHdoYXQgYSBwbHVnaW4gZG9lcy5cbiAqL1xuY29uc3QgTUlOX0RFU0NSSVBUSU9OX0xFTkdUSCA9IDEwO1xuXG4vKipcblRoZSB3b3JkIGBPYnNpZGlhbmAsIHdoaWNoIHRoZSBkaXJlY3RvcnkgcmVqZWN0cyBpbiBhIGRlc2NyaXB0aW9uIGV2ZW4gdGhvdWdoIG5vIE9ic2lkaWFuIGRvY3VtZW50IHNheXMgc28uXG4gKi9cbmNvbnN0IE9CU0lESUFOX1dPUkQgPSAvXFxib2JzaWRpYW5cXGIvaTtcblxuLyoqXG5UaGUgcGhyYXNpbmdzIHRoZSBkaXJlY3RvcnkgY2FsbHMgb3V0IGFzIHNlbGYtcmVmZXJlbmNlLiBBIGJhcmUgYHBsdWdpbmAgaXMgZGVsaWJlcmF0ZWx5IG5vdCBhbW9uZyB0aGVtOlxubmFtaW5nIGFub3RoZXIgcGx1Z2luLCBvciBwbHVnaW5zIGluIGdlbmVyYWwsIGlzIG5vdCByZWZlcnJpbmcgdG8gb25lc2VsZi5cbiAqL1xuY29uc3QgU0VMRl9SRUZFUkVOQ0VfUEFUVEVSTlMgPSBbXG4gIC9cXGJ0aGlzIHBsdWdpblxcYi9pLFxuICAvXFxidGhpcyBpcyBhIHBsdWdpblxcYi9pLFxuICAvXFxiYSBwbHVnaW4gKD86dGhhdHx3aGljaClcXGIvaSxcbiAgL150aGUgcGx1Z2luXFxiL2ksXG4gIC9ecGx1Z2luXFxiL2lcbl07XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgZW5mb3JjaW5nIHRoZSBDb21tdW5pdHkgZGlyZWN0b3J5J3MgY29uc3RyYWludHMgb24gYSBwbHVnaW4ncyBgbWFuaWZlc3QuanNvbmAgYGRlc2NyaXB0aW9uYC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hbmlmZXN0RGVzY3JpcHRpb246IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgRG9jdW1lbnQobm9kZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICBjb25zdCBtYW5pZmVzdE9iamVjdCA9IGdldE1hbmlmZXN0T2JqZWN0KG5vZGUpO1xuXG4gICAgICAgIGlmICghbWFuaWZlc3RPYmplY3QpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZW1iZXIgPSBmaW5kTWFuaWZlc3RNZW1iZXIobWFuaWZlc3RPYmplY3QsICdkZXNjcmlwdGlvbicpO1xuXG4gICAgICAgIGlmICghbWVtYmVyKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBnZXRTdHJpbmdWYWx1ZShtZW1iZXIudmFsdWUpO1xuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcG9ydE5vZGUgPSB0b1JlcG9ydE5vZGUobWVtYmVyLnZhbHVlKTtcblxuICAgICAgICBpZiAoT0JTSURJQU5fV09SRC50ZXN0KGRlc2NyaXB0aW9uKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9DT05UQUlOU19PQlNJRElBTixcbiAgICAgICAgICAgIG5vZGU6IHJlcG9ydE5vZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChTRUxGX1JFRkVSRU5DRV9QQVRURVJOUy5zb21lKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRlc3QoZGVzY3JpcHRpb24pKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9TRUxGX1JFRkVSRU5DRSxcbiAgICAgICAgICAgIG5vZGU6IHJlcG9ydE5vZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGggPCBNSU5fREVTQ1JJUFRJT05fTEVOR1RIKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX1RPT19TSE9SVCxcbiAgICAgICAgICAgIG5vZGU6IHJlcG9ydE5vZGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGggPiBNQVhfREVTQ1JJUFRJT05fTEVOR1RIKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgZGF0YTogeyBtYXhMZW5ndGg6IE1BWF9ERVNDUklQVElPTl9MRU5HVEgudG9TdHJpbmcoKSB9LFxuICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX1RPT19MT05HLFxuICAgICAgICAgICAgbm9kZTogcmVwb3J0Tm9kZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEvXltBLVpdLy50ZXN0KGRlc2NyaXB0aW9uKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9OT1RfQ0FQSVRBTElaRUQsXG4gICAgICAgICAgICBub2RlOiByZXBvcnROb2RlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRlc2NyaXB0aW9uLmVuZHNXaXRoKCcuJykpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfTUlTU0lOR19QRVJJT0QsXG4gICAgICAgICAgICBub2RlOiByZXBvcnROb2RlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdFbmZvcmNlIHRoZSBDb21tdW5pdHkgZGlyZWN0b3J5XFwncyBjb25zdHJhaW50cyBvbiBhIHBsdWdpblxcJ3MgYG1hbmlmZXN0Lmpzb25gIGBkZXNjcmlwdGlvbmAnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURfQ09OVEFJTlNfT0JTSURJQU5dOiAnVGhlIGBkZXNjcmlwdGlvbmAgbXVzdCBub3QgY29udGFpbiB0aGUgd29yZCBgT2JzaWRpYW5gLiBJdCBpcyBpbXBsaWVkIGJ5IHRoZSBjb250ZXh0IG9mIHRoZSBwbHVnaW4gZGlyZWN0b3J5LicsXG4gICAgICBbTUVTU0FHRV9JRF9NSVNTSU5HX1BFUklPRF06ICdUaGUgYGRlc2NyaXB0aW9uYCBtdXN0IGVuZCB3aXRoIGEgcGVyaW9kLicsXG4gICAgICBbTUVTU0FHRV9JRF9OT1RfQ0FQSVRBTElaRURdOiAnVGhlIGBkZXNjcmlwdGlvbmAgbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbCBsZXR0ZXIuJyxcbiAgICAgIFtNRVNTQUdFX0lEX1NFTEZfUkVGRVJFTkNFXTogJ1RoZSBgZGVzY3JpcHRpb25gIG11c3Qgbm90IHJlZmVyIHRvIGl0c2VsZiwgZS5nLiBgdGhpcyBwbHVnaW5gIG9yIGBhIHBsdWdpbiB0aGF0YC4gRGVzY3JpYmUgd2hhdCBpdCBkb2VzIGluc3RlYWQuJyxcbiAgICAgIFtNRVNTQUdFX0lEX1RPT19MT05HXTogJ1RoZSBgZGVzY3JpcHRpb25gIG11c3QgYmUgYXQgbW9zdCB7eyBtYXhMZW5ndGggfX0gY2hhcmFjdGVycy4nLFxuICAgICAgW01FU1NBR0VfSURfVE9PX1NIT1JUXTogJ1RoZSBgZGVzY3JpcHRpb25gIGlzIHRvbyBzaG9ydCB0byBzYXkgd2hhdCB0aGUgcGx1Z2luIGRvZXMuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJCQSw4QkFLTztBQUtBLE1BQU0sK0JBQStCO0FBS3JDLE1BQU0sNEJBQTRCO0FBS2xDLE1BQU0sNkJBQTZCO0FBS25DLE1BQU0sNEJBQTRCO0FBS2xDLE1BQU0sc0JBQXNCO0FBSzVCLE1BQU0sdUJBQXVCO0FBS3BDLE1BQU0seUJBQXlCO0FBSy9CLE1BQU0seUJBQXlCO0FBSy9CLE1BQU0sZ0JBQWdCO0FBTXRCLE1BQU0sMEJBQTBCO0FBQUEsRUFDOUI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFLTyxNQUFNLHNCQUF1QztBQUFBLEVBQ2xELE9BQU8sU0FBUztBQUNkLFdBQU87QUFBQSxNQUNMLFNBQVMsTUFBcUI7QUFDNUIsY0FBTSxxQkFBaUIsMkNBQWtCLElBQUk7QUFFN0MsWUFBSSxDQUFDLGdCQUFnQjtBQUNuQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGFBQVMsNENBQW1CLGdCQUFnQixhQUFhO0FBRS9ELFlBQUksQ0FBQyxRQUFRO0FBQ1g7QUFBQSxRQUNGO0FBRUEsY0FBTSxrQkFBYyx3Q0FBZSxPQUFPLEtBQUs7QUFFL0MsWUFBSSxnQkFBZ0IsTUFBTTtBQUN4QjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGlCQUFhLHNDQUFhLE9BQU8sS0FBSztBQUU1QyxZQUFJLGNBQWMsS0FBSyxXQUFXLEdBQUc7QUFDbkMsa0JBQVEsT0FBTztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLHdCQUF3QixLQUFLLENBQUMsWUFBWSxRQUFRLEtBQUssV0FBVyxDQUFDLEdBQUc7QUFDeEUsa0JBQVEsT0FBTztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLFlBQVksU0FBUyx3QkFBd0I7QUFDL0Msa0JBQVEsT0FBTztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLFlBQVksU0FBUyx3QkFBd0I7QUFDL0Msa0JBQVEsT0FBTztBQUFBLFlBQ2IsTUFBTSxFQUFFLFdBQVcsdUJBQXVCLFNBQVMsRUFBRTtBQUFBLFlBQ3JELFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEdBQUc7QUFDL0Isa0JBQVEsT0FBTztBQUFBLFlBQ2IsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLENBQUMsWUFBWSxTQUFTLEdBQUcsR0FBRztBQUM5QixrQkFBUSxPQUFPO0FBQUEsWUFDYixXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsNEJBQTRCLEdBQUc7QUFBQSxNQUNoQyxDQUFDLHlCQUF5QixHQUFHO0FBQUEsTUFDN0IsQ0FBQywwQkFBMEIsR0FBRztBQUFBLE1BQzlCLENBQUMseUJBQXlCLEdBQUc7QUFBQSxNQUM3QixDQUFDLG1CQUFtQixHQUFHO0FBQUEsTUFDdkIsQ0FBQyxvQkFBb0IsR0FBRztBQUFBLElBQzFCO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxJQUNULE1BQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -29,80 +29,6 @@ function ensureBrowserProcess() {
29
29
 
30
30
  ensureBrowserProcess();
31
31
  })();
32
- (function patchObsidianRequire() {
33
- const originalRequire = require;
34
- if (!originalRequire || originalRequire.__isPatched) {
35
- return;
36
- }
37
-
38
- require = Object.assign(
39
- (id) => requirePatched(id),
40
- originalRequire,
41
- {
42
- __isPatched: true
43
- }
44
- );
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
51
- '@codemirror/autocomplete',
52
- '@codemirror/collab',
53
- '@codemirror/commands',
54
- '@codemirror/language',
55
- '@codemirror/lint',
56
- '@codemirror/search',
57
- '@codemirror/state',
58
- '@codemirror/text',
59
- '@codemirror/view',
60
- '@lezer/common',
61
- '@lezer/highlight',
62
- '@lezer/lr',
63
- 'obsidian']
64
- );
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip']
79
- );
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
87
- if (globalThis.app.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- // eslint-disable-next-line no-console -- Valid usage.
90
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
91
-
92
- return process;
93
- }
94
- } else {
95
- const module = originalRequire?.(id);
96
- if (module) {
97
- return extractDefault(module);
98
- }
99
- }
100
-
101
- // eslint-disable-next-line no-console -- Valid usage.
102
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
103
- return {};
104
- }
105
- })();
106
32
 
107
33
  "use strict";
108
34
  var __create = Object.create;
@@ -196,4 +122,4 @@ function bridgeJsonPlugin() {
196
122
  jsonPlugin,
197
123
  toReportNode
198
124
  });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9tYW5pZmVzdC1oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgaGVscGVycyBmb3IgdGhlIGBtYW5pZmVzdC5qc29uYCBFU0xpbnQgcnVsZXMuXG4gKlxuICogVGhlIG1hbmlmZXN0IGlzIGxpbnRlZCB0aHJvdWdoIGBAZXNsaW50L2pzb25gJ3MgYGpzb24vanNvbmAgbGFuZ3VhZ2UsIHdob3NlIEFTVCBpcyBNb21vYVxuICogKGBEb2N1bWVudGAgLT4gYE9iamVjdGAgLT4gYE1lbWJlcmApIHJhdGhlciB0aGFuIEVTVHJlZSwgc28gdGhlc2UgcnVsZXMgdmlzaXQgYERvY3VtZW50YCBpbnN0ZWFkIG9mXG4gKiBgUHJvZ3JhbWAuIFRoYXQgZGlmZmVyZW5jZSBpcyBleGFjdGx5IHdoeSBgb2JzaWRpYW5tZC92YWxpZGF0ZS1tYW5pZmVzdGAgY2FuIG5ldmVyIGZpcmU6IGl0IHJlZ2lzdGVycyBhXG4gKiBgUHJvZ3JhbWAgdmlzaXRvciBhbmQgZXhwZWN0cyBhbiBFU1RyZWUgYE9iamVjdEV4cHJlc3Npb25gLCB3aGljaCBubyBzaGlwcGVkIEpTT04gcGFyc2VyIHByb2R1Y2VzLlxuICpcbiAqIFRoZSBNb21vYSBub2RlIHNoYXBlcyBhcmUgZGVjbGFyZWQgc3RydWN0dXJhbGx5IGhlcmUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQgZnJvbSBgQGh1bWFud2hvY29kZXMvbW9tb2FgLFxuICogd2hpY2ggaXMgb25seSBhIHRyYW5zaXRpdmUgZGVwZW5kZW5jeSBvZiBgQGVzbGludC9qc29uYC4gQSB0eXBlLW9ubHkgaW1wb3J0IHdvdWxkIGxlYWsgaW50byB0aGVcbiAqIHB1Ymxpc2hlZCBkZWNsYXJhdGlvbnMgYW5kIGZvcmNlIGV2ZXJ5IGNvbnN1bWVyIHRvIHJlc29sdmUgYSBwYWNrYWdlIGl0IG5ldmVyIGluc3RhbGxlZC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEVTTGludCxcbiAgUnVsZVxufSBmcm9tICdlc2xpbnQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBqc29uIGZyb20gJ0Blc2xpbnQvanNvbic7XG5cbi8qKlxuICogVGhlIE1vbW9hIG5vZGUgdHlwZSBvZiBhIEpTT04gYm9vbGVhbiB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEpTT05fTk9ERV9UWVBFX0JPT0xFQU4gPSAnQm9vbGVhbic7XG5cbi8qKlxuICogVGhlIE1vbW9hIG5vZGUgdHlwZSBvZiBhIEpTT04gb2JqZWN0IHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgSlNPTl9OT0RFX1RZUEVfT0JKRUNUID0gJ09iamVjdCc7XG5cbi8qKlxuICogVGhlIE1vbW9hIG5vZGUgdHlwZSBvZiBhIEpTT04gc3RyaW5nIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgSlNPTl9OT0RFX1RZUEVfU1RSSU5HID0gJ1N0cmluZyc7XG5cbi8qKlxuICogYEBlc2xpbnQvanNvbmAsIHR5cGVkIGFzIHRoZSBwbHVnaW4gdHlwZSBhIGZsYXQgY29uZmlnIGFuZCBgUnVsZVRlc3RlcmAgYXJlIHdyaXR0ZW4gYWdhaW5zdC5cbiAqXG4gKiBUaGUgcGFja2FnZSdzIHJ1bGUgZGVmaW5pdGlvbnMgYXJlIGdlbmVyaWMgb3ZlciBpdHMgb3duIEpTT04gbGFuZ3VhZ2UsIHdoaWNoIGBAdHlwZXMvZXNsaW50YCdzXG4gKiBgRVNMaW50LlBsdWdpbmAgLSB3cml0dGVuIGFnYWluc3QgRVNUcmVlIHJ1bGVzIC0gY2Fubm90IGV4cHJlc3MsIHNvIHRoZSB0d28gYXJlIG5vbWluYWxseSBpbmNvbXBhdGlibGVcbiAqIHdoaWxlIGJlaW5nIGV4YWN0bHkgY29tcGF0aWJsZSBhdCBydW50aW1lLiBSZWdpc3RlcmluZyBpdCBpcyB3aGF0IG1ha2VzIGBsYW5ndWFnZTogJ2pzb24vanNvbidgXG4gKiByZXNvbHZhYmxlLCBzbyB0aGVyZSBpcyBubyB3YXkgdG8gYXZvaWQgdGhlIGJyaWRnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGpzb25QbHVnaW46IEVTTGludC5QbHVnaW4gPSBicmlkZ2VKc29uUGx1Z2luKCk7XG5cbi8qKlxuICogVGhlIGB2ZXJzaW9uYCBhIHBsdWdpbiByZXBvIGNhcnJpZXMgYmVmb3JlIGl0cyBmaXJzdCByZWxlYXNlLCB3aGVuIGBtaW5BcHBWZXJzaW9uYCBpcyBsZWdpdGltYXRlbHkgYWJzZW50LlxuICovXG5leHBvcnQgY29uc3QgVU5SRUxFQVNFRF9WRVJTSU9OID0gJzAuMC4wJztcblxuLyoqXG4gKiBUaGUgcm9vdCBub2RlIG9mIGEgcGFyc2VkIEpTT04gZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkRvY3VtZW50Tm9kZSBleHRlbmRzIEpzb25Ob2RlIHtcbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudCdzIHNpbmdsZSB0b3AtbGV2ZWwgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBib2R5OiBKc29uTm9kZTtcbn1cblxuLyoqXG4gKiBBIEpTT04gbGl0ZXJhbCAtIGEgc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gb3IgbnVsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc29uTGl0ZXJhbE5vZGUgZXh0ZW5kcyBKc29uTm9kZSB7XG4gIC8qKlxuICAgKiBUaGUgbGl0ZXJhbCdzIHBhcnNlZCB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBib29sZWFuIHwgbnVsbCB8IG51bWJlciB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBgXCJrZXlcIjogdmFsdWVgIHBhaXIgb2YgYSBKU09OIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc29uTWVtYmVyTm9kZSBleHRlbmRzIEpzb25Ob2RlIHtcbiAgLyoqXG4gICAqIFRoZSBtZW1iZXIncyBrZXkuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBKc29uTGl0ZXJhbE5vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtZW1iZXIncyB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBKc29uTm9kZTtcbn1cblxuLyoqXG4gKiBBbnkgbm9kZSBvZiB0aGUgTW9tb2EgSlNPTiBBU1QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbk5vZGUge1xuICAvKipcbiAgICogVGhlIG5vZGUgdHlwZSwgZS5nLiBgRG9jdW1lbnRgLCBgT2JqZWN0YCwgYE1lbWJlcmAsIGBTdHJpbmdgLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgSlNPTiBvYmplY3QgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbk9iamVjdE5vZGUgZXh0ZW5kcyBKc29uTm9kZSB7XG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0J3MgbWVtYmVycywgaW4gc291cmNlIG9yZGVyLCBpbmNsdWRpbmcgYW55IGR1cGxpY2F0ZSBrZXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtYmVyczogcmVhZG9ubHkgSnNvbk1lbWJlck5vZGVbXTtcbn1cblxuLyoqXG4gKiBGaW5kcyBhIHRvcC1sZXZlbCBtZW1iZXIgb2YgdGhlIG1hbmlmZXN0IGJ5IGtleS5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RPYmplY3QgLSBUaGUgbWFuaWZlc3QncyByb290IG9iamVjdCBub2RlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgbWVtYmVyIHdpdGggdGhhdCBrZXksIG9yIGBudWxsYCB3aGVuIHRoZSBtYW5pZmVzdCBoYXMgbm9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNYW5pZmVzdE1lbWJlcihtYW5pZmVzdE9iamVjdDogSnNvbk9iamVjdE5vZGUsIGtleTogc3RyaW5nKTogSnNvbk1lbWJlck5vZGUgfCBudWxsIHtcbiAgcmV0dXJuIG1hbmlmZXN0T2JqZWN0Lm1lbWJlcnMuZmluZCgobWVtYmVyKSA9PiBnZXRNZW1iZXJLZXkobWVtYmVyKSA9PT0ga2V5KSA/PyBudWxsO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBtYW5pZmVzdCdzIHJvb3Qgb2JqZWN0IG91dCBvZiB0aGUgdmlzaXRlZCBgRG9jdW1lbnRgIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgYERvY3VtZW50YCBub2RlIGhhbmRlZCB0byB0aGUgcnVsZSdzIHZpc2l0b3IuXG4gKiBAcmV0dXJucyBUaGUgcm9vdCBvYmplY3Qgbm9kZSwgb3IgYG51bGxgIHdoZW4gdGhlIGRvY3VtZW50J3MgdG9wLWxldmVsIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYW5pZmVzdE9iamVjdChub2RlOiB1bmtub3duKTogSnNvbk9iamVjdE5vZGUgfCBudWxsIHtcbiAgY29uc3QgZG9jdW1lbnQgPSBub2RlIGFzIEpzb25Eb2N1bWVudE5vZGU7XG4gIHJldHVybiBkb2N1bWVudC5ib2R5LnR5cGUgPT09IEpTT05fTk9ERV9UWVBFX09CSkVDVCA/IGRvY3VtZW50LmJvZHkgYXMgSnNvbk9iamVjdE5vZGUgOiBudWxsO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSB2YWx1ZSBvZiBhIHRvcC1sZXZlbCBzdHJpbmcgbWVtYmVyIG9mIHRoZSBtYW5pZmVzdC5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RPYmplY3QgLSBUaGUgbWFuaWZlc3QncyByb290IG9iamVjdCBub2RlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJucyBUaGUgbWVtYmVyJ3MgdmFsdWUsIG9yIGBudWxsYCB3aGVuIGl0IGlzIGFic2VudCBvciBub3QgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYW5pZmVzdFN0cmluZ1ZhbHVlKG1hbmlmZXN0T2JqZWN0OiBKc29uT2JqZWN0Tm9kZSwga2V5OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgbWVtYmVyID0gZmluZE1hbmlmZXN0TWVtYmVyKG1hbmlmZXN0T2JqZWN0LCBrZXkpO1xuICByZXR1cm4gbWVtYmVyID8gZ2V0U3RyaW5nVmFsdWUobWVtYmVyLnZhbHVlKSA6IG51bGw7XG59XG5cbi8qKlxuICogUmVhZHMgYSBtZW1iZXIncyBrZXkuXG4gKlxuICogVW5kZXIgdGhlIGBqc29uL2pzb25gIGxhbmd1YWdlIGEgbWVtYmVyJ3MgbmFtZSBpcyBhbHdheXMgYSBzdHJpbmcgbm9kZSAtIGlkZW50aWZpZXIga2V5cyBleGlzdCBvbmx5IGluXG4gKiBKU09ONSAtIHNvIHRoaXMgbmV2ZXIgaGFzIHRvIGFjY291bnQgZm9yIGEgbWlzc2luZyBrZXkuXG4gKlxuICogQHBhcmFtIG1lbWJlciAtIFRoZSBtZW1iZXIgdG8gcmVhZC5cbiAqIEByZXR1cm5zIFRoZSBtZW1iZXIncyBrZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZW1iZXJLZXkobWVtYmVyOiBKc29uTWVtYmVyTm9kZSk6IHN0cmluZyB7XG4gIHJldHVybiBtZW1iZXIubmFtZS52YWx1ZSBhcyBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIHZhbHVlIG9mIGEgTW9tb2Egc3RyaW5nIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgbm9kZSB0byByZWFkLlxuICogQHJldHVybnMgVGhlIHN0cmluZyB2YWx1ZSwgb3IgYG51bGxgIHdoZW4gdGhlIG5vZGUgaXMgbm90IGEgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RyaW5nVmFsdWUobm9kZTogSnNvbk5vZGUpOiBudWxsIHwgc3RyaW5nIHtcbiAgaWYgKG5vZGUudHlwZSAhPT0gSlNPTl9OT0RFX1RZUEVfU1RSSU5HKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsaXRlcmFsID0gbm9kZSBhcyBKc29uTGl0ZXJhbE5vZGU7XG4gIHJldHVybiBsaXRlcmFsLnZhbHVlIGFzIHN0cmluZztcbn1cblxuLyoqXG4gKiBCcmlkZ2VzIGEgTW9tb2Egbm9kZSB0byB0aGUgbm9kZSB0eXBlIGBjb250ZXh0LnJlcG9ydCgpYCBpcyB0eXBlZCBhZ2FpbnN0LlxuICpcbiAqIFRoZSB0d28gYXJlIHN0cnVjdHVyYWxseSBpbmNvbXBhdGlibGUgLSBFU0xpbnQncyBydWxlIHR5cGVzIGRlc2NyaWJlIEVTVHJlZSAtIGJ1dCB0aGUgYGpzb24vanNvbmBcbiAqIGxhbmd1YWdlJ3Mgc291cmNlIGNvZGUgYWRhcHRlciByZXNvbHZlcyBhIE1vbW9hIG5vZGUncyBwb3NpdGlvbiBhdCByZXBvcnQgdGltZSwgc28gdGhleSBhcmUgY29tcGF0aWJsZVxuICogYXQgcnVudGltZS4gVGhpcyBtaXJyb3JzIHRoZSBicmlkZ2UgYHJ1bGUtdGVzdGVyLWhlbHBlci50c2AgbWFrZXMgb3ZlciB0aGUgc2FtZSBraW5kIG9mIHR5cGUtbGV2ZWwgZ2FwLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIE1vbW9hIG5vZGUgdG8gcmVwb3J0IG9uLlxuICogQHJldHVybnMgVGhlIHNhbWUgbm9kZSwgdHlwZWQgZm9yIGBjb250ZXh0LnJlcG9ydCgpYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUmVwb3J0Tm9kZShub2RlOiB1bmtub3duKTogUnVsZS5Ob2RlIHtcbiAgY29uc3QgYnJpZGdlZDogdW5rbm93biA9IG5vZGU7XG4gIHJldHVybiBicmlkZ2VkIGFzIFJ1bGUuTm9kZTtcbn1cblxuLyoqXG4gKiBDYXN0cyBgQGVzbGludC9qc29uYCB0byB0aGUgcGx1Z2luIHR5cGUgYEB0eXBlcy9lc2xpbnRgIGRlY2xhcmVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBgQGVzbGludC9qc29uYCBwbHVnaW4sIHR5cGVkIGZvciBhIGZsYXQgY29uZmlnLlxuICovXG5mdW5jdGlvbiBicmlkZ2VKc29uUGx1Z2luKCk6IEVTTGludC5QbHVnaW4ge1xuICBjb25zdCBicmlkZ2VkOiB1bmtub3duID0ganNvbjtcbiAgcmV0dXJuIGJyaWRnZWQgYXMgRVNMaW50LlBsdWdpbjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFxQkEsa0JBQWlCO0FBS1YsTUFBTSx5QkFBeUI7QUFLL0IsTUFBTSx3QkFBd0I7QUFLOUIsTUFBTSx3QkFBd0I7QUFVOUIsTUFBTSxhQUE0QixpQkFBaUI7QUFLbkQsTUFBTSxxQkFBcUI7QUFnRTNCLFNBQVMsbUJBQW1CLGdCQUFnQyxLQUFvQztBQUNyRyxTQUFPLGVBQWUsUUFBUSxLQUFLLENBQUMsV0FBVyxhQUFhLE1BQU0sTUFBTSxHQUFHLEtBQUs7QUFDbEY7QUFRTyxTQUFTLGtCQUFrQixNQUFzQztBQUN0RSxRQUFNLFdBQVc7QUFDakIsU0FBTyxTQUFTLEtBQUssU0FBUyx3QkFBd0IsU0FBUyxPQUF5QjtBQUMxRjtBQVNPLFNBQVMsdUJBQXVCLGdCQUFnQyxLQUE0QjtBQUNqRyxRQUFNLFNBQVMsbUJBQW1CLGdCQUFnQixHQUFHO0FBQ3JELFNBQU8sU0FBUyxlQUFlLE9BQU8sS0FBSyxJQUFJO0FBQ2pEO0FBV08sU0FBUyxhQUFhLFFBQWdDO0FBQzNELFNBQU8sT0FBTyxLQUFLO0FBQ3JCO0FBUU8sU0FBUyxlQUFlLE1BQStCO0FBQzVELE1BQUksS0FBSyxTQUFTLHVCQUF1QjtBQUN2QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sVUFBVTtBQUNoQixTQUFPLFFBQVE7QUFDakI7QUFZTyxTQUFTLGFBQWEsTUFBMEI7QUFDckQsUUFBTSxVQUFtQjtBQUN6QixTQUFPO0FBQ1Q7QUFPQSxTQUFTLG1CQUFrQztBQUN6QyxRQUFNLFVBQW1CLFlBQUFBO0FBQ3pCLFNBQU87QUFDVDsiLCJuYW1lcyI6WyJqc29uIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9tYW5pZmVzdC1oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgaGVscGVycyBmb3IgdGhlIGBtYW5pZmVzdC5qc29uYCBFU0xpbnQgcnVsZXMuXG4gKlxuICogVGhlIG1hbmlmZXN0IGlzIGxpbnRlZCB0aHJvdWdoIGBAZXNsaW50L2pzb25gJ3MgYGpzb24vanNvbmAgbGFuZ3VhZ2UsIHdob3NlIEFTVCBpcyBNb21vYVxuICogKGBEb2N1bWVudGAgLT4gYE9iamVjdGAgLT4gYE1lbWJlcmApIHJhdGhlciB0aGFuIEVTVHJlZSwgc28gdGhlc2UgcnVsZXMgdmlzaXQgYERvY3VtZW50YCBpbnN0ZWFkIG9mXG4gKiBgUHJvZ3JhbWAuIFRoYXQgZGlmZmVyZW5jZSBpcyBleGFjdGx5IHdoeSBgb2JzaWRpYW5tZC92YWxpZGF0ZS1tYW5pZmVzdGAgY2FuIG5ldmVyIGZpcmU6IGl0IHJlZ2lzdGVycyBhXG4gKiBgUHJvZ3JhbWAgdmlzaXRvciBhbmQgZXhwZWN0cyBhbiBFU1RyZWUgYE9iamVjdEV4cHJlc3Npb25gLCB3aGljaCBubyBzaGlwcGVkIEpTT04gcGFyc2VyIHByb2R1Y2VzLlxuICpcbiAqIFRoZSBNb21vYSBub2RlIHNoYXBlcyBhcmUgZGVjbGFyZWQgc3RydWN0dXJhbGx5IGhlcmUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQgZnJvbSBgQGh1bWFud2hvY29kZXMvbW9tb2FgLFxuICogd2hpY2ggaXMgb25seSBhIHRyYW5zaXRpdmUgZGVwZW5kZW5jeSBvZiBgQGVzbGludC9qc29uYC4gQSB0eXBlLW9ubHkgaW1wb3J0IHdvdWxkIGxlYWsgaW50byB0aGVcbiAqIHB1Ymxpc2hlZCBkZWNsYXJhdGlvbnMgYW5kIGZvcmNlIGV2ZXJ5IGNvbnN1bWVyIHRvIHJlc29sdmUgYSBwYWNrYWdlIGl0IG5ldmVyIGluc3RhbGxlZC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEVTTGludCxcbiAgUnVsZVxufSBmcm9tICdlc2xpbnQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBqc29uIGZyb20gJ0Blc2xpbnQvanNvbic7XG5cbi8qKlxuICogVGhlIE1vbW9hIG5vZGUgdHlwZSBvZiBhIEpTT04gYm9vbGVhbiB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEpTT05fTk9ERV9UWVBFX0JPT0xFQU4gPSAnQm9vbGVhbic7XG5cbi8qKlxuICogVGhlIE1vbW9hIG5vZGUgdHlwZSBvZiBhIEpTT04gb2JqZWN0IHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgSlNPTl9OT0RFX1RZUEVfT0JKRUNUID0gJ09iamVjdCc7XG5cbi8qKlxuICogVGhlIE1vbW9hIG5vZGUgdHlwZSBvZiBhIEpTT04gc3RyaW5nIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgSlNPTl9OT0RFX1RZUEVfU1RSSU5HID0gJ1N0cmluZyc7XG5cbi8qKlxuICogYEBlc2xpbnQvanNvbmAsIHR5cGVkIGFzIHRoZSBwbHVnaW4gdHlwZSBhIGZsYXQgY29uZmlnIGFuZCBgUnVsZVRlc3RlcmAgYXJlIHdyaXR0ZW4gYWdhaW5zdC5cbiAqXG4gKiBUaGUgcGFja2FnZSdzIHJ1bGUgZGVmaW5pdGlvbnMgYXJlIGdlbmVyaWMgb3ZlciBpdHMgb3duIEpTT04gbGFuZ3VhZ2UsIHdoaWNoIGBAdHlwZXMvZXNsaW50YCdzXG4gKiBgRVNMaW50LlBsdWdpbmAgLSB3cml0dGVuIGFnYWluc3QgRVNUcmVlIHJ1bGVzIC0gY2Fubm90IGV4cHJlc3MsIHNvIHRoZSB0d28gYXJlIG5vbWluYWxseSBpbmNvbXBhdGlibGVcbiAqIHdoaWxlIGJlaW5nIGV4YWN0bHkgY29tcGF0aWJsZSBhdCBydW50aW1lLiBSZWdpc3RlcmluZyBpdCBpcyB3aGF0IG1ha2VzIGBsYW5ndWFnZTogJ2pzb24vanNvbidgXG4gKiByZXNvbHZhYmxlLCBzbyB0aGVyZSBpcyBubyB3YXkgdG8gYXZvaWQgdGhlIGJyaWRnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGpzb25QbHVnaW46IEVTTGludC5QbHVnaW4gPSBicmlkZ2VKc29uUGx1Z2luKCk7XG5cbi8qKlxuICogVGhlIGB2ZXJzaW9uYCBhIHBsdWdpbiByZXBvIGNhcnJpZXMgYmVmb3JlIGl0cyBmaXJzdCByZWxlYXNlLCB3aGVuIGBtaW5BcHBWZXJzaW9uYCBpcyBsZWdpdGltYXRlbHkgYWJzZW50LlxuICovXG5leHBvcnQgY29uc3QgVU5SRUxFQVNFRF9WRVJTSU9OID0gJzAuMC4wJztcblxuLyoqXG4gKiBUaGUgcm9vdCBub2RlIG9mIGEgcGFyc2VkIEpTT04gZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkRvY3VtZW50Tm9kZSBleHRlbmRzIEpzb25Ob2RlIHtcbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudCdzIHNpbmdsZSB0b3AtbGV2ZWwgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBib2R5OiBKc29uTm9kZTtcbn1cblxuLyoqXG4gKiBBIEpTT04gbGl0ZXJhbCAtIGEgc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gb3IgbnVsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc29uTGl0ZXJhbE5vZGUgZXh0ZW5kcyBKc29uTm9kZSB7XG4gIC8qKlxuICAgKiBUaGUgbGl0ZXJhbCdzIHBhcnNlZCB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBib29sZWFuIHwgbnVsbCB8IG51bWJlciB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBgXCJrZXlcIjogdmFsdWVgIHBhaXIgb2YgYSBKU09OIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc29uTWVtYmVyTm9kZSBleHRlbmRzIEpzb25Ob2RlIHtcbiAgLyoqXG4gICAqIFRoZSBtZW1iZXIncyBrZXkuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBKc29uTGl0ZXJhbE5vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtZW1iZXIncyB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBKc29uTm9kZTtcbn1cblxuLyoqXG4gKiBBbnkgbm9kZSBvZiB0aGUgTW9tb2EgSlNPTiBBU1QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbk5vZGUge1xuICAvKipcbiAgICogVGhlIG5vZGUgdHlwZSwgZS5nLiBgRG9jdW1lbnRgLCBgT2JqZWN0YCwgYE1lbWJlcmAsIGBTdHJpbmdgLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgSlNPTiBvYmplY3QgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbk9iamVjdE5vZGUgZXh0ZW5kcyBKc29uTm9kZSB7XG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0J3MgbWVtYmVycywgaW4gc291cmNlIG9yZGVyLCBpbmNsdWRpbmcgYW55IGR1cGxpY2F0ZSBrZXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtYmVyczogcmVhZG9ubHkgSnNvbk1lbWJlck5vZGVbXTtcbn1cblxuLyoqXG4gKiBGaW5kcyBhIHRvcC1sZXZlbCBtZW1iZXIgb2YgdGhlIG1hbmlmZXN0IGJ5IGtleS5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RPYmplY3QgLSBUaGUgbWFuaWZlc3QncyByb290IG9iamVjdCBub2RlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgbWVtYmVyIHdpdGggdGhhdCBrZXksIG9yIGBudWxsYCB3aGVuIHRoZSBtYW5pZmVzdCBoYXMgbm9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNYW5pZmVzdE1lbWJlcihtYW5pZmVzdE9iamVjdDogSnNvbk9iamVjdE5vZGUsIGtleTogc3RyaW5nKTogSnNvbk1lbWJlck5vZGUgfCBudWxsIHtcbiAgcmV0dXJuIG1hbmlmZXN0T2JqZWN0Lm1lbWJlcnMuZmluZCgobWVtYmVyKSA9PiBnZXRNZW1iZXJLZXkobWVtYmVyKSA9PT0ga2V5KSA/PyBudWxsO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBtYW5pZmVzdCdzIHJvb3Qgb2JqZWN0IG91dCBvZiB0aGUgdmlzaXRlZCBgRG9jdW1lbnRgIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgYERvY3VtZW50YCBub2RlIGhhbmRlZCB0byB0aGUgcnVsZSdzIHZpc2l0b3IuXG4gKiBAcmV0dXJucyBUaGUgcm9vdCBvYmplY3Qgbm9kZSwgb3IgYG51bGxgIHdoZW4gdGhlIGRvY3VtZW50J3MgdG9wLWxldmVsIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYW5pZmVzdE9iamVjdChub2RlOiB1bmtub3duKTogSnNvbk9iamVjdE5vZGUgfCBudWxsIHtcbiAgY29uc3QgZG9jdW1lbnQgPSBub2RlIGFzIEpzb25Eb2N1bWVudE5vZGU7XG4gIHJldHVybiBkb2N1bWVudC5ib2R5LnR5cGUgPT09IEpTT05fTk9ERV9UWVBFX09CSkVDVCA/IGRvY3VtZW50LmJvZHkgYXMgSnNvbk9iamVjdE5vZGUgOiBudWxsO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSB2YWx1ZSBvZiBhIHRvcC1sZXZlbCBzdHJpbmcgbWVtYmVyIG9mIHRoZSBtYW5pZmVzdC5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RPYmplY3QgLSBUaGUgbWFuaWZlc3QncyByb290IG9iamVjdCBub2RlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJucyBUaGUgbWVtYmVyJ3MgdmFsdWUsIG9yIGBudWxsYCB3aGVuIGl0IGlzIGFic2VudCBvciBub3QgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYW5pZmVzdFN0cmluZ1ZhbHVlKG1hbmlmZXN0T2JqZWN0OiBKc29uT2JqZWN0Tm9kZSwga2V5OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgbWVtYmVyID0gZmluZE1hbmlmZXN0TWVtYmVyKG1hbmlmZXN0T2JqZWN0LCBrZXkpO1xuICByZXR1cm4gbWVtYmVyID8gZ2V0U3RyaW5nVmFsdWUobWVtYmVyLnZhbHVlKSA6IG51bGw7XG59XG5cbi8qKlxuICogUmVhZHMgYSBtZW1iZXIncyBrZXkuXG4gKlxuICogVW5kZXIgdGhlIGBqc29uL2pzb25gIGxhbmd1YWdlIGEgbWVtYmVyJ3MgbmFtZSBpcyBhbHdheXMgYSBzdHJpbmcgbm9kZSAtIGlkZW50aWZpZXIga2V5cyBleGlzdCBvbmx5IGluXG4gKiBKU09ONSAtIHNvIHRoaXMgbmV2ZXIgaGFzIHRvIGFjY291bnQgZm9yIGEgbWlzc2luZyBrZXkuXG4gKlxuICogQHBhcmFtIG1lbWJlciAtIFRoZSBtZW1iZXIgdG8gcmVhZC5cbiAqIEByZXR1cm5zIFRoZSBtZW1iZXIncyBrZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZW1iZXJLZXkobWVtYmVyOiBKc29uTWVtYmVyTm9kZSk6IHN0cmluZyB7XG4gIHJldHVybiBtZW1iZXIubmFtZS52YWx1ZSBhcyBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIHZhbHVlIG9mIGEgTW9tb2Egc3RyaW5nIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgbm9kZSB0byByZWFkLlxuICogQHJldHVybnMgVGhlIHN0cmluZyB2YWx1ZSwgb3IgYG51bGxgIHdoZW4gdGhlIG5vZGUgaXMgbm90IGEgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RyaW5nVmFsdWUobm9kZTogSnNvbk5vZGUpOiBudWxsIHwgc3RyaW5nIHtcbiAgaWYgKG5vZGUudHlwZSAhPT0gSlNPTl9OT0RFX1RZUEVfU1RSSU5HKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsaXRlcmFsID0gbm9kZSBhcyBKc29uTGl0ZXJhbE5vZGU7XG4gIHJldHVybiBsaXRlcmFsLnZhbHVlIGFzIHN0cmluZztcbn1cblxuLyoqXG4gKiBCcmlkZ2VzIGEgTW9tb2Egbm9kZSB0byB0aGUgbm9kZSB0eXBlIGBjb250ZXh0LnJlcG9ydCgpYCBpcyB0eXBlZCBhZ2FpbnN0LlxuICpcbiAqIFRoZSB0d28gYXJlIHN0cnVjdHVyYWxseSBpbmNvbXBhdGlibGUgLSBFU0xpbnQncyBydWxlIHR5cGVzIGRlc2NyaWJlIEVTVHJlZSAtIGJ1dCB0aGUgYGpzb24vanNvbmBcbiAqIGxhbmd1YWdlJ3Mgc291cmNlIGNvZGUgYWRhcHRlciByZXNvbHZlcyBhIE1vbW9hIG5vZGUncyBwb3NpdGlvbiBhdCByZXBvcnQgdGltZSwgc28gdGhleSBhcmUgY29tcGF0aWJsZVxuICogYXQgcnVudGltZS4gVGhpcyBtaXJyb3JzIHRoZSBicmlkZ2UgYHJ1bGUtdGVzdGVyLWhlbHBlci50c2AgbWFrZXMgb3ZlciB0aGUgc2FtZSBraW5kIG9mIHR5cGUtbGV2ZWwgZ2FwLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIE1vbW9hIG5vZGUgdG8gcmVwb3J0IG9uLlxuICogQHJldHVybnMgVGhlIHNhbWUgbm9kZSwgdHlwZWQgZm9yIGBjb250ZXh0LnJlcG9ydCgpYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUmVwb3J0Tm9kZShub2RlOiB1bmtub3duKTogUnVsZS5Ob2RlIHtcbiAgY29uc3QgYnJpZGdlZDogdW5rbm93biA9IG5vZGU7XG4gIHJldHVybiBicmlkZ2VkIGFzIFJ1bGUuTm9kZTtcbn1cblxuLyoqXG4gKiBDYXN0cyBgQGVzbGludC9qc29uYCB0byB0aGUgcGx1Z2luIHR5cGUgYEB0eXBlcy9lc2xpbnRgIGRlY2xhcmVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBgQGVzbGludC9qc29uYCBwbHVnaW4sIHR5cGVkIGZvciBhIGZsYXQgY29uZmlnLlxuICovXG5mdW5jdGlvbiBicmlkZ2VKc29uUGx1Z2luKCk6IEVTTGludC5QbHVnaW4ge1xuICBjb25zdCBicmlkZ2VkOiB1bmtub3duID0ganNvbjtcbiAgcmV0dXJuIGJyaWRnZWQgYXMgRVNMaW50LlBsdWdpbjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUJBLGtCQUFpQjtBQUtWLE1BQU0seUJBQXlCO0FBSy9CLE1BQU0sd0JBQXdCO0FBSzlCLE1BQU0sd0JBQXdCO0FBVTlCLE1BQU0sYUFBNEIsaUJBQWlCO0FBS25ELE1BQU0scUJBQXFCO0FBZ0UzQixTQUFTLG1CQUFtQixnQkFBZ0MsS0FBb0M7QUFDckcsU0FBTyxlQUFlLFFBQVEsS0FBSyxDQUFDLFdBQVcsYUFBYSxNQUFNLE1BQU0sR0FBRyxLQUFLO0FBQ2xGO0FBUU8sU0FBUyxrQkFBa0IsTUFBc0M7QUFDdEUsUUFBTSxXQUFXO0FBQ2pCLFNBQU8sU0FBUyxLQUFLLFNBQVMsd0JBQXdCLFNBQVMsT0FBeUI7QUFDMUY7QUFTTyxTQUFTLHVCQUF1QixnQkFBZ0MsS0FBNEI7QUFDakcsUUFBTSxTQUFTLG1CQUFtQixnQkFBZ0IsR0FBRztBQUNyRCxTQUFPLFNBQVMsZUFBZSxPQUFPLEtBQUssSUFBSTtBQUNqRDtBQVdPLFNBQVMsYUFBYSxRQUFnQztBQUMzRCxTQUFPLE9BQU8sS0FBSztBQUNyQjtBQVFPLFNBQVMsZUFBZSxNQUErQjtBQUM1RCxNQUFJLEtBQUssU0FBUyx1QkFBdUI7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFVBQVU7QUFDaEIsU0FBTyxRQUFRO0FBQ2pCO0FBWU8sU0FBUyxhQUFhLE1BQTBCO0FBQ3JELFFBQU0sVUFBbUI7QUFDekIsU0FBTztBQUNUO0FBT0EsU0FBUyxtQkFBa0M7QUFDekMsUUFBTSxVQUFtQixZQUFBQTtBQUN6QixTQUFPO0FBQ1Q7IiwibmFtZXMiOlsianNvbiJdfQ==