obsidian-dev-utils 26.5.2 → 26.6.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 (60) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +6 -312
  3. package/dist/dprint.json +2 -1
  4. package/dist/lib/cjs/CssClass.cjs +2 -1
  5. package/dist/lib/cjs/CssClass.d.cts +4 -0
  6. package/dist/lib/cjs/Library.cjs +2 -2
  7. package/dist/lib/cjs/obsidian/Components/SettingComponents/CheckboxComponent.cjs +3 -3
  8. package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.cjs +216 -0
  9. package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.cts +112 -0
  10. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.cjs +3 -3
  11. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.cjs +3 -3
  12. package/dist/lib/cjs/obsidian/Components/SettingComponents/SettingComponentWrapper.cjs +4 -4
  13. package/dist/lib/cjs/obsidian/Components/SettingComponents/TriStateCheckboxComponent.cjs +3 -3
  14. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.cjs +3 -3
  15. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.cjs +3 -3
  16. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedTextComponent.cjs +3 -3
  17. package/dist/lib/cjs/obsidian/Components/SettingComponents/ValidatorComponent.cjs +4 -3
  18. package/dist/lib/cjs/obsidian/Components/SettingComponents/index.cjs +4 -1
  19. package/dist/lib/cjs/obsidian/Components/SettingComponents/index.d.cts +1 -0
  20. package/dist/lib/cjs/obsidian/Dataview.cjs +7 -7
  21. package/dist/lib/cjs/obsidian/Loop.cjs +3 -2
  22. package/dist/lib/cjs/obsidian/Modals/ModalBase.cjs +3 -4
  23. package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +3 -3
  24. package/dist/lib/cjs/obsidian/Pdf.cjs +3 -3
  25. package/dist/lib/cjs/obsidian/Plugin/PluginContext.cjs +7 -1
  26. package/dist/lib/cjs/obsidian/Plugin/PluginContext.d.cts +7 -0
  27. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.cjs +7 -5
  28. package/dist/lib/cjs/obsidian/SettingEx.cjs +11 -1
  29. package/dist/lib/cjs/obsidian/SettingEx.d.cts +27 -19
  30. package/dist/lib/cjs/obsidian/VaultEx.cjs +3 -2
  31. package/dist/lib/esm/CssClass.d.mts +4 -0
  32. package/dist/lib/esm/CssClass.mjs +2 -1
  33. package/dist/lib/esm/Library.mjs +2 -2
  34. package/dist/lib/esm/obsidian/Components/SettingComponents/CheckboxComponent.mjs +3 -3
  35. package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.mts +112 -0
  36. package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.mjs +199 -0
  37. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.mjs +3 -3
  38. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.mjs +3 -3
  39. package/dist/lib/esm/obsidian/Components/SettingComponents/SettingComponentWrapper.mjs +4 -4
  40. package/dist/lib/esm/obsidian/Components/SettingComponents/TriStateCheckboxComponent.mjs +3 -3
  41. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.mjs +3 -3
  42. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.mjs +3 -3
  43. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedTextComponent.mjs +3 -3
  44. package/dist/lib/esm/obsidian/Components/SettingComponents/ValidatorComponent.mjs +4 -3
  45. package/dist/lib/esm/obsidian/Components/SettingComponents/index.d.mts +1 -0
  46. package/dist/lib/esm/obsidian/Components/SettingComponents/index.mjs +3 -1
  47. package/dist/lib/esm/obsidian/Dataview.mjs +7 -7
  48. package/dist/lib/esm/obsidian/Loop.mjs +2 -1
  49. package/dist/lib/esm/obsidian/Modals/ModalBase.mjs +3 -4
  50. package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +3 -3
  51. package/dist/lib/esm/obsidian/Pdf.mjs +3 -3
  52. package/dist/lib/esm/obsidian/Plugin/PluginContext.d.mts +7 -0
  53. package/dist/lib/esm/obsidian/Plugin/PluginContext.mjs +10 -2
  54. package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.mjs +7 -5
  55. package/dist/lib/esm/obsidian/SettingEx.d.mts +27 -19
  56. package/dist/lib/esm/obsidian/SettingEx.mjs +11 -1
  57. package/dist/lib/esm/obsidian/VaultEx.mjs +2 -1
  58. package/dist/styles.css +30 -1
  59. package/obsidian/Components/SettingComponents/CodeHighlighterComponent/package.json +6 -0
  60. package/package.json +5 -5
@@ -4,6 +4,13 @@
4
4
  * Initializes the plugin context and sets up the plugin ID.
5
5
  */
6
6
  import type { App } from 'obsidian';
7
+ /**
8
+ * Sets the CSS class of an element.
9
+ *
10
+ * @param el - The element to set the CSS class of.
11
+ * @param cssClasses - The CSS classes to set.
12
+ */
13
+ export declare function addPluginCssClasses(el: HTMLElement, ...cssClasses: string[]): void;
7
14
  /**
8
15
  * Initializes the plugin context.
9
16
  *
@@ -40,7 +40,7 @@ var import_SettingComponentWrapper = require('../Components/SettingComponents/Se
40
40
  var import_TextBasedComponent = require('../Components/SettingComponents/TextBasedComponent.cjs');
41
41
  var import_ValidatorComponent = require('../Components/SettingComponents/ValidatorComponent.cjs');
42
42
  var import_ValidationMessage = require('../ValidationMessage.cjs');
43
- var import_PluginId = require('./PluginId.cjs');
43
+ var import_PluginContext = require('./PluginContext.cjs');
44
44
  const SAVE_TO_FILE_CONTEXT = "PluginSettingsTab";
45
45
  class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
46
46
  /**
@@ -51,7 +51,7 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
51
51
  constructor(plugin) {
52
52
  super(plugin.app, plugin);
53
53
  this.plugin = plugin;
54
- this.containerEl.addClass(import_CssClass.CssClass.LibraryName, (0, import_PluginId.getPluginId)(), import_CssClass.CssClass.PluginSettingsTab);
54
+ (0, import_PluginContext.addPluginCssClasses)(this.containerEl, import_CssClass.CssClass.PluginSettingsTab);
55
55
  this.saveSettingsDebounced = (0, import_obsidian.debounce)(
56
56
  (0, import_Async.convertAsyncToSync)(() => this.plugin.settingsManager.saveToFile(SAVE_TO_FILE_CONTEXT)),
57
57
  this.saveSettingsDebounceTimeoutInMilliseconds
@@ -114,9 +114,11 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
114
114
  let tooltipContentEl = null;
115
115
  if (validatorEl) {
116
116
  const wrapper = (0, import_SettingComponentWrapper.ensureWrapped)(validatorEl);
117
- tooltipEl = wrapper.createEl("div", { cls: [import_CssClass.CssClass.LibraryName, import_CssClass.CssClass.Tooltip, import_CssClass.CssClass.TooltipValidator] });
117
+ tooltipEl = wrapper.createDiv();
118
+ (0, import_PluginContext.addPluginCssClasses)(tooltipEl, import_CssClass.CssClass.Tooltip, import_CssClass.CssClass.TooltipValidator);
118
119
  tooltipContentEl = tooltipEl.createSpan();
119
- tooltipEl.createEl("div", { cls: [import_CssClass.CssClass.LibraryName, import_CssClass.CssClass.TooltipArrow] });
120
+ const tooltipArrowEl = tooltipEl.createDiv();
121
+ (0, import_PluginContext.addPluginCssClasses)(tooltipArrowEl, import_CssClass.CssClass.TooltipArrow);
120
122
  tooltipEl.hide();
121
123
  wrapper.appendChild(tooltipEl);
122
124
  }
@@ -273,4 +275,4 @@ class PluginSettingsTabBase extends import_obsidian.PluginSettingTab {
273
275
  PluginSettingsTabBase,
274
276
  SAVE_TO_FILE_CONTEXT
275
277
  });
276
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVib3VuY2VyIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUge1xuICBDb25kaXRpb25hbEtleXMsXG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBkZWJvdW5jZSxcbiAgUGx1Z2luU2V0dGluZ1RhYixcbiAgc2V0VG9vbHRpcFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgQXN5bmNFdmVudFJlZiB9IGZyb20gJy4uLy4uL0FzeW5jRXZlbnRzLnRzJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nS2V5cyB9IGZyb20gJy4uLy4uL1R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZyB9IGZyb20gJy4uL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB9IGZyb20gJy4uL1ZhbGlkYXRpb25NZXNzYWdlLnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyLFxuICBQbHVnaW5UeXBlc0Jhc2Vcbn0gZnJvbSAnLi9QbHVnaW5UeXBlc0Jhc2UudHMnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IEFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vQXN5bmNFdmVudHMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi4vLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IEFzeW5jRXZlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29tcG9uZW50cy9Bc3luY0V2ZW50c0NvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBlbnN1cmVXcmFwcGVkIH0gZnJvbSAnLi4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50V3JhcHBlci50cyc7XG5pbXBvcnQgeyBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSB9IGZyb20gJy4uL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVGV4dEJhc2VkQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVmFsaWRhdG9yQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIgfSBmcm9tICcuLi9WYWxpZGF0aW9uTWVzc2FnZS50cyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5JZCB9IGZyb20gJy4vUGx1Z2luSWQudHMnO1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IHBhc3NlZCB0byB0aGUge0BsaW5rIFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2Uuc2F2ZVRvRmlsZX0gbWV0aG9kLlxuICovXG5leHBvcnQgY29uc3QgU0FWRV9UT19GSUxFX0NPTlRFWFQgPSAnUGx1Z2luU2V0dGluZ3NUYWInO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJpbmRpbmcgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kT3B0aW9uczxUPiB7XG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICovXG4gIG9uQ2hhbmdlZD8obmV3VmFsdWU6IFJlYWRvbmx5RGVlcDxUPiwgb2xkVmFsdWU6IFJlYWRvbmx5RGVlcDxUPik6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVzZXQgdGhlIHNldHRpbmcgd2hlbiB0aGUgY29tcG9uZW50IHZhbHVlIGlzIGVtcHR5LiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICogQXBwbGljYWJsZSBvbmx5IHRvIHRleHQtYmFzZWQgY29tcG9uZW50cy5cbiAgICovXG4gIHNob3VsZFJlc2V0U2V0dGluZ1doZW5Db21wb25lbnRJc0VtcHR5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSBwbGFjZWhvbGRlciBmb3IgZGVmYXVsdCB2YWx1ZXMuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKiBBcHBsaWNhYmxlIG9ubHkgdG8gdGV4dC1iYXNlZCBjb21wb25lbnRzLlxuICAgKi9cbiAgc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlIHdoZW4gdGhlIGNvbXBvbmVudCB2YWx1ZSBpcyBpbnZhbGlkLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0ZW5kZWQgb3B0aW9ucyBmb3IgYmluZGluZyBhIHZhbHVlIGNvbXBvbmVudCB0byBhIHBsdWdpbiBzZXR0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRPcHRpb25zRXh0ZW5kZWQ8XG4gIFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0LFxuICBVSVZhbHVlLFxuICBQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPlxuPiBleHRlbmRzIEJpbmRPcHRpb25zPFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0+IHtcbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBVSSBjb21wb25lbnQncyB2YWx1ZSBiYWNrIHRvIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB1aVZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHVpVmFsdWU6IFVJVmFsdWUpID0+IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0gfCBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcjtcblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHBsdWdpbiBzZXR0aW5ncyB2YWx1ZSB0byB0aGUgdmFsdWUgdXNlZCBieSB0aGUgVUkgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luU2V0dGluZ3NWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIHRvIHNldCBvbiB0aGUgVUkgY29tcG9uZW50LlxuICAgKi9cbiAgcGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyOiAocGx1Z2luU2V0dGluZ3NWYWx1ZTogUmVhZG9ubHlEZWVwPFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0+KSA9PiBVSVZhbHVlO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5ncyB0YWJzIGluIE9ic2lkaWFuLlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIGJpbmRpbmcgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsaW5nIGNoYW5nZXMuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5UeXBlcyAtIFBsdWdpbi1zcGVjaWZpYyB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpblNldHRpbmdzVGFiQmFzZTxQbHVnaW5UeXBlcyBleHRlbmRzIFBsdWdpblR5cGVzQmFzZT4gZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIgaXMgb3Blbi5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYiBpcyBvcGVuLlxuICAgKi9cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGVib3VuY2UgdGltZW91dCBmb3Igc2F2aW5nIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVib3VuY2UgdGltZW91dCBmb3Igc2F2aW5nIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzYXZlU2V0dGluZ3NEZWJvdW5jZVRpbWVvdXRJbk1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgIGNvbnN0IERFRkFVTFQgPSAyXzAwMDtcbiAgICByZXR1cm4gREVGQVVMVDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGFzeW5jRXZlbnRzOiBBc3luY0V2ZW50cztcbiAgcHJpdmF0ZSByZWFkb25seSBhc3luY0V2ZW50c0NvbXBvbmVudDogQXN5bmNFdmVudHNDb21wb25lbnQ7XG4gIHByaXZhdGUgc2F2ZVNldHRpbmdzRGVib3VuY2VkOiBEZWJvdW5jZXI8W10sIHZvaWQ+O1xuXG4gIHByaXZhdGUgZ2V0IHBsdWdpblNldHRpbmdzKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4ge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuc2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzIGFzIEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz47XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcnJpZGUgcGx1Z2luOiBFeHRyYWN0UGx1Z2luPFBsdWdpblR5cGVzPikge1xuICAgIHN1cGVyKHBsdWdpbi5hcHAsIHBsdWdpbik7XG4gICAgdGhpcy5jb250YWluZXJFbC5hZGRDbGFzcyhDc3NDbGFzcy5MaWJyYXJ5TmFtZSwgZ2V0UGx1Z2luSWQoKSwgQ3NzQ2xhc3MuUGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VkID0gZGVib3VuY2UoXG4gICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoKCkgPT4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNhdmVUb0ZpbGUoU0FWRV9UT19GSUxFX0NPTlRFWFQpKSxcbiAgICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VUaW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICApO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQgPSBuZXcgQXN5bmNFdmVudHNDb21wb25lbnQoKTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzID0gbmV3IEFzeW5jRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBiaW5kLlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnRcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBDb25kaXRpb25hbEtleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPiwgVUlWYWx1ZT4sXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPFVJVmFsdWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9uczogQmluZE9wdGlvbnNFeHRlbmRlZDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz5bUHJvcGVydHlOYW1lXT5cbiAgKTogVFZhbHVlQ29tcG9uZW50IHtcbiAgICB0eXBlIFBsdWdpblNldHRpbmdzID0gRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPjtcbiAgICB0eXBlIFByb3BlcnR5VHlwZSA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+PiA9IHtcbiAgICAgIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBVSVZhbHVlKTogUHJvcGVydHlUeXBlID0+IHZhbHVlIGFzIFByb3BlcnR5VHlwZSxcbiAgICAgIG9uQ2hhbmdlZDogbm9vcCxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPik6IFVJVmFsdWUgPT4gdmFsdWUgYXMgVUlWYWx1ZSxcbiAgICAgIHNob3VsZFJlc2V0U2V0dGluZ1doZW5Db21wb25lbnRJc0VtcHR5OiB0cnVlLFxuICAgICAgc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlczogdHJ1ZSxcbiAgICAgIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZTogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zRXh0OiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+PiA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgdGV4dEJhc2VkQ29tcG9uZW50ID0gZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUodmFsdWVDb21wb25lbnQpO1xuXG4gICAgY29uc3QgcmVhZG9ubHlWYWx1ZSA9IHRoaXMucGx1Z2luU2V0dGluZ3NbcHJvcGVydHlOYW1lXSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPjtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSAodGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLmRlZmF1bHRTZXR0aW5ncyBhcyBQbHVnaW5TZXR0aW5ncylbcHJvcGVydHlOYW1lXSBhcyBQcm9wZXJ0eVR5cGU7XG4gICAgdGV4dEJhc2VkQ29tcG9uZW50Py5zZXRQbGFjZWhvbGRlclZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKGRlZmF1bHRWYWx1ZSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPikpO1xuXG4gICAgbGV0IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7XG4gICAgbGV0IHRvb2x0aXBFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdG9vbHRpcENvbnRlbnRFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBpZiAodmFsaWRhdG9yRWwpIHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBlbnN1cmVXcmFwcGVkKHZhbGlkYXRvckVsKTtcbiAgICAgIHRvb2x0aXBFbCA9IHdyYXBwZXIuY3JlYXRlRWwoJ2RpdicsIHsgY2xzOiBbQ3NzQ2xhc3MuTGlicmFyeU5hbWUsIENzc0NsYXNzLlRvb2x0aXAsIENzc0NsYXNzLlRvb2x0aXBWYWxpZGF0b3JdIH0pO1xuICAgICAgdG9vbHRpcENvbnRlbnRFbCA9IHRvb2x0aXBFbC5jcmVhdGVTcGFuKCk7XG4gICAgICB0b29sdGlwRWwuY3JlYXRlRWwoJ2RpdicsIHsgY2xzOiBbQ3NzQ2xhc3MuTGlicmFyeU5hbWUsIENzc0NsYXNzLlRvb2x0aXBBcnJvd10gfSk7XG4gICAgICB0b29sdGlwRWwuaGlkZSgpO1xuICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0b29sdGlwRWwpO1xuICAgIH1cblxuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQucmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMub24oJ3ZhbGlkYXRpb25NZXNzYWdlQ2hhbmdlZCcsIChhbm90aGVyUHJvcGVydHlOYW1lLCBhbm90aGVyVmFsaWRhdGlvbk1lc3NhZ2UpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09IGFub3RoZXJQcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGFub3RoZXJWYWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgfSkpO1xuXG4gICAgbGV0IHNob3VsZEVtcHR5T25CbHVyID0gZmFsc2U7XG5cbiAgICBpZiAodGV4dEJhc2VkQ29tcG9uZW50ICYmIG9wdGlvbnNFeHQuc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlcyAmJiBkZWVwRXF1YWwocmVhZG9ubHlWYWx1ZSwgZGVmYXVsdFZhbHVlKSkge1xuICAgICAgdGV4dEJhc2VkQ29tcG9uZW50LmVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlQ29tcG9uZW50LnNldFZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKHJlYWRvbmx5VmFsdWUpKTtcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkU2tpcE9uQ2hhbmdlID0gZmFsc2U7XG4gICAgY29uc3QgVVBEQVRFX1ZBTElEQVRPUl9FTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEwMDtcbiAgICBjb25zdCB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCA9IGRlYm91bmNlKCgpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVZhbGlkYXRvckVsKCk7XG4gICAgICB9KTtcbiAgICB9LCBVUERBVEVfVkFMSURBVE9SX0VMX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTKTtcblxuICAgIHZhbHVlQ29tcG9uZW50Lm9uQ2hhbmdlKGFzeW5jICh1aVZhbHVlKSA9PiB7XG4gICAgICBpZiAoc2hvdWxkU2tpcE9uQ2hhbmdlKSB7XG4gICAgICAgIHNob3VsZFNraXBPbkNoYW5nZSA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNob3VsZEVtcHR5T25CbHVyID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5wbHVnaW5TZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgbGV0IG5ld1ZhbHVlOiBQcm9wZXJ0eVR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBsZXQgc2hvdWxkU2V0UHJvcGVydHkgPSB0cnVlO1xuICAgICAgaWYgKHRleHRCYXNlZENvbXBvbmVudD8uaXNFbXB0eSgpICYmIG9wdGlvbnNFeHQuc2hvdWxkUmVzZXRTZXR0aW5nV2hlbkNvbXBvbmVudElzRW1wdHkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZSA9IG9wdGlvbnNFeHQuY29tcG9uZW50VG9QbHVnaW5TZXR0aW5nc1ZhbHVlQ29udmVydGVyKHVpVmFsdWUpO1xuICAgICAgICBpZiAoaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcihjb252ZXJ0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGNvbnZlcnRlZFZhbHVlLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgICAgIHNob3VsZFNldFByb3BlcnR5ID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBjb252ZXJ0ZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkU2V0UHJvcGVydHkpIHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBhd2FpdCB0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIuc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCBuZXdWYWx1ZSk7XG4gICAgICAgIGlmICh0ZXh0QmFzZWRDb21wb25lbnQgJiYgb3B0aW9uc0V4dC5zaG91bGRTaG93UGxhY2Vob2xkZXJGb3JEZWZhdWx0VmFsdWVzICYmICF0ZXh0QmFzZWRDb21wb25lbnQuaXNFbXB0eSgpICYmIGRlZXBFcXVhbChuZXdWYWx1ZSwgZGVmYXVsdFZhbHVlKSkge1xuICAgICAgICAgIHNob3VsZEVtcHR5T25CbHVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXdhaXQgb3B0aW9uc0V4dC5vbkNoYW5nZWQobmV3VmFsdWUgYXMgUmVhZG9ubHlEZWVwPFByb3BlcnR5VHlwZT4sIG9sZFZhbHVlIGFzIFJlYWRvbmx5RGVlcDxQcm9wZXJ0eVR5cGU+KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VkKCk7XG4gICAgfSk7XG5cbiAgICB2YWxpZGF0b3JFbD8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgIH0pO1xuICAgIHZhbGlkYXRvckVsPy5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4ge1xuICAgICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcbiAgICB9KTtcbiAgICB2YWxpZGF0b3JFbD8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zZXR0aW5nc1dyYXBwZXIudmFsaWRhdGlvbk1lc3NhZ2VzW3Byb3BlcnR5TmFtZV0gPz8gJyc7XG4gICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcblxuICAgIHJldHVybiB2YWx1ZUNvbXBvbmVudDtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbGlkYXRvckVsKCk6IHZvaWQge1xuICAgICAgaWYgKHNob3VsZEVtcHR5T25CbHVyICYmICF2YWxpZGF0b3JFbD8uaXNBY3RpdmVFbGVtZW50KCkpIHtcbiAgICAgICAgc2hvdWxkRW1wdHlPbkJsdXIgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0ZXh0QmFzZWRDb21wb25lbnQ/LmlzRW1wdHkoKSkge1xuICAgICAgICAgIHNob3VsZFNraXBPbkNoYW5nZSA9IHRydWU7XG4gICAgICAgICAgdGV4dEJhc2VkQ29tcG9uZW50Py5lbXB0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdmFsaWRhdG9yRWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGlvbk1lc3NhZ2UgPT09ICcnKSB7XG4gICAgICAgIHZhbGlkYXRvckVsLnNldEN1c3RvbVZhbGlkaXR5KCcnKTtcbiAgICAgICAgdmFsaWRhdG9yRWwuY2hlY2tWYWxpZGl0eSgpO1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IHZhbGlkYXRvckVsLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICB2YWxpZGF0b3JFbC5zZXRDdXN0b21WYWxpZGl0eSh2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgICBpZiAob3B0aW9uc0V4dC5zaG91bGRTaG93VmFsaWRhdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHRvb2x0aXBDb250ZW50RWwpIHtcbiAgICAgICAgICB0b29sdGlwQ29udGVudEVsLnRleHRDb250ZW50ID0gdmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgdG9vbHRpcEVsPy50b2dnbGUoISF2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHNldFRvb2x0aXAodmFsaWRhdG9yRWwsIHZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGFpbmVyRWwuZW1wdHkoKTtcbiAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQubG9hZCgpO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQucmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5vbignbG9hZFNldHRpbmdzJywgdGhpcy5vbkxvYWRTZXR0aW5ncy5iaW5kKHRoaXMpKSk7XG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5yZWdpc3RlckFzeW5jRXZlbnQodGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLm9uKCdzYXZlU2V0dGluZ3MnLCB0aGlzLm9uU2F2ZVNldHRpbmdzLmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBoaWRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmhpZGUoKTtcbiAgICB0aGlzLnNhdmVTZXR0aW5nc0RlYm91bmNlZC5jYW5jZWwoKTtcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LnVubG9hZCgpO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQubG9hZCgpO1xuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zYXZlVG9GaWxlKFNBVkVfVE9fRklMRV9DT05URVhUKSk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLmFwcC5zZXR0aW5nLm9wZW5UYWIodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gX2xvYWRlZFNldHRpbmdzIC0gVGhlIGxvYWRlZCBzZXR0aW5ncy5cbiAgICogQHBhcmFtIF9pc0luaXRpYWxMb2FkIC0gV2hldGhlciB0aGUgc2V0dGluZ3MgYXJlIGJlaW5nIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbkxvYWRTZXR0aW5ncyhfbG9hZGVkU2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sIF9pc0luaXRpYWxMb2FkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICBwcml2YXRlIG9uKFxuICAgIG5hbWU6ICd2YWxpZGF0aW9uTWVzc2FnZUNoYW5nZWQnLFxuICAgIGNhbGxiYWNrOiAoXG4gICAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZyxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmdcbiAgICApID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZjtcbiAgcHJpdmF0ZSBvbjxBcmdzIGV4dGVuZHMgdW5rbm93bltdPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s6ICguLi5hcmdzOiBBcmdzKSA9PiBQcm9taXNhYmxlPHZvaWQ+LFxuICAgIHRoaXNBcmc/OiB1bmtub3duXG4gICk6IEFzeW5jRXZlbnRSZWYge1xuICAgIHJldHVybiB0aGlzLmFzeW5jRXZlbnRzLm9uKG5hbWUsIGNhbGxiYWNrLCB0aGlzQXJnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25TYXZlU2V0dGluZ3MoXG4gICAgbmV3U2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgX29sZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgIGNvbnRleHQ6IHVua25vd25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNvbnRleHQgPT09IFNBVkVfVE9fRklMRV9DT05URVhUKSB7XG4gICAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbGlkYXRpb25NZXNzYWdlXSBvZiBPYmplY3QuZW50cmllcyhuZXdTZXR0aW5ncy52YWxpZGF0aW9uTWVzc2FnZXMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hc3luY0V2ZW50cy50cmlnZ2VyQXN5bmMoJ3ZhbGlkYXRpb25NZXNzYWdlQ2hhbmdlZCcsIHByb3BlcnR5TmFtZSwgdmFsaWRhdGlvbk1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGFpbmVyRWwuZW1wdHkoKTtcbiAgICB0aGlzLmRpc3BsYXkoKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLHNCQUlPO0FBZVAsbUJBR087QUFDUCx5QkFBNEI7QUFDNUIsc0JBQXlCO0FBQ3pCLHNCQUdPO0FBQ1Asb0JBQTBCO0FBQzFCLGtDQUFxQztBQUNyQyxxQ0FBOEI7QUFDOUIsZ0NBQTJDO0FBQzNDLGdDQUFzQztBQUN0QywrQkFBMEM7QUFDMUMsc0JBQTRCO0FBS3JCLE1BQU0sdUJBQXVCO0FBNEQ3QixNQUFlLDhCQUFtRSxpQ0FBaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrQ2pHLFlBQTRCLFFBQW9DO0FBQ3JFLFVBQU0sT0FBTyxLQUFLLE1BQU07QUFEUztBQUVqQyxTQUFLLFlBQVksU0FBUyx5QkFBUyxpQkFBYSw2QkFBWSxHQUFHLHlCQUFTLGlCQUFpQjtBQUN6RixTQUFLLDRCQUF3QjtBQUFBLFVBQzNCLGlDQUFtQixNQUFNLEtBQUssT0FBTyxnQkFBZ0IsV0FBVyxvQkFBb0IsQ0FBQztBQUFBLE1BQ3JGLEtBQUs7QUFBQSxJQUNQO0FBQ0EsU0FBSyx1QkFBdUIsSUFBSSxpREFBcUI7QUFDckQsU0FBSyxjQUFjLElBQUksK0JBQVk7QUFBQSxFQUNyQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXJDQSxJQUFXLFNBQWtCO0FBQzNCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLDRDQUFvRDtBQUNoRSxVQUFNLFVBQVU7QUFDaEIsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVRLFVBQVU7QUFBQSxFQUNEO0FBQUEsRUFDQTtBQUFBLEVBQ1Q7QUFBQSxFQUVSLElBQVksaUJBQXFEO0FBQy9ELFdBQU8sS0FBSyxPQUFPLGdCQUFnQixnQkFBZ0I7QUFBQSxFQUNyRDtB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
278
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc1RhYkJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIHBsdWdpbiBzZXR0aW5nIHRhYnMgaW4gT2JzaWRpYW4uXG4gKiBJdCBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kIHRvIGJpbmQgdmFsdWUgY29tcG9uZW50cyB0byBwbHVnaW4gc2V0dGluZ3MgYW5kIGhhbmRsZSBjaGFuZ2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVib3VuY2VyIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUge1xuICBDb25kaXRpb25hbEtleXMsXG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBkZWJvdW5jZSxcbiAgUGx1Z2luU2V0dGluZ1RhYixcbiAgc2V0VG9vbHRpcFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgQXN5bmNFdmVudFJlZiB9IGZyb20gJy4uLy4uL0FzeW5jRXZlbnRzLnRzJztcbmltcG9ydCB0eXBlIHsgU3RyaW5nS2V5cyB9IGZyb20gJy4uLy4uL1R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZUNvbXBvbmVudFdpdGhDaGFuZ2VUcmFja2luZyB9IGZyb20gJy4uL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmcudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB9IGZyb20gJy4uL1ZhbGlkYXRpb25NZXNzYWdlLnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZSB9IGZyb20gJy4vUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyLFxuICBQbHVnaW5UeXBlc0Jhc2Vcbn0gZnJvbSAnLi9QbHVnaW5UeXBlc0Jhc2UudHMnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uLy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IEFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vQXN5bmNFdmVudHMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi8uLi9Dc3NDbGFzcy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi4vLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IEFzeW5jRXZlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29tcG9uZW50cy9Bc3luY0V2ZW50c0NvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBlbnN1cmVXcmFwcGVkIH0gZnJvbSAnLi4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50V3JhcHBlci50cyc7XG5pbXBvcnQgeyBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSB9IGZyb20gJy4uL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVGV4dEJhc2VkQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVmFsaWRhdG9yQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIgfSBmcm9tICcuLi9WYWxpZGF0aW9uTWVzc2FnZS50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi9QbHVnaW5Db250ZXh0LnRzJztcblxuLyoqXG4gKiBUaGUgY29udGV4dCBwYXNzZWQgdG8gdGhlIHtAbGluayBQbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlLnNhdmVUb0ZpbGV9IG1ldGhvZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNBVkVfVE9fRklMRV9DT05URVhUID0gJ1BsdWdpblNldHRpbmdzVGFiJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBiaW5kaW5nIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluZE9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZWQ/KG5ld1ZhbHVlOiBSZWFkb25seURlZXA8VD4sIG9sZFZhbHVlOiBSZWFkb25seURlZXA8VD4pOiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlc2V0IHRoZSBzZXR0aW5nIHdoZW4gdGhlIGNvbXBvbmVudCB2YWx1ZSBpcyBlbXB0eS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqIEFwcGxpY2FibGUgb25seSB0byB0ZXh0LWJhc2VkIGNvbXBvbmVudHMuXG4gICAqL1xuICBzaG91bGRSZXNldFNldHRpbmdXaGVuQ29tcG9uZW50SXNFbXB0eT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgcGxhY2Vob2xkZXIgZm9yIGRlZmF1bHQgdmFsdWVzLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICogQXBwbGljYWJsZSBvbmx5IHRvIHRleHQtYmFzZWQgY29tcG9uZW50cy5cbiAgICovXG4gIHNob3VsZFNob3dQbGFjZWhvbGRlckZvckRlZmF1bHRWYWx1ZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIHZhbGlkYXRpb24gbWVzc2FnZSB3aGVuIHRoZSBjb21wb25lbnQgdmFsdWUgaXMgaW52YWxpZC4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRTaG93VmFsaWRhdGlvbk1lc3NhZ2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV4dGVuZGVkIG9wdGlvbnMgZm9yIGJpbmRpbmcgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kT3B0aW9uc0V4dGVuZGVkPFxuICBQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdCxcbiAgVUlWYWx1ZSxcbiAgUHJvcGVydHlOYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz5cbj4gZXh0ZW5kcyBCaW5kT3B0aW9uczxQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdPiB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgVUkgY29tcG9uZW50J3MgdmFsdWUgYmFjayB0byB0aGUgcGx1Z2luIHNldHRpbmdzIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdWlWYWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBjb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXI6ICh1aVZhbHVlOiBVSVZhbHVlKSA9PiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdIHwgVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXI7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgdmFsdWUgdG8gdGhlIHZhbHVlIHVzZWQgYnkgdGhlIFVJIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpblNldHRpbmdzVmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzZXQgb24gdGhlIFVJIGNvbXBvbmVudC5cbiAgICovXG4gIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHBsdWdpblNldHRpbmdzVmFsdWU6IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdPikgPT4gVUlWYWx1ZTtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBwbHVnaW4gc2V0dGluZ3MgdGFicyBpbiBPYnNpZGlhbi5cbiAqIFByb3ZpZGVzIGEgbWV0aG9kIGZvciBiaW5kaW5nIHZhbHVlIGNvbXBvbmVudHMgdG8gcGx1Z2luIHNldHRpbmdzIGFuZCBoYW5kbGluZyBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luVHlwZXMgLSBQbHVnaW4tc3BlY2lmaWMgdHlwZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5TZXR0aW5nc1RhYkJhc2U8UGx1Z2luVHlwZXMgZXh0ZW5kcyBQbHVnaW5UeXBlc0Jhc2U+IGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiIGlzIG9wZW4uXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIgaXMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRlYm91bmNlIHRpbWVvdXQgZm9yIHNhdmluZyBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlYm91bmNlIHRpbWVvdXQgZm9yIHNhdmluZyBzZXR0aW5ncy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgc2F2ZVNldHRpbmdzRGVib3VuY2VUaW1lb3V0SW5NaWxsaXNlY29uZHMoKTogbnVtYmVyIHtcbiAgICBjb25zdCBERUZBVUxUID0gMl8wMDA7XG4gICAgcmV0dXJuIERFRkFVTFQ7XG4gIH1cblxuICBwcml2YXRlIF9pc09wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3luY0V2ZW50czogQXN5bmNFdmVudHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXN5bmNFdmVudHNDb21wb25lbnQ6IEFzeW5jRXZlbnRzQ29tcG9uZW50O1xuICBwcml2YXRlIHNhdmVTZXR0aW5nc0RlYm91bmNlZDogRGVib3VuY2VyPFtdLCB2b2lkPjtcblxuICBwcml2YXRlIGdldCBwbHVnaW5TZXR0aW5ncygpOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+IHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyBhcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4uXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIHBsdWdpbjogRXh0cmFjdFBsdWdpbjxQbHVnaW5UeXBlcz4pIHtcbiAgICBzdXBlcihwbHVnaW4uYXBwLCBwbHVnaW4pO1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXModGhpcy5jb250YWluZXJFbCwgQ3NzQ2xhc3MuUGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VkID0gZGVib3VuY2UoXG4gICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoKCkgPT4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNhdmVUb0ZpbGUoU0FWRV9UT19GSUxFX0NPTlRFWFQpKSxcbiAgICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VUaW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICApO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQgPSBuZXcgQXN5bmNFdmVudHNDb21wb25lbnQoKTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzID0gbmV3IEFzeW5jRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgYSB2YWx1ZSBjb21wb25lbnQgdG8gYSBwbHVnaW4gc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBVSVZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIG9mIHRoZSBVSSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gVFZhbHVlQ29tcG9uZW50IC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHZhbHVlQ29tcG9uZW50IC0gVGhlIHZhbHVlIGNvbXBvbmVudCB0byBiaW5kLlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MgdG8gYmluZCB0by5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgYmluZGluZyB0aGUgdmFsdWUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJpbmQ8XG4gICAgVUlWYWx1ZSxcbiAgICBUVmFsdWVDb21wb25lbnRcbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBDb25kaXRpb25hbEtleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPiwgVUlWYWx1ZT4sXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPFVJVmFsdWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9uczogQmluZE9wdGlvbnNFeHRlbmRlZDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+XG4gICk6IFRWYWx1ZUNvbXBvbmVudDtcbiAgLyoqXG4gICAqIEJpbmRzIGEgdmFsdWUgY29tcG9uZW50IHRvIGEgcGx1Z2luIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVUlWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBvZiB0aGUgVUkgY29tcG9uZW50LlxuICAgKiBAdHlwZVBhcmFtIFRWYWx1ZUNvbXBvbmVudCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBjb21wb25lbnQuXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncyB0byBiaW5kIHRvLlxuICAgKiBAcGFyYW0gdmFsdWVDb21wb25lbnQgLSBUaGUgdmFsdWUgY29tcG9uZW50IHRvIGJpbmQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGJpbmRpbmcgdGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBiaW5kPFxuICAgIFVJVmFsdWUsXG4gICAgVFZhbHVlQ29tcG9uZW50LFxuICAgIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgPihcbiAgICB2YWx1ZUNvbXBvbmVudDogVFZhbHVlQ29tcG9uZW50ICYgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VUlWYWx1ZT4sXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgb3B0aW9ucz86IEJpbmRPcHRpb25zPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz5bUHJvcGVydHlOYW1lXT5cbiAgKTogVFZhbHVlQ29tcG9uZW50IHtcbiAgICB0eXBlIFBsdWdpblNldHRpbmdzID0gRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPjtcbiAgICB0eXBlIFByb3BlcnR5VHlwZSA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV07XG4gICAgY29uc3QgREVGQVVMVF9PUFRJT05TOiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+PiA9IHtcbiAgICAgIGNvbXBvbmVudFRvUGx1Z2luU2V0dGluZ3NWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBVSVZhbHVlKTogUHJvcGVydHlUeXBlID0+IHZhbHVlIGFzIFByb3BlcnR5VHlwZSxcbiAgICAgIG9uQ2hhbmdlZDogbm9vcCxcbiAgICAgIHBsdWdpblNldHRpbmdzVG9Db21wb25lbnRWYWx1ZUNvbnZlcnRlcjogKHZhbHVlOiBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPik6IFVJVmFsdWUgPT4gdmFsdWUgYXMgVUlWYWx1ZSxcbiAgICAgIHNob3VsZFJlc2V0U2V0dGluZ1doZW5Db21wb25lbnRJc0VtcHR5OiB0cnVlLFxuICAgICAgc2hvdWxkU2hvd1BsYWNlaG9sZGVyRm9yRGVmYXVsdFZhbHVlczogdHJ1ZSxcbiAgICAgIHNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZTogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zRXh0OiBSZXF1aXJlZDxCaW5kT3B0aW9uc0V4dGVuZGVkPFBsdWdpblNldHRpbmdzLCBVSVZhbHVlLCBQcm9wZXJ0eU5hbWU+PiA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgICBjb25zdCB2YWxpZGF0b3JFbCA9IGdldFZhbGlkYXRvckNvbXBvbmVudCh2YWx1ZUNvbXBvbmVudCk/LnZhbGlkYXRvckVsO1xuXG4gICAgY29uc3QgdGV4dEJhc2VkQ29tcG9uZW50ID0gZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUodmFsdWVDb21wb25lbnQpO1xuXG4gICAgY29uc3QgcmVhZG9ubHlWYWx1ZSA9IHRoaXMucGx1Z2luU2V0dGluZ3NbcHJvcGVydHlOYW1lXSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPjtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSAodGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLmRlZmF1bHRTZXR0aW5ncyBhcyBQbHVnaW5TZXR0aW5ncylbcHJvcGVydHlOYW1lXSBhcyBQcm9wZXJ0eVR5cGU7XG4gICAgdGV4dEJhc2VkQ29tcG9uZW50Py5zZXRQbGFjZWhvbGRlclZhbHVlKG9wdGlvbnNFeHQucGx1Z2luU2V0dGluZ3NUb0NvbXBvbmVudFZhbHVlQ29udmVydGVyKGRlZmF1bHRWYWx1ZSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPikpO1xuXG4gICAgbGV0IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7XG4gICAgbGV0IHRvb2x0aXBFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdG9vbHRpcENvbnRlbnRFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBpZiAodmFsaWRhdG9yRWwpIHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBlbnN1cmVXcmFwcGVkKHZhbGlkYXRvckVsKTtcbiAgICAgIHRvb2x0aXBFbCA9IHdyYXBwZXIuY3JlYXRlRGl2KCk7XG4gICAgICBhZGRQbHVnaW5Dc3NDbGFzc2VzKHRvb2x0aXBFbCwgQ3NzQ2xhc3MuVG9vbHRpcCwgQ3NzQ2xhc3MuVG9vbHRpcFZhbGlkYXRvcik7XG4gICAgICB0b29sdGlwQ29udGVudEVsID0gdG9vbHRpcEVsLmNyZWF0ZVNwYW4oKTtcbiAgICAgIGNvbnN0IHRvb2x0aXBBcnJvd0VsID0gdG9vbHRpcEVsLmNyZWF0ZURpdigpO1xuICAgICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0b29sdGlwQXJyb3dFbCwgQ3NzQ2xhc3MuVG9vbHRpcEFycm93KTtcbiAgICAgIHRvb2x0aXBFbC5oaWRlKCk7XG4gICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRvb2x0aXBFbCk7XG4gICAgfVxuXG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5yZWdpc3RlckFzeW5jRXZlbnQodGhpcy5vbigndmFsaWRhdGlvbk1lc3NhZ2VDaGFuZ2VkJywgKGFub3RoZXJQcm9wZXJ0eU5hbWUsIGFub3RoZXJWYWxpZGF0aW9uTWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKHByb3BlcnR5TmFtZSAhPT0gYW5vdGhlclByb3BlcnR5TmFtZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gYW5vdGhlclZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgdXBkYXRlVmFsaWRhdG9yRWxEZWJvdW5jZWQoKTtcbiAgICB9KSk7XG5cbiAgICBsZXQgc2hvdWxkRW1wdHlPbkJsdXIgPSBmYWxzZTtcblxuICAgIGlmICh0ZXh0QmFzZWRDb21wb25lbnQgJiYgb3B0aW9uc0V4dC5zaG91bGRTaG93UGxhY2Vob2xkZXJGb3JEZWZhdWx0VmFsdWVzICYmIGRlZXBFcXVhbChyZWFkb25seVZhbHVlLCBkZWZhdWx0VmFsdWUpKSB7XG4gICAgICB0ZXh0QmFzZWRDb21wb25lbnQuZW1wdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVDb21wb25lbnQuc2V0VmFsdWUob3B0aW9uc0V4dC5wbHVnaW5TZXR0aW5nc1RvQ29tcG9uZW50VmFsdWVDb252ZXJ0ZXIocmVhZG9ubHlWYWx1ZSkpO1xuICAgIH1cblxuICAgIGxldCBzaG91bGRTa2lwT25DaGFuZ2UgPSBmYWxzZTtcbiAgICBjb25zdCBVUERBVEVfVkFMSURBVE9SX0VMX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTAwO1xuICAgIGNvbnN0IHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkID0gZGVib3VuY2UoKCkgPT4ge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdXBkYXRlVmFsaWRhdG9yRWwoKTtcbiAgICAgIH0pO1xuICAgIH0sIFVQREFURV9WQUxJREFUT1JfRUxfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMpO1xuXG4gICAgdmFsdWVDb21wb25lbnQub25DaGFuZ2UoYXN5bmMgKHVpVmFsdWUpID0+IHtcbiAgICAgIGlmIChzaG91bGRTa2lwT25DaGFuZ2UpIHtcbiAgICAgICAgc2hvdWxkU2tpcE9uQ2hhbmdlID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2hvdWxkRW1wdHlPbkJsdXIgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnBsdWdpblNldHRpbmdzW3Byb3BlcnR5TmFtZV07XG4gICAgICBsZXQgbmV3VmFsdWU6IFByb3BlcnR5VHlwZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIGxldCBzaG91bGRTZXRQcm9wZXJ0eSA9IHRydWU7XG4gICAgICBpZiAodGV4dEJhc2VkQ29tcG9uZW50Py5pc0VtcHR5KCkgJiYgb3B0aW9uc0V4dC5zaG91bGRSZXNldFNldHRpbmdXaGVuQ29tcG9uZW50SXNFbXB0eSkge1xuICAgICAgICBuZXdWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZFZhbHVlID0gb3B0aW9uc0V4dC5jb21wb25lbnRUb1BsdWdpblNldHRpbmdzVmFsdWVDb252ZXJ0ZXIodWlWYWx1ZSk7XG4gICAgICAgIGlmIChpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyKGNvbnZlcnRlZFZhbHVlKSkge1xuICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gY29udmVydGVkVmFsdWUudmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgICAgc2hvdWxkU2V0UHJvcGVydHkgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IGNvbnZlcnRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRTZXRQcm9wZXJ0eSkge1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGF3YWl0IHRoaXMucGx1Z2luLnNldHRpbmdzTWFuYWdlci5zZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgaWYgKHRleHRCYXNlZENvbXBvbmVudCAmJiBvcHRpb25zRXh0LnNob3VsZFNob3dQbGFjZWhvbGRlckZvckRlZmF1bHRWYWx1ZXMgJiYgIXRleHRCYXNlZENvbXBvbmVudC5pc0VtcHR5KCkgJiYgZGVlcEVxdWFsKG5ld1ZhbHVlLCBkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgICAgc2hvdWxkRW1wdHlPbkJsdXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhd2FpdCBvcHRpb25zRXh0Lm9uQ2hhbmdlZChuZXdWYWx1ZSBhcyBSZWFkb25seURlZXA8UHJvcGVydHlUeXBlPiwgb2xkVmFsdWUgYXMgUmVhZG9ubHlEZWVwPFByb3BlcnR5VHlwZT4pO1xuICAgICAgfVxuICAgICAgdGhpcy5zYXZlU2V0dGluZ3NEZWJvdW5jZWQoKTtcbiAgICB9KTtcblxuICAgIHZhbGlkYXRvckVsPy5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgfSk7XG4gICAgdmFsaWRhdG9yRWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB7XG4gICAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuICAgIH0pO1xuICAgIHZhbGlkYXRvckVsPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVZhbGlkYXRvckVsRGVib3VuY2VkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHZhbGlkYXRpb25NZXNzYWdlID0gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXSA/PyAnJztcbiAgICB1cGRhdGVWYWxpZGF0b3JFbERlYm91bmNlZCgpO1xuXG4gICAgcmV0dXJuIHZhbHVlQ29tcG9uZW50O1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsaWRhdG9yRWwoKTogdm9pZCB7XG4gICAgICBpZiAoc2hvdWxkRW1wdHlPbkJsdXIgJiYgIXZhbGlkYXRvckVsPy5pc0FjdGl2ZUVsZW1lbnQoKSkge1xuICAgICAgICBzaG91bGRFbXB0eU9uQmx1ciA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRleHRCYXNlZENvbXBvbmVudD8uaXNFbXB0eSgpKSB7XG4gICAgICAgICAgc2hvdWxkU2tpcE9uQ2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgICB0ZXh0QmFzZWRDb21wb25lbnQ/LmVtcHR5KCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCF2YWxpZGF0b3JFbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0aW9uTWVzc2FnZSA9PT0gJycpIHtcbiAgICAgICAgdmFsaWRhdG9yRWwuc2V0Q3VzdG9tVmFsaWRpdHkoJycpO1xuICAgICAgICB2YWxpZGF0b3JFbC5jaGVja1ZhbGlkaXR5KCk7XG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gdmFsaWRhdG9yRWwudmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICB9XG5cbiAgICAgIHZhbGlkYXRvckVsLnNldEN1c3RvbVZhbGlkaXR5KHZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICAgIGlmIChvcHRpb25zRXh0LnNob3VsZFNob3dWYWxpZGF0aW9uTWVzc2FnZSkge1xuICAgICAgICBpZiAodG9vbHRpcENvbnRlbnRFbCkge1xuICAgICAgICAgIHRvb2x0aXBDb250ZW50RWwudGV4dENvbnRlbnQgPSB2YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0b29sdGlwRWw/LnRvZ2dsZSghIXZhbGlkYXRpb25NZXNzYWdlKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsaWRhdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgc2V0VG9vbHRpcCh2YWxpZGF0b3JFbCwgdmFsaWRhdGlvbk1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGRpc3BsYXkoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJFbC5lbXB0eSgpO1xuICAgIHRoaXMuX2lzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5sb2FkKCk7XG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5yZWdpc3RlckFzeW5jRXZlbnQodGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLm9uKCdsb2FkU2V0dGluZ3MnLCB0aGlzLm9uTG9hZFNldHRpbmdzLmJpbmQodGhpcykpKTtcbiAgICB0aGlzLmFzeW5jRXZlbnRzQ29tcG9uZW50LnJlZ2lzdGVyQXN5bmNFdmVudCh0aGlzLnBsdWdpbi5zZXR0aW5nc01hbmFnZXIub24oJ3NhdmVTZXR0aW5ncycsIHRoaXMub25TYXZlU2V0dGluZ3MuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGhpZGUoKTogdm9pZCB7XG4gICAgc3VwZXIuaGlkZSgpO1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzRGVib3VuY2VkLmNhbmNlbCgpO1xuICAgIHRoaXMuX2lzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuYXN5bmNFdmVudHNDb21wb25lbnQudW5sb2FkKCk7XG4gICAgdGhpcy5hc3luY0V2ZW50c0NvbXBvbmVudC5sb2FkKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdGhpcy5wbHVnaW4uc2V0dGluZ3NNYW5hZ2VyLnNhdmVUb0ZpbGUoU0FWRV9UT19GSUxFX0NPTlRFWFQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcGx1Z2luIHNldHRpbmdzIHRhYi5cbiAgICovXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwLnNldHRpbmcub3BlblRhYih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBfbG9hZGVkU2V0dGluZ3MgLSBUaGUgbG9hZGVkIHNldHRpbmdzLlxuICAgKiBAcGFyYW0gX2lzSW5pdGlhbExvYWQgLSBXaGV0aGVyIHRoZSBzZXR0aW5ncyBhcmUgYmVpbmcgbG9hZGVkIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTG9hZFNldHRpbmdzKF9sb2FkZWRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPiwgX2lzSW5pdGlhbExvYWQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgb24oXG4gICAgbmFtZTogJ3ZhbGlkYXRpb25NZXNzYWdlQ2hhbmdlZCcsXG4gICAgY2FsbGJhY2s6IChcbiAgICAgIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZ1xuICAgICkgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmO1xuICBwcml2YXRlIG9uPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuYXN5bmNFdmVudHMub24obmFtZSwgY2FsbGJhY2ssIHRoaXNBcmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvblNhdmVTZXR0aW5ncyhcbiAgICBuZXdTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICBfb2xkU2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoY29udGV4dCA9PT0gU0FWRV9UT19GSUxFX0NPTlRFWFQpIHtcbiAgICAgIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgdmFsaWRhdGlvbk1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKG5ld1NldHRpbmdzLnZhbGlkYXRpb25NZXNzYWdlcyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSkge1xuICAgICAgICBhd2FpdCB0aGlzLmFzeW5jRXZlbnRzLnRyaWdnZXJBc3luYygndmFsaWRhdGlvbk1lc3NhZ2VDaGFuZ2VkJywgcHJvcGVydHlOYW1lLCB2YWxpZGF0aW9uTWVzc2FnZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJFbC5lbXB0eSgpO1xuICAgIHRoaXMuZGlzcGxheSgpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0Esc0JBSU87QUFlUCxtQkFHTztBQUNQLHlCQUE0QjtBQUM1QixzQkFBeUI7QUFDekIsc0JBR087QUFDUCxvQkFBMEI7QUFDMUIsa0NBQXFDO0FBQ3JDLHFDQUE4QjtBQUM5QixnQ0FBMkM7QUFDM0MsZ0NBQXNDO0FBQ3RDLCtCQUEwQztBQUMxQywyQkFBb0M7QUFLN0IsTUFBTSx1QkFBdUI7QUE0RDdCLE1BQWUsOEJBQW1FLGlDQUFpQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWtDakcsWUFBNEIsUUFBb0M7QUFDckUsVUFBTSxPQUFPLEtBQUssTUFBTTtBQURTO0FBRWpDLGtEQUFvQixLQUFLLGFBQWEseUJBQVMsaUJBQWlCO0FBQ2hFLFNBQUssNEJBQXdCO0FBQUEsVUFDM0IsaUNBQW1CLE1BQU0sS0FBSyxPQUFPLGdCQUFnQixXQUFXLG9CQUFvQixDQUFDO0FBQUEsTUFDckYsS0FBSztBQUFBLElBQ1A7QUFDQSxTQUFLLHVCQUF1QixJQUFJLGlEQUFxQjtBQUNyRCxTQUFLLGNBQWMsSUFBSSwrQkFBWTtBQUFBLEVBQ3JDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBckNBLElBQVcsU0FBa0I7QUFDM0IsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsNENBQW9EO0FBQ2hFLFVBQU0sVUFBVTtBQUNoQixXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRVEsVUFBVTtBQUFBLEVBQ0Q7QUFBQSxFQUNBO0FBQUEsRUFDVDtBQUFBLEVBRVIsSUFBWSxpQkFBcUQ7QUFDL0QsV0FBTyxLQUFLLE9BQU8sZ0JBQWdCLGdCQUFnQjtBQUFBLEVBQ3JEO0FB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
@@ -30,6 +30,7 @@ __export(SettingEx_exports, {
30
30
  module.exports = __toCommonJS(SettingEx_exports);
31
31
  var import_obsidian = require('obsidian');
32
32
  var import_CheckboxComponent = require('./Components/SettingComponents/CheckboxComponent.cjs');
33
+ var import_CodeHighlighterComponent = require('./Components/SettingComponents/CodeHighlighterComponent.cjs');
33
34
  var import_DateComponent = require('./Components/SettingComponents/DateComponent.cjs');
34
35
  var import_DateTimeComponent = require('./Components/SettingComponents/DateTimeComponent.cjs');
35
36
  var import_EmailComponent = require('./Components/SettingComponents/EmailComponent.cjs');
@@ -58,6 +59,15 @@ class SettingEx extends import_obsidian.Setting {
58
59
  addCheckbox(cb) {
59
60
  return this.addComponent(import_CheckboxComponent.CheckboxComponent, cb);
60
61
  }
62
+ /**
63
+ * Adds a {@link CodeHighlighterComponent} to the setting.
64
+ *
65
+ * @param cb - The callback to call with the component.
66
+ * @returns The setting instance.
67
+ */
68
+ addCodeHighlighter(cb) {
69
+ return this.addComponent(import_CodeHighlighterComponent.CodeHighlighterComponent, cb);
70
+ }
61
71
  /**
62
72
  * Adds a component to the setting.
63
73
  *
@@ -239,4 +249,4 @@ class SettingEx extends import_obsidian.Setting {
239
249
  0 && (module.exports = {
240
250
  SettingEx
241
251
  });
242
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1NldHRpbmdFeC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBFeHRlbmRzIHRoZSBTZXR0aW5nIGNsYXNzIHdpdGggYWRkaXRpb25hbCBtZXRob2RzIGZvciBhZGRpbmcgY29tcG9uZW50cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL0NoZWNrYm94Q29tcG9uZW50LnRzJztcbmltcG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvRGF0ZUNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9EYXRlVGltZUNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9FbWFpbENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL0ZpbGVDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTW9udGhDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvTW9udGhDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9NdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IE11bHRpcGxlRW1haWxDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvTXVsdGlwbGVFbWFpbENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBNdWx0aXBsZUZpbGVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvTXVsdGlwbGVGaWxlQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IE11bHRpcGxlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9NdWx0aXBsZVRleHRDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL051bWJlckNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9QYXNzd29yZENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBUZWxlcGhvbmVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVGVsZXBob25lQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFRpbWVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVGltZUNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL1RyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVHlwZWREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9UeXBlZERyb3Bkb3duQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9UeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQudHMnO1xuaW1wb3J0IHsgVXJsQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL1VybENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBXZWVrQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL1dlZWtDb21wb25lbnQudHMnO1xuXG4vKipcbiAqIEV4dGVuZHMgdGhlIFNldHRpbmcgY2xhc3Mgd2l0aCBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIGFkZGluZyBjb21wb25lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2V0dGluZ0V4IGV4dGVuZHMgU2V0dGluZyB7XG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIENoZWNrYm94Q29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRDaGVja2JveChjYjogKGNvbXBvbmVudDogQ2hlY2tib3hDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoQ2hlY2tib3hDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29tcG9uZW50IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgY29tcG9uZW50IHRvIGFkZC5cbiAgICogQHBhcmFtIGNvbXBvbmVudENsYXNzIC0gVGhlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQgdG8gYWRkLlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZENvbXBvbmVudDxUIGV4dGVuZHMgQmFzZUNvbXBvbmVudD4oY29tcG9uZW50Q2xhc3M6IG5ldyAoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSA9PiBULCBjYjogKGNvbXBvbmVudDogVCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IG5ldyBjb21wb25lbnRDbGFzcyh0aGlzLmNvbnRyb2xFbCk7XG4gICAgdGhpcy5jb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcbiAgICBjYihjb21wb25lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgRGF0ZUNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRGF0ZShjYjogKGNvbXBvbmVudDogRGF0ZUNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChEYXRlQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBEYXRlVGltZUNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRGF0ZVRpbWUoY2I6IChjb21wb25lbnQ6IERhdGVUaW1lQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KERhdGVUaW1lQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiB7QGxpbmsgRW1haWxDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEVtYWlsKGNiOiAoY29tcG9uZW50OiBFbWFpbENvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChFbWFpbENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgRmlsZUNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRmlsZShjYjogKGNvbXBvbmVudDogRmlsZUNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChGaWxlQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBNb250aENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTW9udGgoY2I6IChjb21wb25lbnQ6IE1vbnRoQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KE1vbnRoQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRNdWx0aXBsZURyb3Bkb3duKGNiOiAoY29tcG9uZW50OiBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIE11bHRpcGxlRW1haWxDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE11bHRpcGxlRW1haWwoY2I6IChjb21wb25lbnQ6IE11bHRpcGxlRW1haWxDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTXVsdGlwbGVFbWFpbENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgTXVsdGlwbGVGaWxlQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRNdWx0aXBsZUZpbGUoY2I6IChjb21wb25lbnQ6IE11bHRpcGxlRmlsZUNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChNdWx0aXBsZUZpbGVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIE11bHRpcGxlVGV4dENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTXVsdGlwbGVUZXh0KGNiOiAoY29tcG9uZW50OiBNdWx0aXBsZVRleHRDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTXVsdGlwbGVUZXh0Q29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBOdW1iZXJDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE51bWJlcihjYjogKGNvbXBvbmVudDogTnVtYmVyQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KE51bWJlckNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgUGFzc3dvcmRDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFBhc3N3b3JkKGNiOiAoY29tcG9uZW50OiBQYXNzd29yZENvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChQYXNzd29yZENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgVGVsZXBob25lQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUZWxlcGhvbmUoY2I6IChjb21wb25lbnQ6IFRlbGVwaG9uZUNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChUZWxlcGhvbmVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIFRpbWVDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFRpbWUoY2I6IChjb21wb25lbnQ6IFRpbWVDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVGltZUNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVHJpU3RhdGVDaGVja2JveChjYjogKGNvbXBvbmVudDogVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBUeXBlZERyb3Bkb3duQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUeXBlZERyb3Bkb3duPFQ+KGNiOiAoY29tcG9uZW50OiBUeXBlZERyb3Bkb3duQ29tcG9uZW50PFQ+KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KFR5cGVkRHJvcGRvd25Db21wb25lbnQ8VD4sIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVHlwZWRNdWx0aXBsZURyb3Bkb3duPFQ+KGNiOiAoY29tcG9uZW50OiBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQ8VD4pID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50PFQ+LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiB7QGxpbmsgVXJsQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRVcmwoY2I6IChjb21wb25lbnQ6IFVybENvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChVcmxDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIFdlZWtDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFdlZWsoY2I6IChjb21wb25lbnQ6IFdlZWtDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoV2Vla0NvbXBvbmVudCwgY2IpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHNCQUF3QjtBQUV4QiwrQkFBa0M7QUFDbEMsMkJBQThCO0FBQzlCLCtCQUFrQztBQUNsQyw0QkFBK0I7QUFDL0IsMkJBQThCO0FBQzlCLDRCQUErQjtBQUMvQix1Q0FBMEM7QUFDMUMsb0NBQXVDO0FBQ3ZDLG1DQUFzQztBQUN0QyxtQ0FBc0M7QUFDdEMsNkJBQWdDO0FBQ2hDLCtCQUFrQztBQUNsQyxnQ0FBbUM7QUFDbkMsMkJBQThCO0FBQzlCLHVDQUEwQztBQUMxQyxvQ0FBdUM7QUFDdkMsNENBQStDO0FBQy9DLDBCQUE2QjtBQUM3QiwyQkFBOEI7QUFLdkIsTUFBTSxrQkFBa0Isd0JBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU85QixZQUFZLElBQWtEO0FBQ25FLFdBQU8sS0FBSyxhQUFhLDRDQUFtQixFQUFFO0FBQUEsRUFDaEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVTyxhQUFzQyxnQkFBcUQsSUFBa0M7QUFDbEksVUFBTSxZQUFZLElBQUksZUFBZSxLQUFLLFNBQVM7QUFDbkQsU0FBSyxXQUFXLEtBQUssU0FBUztBQUM5QixPQUFHLFNBQVM7QUFDWixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sUUFBUSxJQUE4QztBQUMzRCxXQUFPLEtBQUssYUFBYSxvQ0FBZSxFQUFFO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFlBQVksSUFBa0Q7QUFDbkUsV0FBTyxLQUFLLGFBQWEsNENBQW1CLEVBQUU7QUFBQSxFQUNoRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxJQUErQztBQUM3RCxXQUFPLEtBQUssYUFBYSxzQ0FBZ0IsRUFBRTtBQUFBLEVBQzdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxRQUFRLElBQThDO0FBQzNELFdBQU8sS0FBSyxhQUFhLG9DQUFlLEVBQUU7QUFBQSxFQUM1QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sU0FBUyxJQUErQztBQUM3RCxXQUFPLEtBQUssYUFBYSxzQ0FBZ0IsRUFBRTtBQUFBLEVBQzdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxvQkFBb0IsSUFBMEQ7QUFDbkYsV0FBTyxLQUFLLGFBQWEsNERBQTJCLEVBQUU7QUFBQSxFQUN4RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8saUJBQWlCLElBQXVEO0FBQzdFLFdBQU8sS0FBSyxhQUFhLHNEQUF3QixFQUFFO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLGdCQUFnQixJQUFzRDtBQUMzRSxXQUFPLEtBQUssYUFBYSxvREFBdUIsRUFBRTtBQUFBLEVBQ3BEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxnQkFBZ0IsSUFBc0Q7QUFDM0UsV0FBTyxLQUFLLGFBQWEsb0RBQXVCLEVBQUU7QUFBQSxFQUNwRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sVUFBVSxJQUFnRDtBQUMvRCxXQUFPLEtBQUssYUFBYSx3Q0FBaUIsRUFBRTtBQUFBLEVBQzlDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxZQUFZLElBQWtEO0FBQ25FLFdBQU8sS0FBSyxhQUFhLDRDQUFtQixFQUFFO0FBQUEsRUFDaEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLGFBQWEsSUFBbUQ7QUFDckUsV0FBTyxLQUFLLGFBQWEsOENBQW9CLEVBQUU7QUFBQSxFQUNqRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sUUFBUSxJQUE4QztBQUMzRCxXQUFPLEtBQUssYUFBYSxvQ0FBZSxFQUFFO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLG9CQUFvQixJQUEwRDtBQUNuRixXQUFPLEtBQUssYUFBYSw0REFBMkIsRUFBRTtBQUFBLEVBQ3hEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxpQkFBb0IsSUFBMEQ7QUFDbkYsV0FBTyxLQUFLLGFBQWEsc0RBQTJCLEVBQUU7QUFBQSxFQUN4RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8seUJBQTRCLElBQWtFO0FBQ25HLFdBQU8sS0FBSyxhQUFhLHNFQUFtQyxFQUFFO0FBQUEsRUFDaEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLE9BQU8sSUFBNkM7QUFDekQsV0FBTyxLQUFLLGFBQWEsa0NBQWMsRUFBRTtBQUFBLEVBQzNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxRQUFRLElBQThDO0FBQzNELFdBQU8sS0FBSyxhQUFhLG9DQUFlLEVBQUU7QUFBQSxFQUM1QztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
252
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1NldHRpbmdFeC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBFeHRlbmRzIHRoZSBTZXR0aW5nIGNsYXNzIHdpdGggYWRkaXRpb25hbCBtZXRob2RzIGZvciBhZGRpbmcgY29tcG9uZW50cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL0NoZWNrYm94Q29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvZGVIaWdobGlnaHRlckNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9Db2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9EYXRlQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL0RhdGVUaW1lQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IEVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL0VtYWlsQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IEZpbGVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvRmlsZUNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBNb250aENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9Nb250aENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL011bHRpcGxlRHJvcGRvd25Db21wb25lbnQudHMnO1xuaW1wb3J0IHsgTXVsdGlwbGVFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9NdWx0aXBsZUVtYWlsQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IE11bHRpcGxlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9NdWx0aXBsZUZpbGVDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTXVsdGlwbGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL011bHRpcGxlVGV4dENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvTnVtYmVyQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL1Bhc3N3b3JkQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFRlbGVwaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9UZWxlcGhvbmVDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVGltZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9TZXR0aW5nQ29tcG9uZW50cy9UaW1lQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFRyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVHJpU3RhdGVDaGVja2JveENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBUeXBlZERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL1R5cGVkRHJvcGRvd25Db21wb25lbnQudHMnO1xuaW1wb3J0IHsgVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL1NldHRpbmdDb21wb25lbnRzL1R5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvVXJsQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFdlZWtDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvV2Vla0NvbXBvbmVudC50cyc7XG5cbi8qKlxuICogRXh0ZW5kcyB0aGUgU2V0dGluZyBjbGFzcyB3aXRoIGFkZGl0aW9uYWwgbWV0aG9kcyBmb3IgYWRkaW5nIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXR0aW5nRXggZXh0ZW5kcyBTZXR0aW5nIHtcbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgQ2hlY2tib3hDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZENoZWNrYm94KGNiOiAoY2hlY2tib3g6IENoZWNrYm94Q29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KENoZWNrYm94Q29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZENvZGVIaWdobGlnaHRlcihjYjogKGNvZGVIaWdobGlnaHRlcjogQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KENvZGVIaWdobGlnaHRlckNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBjb21wb25lbnQgdG8gYWRkLlxuICAgKiBAcGFyYW0gY29tcG9uZW50Q2xhc3MgLSBUaGUgY2xhc3Mgb2YgdGhlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkQ29tcG9uZW50PFQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50Pihjb21wb25lbnRDbGFzczogbmV3IChjb250YWluZXJFbDogSFRNTEVsZW1lbnQpID0+IFQsIGNiOiAoY29tcG9uZW50OiBUKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gbmV3IGNvbXBvbmVudENsYXNzKHRoaXMuY29udHJvbEVsKTtcbiAgICB0aGlzLmNvbXBvbmVudHMucHVzaChjb21wb25lbnQpO1xuICAgIGNiKGNvbXBvbmVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBEYXRlQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGREYXRlKGNiOiAoZGF0ZTogRGF0ZUNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChEYXRlQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBEYXRlVGltZUNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRGF0ZVRpbWUoY2I6IChkYXRlVGltZTogRGF0ZVRpbWVDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoRGF0ZVRpbWVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIHtAbGluayBFbWFpbENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRW1haWwoY2I6IChlbWFpbDogRW1haWxDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoRW1haWxDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIEZpbGVDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEZpbGUoY2I6IChmaWxlOiBGaWxlQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KEZpbGVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIE1vbnRoQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRNb250aChjYjogKG1vbnRoOiBNb250aENvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChNb250aENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTXVsdGlwbGVEcm9wZG93bihjYjogKG11bHRpcGxlRHJvcGRvd246IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgTXVsdGlwbGVFbWFpbENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTXVsdGlwbGVFbWFpbChjYjogKG11bHRpcGxlRW1haWw6IE11bHRpcGxlRW1haWxDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTXVsdGlwbGVFbWFpbENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgTXVsdGlwbGVGaWxlQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRNdWx0aXBsZUZpbGUoY2I6IChtdWx0aXBsZUZpbGU6IE11bHRpcGxlRmlsZUNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChNdWx0aXBsZUZpbGVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIE11bHRpcGxlVGV4dENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTXVsdGlwbGVUZXh0KGNiOiAobXVsdGlwbGVUZXh0OiBNdWx0aXBsZVRleHRDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTXVsdGlwbGVUZXh0Q29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBOdW1iZXJDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE51bWJlcihjYjogKG51bWJlcjogTnVtYmVyQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KE51bWJlckNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgUGFzc3dvcmRDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFBhc3N3b3JkKGNiOiAocGFzc3dvcmQ6IFBhc3N3b3JkQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KFBhc3N3b3JkQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBUZWxlcGhvbmVDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFRlbGVwaG9uZShjYjogKHRlbGVwaG9uZTogVGVsZXBob25lQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KFRlbGVwaG9uZUNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgVGltZUNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVGltZShjYjogKHRpbWU6IFRpbWVDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVGltZUNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVHJpU3RhdGVDaGVja2JveChjYjogKHRyaVN0YXRlQ2hlY2tib3g6IFRyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgVHlwZWREcm9wZG93bkNvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVHlwZWREcm9wZG93bjxUPihjYjogKHR5cGVkRHJvcGRvd246IFR5cGVkRHJvcGRvd25Db21wb25lbnQ8VD4pID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVHlwZWREcm9wZG93bkNvbXBvbmVudDxUPiwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUeXBlZE11bHRpcGxlRHJvcGRvd248VD4oY2I6ICh0eXBlZE11bHRpcGxlRHJvcGRvd246IFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudDxUPikgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQ8VD4sIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIHtAbGluayBVcmxDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFVybChjYjogKHVybDogVXJsQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KFVybENvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgV2Vla0NvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkV2VlayhjYjogKHdlZWs6IFdlZWtDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoV2Vla0NvbXBvbmVudCwgY2IpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHNCQUF3QjtBQUV4QiwrQkFBa0M7QUFDbEMsc0NBQXlDO0FBQ3pDLDJCQUE4QjtBQUM5QiwrQkFBa0M7QUFDbEMsNEJBQStCO0FBQy9CLDJCQUE4QjtBQUM5Qiw0QkFBK0I7QUFDL0IsdUNBQTBDO0FBQzFDLG9DQUF1QztBQUN2QyxtQ0FBc0M7QUFDdEMsbUNBQXNDO0FBQ3RDLDZCQUFnQztBQUNoQywrQkFBa0M7QUFDbEMsZ0NBQW1DO0FBQ25DLDJCQUE4QjtBQUM5Qix1Q0FBMEM7QUFDMUMsb0NBQXVDO0FBQ3ZDLDRDQUErQztBQUMvQywwQkFBNkI7QUFDN0IsMkJBQThCO0FBS3ZCLE1BQU0sa0JBQWtCLHdCQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPOUIsWUFBWSxJQUFpRDtBQUNsRSxXQUFPLEtBQUssYUFBYSw0Q0FBbUIsRUFBRTtBQUFBLEVBQ2hEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxtQkFBbUIsSUFBK0Q7QUFDdkYsV0FBTyxLQUFLLGFBQWEsMERBQTBCLEVBQUU7QUFBQSxFQUN2RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVPLGFBQXNDLGdCQUFxRCxJQUFrQztBQUNsSSxVQUFNLFlBQVksSUFBSSxlQUFlLEtBQUssU0FBUztBQUNuRCxTQUFLLFdBQVcsS0FBSyxTQUFTO0FBQzlCLE9BQUcsU0FBUztBQUNaLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxRQUFRLElBQXlDO0FBQ3RELFdBQU8sS0FBSyxhQUFhLG9DQUFlLEVBQUU7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
@@ -6,6 +6,7 @@
6
6
  import type { BaseComponent } from 'obsidian';
7
7
  import { Setting } from 'obsidian';
8
8
  import { CheckboxComponent } from './Components/SettingComponents/CheckboxComponent.cjs';
9
+ import { CodeHighlighterComponent } from './Components/SettingComponents/CodeHighlighterComponent.cjs';
9
10
  import { DateComponent } from './Components/SettingComponents/DateComponent.cjs';
10
11
  import { DateTimeComponent } from './Components/SettingComponents/DateTimeComponent.cjs';
11
12
  import { EmailComponent } from './Components/SettingComponents/EmailComponent.cjs';
@@ -34,7 +35,14 @@ export declare class SettingEx extends Setting {
34
35
  * @param cb - The callback to call with the component.
35
36
  * @returns The setting instance.
36
37
  */
37
- addCheckbox(cb: (component: CheckboxComponent) => void): this;
38
+ addCheckbox(cb: (checkbox: CheckboxComponent) => void): this;
39
+ /**
40
+ * Adds a {@link CodeHighlighterComponent} to the setting.
41
+ *
42
+ * @param cb - The callback to call with the component.
43
+ * @returns The setting instance.
44
+ */
45
+ addCodeHighlighter(cb: (codeHighlighter: CodeHighlighterComponent) => void): this;
38
46
  /**
39
47
  * Adds a component to the setting.
40
48
  *
@@ -50,124 +58,124 @@ export declare class SettingEx extends Setting {
50
58
  * @param cb - The callback to call with the component.
51
59
  * @returns The setting instance.
52
60
  */
53
- addDate(cb: (component: DateComponent) => void): this;
61
+ addDate(cb: (date: DateComponent) => void): this;
54
62
  /**
55
63
  * Adds a {@link DateTimeComponent} to the setting.
56
64
  *
57
65
  * @param cb - The callback to call with the component.
58
66
  * @returns The setting instance.
59
67
  */
60
- addDateTime(cb: (component: DateTimeComponent) => void): this;
68
+ addDateTime(cb: (dateTime: DateTimeComponent) => void): this;
61
69
  /**
62
70
  * Adds an {@link EmailComponent} to the setting.
63
71
  *
64
72
  * @param cb - The callback to call with the component.
65
73
  * @returns The setting instance.
66
74
  */
67
- addEmail(cb: (component: EmailComponent) => void): this;
75
+ addEmail(cb: (email: EmailComponent) => void): this;
68
76
  /**
69
77
  * Adds a {@link FileComponent} to the setting.
70
78
  *
71
79
  * @param cb - The callback to call with the component.
72
80
  * @returns The setting instance.
73
81
  */
74
- addFile(cb: (component: FileComponent) => void): this;
82
+ addFile(cb: (file: FileComponent) => void): this;
75
83
  /**
76
84
  * Adds a {@link MonthComponent} to the setting.
77
85
  *
78
86
  * @param cb - The callback to call with the component.
79
87
  * @returns The setting instance.
80
88
  */
81
- addMonth(cb: (component: MonthComponent) => void): this;
89
+ addMonth(cb: (month: MonthComponent) => void): this;
82
90
  /**
83
91
  * Adds a {@link MultipleDropdownComponent} to the setting.
84
92
  *
85
93
  * @param cb - The callback to call with the component.
86
94
  * @returns The setting instance.
87
95
  */
88
- addMultipleDropdown(cb: (component: MultipleDropdownComponent) => void): this;
96
+ addMultipleDropdown(cb: (multipleDropdown: MultipleDropdownComponent) => void): this;
89
97
  /**
90
98
  * Adds a {@link MultipleEmailComponent} to the setting.
91
99
  *
92
100
  * @param cb - The callback to call with the component.
93
101
  * @returns The setting instance.
94
102
  */
95
- addMultipleEmail(cb: (component: MultipleEmailComponent) => void): this;
103
+ addMultipleEmail(cb: (multipleEmail: MultipleEmailComponent) => void): this;
96
104
  /**
97
105
  * Adds a {@link MultipleFileComponent} to the setting.
98
106
  *
99
107
  * @param cb - The callback to call with the component.
100
108
  * @returns The setting instance.
101
109
  */
102
- addMultipleFile(cb: (component: MultipleFileComponent) => void): this;
110
+ addMultipleFile(cb: (multipleFile: MultipleFileComponent) => void): this;
103
111
  /**
104
112
  * Adds a {@link MultipleTextComponent} to the setting.
105
113
  *
106
114
  * @param cb - The callback to call with the component.
107
115
  * @returns The setting instance.
108
116
  */
109
- addMultipleText(cb: (component: MultipleTextComponent) => void): this;
117
+ addMultipleText(cb: (multipleText: MultipleTextComponent) => void): this;
110
118
  /**
111
119
  * Adds a {@link NumberComponent} to the setting.
112
120
  *
113
121
  * @param cb - The callback to call with the component.
114
122
  * @returns The setting instance.
115
123
  */
116
- addNumber(cb: (component: NumberComponent) => void): this;
124
+ addNumber(cb: (number: NumberComponent) => void): this;
117
125
  /**
118
126
  * Adds a {@link PasswordComponent} to the setting.
119
127
  *
120
128
  * @param cb - The callback to call with the component.
121
129
  * @returns The setting instance.
122
130
  */
123
- addPassword(cb: (component: PasswordComponent) => void): this;
131
+ addPassword(cb: (password: PasswordComponent) => void): this;
124
132
  /**
125
133
  * Adds a {@link TelephoneComponent} to the setting.
126
134
  *
127
135
  * @param cb - The callback to call with the component.
128
136
  * @returns The setting instance.
129
137
  */
130
- addTelephone(cb: (component: TelephoneComponent) => void): this;
138
+ addTelephone(cb: (telephone: TelephoneComponent) => void): this;
131
139
  /**
132
140
  * Adds a {@link TimeComponent} to the setting.
133
141
  *
134
142
  * @param cb - The callback to call with the component.
135
143
  * @returns The setting instance.
136
144
  */
137
- addTime(cb: (component: TimeComponent) => void): this;
145
+ addTime(cb: (time: TimeComponent) => void): this;
138
146
  /**
139
147
  * Adds a {@link TriStateCheckboxComponent} to the setting.
140
148
  *
141
149
  * @param cb - The callback to call with the component.
142
150
  * @returns The setting instance.
143
151
  */
144
- addTriStateCheckbox(cb: (component: TriStateCheckboxComponent) => void): this;
152
+ addTriStateCheckbox(cb: (triStateCheckbox: TriStateCheckboxComponent) => void): this;
145
153
  /**
146
154
  * Adds a {@link TypedDropdownComponent} to the setting.
147
155
  *
148
156
  * @param cb - The callback to call with the component.
149
157
  * @returns The setting instance.
150
158
  */
151
- addTypedDropdown<T>(cb: (component: TypedDropdownComponent<T>) => void): this;
159
+ addTypedDropdown<T>(cb: (typedDropdown: TypedDropdownComponent<T>) => void): this;
152
160
  /**
153
161
  * Adds a {@link TypedMultipleDropdownComponent} to the setting.
154
162
  *
155
163
  * @param cb - The callback to call with the component.
156
164
  * @returns The setting instance.
157
165
  */
158
- addTypedMultipleDropdown<T>(cb: (component: TypedMultipleDropdownComponent<T>) => void): this;
166
+ addTypedMultipleDropdown<T>(cb: (typedMultipleDropdown: TypedMultipleDropdownComponent<T>) => void): this;
159
167
  /**
160
168
  * Adds an {@link UrlComponent} to the setting.
161
169
  *
162
170
  * @param cb - The callback to call with the component.
163
171
  * @returns The setting instance.
164
172
  */
165
- addUrl(cb: (component: UrlComponent) => void): this;
173
+ addUrl(cb: (url: UrlComponent) => void): this;
166
174
  /**
167
175
  * Adds a {@link WeekComponent} to the setting.
168
176
  *
169
177
  * @param cb - The callback to call with the component.
170
178
  * @returns The setting instance.
171
179
  */
172
- addWeek(cb: (component: WeekComponent) => void): this;
180
+ addWeek(cb: (week: WeekComponent) => void): this;
173
181
  }
@@ -29,6 +29,7 @@ __export(VaultEx_exports, {
29
29
  deleteSafe: () => deleteSafe
30
30
  });
31
31
  module.exports = __toCommonJS(VaultEx_exports);
32
+ var import_obsidian = require('obsidian');
32
33
  var import_Error = require('../Error.cjs');
33
34
  var import_FileSystem = require('./FileSystem.cjs');
34
35
  var import_MetadataCache = require('./MetadataCache.cjs');
@@ -57,7 +58,7 @@ async function deleteSafe(app, pathOrFile, deletedNotePath, shouldReportUsedAtta
57
58
  }
58
59
  if (backlinks.count() !== 0) {
59
60
  if (shouldReportUsedAttachments) {
60
- new Notice(`Attachment ${file.path} is still used by other notes. It will not be deleted.`);
61
+ new import_obsidian.Notice(`Attachment ${file.path} is still used by other notes. It will not be deleted.`);
61
62
  }
62
63
  canDelete = false;
63
64
  }
@@ -85,4 +86,4 @@ async function deleteSafe(app, pathOrFile, deletedNotePath, shouldReportUsedAtta
85
86
  deleteEmptyFolderHierarchy,
86
87
  deleteSafe
87
88
  });
88
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1ZhdWx0RXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYWRkaXRpb25hbCB1dGlsaXRpZXMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgT2JzaWRpYW4gVmF1bHQuXG4gKlxuICogSXQgaGFzIHRvIGJlIGV4dHJhY3RlZCBmcm9tIGBWYXVsdGAgYmVjYXVzZSBvZiBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGF0aE9yQWJzdHJhY3RGaWxlLFxuICBQYXRoT3JGb2xkZXJcbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcblxuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gJy4uL0Vycm9yLnRzJztcbmltcG9ydCB7XG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0Rm9sZGVyT3JOdWxsLFxuICBpc0ZpbGUsXG4gIGlzRm9sZGVyXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSB9IGZyb20gJy4vTWV0YWRhdGFDYWNoZS50cyc7XG5pbXBvcnQge1xuICBpc0VtcHR5Rm9sZGVyLFxuICBsaXN0U2FmZVxufSBmcm9tICcuL1ZhdWx0LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIGVtcHR5IGZvbGRlciBoaWVyYXJjaHkgc3RhcnRpbmcgZnJvbSB0aGUgZ2l2ZW4gZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRm9sZGVyIC0gVGhlIGZvbGRlciB0byBzdGFydCByZW1vdmluZyBlbXB0eSBoaWVyYXJjaHkgZnJvbS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZW1wdHkgaGllcmFyY2h5IGlzIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVFbXB0eUZvbGRlckhpZXJhcmNoeShhcHA6IEFwcCwgcGF0aE9yRm9sZGVyOiBudWxsIHwgUGF0aE9yRm9sZGVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGxldCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBwYXRoT3JGb2xkZXIpO1xuXG4gIHdoaWxlIChmb2xkZXIpIHtcbiAgICBpZiAoIWF3YWl0IGlzRW1wdHlGb2xkZXIoYXBwLCBmb2xkZXIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XG4gICAgYXdhaXQgZGVsZXRlU2FmZShhcHAsIGZvbGRlci5wYXRoKTtcbiAgICBmb2xkZXIgPSBwYXJlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWxldGVzIGFic3RyYWN0IGZpbGUgc2FmZWx5IGZyb20gdGhlIHZhdWx0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGFic3RyYWN0IGZpbGUgdG8gZGVsZXRlLlxuICogQHBhcmFtIGRlbGV0ZWROb3RlUGF0aCAtIE9wdGlvbmFsLiBUaGUgcGF0aCBvZiB0aGUgbm90ZSB0aGF0IHRyaWdnZXJlZCB0aGUgcmVtb3ZhbC5cbiAqIEBwYXJhbSBzaG91bGRSZXBvcnRVc2VkQXR0YWNobWVudHMgLSBPcHRpb25hbC4gSWYgYHRydWVgLCBhIG5vdGljZSB3aWxsIGJlIHNob3duIGZvciBlYWNoIGF0dGFjaG1lbnQgdGhhdCBpcyBzdGlsbCB1c2VkIGJ5IG90aGVyIG5vdGVzLlxuICogQHBhcmFtIHNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyAtIE9wdGlvbmFsLiBJZiBgdHJ1ZWAsIGVtcHR5IGZvbGRlcnMgd2lsbCBiZSBkZWxldGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSByZW1vdmFsIHdhcyBzdWNjZXNzZnVsLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlU2FmZShcbiAgYXBwOiBBcHAsXG4gIHBhdGhPckZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSxcbiAgZGVsZXRlZE5vdGVQYXRoPzogc3RyaW5nLFxuICBzaG91bGRSZXBvcnRVc2VkQXR0YWNobWVudHM/OiBib29sZWFuLFxuICBzaG91bGREZWxldGVFbXB0eUZvbGRlcnM/OiBib29sZWFuXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckZpbGUpO1xuXG4gIGlmICghZmlsZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCBjYW5EZWxldGUgPSBpc0ZpbGUoZmlsZSkgfHwgKHNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyA/PyB0cnVlKTtcblxuICBpZiAoaXNGaWxlKGZpbGUpKSB7XG4gICAgY29uc3QgYmFja2xpbmtzID0gYXdhaXQgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwLCBmaWxlKTtcbiAgICBpZiAoZGVsZXRlZE5vdGVQYXRoKSB7XG4gICAgICBiYWNrbGlua3MuY2xlYXIoZGVsZXRlZE5vdGVQYXRoKTtcbiAgICB9XG4gICAgaWYgKGJhY2tsaW5rcy5jb3VudCgpICE9PSAwKSB7XG4gICAgICBpZiAoc2hvdWxkUmVwb3J0VXNlZEF0dGFjaG1lbnRzKSB7XG4gICAgICAgIG5ldyBOb3RpY2UoYEF0dGFjaG1lbnQgJHtmaWxlLnBhdGh9IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuIEl0IHdpbGwgbm90IGJlIGRlbGV0ZWQuYCk7XG4gICAgICB9XG4gICAgICBjYW5EZWxldGUgPSBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNGb2xkZXIoZmlsZSkpIHtcbiAgICBjb25zdCBsaXN0ZWRGaWxlcyA9IGF3YWl0IGxpc3RTYWZlKGFwcCwgZmlsZSk7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBbLi4ubGlzdGVkRmlsZXMuZmlsZXMsIC4uLmxpc3RlZEZpbGVzLmZvbGRlcnNdKSB7XG4gICAgICBjYW5EZWxldGUgJiY9IGF3YWl0IGRlbGV0ZVNhZmUoYXBwLCBjaGlsZCwgZGVsZXRlZE5vdGVQYXRoLCBzaG91bGRSZXBvcnRVc2VkQXR0YWNobWVudHMpO1xuICAgIH1cblxuICAgIGNhbkRlbGV0ZSAmJj0gYXdhaXQgaXNFbXB0eUZvbGRlcihhcHAsIGZpbGUpO1xuICB9XG5cbiAgaWYgKGNhbkRlbGV0ZSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhcHAuZmlsZU1hbmFnZXIudHJhc2hGaWxlKGZpbGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChhd2FpdCBhcHAudmF1bHQuZXhpc3RzKGZpbGUucGF0aCkpIHtcbiAgICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBkZWxldGUgJHtmaWxlLnBhdGh9YCwgeyBjYXVzZTogZSB9KSk7XG4gICAgICAgIGNhbkRlbGV0ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjYW5EZWxldGU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsbUJBQTJCO0FBQzNCLHdCQUtPO0FBQ1AsMkJBQXdDO0FBQ3hDLG1CQUdPO0FBU1AsZUFBc0IsMkJBQTJCLEtBQVUsY0FBa0Q7QUFDM0csTUFBSSxhQUFTLG1DQUFnQixLQUFLLFlBQVk7QUFFOUMsU0FBTyxRQUFRO0FBQ2IsUUFBSSxDQUFDLFVBQU0sNEJBQWMsS0FBSyxNQUFNLEdBQUc7QUFDckM7QUFBQSxJQUNGO0FBQ0EsVUFBTSxTQUFTLE9BQU87QUFDdEIsVUFBTSxXQUFXLEtBQUssT0FBTyxJQUFJO0FBQ2pDLGFBQVM7QUFBQSxFQUNYO0FBQ0Y7QUFZQSxlQUFzQixXQUNwQixLQUNBLFlBQ0EsaUJBQ0EsNkJBQ0EsMEJBQ2tCO0FBQ2xCLFFBQU0sV0FBTyx5Q0FBc0IsS0FBSyxVQUFVO0FBRWxELE1BQUksQ0FBQyxNQUFNO0FBQ1QsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLGdCQUFZLDBCQUFPLElBQUksTUFBTSw0QkFBNEI7QUFFN0QsVUFBSSwwQkFBTyxJQUFJLEdBQUc7QUFDaEIsVUFBTSxZQUFZLFVBQU0sOENBQXdCLEtBQUssSUFBSTtBQUN6RCxRQUFJLGlCQUFpQjtBQUNuQixnQkFBVSxNQUFNLGVBQWU7QUFBQSxJQUNqQztBQUNBLFFBQUksVUFBVSxNQUFNLE1BQU0sR0FBRztBQUMzQixVQUFJLDZCQUE2QjtBQUMvQixZQUFJLE9BQU8sY0FBYyxLQUFLLElBQUksd0RBQXdEO0FBQUEsTUFDNUY7QUFDQSxrQkFBWTtBQUFBLElBQ2Q7QUFBQSxFQUNGLGVBQVcsNEJBQVMsSUFBSSxHQUFHO0FBQ3pCLFVBQU0sY0FBYyxVQUFNLHVCQUFTLEtBQUssSUFBSTtBQUM1QyxlQUFXLFNBQVMsQ0FBQyxHQUFHLFlBQVksT0FBTyxHQUFHLFlBQVksT0FBTyxHQUFHO0FBQ2xFLG9CQUFjLE1BQU0sV0FBVyxLQUFLLE9BQU8saUJBQWlCLDJCQUEyQjtBQUFBLElBQ3pGO0FBRUEsa0JBQWMsVUFBTSw0QkFBYyxLQUFLLElBQUk7QUFBQSxFQUM3QztBQUVBLE1BQUksV0FBVztBQUNiLFFBQUk7QUFDRixZQUFNLElBQUksWUFBWSxVQUFVLElBQUk7QUFBQSxJQUN0QyxTQUFTLEdBQUc7QUFDVixVQUFJLE1BQU0sSUFBSSxNQUFNLE9BQU8sS0FBSyxJQUFJLEdBQUc7QUFDckMscUNBQVcsSUFBSSxNQUFNLG9CQUFvQixLQUFLLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDbkUsb0JBQVk7QUFBQSxNQUNkO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
89
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1ZhdWx0RXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYWRkaXRpb25hbCB1dGlsaXRpZXMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgT2JzaWRpYW4gVmF1bHQuXG4gKlxuICogSXQgaGFzIHRvIGJlIGV4dHJhY3RlZCBmcm9tIGBWYXVsdGAgYmVjYXVzZSBvZiBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IE5vdGljZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBQYXRoT3JBYnN0cmFjdEZpbGUsXG4gIFBhdGhPckZvbGRlclxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuXG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHtcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXJcbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlIH0gZnJvbSAnLi9NZXRhZGF0YUNhY2hlLnRzJztcbmltcG9ydCB7XG4gIGlzRW1wdHlGb2xkZXIsXG4gIGxpc3RTYWZlXG59IGZyb20gJy4vVmF1bHQudHMnO1xuXG4vKipcbiAqIFJlbW92ZXMgZW1wdHkgZm9sZGVyIGhpZXJhcmNoeSBzdGFydGluZyBmcm9tIHRoZSBnaXZlbiBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgZm9sZGVyIHRvIHN0YXJ0IHJlbW92aW5nIGVtcHR5IGhpZXJhcmNoeSBmcm9tLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbXB0eSBoaWVyYXJjaHkgaXMgZGVsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5KGFwcDogQXBwLCBwYXRoT3JGb2xkZXI6IG51bGwgfCBQYXRoT3JGb2xkZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIHBhdGhPckZvbGRlcik7XG5cbiAgd2hpbGUgKGZvbGRlcikge1xuICAgIGlmICghYXdhaXQgaXNFbXB0eUZvbGRlcihhcHAsIGZvbGRlcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50ID0gZm9sZGVyLnBhcmVudDtcbiAgICBhd2FpdCBkZWxldGVTYWZlKGFwcCwgZm9sZGVyLnBhdGgpO1xuICAgIGZvbGRlciA9IHBhcmVudDtcbiAgfVxufVxuXG4vKipcbiAqIERlbGV0ZXMgYWJzdHJhY3QgZmlsZSBzYWZlbHkgZnJvbSB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgYWJzdHJhY3QgZmlsZSB0byBkZWxldGUuXG4gKiBAcGFyYW0gZGVsZXRlZE5vdGVQYXRoIC0gT3B0aW9uYWwuIFRoZSBwYXRoIG9mIHRoZSBub3RlIHRoYXQgdHJpZ2dlcmVkIHRoZSByZW1vdmFsLlxuICogQHBhcmFtIHNob3VsZFJlcG9ydFVzZWRBdHRhY2htZW50cyAtIE9wdGlvbmFsLiBJZiBgdHJ1ZWAsIGEgbm90aWNlIHdpbGwgYmUgc2hvd24gZm9yIGVhY2ggYXR0YWNobWVudCB0aGF0IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuXG4gKiBAcGFyYW0gc2hvdWxkRGVsZXRlRW1wdHlGb2xkZXJzIC0gT3B0aW9uYWwuIElmIGB0cnVlYCwgZW1wdHkgZm9sZGVycyB3aWxsIGJlIGRlbGV0ZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHJlbW92YWwgd2FzIHN1Y2Nlc3NmdWwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVTYWZlKFxuICBhcHA6IEFwcCxcbiAgcGF0aE9yRmlsZTogUGF0aE9yQWJzdHJhY3RGaWxlLFxuICBkZWxldGVkTm90ZVBhdGg/OiBzdHJpbmcsXG4gIHNob3VsZFJlcG9ydFVzZWRBdHRhY2htZW50cz86IGJvb2xlYW4sXG4gIHNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycz86IGJvb2xlYW5cbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBmaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRmlsZSk7XG5cbiAgaWYgKCFmaWxlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IGNhbkRlbGV0ZSA9IGlzRmlsZShmaWxlKSB8fCAoc2hvdWxkRGVsZXRlRW1wdHlGb2xkZXJzID8/IHRydWUpO1xuXG4gIGlmIChpc0ZpbGUoZmlsZSkpIHtcbiAgICBjb25zdCBiYWNrbGlua3MgPSBhd2FpdCBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHAsIGZpbGUpO1xuICAgIGlmIChkZWxldGVkTm90ZVBhdGgpIHtcbiAgICAgIGJhY2tsaW5rcy5jbGVhcihkZWxldGVkTm90ZVBhdGgpO1xuICAgIH1cbiAgICBpZiAoYmFja2xpbmtzLmNvdW50KCkgIT09IDApIHtcbiAgICAgIGlmIChzaG91bGRSZXBvcnRVc2VkQXR0YWNobWVudHMpIHtcbiAgICAgICAgbmV3IE5vdGljZShgQXR0YWNobWVudCAke2ZpbGUucGF0aH0gaXMgc3RpbGwgdXNlZCBieSBvdGhlciBub3Rlcy4gSXQgd2lsbCBub3QgYmUgZGVsZXRlZC5gKTtcbiAgICAgIH1cbiAgICAgIGNhbkRlbGV0ZSA9IGZhbHNlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc0ZvbGRlcihmaWxlKSkge1xuICAgIGNvbnN0IGxpc3RlZEZpbGVzID0gYXdhaXQgbGlzdFNhZmUoYXBwLCBmaWxlKTtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIFsuLi5saXN0ZWRGaWxlcy5maWxlcywgLi4ubGlzdGVkRmlsZXMuZm9sZGVyc10pIHtcbiAgICAgIGNhbkRlbGV0ZSAmJj0gYXdhaXQgZGVsZXRlU2FmZShhcHAsIGNoaWxkLCBkZWxldGVkTm90ZVBhdGgsIHNob3VsZFJlcG9ydFVzZWRBdHRhY2htZW50cyk7XG4gICAgfVxuXG4gICAgY2FuRGVsZXRlICYmPSBhd2FpdCBpc0VtcHR5Rm9sZGVyKGFwcCwgZmlsZSk7XG4gIH1cblxuICBpZiAoY2FuRGVsZXRlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci50cmFzaEZpbGUoZmlsZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGF3YWl0IGFwcC52YXVsdC5leGlzdHMoZmlsZS5wYXRoKSkge1xuICAgICAgICBwcmludEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSAke2ZpbGUucGF0aH1gLCB7IGNhdXNlOiBlIH0pKTtcbiAgICAgICAgY2FuRGVsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhbkRlbGV0ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSxzQkFBdUI7QUFPdkIsbUJBQTJCO0FBQzNCLHdCQUtPO0FBQ1AsMkJBQXdDO0FBQ3hDLG1CQUdPO0FBU1AsZUFBc0IsMkJBQTJCLEtBQVUsY0FBa0Q7QUFDM0csTUFBSSxhQUFTLG1DQUFnQixLQUFLLFlBQVk7QUFFOUMsU0FBTyxRQUFRO0FBQ2IsUUFBSSxDQUFDLFVBQU0sNEJBQWMsS0FBSyxNQUFNLEdBQUc7QUFDckM7QUFBQSxJQUNGO0FBQ0EsVUFBTSxTQUFTLE9BQU87QUFDdEIsVUFBTSxXQUFXLEtBQUssT0FBTyxJQUFJO0FBQ2pDLGFBQVM7QUFBQSxFQUNYO0FBQ0Y7QUFZQSxlQUFzQixXQUNwQixLQUNBLFlBQ0EsaUJBQ0EsNkJBQ0EsMEJBQ2tCO0FBQ2xCLFFBQU0sV0FBTyx5Q0FBc0IsS0FBSyxVQUFVO0FBRWxELE1BQUksQ0FBQyxNQUFNO0FBQ1QsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLGdCQUFZLDBCQUFPLElBQUksTUFBTSw0QkFBNEI7QUFFN0QsVUFBSSwwQkFBTyxJQUFJLEdBQUc7QUFDaEIsVUFBTSxZQUFZLFVBQU0sOENBQXdCLEtBQUssSUFBSTtBQUN6RCxRQUFJLGlCQUFpQjtBQUNuQixnQkFBVSxNQUFNLGVBQWU7QUFBQSxJQUNqQztBQUNBLFFBQUksVUFBVSxNQUFNLE1BQU0sR0FBRztBQUMzQixVQUFJLDZCQUE2QjtBQUMvQixZQUFJLHVCQUFPLGNBQWMsS0FBSyxJQUFJLHdEQUF3RDtBQUFBLE1BQzVGO0FBQ0Esa0JBQVk7QUFBQSxJQUNkO0FBQUEsRUFDRixlQUFXLDRCQUFTLElBQUksR0FBRztBQUN6QixVQUFNLGNBQWMsVUFBTSx1QkFBUyxLQUFLLElBQUk7QUFDNUMsZUFBVyxTQUFTLENBQUMsR0FBRyxZQUFZLE9BQU8sR0FBRyxZQUFZLE9BQU8sR0FBRztBQUNsRSxvQkFBYyxNQUFNLFdBQVcsS0FBSyxPQUFPLGlCQUFpQiwyQkFBMkI7QUFBQSxJQUN6RjtBQUVBLGtCQUFjLFVBQU0sNEJBQWMsS0FBSyxJQUFJO0FBQUEsRUFDN0M7QUFFQSxNQUFJLFdBQVc7QUFDYixRQUFJO0FBQ0YsWUFBTSxJQUFJLFlBQVksVUFBVSxJQUFJO0FBQUEsSUFDdEMsU0FBUyxHQUFHO0FBQ1YsVUFBSSxNQUFNLElBQUksTUFBTSxPQUFPLEtBQUssSUFBSSxHQUFHO0FBQ3JDLHFDQUFXLElBQUksTUFBTSxvQkFBb0IsS0FBSyxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ25FLG9CQUFZO0FBQUEsTUFDZDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -19,6 +19,10 @@ export declare enum CssClass {
19
19
  * The CSS class for the checkbox component.
20
20
  */
21
21
  CheckboxComponent = "checkbox-component",
22
+ /**
23
+ * The CSS class for the code highlighter component.
24
+ */
25
+ CodeHighlighterComponent = "code-highlighter-component",
22
26
  /**
23
27
  * The CSS class for the confirm modal.
24
28
  */
@@ -9,6 +9,7 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
9
9
  CssClass2["AlertModal"] = "alert-modal";
10
10
  CssClass2["CancelButton"] = "cancel-button";
11
11
  CssClass2["CheckboxComponent"] = "checkbox-component";
12
+ CssClass2["CodeHighlighterComponent"] = "code-highlighter-component";
12
13
  CssClass2["ConfirmModal"] = "confirm-modal";
13
14
  CssClass2["DateComponent"] = "date-component";
14
15
  CssClass2["DateTimeComponent"] = "datetime-component";
@@ -44,4 +45,4 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
44
45
  export {
45
46
  CssClass
46
47
  };
47
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL0Nzc0NsYXNzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBDU1MgY2xhc3NlcyB1c2VkIGJ5IHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZW51bSBDc3NDbGFzcyB7XG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgYWxlcnQgbW9kYWwuXG4gICAqL1xuICBBbGVydE1vZGFsID0gJ2FsZXJ0LW1vZGFsJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIGNhbmNlbCBidXR0b24uXG4gICAqL1xuICBDYW5jZWxCdXR0b24gPSAnY2FuY2VsLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBDaGVja2JveENvbXBvbmVudCA9ICdjaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgY29uZmlybSBtb2RhbC5cbiAgICovXG4gIENvbmZpcm1Nb2RhbCA9ICdjb25maXJtLW1vZGFsJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIGRhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgRGF0ZUNvbXBvbmVudCA9ICdkYXRlLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGFuZCB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVUaW1lQ29tcG9uZW50ID0gJ2RhdGV0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBlbWFpbCBjb21wb25lbnQuXG4gICAqL1xuICBFbWFpbENvbXBvbmVudCA9ICdlbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgZmlsZSBjb21wb25lbnQuXG4gICAqL1xuICBGaWxlQ29tcG9uZW50ID0gJ2ZpbGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIGxpYnJhcnkgbmFtZS5cbiAgICovXG4gIExpYnJhcnlOYW1lID0gJ29ic2lkaWFuLWRldi11dGlscycsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBtb250aCBjb21wb25lbnQuXG4gICAqL1xuICBNb250aENvbXBvbmVudCA9ICdtb250aC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCA9ICdtdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVFbWFpbENvbXBvbmVudCA9ICdtdWx0aXBsZS1lbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZmlsZSBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZUZpbGVDb21wb25lbnQgPSAnbXVsdGlwbGUtZmlsZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgdGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZVRleHRDb21wb25lbnQgPSAnbXVsdGlwbGUtdGV4dC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIE51bWJlckNvbXBvbmVudCA9ICdudW1iZXItY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIG9rIGJ1dHRvbi5cbiAgICovXG4gIE9rQnV0dG9uID0gJ29rLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBvdmVybGF5IHZhbGlkYXRvci5cbiAgICovXG4gIE92ZXJsYXlWYWxpZGF0b3IgPSAnb3ZlcmxheS12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgcGFzc3dvcmQgY29tcG9uZW50LlxuICAgKi9cbiAgUGFzc3dvcmRDb21wb25lbnQgPSAncGFzc3dvcmQtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBQbHVnaW5TZXR0aW5nc1RhYiA9ICdwbHVnaW4tc2V0dGluZ3MtdGFiJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAgICovXG4gIFByb21wdE1vZGFsID0gJ3Byb21wdC1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBzZWxlY3QgaXRlbSBtb2RhbC5cbiAgICovXG4gIFNlbGVjdEl0ZW1Nb2RhbCA9ICdzZWxlY3QtaXRlbS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBzZXR0aW5nIGNvbXBvbmVudCB3cmFwcGVyLlxuICAgKi9cbiAgU2V0dGluZ0NvbXBvbmVudFdyYXBwZXIgPSAnc2V0dGluZy1jb21wb25lbnQtd3JhcHBlcicsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0ZWxlcGhvbmUgY29tcG9uZW50LlxuICAgKi9cbiAgVGVsZXBob25lQ29tcG9uZW50ID0gJ3RlbGVwaG9uZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgdGV4dCBib3guXG4gICAqL1xuICBUZXh0Qm94ID0gJ3RleHQtYm94JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHRpbWUgY29tcG9uZW50LlxuICAgKi9cbiAgVGltZUNvbXBvbmVudCA9ICd0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwLlxuICAgKi9cbiAgVG9vbHRpcCA9ICd0b29sdGlwJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAgYXJyb3cuXG4gICAqL1xuICBUb29sdGlwQXJyb3cgPSAndG9vbHRpcC1hcnJvdycsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwIHZhbGlkYXRvci5cbiAgICovXG4gIFRvb2x0aXBWYWxpZGF0b3IgPSAndG9vbHRpcC12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgdHJpLXN0YXRlIGNoZWNrYm94IGNvbXBvbmVudC5cbiAgICovXG4gIFRyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQgPSAndHJpLXN0YXRlLWNoZWNrYm94LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZERyb3Bkb3duQ29tcG9uZW50ID0gJ3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgPSAndHlwZWQtbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHVybCBjb21wb25lbnQuXG4gICAqL1xuICBVcmxDb21wb25lbnQgPSAndXJsLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB3ZWVrIGNvbXBvbmVudC5cbiAgICovXG4gIFdlZWtDb21wb25lbnQgPSAnd2Vlay1jb21wb25lbnQnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBU08sSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBSUwsRUFBQUEsVUFBQSxnQkFBYTtBQUtiLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEscUJBQWtCO0FBS2xCLEVBQUFBLFVBQUEsY0FBVztBQUtYLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsaUJBQWM7QUFLZCxFQUFBQSxVQUFBLHFCQUFrQjtBQUtsQixFQUFBQSxVQUFBLDZCQUEwQjtBQUsxQixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSxvQ0FBaUM7QUFLakMsRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsbUJBQWdCO0FBcEtOLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiQ3NzQ2xhc3MiXQp9Cg==
48
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL0Nzc0NsYXNzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cblxuLyoqXG4gKiBDU1MgY2xhc3NlcyB1c2VkIGJ5IHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZW51bSBDc3NDbGFzcyB7XG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgYWxlcnQgbW9kYWwuXG4gICAqL1xuICBBbGVydE1vZGFsID0gJ2FsZXJ0LW1vZGFsJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIGNhbmNlbCBidXR0b24uXG4gICAqL1xuICBDYW5jZWxCdXR0b24gPSAnY2FuY2VsLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqL1xuICBDaGVja2JveENvbXBvbmVudCA9ICdjaGVja2JveC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgY29kZSBoaWdobGlnaHRlciBjb21wb25lbnQuXG4gICAqL1xuICBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgPSAnY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgY29uZmlybSBtb2RhbC5cbiAgICovXG4gIENvbmZpcm1Nb2RhbCA9ICdjb25maXJtLW1vZGFsJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIGRhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgRGF0ZUNvbXBvbmVudCA9ICdkYXRlLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGFuZCB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVUaW1lQ29tcG9uZW50ID0gJ2RhdGV0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBlbWFpbCBjb21wb25lbnQuXG4gICAqL1xuICBFbWFpbENvbXBvbmVudCA9ICdlbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgZmlsZSBjb21wb25lbnQuXG4gICAqL1xuICBGaWxlQ29tcG9uZW50ID0gJ2ZpbGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIGxpYnJhcnkgbmFtZS5cbiAgICovXG4gIExpYnJhcnlOYW1lID0gJ29ic2lkaWFuLWRldi11dGlscycsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBtb250aCBjb21wb25lbnQuXG4gICAqL1xuICBNb250aENvbXBvbmVudCA9ICdtb250aC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCA9ICdtdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVFbWFpbENvbXBvbmVudCA9ICdtdWx0aXBsZS1lbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZmlsZSBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZUZpbGVDb21wb25lbnQgPSAnbXVsdGlwbGUtZmlsZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgdGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZVRleHRDb21wb25lbnQgPSAnbXVsdGlwbGUtdGV4dC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIE51bWJlckNvbXBvbmVudCA9ICdudW1iZXItY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIG9rIGJ1dHRvbi5cbiAgICovXG4gIE9rQnV0dG9uID0gJ29rLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBvdmVybGF5IHZhbGlkYXRvci5cbiAgICovXG4gIE92ZXJsYXlWYWxpZGF0b3IgPSAnb3ZlcmxheS12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgcGFzc3dvcmQgY29tcG9uZW50LlxuICAgKi9cbiAgUGFzc3dvcmRDb21wb25lbnQgPSAncGFzc3dvcmQtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBQbHVnaW5TZXR0aW5nc1RhYiA9ICdwbHVnaW4tc2V0dGluZ3MtdGFiJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAgICovXG4gIFByb21wdE1vZGFsID0gJ3Byb21wdC1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBzZWxlY3QgaXRlbSBtb2RhbC5cbiAgICovXG4gIFNlbGVjdEl0ZW1Nb2RhbCA9ICdzZWxlY3QtaXRlbS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSBzZXR0aW5nIGNvbXBvbmVudCB3cmFwcGVyLlxuICAgKi9cbiAgU2V0dGluZ0NvbXBvbmVudFdyYXBwZXIgPSAnc2V0dGluZy1jb21wb25lbnQtd3JhcHBlcicsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0ZWxlcGhvbmUgY29tcG9uZW50LlxuICAgKi9cbiAgVGVsZXBob25lQ29tcG9uZW50ID0gJ3RlbGVwaG9uZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgdGV4dCBib3guXG4gICAqL1xuICBUZXh0Qm94ID0gJ3RleHQtYm94JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHRpbWUgY29tcG9uZW50LlxuICAgKi9cbiAgVGltZUNvbXBvbmVudCA9ICd0aW1lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwLlxuICAgKi9cbiAgVG9vbHRpcCA9ICd0b29sdGlwJyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAgYXJyb3cuXG4gICAqL1xuICBUb29sdGlwQXJyb3cgPSAndG9vbHRpcC1hcnJvdycsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0b29sdGlwIHZhbGlkYXRvci5cbiAgICovXG4gIFRvb2x0aXBWYWxpZGF0b3IgPSAndG9vbHRpcC12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIGZvciB0aGUgdHJpLXN0YXRlIGNoZWNrYm94IGNvbXBvbmVudC5cbiAgICovXG4gIFRyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQgPSAndHJpLXN0YXRlLWNoZWNrYm94LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZERyb3Bkb3duQ29tcG9uZW50ID0gJ3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgPSAndHlwZWQtbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50JyxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBmb3IgdGhlIHVybCBjb21wb25lbnQuXG4gICAqL1xuICBVcmxDb21wb25lbnQgPSAndXJsLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgZm9yIHRoZSB3ZWVrIGNvbXBvbmVudC5cbiAgICovXG4gIFdlZWtDb21wb25lbnQgPSAnd2Vlay1jb21wb25lbnQnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBU08sSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBSUwsRUFBQUEsVUFBQSxnQkFBYTtBQUtiLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLDhCQUEyQjtBQUszQixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLFVBQUEscUJBQWtCO0FBS2xCLEVBQUFBLFVBQUEsY0FBVztBQUtYLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsaUJBQWM7QUFLZCxFQUFBQSxVQUFBLHFCQUFrQjtBQUtsQixFQUFBQSxVQUFBLDZCQUEwQjtBQUsxQixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSxvQ0FBaUM7QUFLakMsRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsbUJBQWdCO0FBektOLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiQ3NzQ2xhc3MiXQp9Cg==