obsidian-dev-utils 82.0.0-beta.1 → 82.0.0-beta.10

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 (49) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/lib/cjs/library.cjs +2 -2
  3. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +10 -1
  4. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +3 -0
  5. package/dist/lib/cjs/obsidian/editor-lock.cjs +265 -43
  6. package/dist/lib/cjs/obsidian/editor-lock.d.cts +93 -11
  7. package/dist/lib/cjs/obsidian/editor.cjs +16 -31
  8. package/dist/lib/cjs/obsidian/editor.d.cts +13 -9
  9. package/dist/lib/cjs/obsidian/file-manager.cjs +5 -1
  10. package/dist/lib/cjs/obsidian/file-manager.d.cts +9 -0
  11. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +6 -2
  12. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +4 -0
  13. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +4 -0
  14. package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +4 -1
  15. package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +13 -0
  16. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +3 -1
  17. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
  18. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +2 -0
  19. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +21 -1
  20. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +15 -0
  21. package/dist/lib/cjs/obsidian/vault.cjs +67 -37
  22. package/dist/lib/cjs/obsidian/vault.d.cts +7 -6
  23. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +29 -2
  24. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +4 -0
  25. package/dist/lib/esm/library.mjs +2 -2
  26. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +3 -0
  27. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +10 -1
  28. package/dist/lib/esm/obsidian/editor-lock.d.mts +93 -11
  29. package/dist/lib/esm/obsidian/editor-lock.mjs +270 -48
  30. package/dist/lib/esm/obsidian/editor.d.mts +13 -9
  31. package/dist/lib/esm/obsidian/editor.mjs +17 -30
  32. package/dist/lib/esm/obsidian/file-manager.d.mts +9 -0
  33. package/dist/lib/esm/obsidian/file-manager.mjs +5 -1
  34. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +4 -0
  35. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +6 -2
  36. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +4 -0
  37. package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +13 -0
  38. package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +4 -1
  39. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +3 -1
  40. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +2 -0
  41. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
  42. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +15 -0
  43. package/dist/lib/esm/obsidian/plugin/plugin.mjs +21 -1
  44. package/dist/lib/esm/obsidian/vault.d.mts +7 -6
  45. package/dist/lib/esm/obsidian/vault.mjs +67 -40
  46. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +4 -0
  47. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +33 -3
  48. package/dist/styles.css +20 -1
  49. package/package.json +1 -1
@@ -125,48 +125,33 @@ var __copyProps = (to, from, except, desc) => {
125
125
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
126
  var editor_exports = {};
127
127
  __export(editor_exports, {
128
- lockEditor: () => lockEditor,
129
- unlockEditor: () => unlockEditor
128
+ toggleEditorReadOnly: () => toggleEditorReadOnly
130
129
  });
131
130
  module.exports = __toCommonJS(editor_exports);
132
131
  var import_state = require('@codemirror/state');
133
- var import_view = require('@codemirror/view');
134
- var import_disposable = require('../disposable.cjs');
135
- const editorCompartmentMap = /* @__PURE__ */ new WeakMap();
136
- function lockEditor(editor) {
132
+ var import_object_utils = require('../object-utils.cjs');
133
+ const compartmentByCodeMirror = /* @__PURE__ */ new WeakMap();
134
+ function toggleEditorReadOnly(editor, isReadOnly) {
137
135
  const compartment = ensureCompartment(editor);
138
136
  editor.cm.dispatch({
139
- effects: compartment.reconfigure([
140
- import_state.EditorState.readOnly.of(true),
141
- import_view.EditorView.editable.of(false)
142
- ])
143
- });
144
- return new import_disposable.CallbackDisposable({
145
- callback: () => {
146
- unlockEditor(editor);
147
- }
148
- });
149
- }
150
- function unlockEditor(editor) {
151
- const compartment = ensureCompartment(editor);
152
- editor.cm.dispatch({
153
- effects: compartment.reconfigure([
154
- import_state.EditorState.readOnly.of(false),
155
- import_view.EditorView.editable.of(true)
156
- ])
137
+ effects: compartment.reconfigure(isReadOnly ? import_state.EditorState.readOnly.of(true) : [])
157
138
  });
158
139
  }
159
140
  function ensureCompartment(editor) {
160
- let compartment = editorCompartmentMap.get(editor);
161
- if (!compartment) {
162
- compartment = new import_state.Compartment();
163
- editorCompartmentMap.set(editor, compartment);
141
+ const codeMirror = editor.cm;
142
+ const cachedCompartment = compartmentByCodeMirror.get(codeMirror);
143
+ if (cachedCompartment?.get((0, import_object_utils.castTo)(codeMirror.state)) !== void 0) {
144
+ return cachedCompartment;
164
145
  }
146
+ const compartment = new import_state.Compartment();
147
+ compartmentByCodeMirror.set(codeMirror, compartment);
148
+ codeMirror.dispatch({
149
+ effects: import_state.StateEffect.appendConfig.of(compartment.of([]))
150
+ });
165
151
  return compartment;
166
152
  }
167
153
  // Annotate the CommonJS export names for ESM import in node:
168
154
  0 && (module.exports = {
169
- lockEditor,
170
- unlockEditor
155
+ toggleEditorReadOnly
171
156
  });
172
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2VkaXRvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggbWFya2Rvd24gZWRpdG9ycyBpbiBPYnNpZGlhblxuICovXG5cbmltcG9ydCB0eXBlIHsgRWRpdG9yIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBDb21wYXJ0bWVudCxcbiAgRWRpdG9yU3RhdGVcbn0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuXG5pbXBvcnQgeyBDYWxsYmFja0Rpc3Bvc2FibGUgfSBmcm9tICcuLi9kaXNwb3NhYmxlLnRzJztcblxuY29uc3QgZWRpdG9yQ29tcGFydG1lbnRNYXAgPSBuZXcgV2Vha01hcDxFZGl0b3IsIENvbXBhcnRtZW50PigpO1xuXG4vKipcbiAqIExvY2tzIHRoZSBlZGl0b3IuXG4gKlxuICogQHBhcmFtIGVkaXRvciAtIFRoZSBlZGl0b3IgdG8gbG9jay5cbiAqIEByZXR1cm5zIEEge0BsaW5rIERpc3Bvc2FibGV9IHRoYXQgdW5sb2NrcyB0aGUgZWRpdG9yIHdoZW4gZGlzcG9zZWQsIGZvciB1c2Ugd2l0aCBgdXNpbmdgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9ja0VkaXRvcihlZGl0b3I6IEVkaXRvcik6IERpc3Bvc2FibGUge1xuICBjb25zdCBjb21wYXJ0bWVudCA9IGVuc3VyZUNvbXBhcnRtZW50KGVkaXRvcik7XG4gIGVkaXRvci5jbS5kaXNwYXRjaCh7XG4gICAgZWZmZWN0czogY29tcGFydG1lbnQucmVjb25maWd1cmUoW1xuICAgICAgRWRpdG9yU3RhdGUucmVhZE9ubHkub2YodHJ1ZSksXG4gICAgICBFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGZhbHNlKVxuICAgIF0pXG4gIH0pO1xuICByZXR1cm4gbmV3IENhbGxiYWNrRGlzcG9zYWJsZSh7XG4gICAgY2FsbGJhY2s6ICgpOiB2b2lkID0+IHtcbiAgICAgIHVubG9ja0VkaXRvcihlZGl0b3IpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogVW5sb2NrcyB0aGUgZWRpdG9yLlxuICpcbiAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIHRvIHVubG9jay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVubG9ja0VkaXRvcihlZGl0b3I6IEVkaXRvcik6IHZvaWQge1xuICBjb25zdCBjb21wYXJ0bWVudCA9IGVuc3VyZUNvbXBhcnRtZW50KGVkaXRvcik7XG4gIGVkaXRvci5jbS5kaXNwYXRjaCh7XG4gICAgZWZmZWN0czogY29tcGFydG1lbnQucmVjb25maWd1cmUoW1xuICAgICAgRWRpdG9yU3RhdGUucmVhZE9ubHkub2YoZmFsc2UpLFxuICAgICAgRWRpdG9yVmlldy5lZGl0YWJsZS5vZih0cnVlKVxuICAgIF0pXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVDb21wYXJ0bWVudChlZGl0b3I6IEVkaXRvcik6IENvbXBhcnRtZW50IHtcbiAgbGV0IGNvbXBhcnRtZW50ID0gZWRpdG9yQ29tcGFydG1lbnRNYXAuZ2V0KGVkaXRvcik7XG4gIGlmICghY29tcGFydG1lbnQpIHtcbiAgICBjb21wYXJ0bWVudCA9IG5ldyBDb21wYXJ0bWVudCgpO1xuICAgIGVkaXRvckNvbXBhcnRtZW50TWFwLnNldChlZGl0b3IsIGNvbXBhcnRtZW50KTtcbiAgfVxuICByZXR1cm4gY29tcGFydG1lbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLG1CQUdPO0FBQ1Asa0JBQTJCO0FBRTNCLHdCQUFtQztBQUVuQyxNQUFNLHVCQUF1QixvQkFBSSxRQUE2QjtBQVF2RCxTQUFTLFdBQVcsUUFBNEI7QUFDckQsUUFBTSxjQUFjLGtCQUFrQixNQUFNO0FBQzVDLFNBQU8sR0FBRyxTQUFTO0FBQUEsSUFDakIsU0FBUyxZQUFZLFlBQVk7QUFBQSxNQUMvQix5QkFBWSxTQUFTLEdBQUcsSUFBSTtBQUFBLE1BQzVCLHVCQUFXLFNBQVMsR0FBRyxLQUFLO0FBQUEsSUFDOUIsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNELFNBQU8sSUFBSSxxQ0FBbUI7QUFBQSxJQUM1QixVQUFVLE1BQVk7QUFDcEIsbUJBQWEsTUFBTTtBQUFBLElBQ3JCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPTyxTQUFTLGFBQWEsUUFBc0I7QUFDakQsUUFBTSxjQUFjLGtCQUFrQixNQUFNO0FBQzVDLFNBQU8sR0FBRyxTQUFTO0FBQUEsSUFDakIsU0FBUyxZQUFZLFlBQVk7QUFBQSxNQUMvQix5QkFBWSxTQUFTLEdBQUcsS0FBSztBQUFBLE1BQzdCLHVCQUFXLFNBQVMsR0FBRyxJQUFJO0FBQUEsSUFDN0IsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNIO0FBRUEsU0FBUyxrQkFBa0IsUUFBNkI7QUFDdEQsTUFBSSxjQUFjLHFCQUFxQixJQUFJLE1BQU07QUFDakQsTUFBSSxDQUFDLGFBQWE7QUFDaEIsa0JBQWMsSUFBSSx5QkFBWTtBQUM5Qix5QkFBcUIsSUFBSSxRQUFRLFdBQVc7QUFBQSxFQUM5QztBQUNBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
157
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2VkaXRvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggbWFya2Rvd24gZWRpdG9ycyBpbiBPYnNpZGlhblxuICovXG5cbmltcG9ydCB0eXBlIHsgRWRpdG9yIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBDb21wYXJ0bWVudCxcbiAgRWRpdG9yU3RhdGUsXG4gIFN0YXRlRWZmZWN0XG59IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcblxuaW1wb3J0IHsgY2FzdFRvIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcblxuY29uc3QgY29tcGFydG1lbnRCeUNvZGVNaXJyb3IgPSBuZXcgV2Vha01hcDxFZGl0b3JbJ2NtJ10sIENvbXBhcnRtZW50PigpO1xuXG4vKipcbiAqIFRvZ2dsZXMgdGhlIHJlYWQtb25seSBzdGF0ZSBvZiBhIHNpbmdsZSBDb2RlTWlycm9yIGluc3RhbmNlIFx1MjAxNCB0aGUgbG93LWxldmVsIHByaW1pdGl2ZSBiZWhpbmRcbiAqIGVkaXRvciBsb2NraW5nLlxuICpcbiAqIFdoZW4gcmVhZC1vbmx5LCB0aGUgZWRpdG9yIHN0YXlzIGZvY3VzYWJsZSBhbmQgaW50ZXJhY3RpdmUgKHNlbGVjdGlvbiwgY29weSwgYW5kIGFwcCBob3RrZXlzIHN1Y2hcbiAqIGFzIHRoZSBjb21tYW5kIHBhbGV0dGUga2VlcCB3b3JraW5nKSBcdTIwMTQgb25seSBkb2N1bWVudCBlZGl0cyBhcmUgcHJldmVudGVkLCB2aWEgdGhlIENvZGVNaXJyb3JcbiAqIGByZWFkT25seWAgc3RhdGUuXG4gKlxuICogVGhpcyB0b2dnbGVzIE9ORSBDb2RlTWlycm9yIGluc3RhbmNlLCBub3QgXCJhIGZpbGVcIjogYW4gT2JzaWRpYW4ge0BsaW5rIEVkaXRvcn0gaXMgcmV1c2VkIGFzIGl0c1xuICogbGVhZiBuYXZpZ2F0ZXMgYmV0d2VlbiBub3Rlcywgc28gdGhpcyBwcmltaXRpdmUgZG9lcyBub3QgZm9sbG93IGEgbm90ZSBhcm91bmQuIFRvIGxvY2sgYSBub3RlXG4gKiBhY3Jvc3MgZXZlcnkgZWRpdG9yIHRoYXQgc2hvd3MgaXQgKGN1cnJlbnQgYW5kIGZ1dHVyZSwgaW4gYW55IHdpbmRvdyksIHVzZSBgbG9ja0VkaXRvckZvclBhdGhgXG4gKiBmcm9tIGAuL2VkaXRvci1sb2NrLnRzYC5cbiAqXG4gKiBAcGFyYW0gZWRpdG9yIC0gVGhlIGVkaXRvciB3aG9zZSBDb2RlTWlycm9yIGluc3RhbmNlIHRvIHRvZ2dsZS5cbiAqIEBwYXJhbSBpc1JlYWRPbmx5IC0gYHRydWVgIHRvIG1ha2UgdGhlIGVkaXRvciByZWFkLW9ubHksIGBmYWxzZWAgdG8gbWFrZSBpdCBlZGl0YWJsZSBhZ2Fpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUVkaXRvclJlYWRPbmx5KGVkaXRvcjogRWRpdG9yLCBpc1JlYWRPbmx5OiBib29sZWFuKTogdm9pZCB7XG4gIGNvbnN0IGNvbXBhcnRtZW50ID0gZW5zdXJlQ29tcGFydG1lbnQoZWRpdG9yKTtcbiAgZWRpdG9yLmNtLmRpc3BhdGNoKHtcbiAgICBlZmZlY3RzOiBjb21wYXJ0bWVudC5yZWNvbmZpZ3VyZShpc1JlYWRPbmx5ID8gRWRpdG9yU3RhdGUucmVhZE9ubHkub2YodHJ1ZSkgOiBbXSlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGVuc3VyZUNvbXBhcnRtZW50KGVkaXRvcjogRWRpdG9yKTogQ29tcGFydG1lbnQge1xuICAvLyBLZXkgdGhlIGNhY2hlIGJ5IHRoZSBDb2RlTWlycm9yIGluc3RhbmNlLCBub3QgYnkgdGhlIGBFZGl0b3JgIHdyYXBwZXIuXG4gIC8vIEFuIGBFZGl0b3JgIGtlZXBzIGl0cyBpZGVudGl0eSB3aGlsZSBpdHMgdW5kZXJseWluZyBDb2RlTWlycm9yIHZpZXcgaXMgc3dhcHBlZCBvdXQuXG4gIGNvbnN0IGNvZGVNaXJyb3IgPSBlZGl0b3IuY207XG4gIGNvbnN0IGNhY2hlZENvbXBhcnRtZW50ID0gY29tcGFydG1lbnRCeUNvZGVNaXJyb3IuZ2V0KGNvZGVNaXJyb3IpO1xuICAvLyBSZXVzZSB0aGUgY2FjaGVkIGNvbXBhcnRtZW50IG9ubHkgd2hpbGUgaXQgaXMgc3RpbGwgcGFydCBvZiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICAvLyBBIHZpZXcgY2FuIHNpbGVudGx5IGRyb3AgYW4gYXBwZW5kZWQgY29tcGFydG1lbnQgd2hlbiBpdCByZWJ1aWxkcyBpdHMgc3RhdGUuXG4gIC8vIE9wZW5pbmcgYSBub3RlIGludG8gYSBmcmVzaGx5IGNyZWF0ZWQgbGVhZiBkb2VzIHRoaXM6IGl0IGluc3RhbGxzIHRoZSBjb21wYXJ0bWVudCBtaWQtb3Blbi5cbiAgLy8gVGhlIHN1YnNlcXVlbnQgbG9hZCB0aGVuIHJlcGxhY2VzIHRoZSB3aG9sZSBzdGF0ZSwgdGFraW5nIHRoZSBjb21wYXJ0bWVudCB3aXRoIGl0LlxuICAvLyBUaGVuIGBDb21wYXJ0bWVudC5nZXRgIHJldHVybnMgYHVuZGVmaW5lZGAsIHNpbmNlIHRoZSBjb21wYXJ0bWVudCBpcyBubyBsb25nZXIgY29uZmlndXJlZC5cbiAgLy8gUmUtaW5zdGFsbCBpdCBpbiB0aGF0IGNhc2UsIG9yIGV2ZXJ5IGxhdGVyIGByZWNvbmZpZ3VyZWAgaXMgc2lsZW50bHkgaWdub3JlZCBhbmQgbm90aGluZyBsb2Nrcy5cbiAgLy8gVGhlIGBjYXN0VG9gIGJyaWRnZXMgdGhlIGR1YWwgQ29tbW9uSlMgYW5kIEVTTSBgRWRpdG9yU3RhdGVgIGRlY2xhcmF0aW9ucyBvZiBgQGNvZGVtaXJyb3Ivc3RhdGVgLlxuICAvLyBUaGV5IGFyZSBzdHJ1Y3R1cmFsbHkgaWRlbnRpY2FsLCBidXQgVHlwZVNjcmlwdCB0cmVhdHMgdGhlbSBhcyBub21pbmFsbHkgaW5jb21wYXRpYmxlLlxuICBpZiAoY2FjaGVkQ29tcGFydG1lbnQ/LmdldChjYXN0VG88RWRpdG9yU3RhdGU+KGNvZGVNaXJyb3Iuc3RhdGUpKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNhY2hlZENvbXBhcnRtZW50O1xuICB9XG5cbiAgY29uc3QgY29tcGFydG1lbnQgPSBuZXcgQ29tcGFydG1lbnQoKTtcbiAgY29tcGFydG1lbnRCeUNvZGVNaXJyb3Iuc2V0KGNvZGVNaXJyb3IsIGNvbXBhcnRtZW50KTtcbiAgLy8gQSBgQ29tcGFydG1lbnRgIG9ubHkgdGFrZXMgZWZmZWN0IG9uY2UgaXQgaXMgcGFydCBvZiB0aGUgZWRpdG9yJ3MgY29uZmlndXJhdGlvbi5cbiAgLy8gVGhlIGNvbXBhcnRtZW50IGlzIGNyZWF0ZWQgbGF6aWx5IGhlcmUsIHNvIGluc3RhbGwgaXQgKGluaXRpYWxseSBlbXB0eSkgdmlhIGBhcHBlbmRDb25maWdgLlxuICBjb2RlTWlycm9yLmRpc3BhdGNoKHtcbiAgICBlZmZlY3RzOiBTdGF0ZUVmZmVjdC5hcHBlbmRDb25maWcub2YoY29tcGFydG1lbnQub2YoW10pKVxuICB9KTtcbiAgcmV0dXJuIGNvbXBhcnRtZW50O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsbUJBSU87QUFFUCwwQkFBdUI7QUFFdkIsTUFBTSwwQkFBMEIsb0JBQUksUUFBbUM7QUFrQmhFLFNBQVMscUJBQXFCLFFBQWdCLFlBQTJCO0FBQzlFLFFBQU0sY0FBYyxrQkFBa0IsTUFBTTtBQUM1QyxTQUFPLEdBQUcsU0FBUztBQUFBLElBQ2pCLFNBQVMsWUFBWSxZQUFZLGFBQWEseUJBQVksU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7QUFBQSxFQUNsRixDQUFDO0FBQ0g7QUFFQSxTQUFTLGtCQUFrQixRQUE2QjtBQUd0RCxRQUFNLGFBQWEsT0FBTztBQUMxQixRQUFNLG9CQUFvQix3QkFBd0IsSUFBSSxVQUFVO0FBU2hFLE1BQUksbUJBQW1CLFFBQUksNEJBQW9CLFdBQVcsS0FBSyxDQUFDLE1BQU0sUUFBVztBQUMvRSxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sY0FBYyxJQUFJLHlCQUFZO0FBQ3BDLDBCQUF3QixJQUFJLFlBQVksV0FBVztBQUduRCxhQUFXLFNBQVM7QUFBQSxJQUNsQixTQUFTLHlCQUFZLGFBQWEsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFBQSxFQUN6RCxDQUFDO0FBQ0QsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -6,15 +6,19 @@
6
6
  */
7
7
  import type { Editor } from 'obsidian' with { 'resolution-mode': 'import' };
8
8
  /**
9
- * Locks the editor.
9
+ * Toggles the read-only state of a single CodeMirror instance — the low-level primitive behind
10
+ * editor locking.
10
11
  *
11
- * @param editor - The editor to lock.
12
- * @returns A {@link Disposable} that unlocks the editor when disposed, for use with `using`.
13
- */
14
- export declare function lockEditor(editor: Editor): Disposable;
15
- /**
16
- * Unlocks the editor.
12
+ * When read-only, the editor stays focusable and interactive (selection, copy, and app hotkeys such
13
+ * as the command palette keep working) only document edits are prevented, via the CodeMirror
14
+ * `readOnly` state.
15
+ *
16
+ * This toggles ONE CodeMirror instance, not "a file": an Obsidian {@link Editor} is reused as its
17
+ * leaf navigates between notes, so this primitive does not follow a note around. To lock a note
18
+ * across every editor that shows it (current and future, in any window), use `lockEditorForPath`
19
+ * from `./editor-lock.ts`.
17
20
  *
18
- * @param editor - The editor to unlock.
21
+ * @param editor - The editor whose CodeMirror instance to toggle.
22
+ * @param isReadOnly - `true` to make the editor read-only, `false` to make it editable again.
19
23
  */
20
- export declare function unlockEditor(editor: Editor): void;
24
+ export declare function toggleEditorReadOnly(editor: Editor, isReadOnly: boolean): void;
@@ -138,6 +138,7 @@ async function addAlias(params) {
138
138
  const {
139
139
  alias,
140
140
  app,
141
+ editorLockComponent,
141
142
  pathOrFile
142
143
  } = params;
143
144
  if (!alias) {
@@ -152,6 +153,7 @@ async function addAlias(params) {
152
153
  }
153
154
  await processFrontmatter({
154
155
  app,
156
+ editorLockComponent,
155
157
  frontmatterFn: (frontmatter) => {
156
158
  frontmatter.aliases ??= [];
157
159
  if (!frontmatter.aliases.includes(alias)) {
@@ -165,6 +167,7 @@ async function deleteAlias(params) {
165
167
  const {
166
168
  alias,
167
169
  app,
170
+ editorLockComponent,
168
171
  pathOrFile
169
172
  } = params;
170
173
  if (!alias) {
@@ -175,6 +178,7 @@ async function deleteAlias(params) {
175
178
  }
176
179
  await processFrontmatter({
177
180
  app,
181
+ editorLockComponent,
178
182
  frontmatterFn: (frontmatter) => {
179
183
  if (!frontmatter.aliases) {
180
184
  return;
@@ -223,4 +227,4 @@ async function processFrontmatter(params) {
223
227
  deleteAlias,
224
228
  processFrontmatter
225
229
  });
226
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2ZpbGUtbWFuYWdlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBmaWxlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICcuLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuaW1wb3J0IHR5cGUgeyBDb21iaW5lZEZyb250bWF0dGVyIH0gZnJvbSAnLi9mcm9udG1hdHRlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFByb2Nlc3NPcHRpb25zLFxuICBQcm9jZXNzUGFyYW1zXG59IGZyb20gJy4vdmF1bHQudHMnO1xuXG5pbXBvcnQge1xuICBkZWVwRXF1YWwsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllc1xufSBmcm9tICcuLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0UGF0aCxcbiAgaXNNYXJrZG93bkZpbGVcbn0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBwYXJzZUZyb250bWF0dGVyLFxuICBzZXRGcm9udG1hdHRlclxufSBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL3ZhdWx0LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYWRkQWxpYXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZEFsaWFzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBhbGlhcyB0byBhZGQuXG4gICAqL1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZGVsZXRlQWxpYXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUFsaWFzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBhbGlhcyB0byBkZWxldGUuXG4gICAqL1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcHJvY2Vzc0Zyb250bWF0dGVyfS5cbiAqL1xuZXhwb3J0IHR5cGUgUHJvY2Vzc0Zyb250bWF0dGVyT3B0aW9ucyA9IFByb2Nlc3NPcHRpb25zO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBwcm9jZXNzRnJvbnRtYXR0ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NGcm9udG1hdHRlclBhcmFtczxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+IGV4dGVuZHMgUHJvY2Vzc0Zyb250bWF0dGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyB0aGUgZnJvbnQgbWF0dGVyLlxuICAgKlxuICAgKiBAcGFyYW0gZnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnQgbWF0dGVyIHRvIG1vZGlmeS5cbiAgICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBsaXN0ZW4gdG8uXG4gICAqIEByZXR1cm5zIEEgdmFsdWUgdGhhdCBtYXkgYmUgYG51bGxgIHRvIGFib3J0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgZnJvbnRtYXR0ZXJGbih0aGlzOiB2b2lkLCBmcm9udG1hdHRlcjogQ29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4sIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2FibGU8TWF5YmVSZXR1cm48bnVsbD4+O1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGFsaWFzIHRvIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBmaWxlIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBhZGRpbmcgdGhlIGFsaWFzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhbGlhcyBoYXMgYmVlbiBhZGRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZEFsaWFzKHBhcmFtczogQWRkQWxpYXNQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGFsaWFzLFxuICAgIGFwcCxcbiAgICBwYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGlmICghYWxpYXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmaWxlID0gZ2V0RmlsZSh7IGFwcCwgcGF0aE9yRmlsZSB9KTtcblxuICBpZiAoIWlzTWFya2Rvd25GaWxlKGZpbGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlICR7ZmlsZS5wYXRofSBpcyBub3QgYSBtYXJrZG93biBmaWxlLmApO1xuICB9XG5cbiAgaWYgKGFsaWFzID09PSBmaWxlLmJhc2VuYW1lIHx8IGFsaWFzID09PSBmaWxlLm5hbWUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBwcm9jZXNzRnJvbnRtYXR0ZXIoe1xuICAgIGFwcCxcbiAgICBmcm9udG1hdHRlckZuOiAoZnJvbnRtYXR0ZXIpID0+IHtcbiAgICAgIGZyb250bWF0dGVyLmFsaWFzZXMgPz89IFtdO1xuXG4gICAgICBpZiAoIWZyb250bWF0dGVyLmFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XG4gICAgICAgIGZyb250bWF0dGVyLmFsaWFzZXMucHVzaChhbGlhcyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXRoT3JGaWxlXG4gIH0pO1xufVxuXG4vKipcbiAqIERlbGV0ZXMgYW4gYWxpYXMgZnJvbSB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gZmlsZSBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWxldGluZyB0aGUgYWxpYXMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFsaWFzIGhhcyBiZWVuIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGlhcyhwYXJhbXM6IERlbGV0ZUFsaWFzUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhbGlhcyxcbiAgICBhcHAsXG4gICAgcGF0aE9yRmlsZVxuICB9ID0gcGFyYW1zO1xuICBpZiAoIWFsaWFzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFpc01hcmtkb3duRmlsZShwYXRoT3JGaWxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSAke2dldFBhdGgoYXBwLCBwYXRoT3JGaWxlKX0gaXMgbm90IGEgbWFya2Rvd24gZmlsZS5gKTtcbiAgfVxuXG4gIGF3YWl0IHByb2Nlc3NGcm9udG1hdHRlcih7XG4gICAgYXBwLFxuICAgIGZyb250bWF0dGVyRm46IChmcm9udG1hdHRlcikgPT4ge1xuICAgICAgaWYgKCFmcm9udG1hdHRlci5hbGlhc2VzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZnJvbnRtYXR0ZXIuYWxpYXNlcyA9IGZyb250bWF0dGVyLmFsaWFzZXMuZmlsdGVyKChhKSA9PiBhICE9PSBhbGlhcyk7XG5cbiAgICAgIGlmIChmcm9udG1hdHRlci5hbGlhc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkZWxldGUgZnJvbnRtYXR0ZXIuYWxpYXNlcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHBhdGhPckZpbGVcbiAgfSk7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBmaWxlLCBhbGxvd2luZyBtb2RpZmljYXRpb25zIHZpYSBhIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBwcm9jZXNzaW5nIHRoZSBmcm9udCBtYXR0ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZyb250IG1hdHRlciBoYXMgYmVlbiBwcm9jZXNzZWQgYW5kIHNhdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0Zyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4ocGFyYW1zOiBQcm9jZXNzRnJvbnRtYXR0ZXJQYXJhbXM8Q3VzdG9tRnJvbnRtYXR0ZXI+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgZnJvbnRtYXR0ZXJGbixcbiAgICBwYXRoT3JGaWxlLFxuICAgIC4uLm9wdGlvbnNcbiAgfSA9IHBhcmFtcztcbiAgaWYgKCFpc01hcmtkb3duRmlsZShwYXRoT3JGaWxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSAke2dldFBhdGgoYXBwLCBwYXRoT3JGaWxlKX0gaXMgbm90IGEgbWFya2Rvd24gZmlsZS5gKTtcbiAgfVxuXG4gIGF3YWl0IHByb2Nlc3Mobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFByb2Nlc3NQYXJhbXM+KHtcbiAgICBhcHAsXG4gICAgYXN5bmMgbmV3Q29udGVudFByb3ZpZGVyKHsgYWJvcnRTaWduYWwsIGNvbnRlbnQgfSkge1xuICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICAgICAgY29uc3Qgb2xkRnJvbnRtYXR0ZXIgPSBwYXJzZUZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPihjb250ZW50KTtcbiAgICAgIGNvbnN0IG5ld0Zyb250bWF0dGVyID0gcGFyc2VGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4oY29udGVudCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmcm9udG1hdHRlckZuKG5ld0Zyb250bWF0dGVyLCBhYm9ydFNpZ25hbCk7XG4gICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVlcEVxdWFsKG9sZEZyb250bWF0dGVyLCBuZXdGcm9udG1hdHRlcikpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZXRGcm9udG1hdHRlcihjb250ZW50LCBuZXdGcm9udG1hdHRlcik7XG4gICAgfSxcbiAgICBwYXRoT3JGaWxlLFxuICAgIC4uLm9wdGlvbnNcbiAgfSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSwwQkFHTztBQUNQLHlCQUlPO0FBQ1AseUJBR087QUFDUCxtQkFBd0I7QUErRXhCLGVBQXNCLFNBQVMsUUFBdUM7QUFDcEUsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksQ0FBQyxPQUFPO0FBQ1Y7QUFBQSxFQUNGO0FBRUEsUUFBTSxXQUFPLDRCQUFRLEVBQUUsS0FBSyxXQUFXLENBQUM7QUFFeEMsTUFBSSxLQUFDLG1DQUFlLElBQUksR0FBRztBQUN6QixVQUFNLElBQUksTUFBTSxRQUFRLEtBQUssSUFBSSwwQkFBMEI7QUFBQSxFQUM3RDtBQUVBLE1BQUksVUFBVSxLQUFLLFlBQVksVUFBVSxLQUFLLE1BQU07QUFDbEQ7QUFBQSxFQUNGO0FBRUEsUUFBTSxtQkFBbUI7QUFBQSxJQUN2QjtBQUFBLElBQ0EsZUFBZSxDQUFDLGdCQUFnQjtBQUM5QixrQkFBWSxZQUFZLENBQUM7QUFFekIsVUFBSSxDQUFDLFlBQVksUUFBUSxTQUFTLEtBQUssR0FBRztBQUN4QyxvQkFBWSxRQUFRLEtBQUssS0FBSztBQUFBLE1BQ2hDO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUM7QUFDSDtBQVFBLGVBQXNCLFlBQVksUUFBMEM7QUFDMUUsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksQ0FBQyxPQUFPO0FBQ1Y7QUFBQSxFQUNGO0FBRUEsTUFBSSxLQUFDLG1DQUFlLFVBQVUsR0FBRztBQUMvQixVQUFNLElBQUksTUFBTSxZQUFRLDRCQUFRLEtBQUssVUFBVSxDQUFDLDBCQUEwQjtBQUFBLEVBQzVFO0FBRUEsUUFBTSxtQkFBbUI7QUFBQSxJQUN2QjtBQUFBLElBQ0EsZUFBZSxDQUFDLGdCQUFnQjtBQUM5QixVQUFJLENBQUMsWUFBWSxTQUFTO0FBQ3hCO0FBQUEsTUFDRjtBQUVBLGtCQUFZLFVBQVUsWUFBWSxRQUFRLE9BQU8sQ0FBQyxNQUFNLE1BQU0sS0FBSztBQUVuRSxVQUFJLFlBQVksUUFBUSxXQUFXLEdBQUc7QUFDcEMsZUFBTyxZQUFZO0FBQUEsTUFDckI7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBU0EsZUFBc0IsbUJBQWdELFFBQW9FO0FBQ3hJLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUc7QUFBQSxFQUNMLElBQUk7QUFDSixNQUFJLEtBQUMsbUNBQWUsVUFBVSxHQUFHO0FBQy9CLFVBQU0sSUFBSSxNQUFNLFlBQVEsNEJBQVEsS0FBSyxVQUFVLENBQUMsMEJBQTBCO0FBQUEsRUFDNUU7QUFFQSxZQUFNLDBCQUFRLGlEQUEyQztBQUFBLElBQ3ZEO0FBQUEsSUFDQSxNQUFNLG1CQUFtQixFQUFFLGFBQWEsUUFBUSxHQUFHO0FBQ2pELGtCQUFZLGVBQWU7QUFFM0IsWUFBTSxxQkFBaUIscUNBQW9DLE9BQU87QUFDbEUsWUFBTSxxQkFBaUIscUNBQW9DLE9BQU87QUFDbEUsWUFBTSxTQUFTLE1BQU0sY0FBYyxnQkFBZ0IsV0FBVztBQUM5RCxrQkFBWSxlQUFlO0FBRTNCLFVBQUksV0FBVyxNQUFNO0FBQ25CLGVBQU87QUFBQSxNQUNUO0FBRUEsY0FBSSwrQkFBVSxnQkFBZ0IsY0FBYyxHQUFHO0FBQzdDLGVBQU87QUFBQSxNQUNUO0FBRUEsaUJBQU8sbUNBQWUsU0FBUyxjQUFjO0FBQUEsSUFDL0M7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHO0FBQUEsRUFDTCxDQUFDLENBQUM7QUFDSjsiLAogICJuYW1lcyI6IFtdCn0K
230
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2ZpbGUtbWFuYWdlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBmaWxlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICcuLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHsgRWRpdG9yTG9ja0NvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9yLWxvY2sudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRtYXR0ZXIgfSBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgUHJvY2Vzc09wdGlvbnMsXG4gIFByb2Nlc3NQYXJhbXNcbn0gZnJvbSAnLi92YXVsdC50cyc7XG5cbmltcG9ydCB7XG4gIGRlZXBFcXVhbCxcbiAgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzXG59IGZyb20gJy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoLFxuICBpc01hcmtkb3duRmlsZVxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7XG4gIHBhcnNlRnJvbnRtYXR0ZXIsXG4gIHNldEZyb250bWF0dGVyXG59IGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuaW1wb3J0IHsgcHJvY2VzcyB9IGZyb20gJy4vdmF1bHQudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBhZGRBbGlhc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQWxpYXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGFsaWFzIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0b3ItbG9jayBjb21wb25lbnQgdXNlZCB0byBsb2NrIHRoZSBub3RlIHdoaWxlIGl0IGlzIGJlaW5nIG1vZGlmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTG9ja0NvbXBvbmVudDogRWRpdG9yTG9ja0NvbXBvbmVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBkZWxldGVBbGlhc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlQWxpYXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGFsaWFzIHRvIGRlbGV0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0b3ItbG9jayBjb21wb25lbnQgdXNlZCB0byBsb2NrIHRoZSBub3RlIHdoaWxlIGl0IGlzIGJlaW5nIG1vZGlmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTG9ja0NvbXBvbmVudDogRWRpdG9yTG9ja0NvbXBvbmVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9jZXNzRnJvbnRtYXR0ZXJ9LlxuICovXG5leHBvcnQgdHlwZSBQcm9jZXNzRnJvbnRtYXR0ZXJPcHRpb25zID0gUHJvY2Vzc09wdGlvbnM7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHByb2Nlc3NGcm9udG1hdHRlcn0uXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udG1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0Zyb250bWF0dGVyUGFyYW1zPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4gZXh0ZW5kcyBQcm9jZXNzRnJvbnRtYXR0ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBmcm9udCBtYXR0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9udG1hdHRlciAtIFRoZSBmcm9udCBtYXR0ZXIgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGxpc3RlbiB0by5cbiAgICogQHJldHVybnMgQSB2YWx1ZSB0aGF0IG1heSBiZSBgbnVsbGAgdG8gYWJvcnQgdGhlIHByb2Nlc3MuXG4gICAqL1xuICBmcm9udG1hdHRlckZuKHRoaXM6IHZvaWQsIGZyb250bWF0dGVyOiBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiwgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzYWJsZTxNYXliZVJldHVybjxudWxsPj47XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYWxpYXMgdG8gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGFkZGluZyB0aGUgYWxpYXMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFsaWFzIGhhcyBiZWVuIGFkZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQWxpYXMocGFyYW1zOiBBZGRBbGlhc1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYWxpYXMsXG4gICAgYXBwLFxuICAgIGVkaXRvckxvY2tDb21wb25lbnQsXG4gICAgcGF0aE9yRmlsZVxuICB9ID0gcGFyYW1zO1xuICBpZiAoIWFsaWFzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoeyBhcHAsIHBhdGhPckZpbGUgfSk7XG5cbiAgaWYgKCFpc01hcmtkb3duRmlsZShmaWxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSAke2ZpbGUucGF0aH0gaXMgbm90IGEgbWFya2Rvd24gZmlsZS5gKTtcbiAgfVxuXG4gIGlmIChhbGlhcyA9PT0gZmlsZS5iYXNlbmFtZSB8fCBhbGlhcyA9PT0gZmlsZS5uYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgcHJvY2Vzc0Zyb250bWF0dGVyKHtcbiAgICBhcHAsXG4gICAgZWRpdG9yTG9ja0NvbXBvbmVudCxcbiAgICBmcm9udG1hdHRlckZuOiAoZnJvbnRtYXR0ZXIpID0+IHtcbiAgICAgIGZyb250bWF0dGVyLmFsaWFzZXMgPz89IFtdO1xuXG4gICAgICBpZiAoIWZyb250bWF0dGVyLmFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XG4gICAgICAgIGZyb250bWF0dGVyLmFsaWFzZXMucHVzaChhbGlhcyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXRoT3JGaWxlXG4gIH0pO1xufVxuXG4vKipcbiAqIERlbGV0ZXMgYW4gYWxpYXMgZnJvbSB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gZmlsZSBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWxldGluZyB0aGUgYWxpYXMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFsaWFzIGhhcyBiZWVuIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGlhcyhwYXJhbXM6IERlbGV0ZUFsaWFzUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhbGlhcyxcbiAgICBhcHAsXG4gICAgZWRpdG9yTG9ja0NvbXBvbmVudCxcbiAgICBwYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGlmICghYWxpYXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWlzTWFya2Rvd25GaWxlKHBhdGhPckZpbGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlICR7Z2V0UGF0aChhcHAsIHBhdGhPckZpbGUpfSBpcyBub3QgYSBtYXJrZG93biBmaWxlLmApO1xuICB9XG5cbiAgYXdhaXQgcHJvY2Vzc0Zyb250bWF0dGVyKHtcbiAgICBhcHAsXG4gICAgZWRpdG9yTG9ja0NvbXBvbmVudCxcbiAgICBmcm9udG1hdHRlckZuOiAoZnJvbnRtYXR0ZXIpID0+IHtcbiAgICAgIGlmICghZnJvbnRtYXR0ZXIuYWxpYXNlcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZyb250bWF0dGVyLmFsaWFzZXMgPSBmcm9udG1hdHRlci5hbGlhc2VzLmZpbHRlcigoYSkgPT4gYSAhPT0gYWxpYXMpO1xuXG4gICAgICBpZiAoZnJvbnRtYXR0ZXIuYWxpYXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZGVsZXRlIGZyb250bWF0dGVyLmFsaWFzZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICBwYXRoT3JGaWxlXG4gIH0pO1xufVxuXG4vKipcbiAqIFByb2Nlc3NlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gZmlsZSwgYWxsb3dpbmcgbW9kaWZpY2F0aW9ucyB2aWEgYSBwcm92aWRlZCBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbUZyb250bWF0dGVyIC0gVGhlIHR5cGUgb2YgY3VzdG9tIGZyb250IG1hdHRlci5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcHJvY2Vzc2luZyB0aGUgZnJvbnQgbWF0dGVyLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmcm9udCBtYXR0ZXIgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZCBzYXZlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KHBhcmFtczogUHJvY2Vzc0Zyb250bWF0dGVyUGFyYW1zPEN1c3RvbUZyb250bWF0dGVyPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGZyb250bWF0dGVyRm4sXG4gICAgcGF0aE9yRmlsZSxcbiAgICAuLi5vcHRpb25zXG4gIH0gPSBwYXJhbXM7XG4gIGlmICghaXNNYXJrZG93bkZpbGUocGF0aE9yRmlsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbGUgJHtnZXRQYXRoKGFwcCwgcGF0aE9yRmlsZSl9IGlzIG5vdCBhIG1hcmtkb3duIGZpbGUuYCk7XG4gIH1cblxuICBhd2FpdCBwcm9jZXNzKG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxQcm9jZXNzUGFyYW1zPih7XG4gICAgYXBwLFxuICAgIGFzeW5jIG5ld0NvbnRlbnRQcm92aWRlcih7IGFib3J0U2lnbmFsLCBjb250ZW50IH0pIHtcbiAgICAgIGFib3J0U2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG5cbiAgICAgIGNvbnN0IG9sZEZyb250bWF0dGVyID0gcGFyc2VGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4oY29udGVudCk7XG4gICAgICBjb25zdCBuZXdGcm9udG1hdHRlciA9IHBhcnNlRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+KGNvbnRlbnQpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZnJvbnRtYXR0ZXJGbihuZXdGcm9udG1hdHRlciwgYWJvcnRTaWduYWwpO1xuICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcblxuICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZXBFcXVhbChvbGRGcm9udG1hdHRlciwgbmV3RnJvbnRtYXR0ZXIpKSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0RnJvbnRtYXR0ZXIoY29udGVudCwgbmV3RnJvbnRtYXR0ZXIpO1xuICAgIH0sXG4gICAgcGF0aE9yRmlsZSxcbiAgICAuLi5vcHRpb25zXG4gIH0pKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrQkEsMEJBR087QUFDUCx5QkFJTztBQUNQLHlCQUdPO0FBQ1AsbUJBQXdCO0FBeUZ4QixlQUFzQixTQUFTLFFBQXVDO0FBQ3BFLFFBQU07QUFBQSxJQUNK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
@@ -7,6 +7,7 @@
7
7
  import type { App } from 'obsidian' with { 'resolution-mode': 'import' };
8
8
  import type { Promisable } from 'type-fest' with { 'resolution-mode': 'import' };
9
9
  import type { MaybeReturn } from '../type.cjs';
10
+ import type { EditorLockComponent } from './editor-lock.cjs';
10
11
  import type { PathOrFile } from './file-system.cjs';
11
12
  import type { CombinedFrontmatter } from './frontmatter.cjs';
12
13
  import type { ProcessOptions } from './vault.cjs';
@@ -22,6 +23,10 @@ export interface AddAliasParams {
22
23
  * The Obsidian app instance.
23
24
  */
24
25
  readonly app: App;
26
+ /**
27
+ * The editor-lock component used to lock the note while it is being modified.
28
+ */
29
+ readonly editorLockComponent: EditorLockComponent | null;
25
30
  /**
26
31
  * The path or TFile object representing the note.
27
32
  */
@@ -39,6 +44,10 @@ export interface DeleteAliasParams {
39
44
  * The Obsidian app instance.
40
45
  */
41
46
  readonly app: App;
47
+ /**
48
+ * The editor-lock component used to lock the note while it is being modified.
49
+ */
50
+ readonly editorLockComponent: EditorLockComponent | null;
42
51
  /**
43
52
  * The path or TFile object representing the note.
44
53
  */
@@ -150,7 +150,11 @@ const en = {
150
150
  pageHeader: "Page {{pageNumber, number}} of {{totalPages, number}}, Total items: {{totalItems, number}}"
151
151
  },
152
152
  editorLock: {
153
- lockedNoteTooltip: "This note is locked while an operation is in progress."
153
+ lockedByTooltip: "Locked by",
154
+ lockedNoteTooltip: "This note is locked while an operation is in progress.",
155
+ unlockConfirmMessage: "This will cancel the operation(s) currently holding a lock on this note and may leave the vault in an inconsistent state. The note is locked by:",
156
+ unlockConfirmTitle: "Unlock note?",
157
+ unlockMenuItem: "Unlock"
154
158
  },
155
159
  metadataCache: {
156
160
  getBacklinksForFilePath: "Get backlinks for {{filePath}}"
@@ -177,4 +181,4 @@ const en = {
177
181
  0 && (module.exports = {
178
182
  en
179
183
  });
180
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2kxOG4vbG9jYWxlcy9lbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGBpMThuYCBtb2R1bGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgRW5nbGlzaCB0cmFuc2xhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBlbiA9IHtcbiAgb2JzaWRpYW5EZXZVdGlsczoge1xuICAgIGFzeW5jV2l0aE5vdGljZToge1xuICAgICAgbWlsbGlzZWNvbmRzOiAnbWlsbGlzZWNvbmRzLi4uJyxcbiAgICAgIG9wZXJhdGlvbjogJ09wZXJhdGlvbicsXG4gICAgICBydW5uaW5nRm9yOiAnUnVubmluZyBmb3InLFxuICAgICAgdGVybWluYXRlT3BlcmF0aW9uOiAnWW91IGNhbiB0ZXJtaW5hdGUgdGhlIG9wZXJhdGlvbiBieSBjbGlja2luZyB0aGUgYnV0dG9uIGJlbG93LCBidXQgYmUgYXdhcmUgaXQgbWlnaHQgbGVhdmUgdGhlIHZhdWx0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4nLFxuICAgICAgdGltZWRPdXQ6ICdUaGUgb3BlcmF0aW9uIHRpbWVkIG91dCBhZnRlciB7e2R1cmF0aW9uLCBudW1iZXJ9fSBtaWxsaXNlY29uZHMuJ1xuICAgIH0sXG4gICAgYnV0dG9uczoge1xuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIG9rOiAnT0snXG4gICAgfSxcbiAgICBjYWxsb3V0OiB7XG4gICAgICBsb2FkQ29udGVudDogJ0xvYWQgY29udGVudCBmb3IgY2FsbG91dCdcbiAgICB9LFxuICAgIGRhdGF2aWV3OiB7XG4gICAgICBpdGVtc1BlclBhZ2U6ICdJdGVtcyBwZXIgcGFnZTonLFxuICAgICAganVtcFRvUGFnZTogJ0p1bXAgdG8gcGFnZTonLFxuICAgICAgcGFnZUhlYWRlcjogJ1BhZ2Uge3twYWdlTnVtYmVyLCBudW1iZXJ9fSBvZiB7e3RvdGFsUGFnZXMsIG51bWJlcn19LCBUb3RhbCBpdGVtczoge3t0b3RhbEl0ZW1zLCBudW1iZXJ9fSdcbiAgICB9LFxuICAgIGVkaXRvckxvY2s6IHtcbiAgICAgIGxvY2tlZE5vdGVUb29sdGlwOiAnVGhpcyBub3RlIGlzIGxvY2tlZCB3aGlsZSBhbiBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuJ1xuICAgIH0sXG4gICAgbWV0YWRhdGFDYWNoZToge1xuICAgICAgZ2V0QmFja2xpbmtzRm9yRmlsZVBhdGg6ICdHZXQgYmFja2xpbmtzIGZvciB7e2ZpbGVQYXRofX0nXG4gICAgfSxcbiAgICBub3RpY2VzOiB7XG4gICAgICBhdHRhY2htZW50SXNTdGlsbFVzZWQ6ICdBdHRhY2htZW50IHt7YXR0YWNobWVudFBhdGh9fSBpcyBzdGlsbCB1c2VkIGJ5IG90aGVyIG5vdGVzLiBJdCB3aWxsIG5vdCBiZSBkZWxldGVkLicsXG4gICAgICB1bmhhbmRsZWRFcnJvcjogJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLidcbiAgICB9LFxuICAgIHF1ZXVlOiB7XG4gICAgICBmbHVzaFF1ZXVlOiAnRmx1c2ggcXVldWUnXG4gICAgfSxcbiAgICByZW5hbWVEZWxldGVIYW5kbGVyOiB7XG4gICAgICBoYW5kbGVEZWxldGU6ICdIYW5kbGUgZGVsZXRlOiB7e2ZpbGVQYXRofX0nLFxuICAgICAgaGFuZGxlT3JwaGFuZWRSZW5hbWVzOiAnSGFuZGxlIG9ycGhhbmVkIHJlbmFtZXMnLFxuICAgICAgaGFuZGxlUmVuYW1lOiAnSGFuZGxlIHJlbmFtZToge3tvbGRQYXRofX0gLT4ge3tuZXdQYXRofX0nLFxuICAgICAgdXBkYXRlZExpbmtzOiAnVXBkYXRlZCB7e2xpbmtzQ291bnQsIG51bWJlcn19IGxpbmtzIGluIHt7ZmlsZXNDb3VudCwgbnVtYmVyfX0gZmlsZXMuJ1xuICAgIH0sXG4gICAgdmF1bHQ6IHtcbiAgICAgIHByb2Nlc3NGaWxlOiAnUHJvY2VzcyBmaWxlIHt7ZmlsZVBhdGh9fSdcbiAgICB9XG4gIH1cbn0gYXMgY29uc3Q7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTTyxNQUFNLEtBQUs7QUFBQSxFQUNoQixrQkFBa0I7QUFBQSxJQUNoQixpQkFBaUI7QUFBQSxNQUNmLGNBQWM7QUFBQSxNQUNkLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxNQUNaLG9CQUFvQjtBQUFBLE1BQ3BCLFVBQVU7QUFBQSxJQUNaO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFDUCxRQUFRO0FBQUEsTUFDUixJQUFJO0FBQUEsSUFDTjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLGNBQWM7QUFBQSxNQUNkLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxJQUNkO0FBQUEsSUFDQSxZQUFZO0FBQUEsTUFDVixtQkFBbUI7QUFBQSxJQUNyQjtBQUFBLElBQ0EsZUFBZTtBQUFBLE1BQ2IseUJBQXlCO0FBQUEsSUFDM0I7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLHVCQUF1QjtBQUFBLE1BQ3ZCLGdCQUFnQjtBQUFBLElBQ2xCO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxZQUFZO0FBQUEsSUFDZDtBQUFBLElBQ0EscUJBQXFCO0FBQUEsTUFDbkIsY0FBYztBQUFBLE1BQ2QsdUJBQXVCO0FBQUEsTUFDdkIsY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxhQUFhO0FBQUEsSUFDZjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
184
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2kxOG4vbG9jYWxlcy9lbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFbmdsaXNoIHRyYW5zbGF0aW9ucyBmb3IgdGhlIGBpMThuYCBtb2R1bGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgRW5nbGlzaCB0cmFuc2xhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBlbiA9IHtcbiAgb2JzaWRpYW5EZXZVdGlsczoge1xuICAgIGFzeW5jV2l0aE5vdGljZToge1xuICAgICAgbWlsbGlzZWNvbmRzOiAnbWlsbGlzZWNvbmRzLi4uJyxcbiAgICAgIG9wZXJhdGlvbjogJ09wZXJhdGlvbicsXG4gICAgICBydW5uaW5nRm9yOiAnUnVubmluZyBmb3InLFxuICAgICAgdGVybWluYXRlT3BlcmF0aW9uOiAnWW91IGNhbiB0ZXJtaW5hdGUgdGhlIG9wZXJhdGlvbiBieSBjbGlja2luZyB0aGUgYnV0dG9uIGJlbG93LCBidXQgYmUgYXdhcmUgaXQgbWlnaHQgbGVhdmUgdGhlIHZhdWx0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4nLFxuICAgICAgdGltZWRPdXQ6ICdUaGUgb3BlcmF0aW9uIHRpbWVkIG91dCBhZnRlciB7e2R1cmF0aW9uLCBudW1iZXJ9fSBtaWxsaXNlY29uZHMuJ1xuICAgIH0sXG4gICAgYnV0dG9uczoge1xuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIG9rOiAnT0snXG4gICAgfSxcbiAgICBjYWxsb3V0OiB7XG4gICAgICBsb2FkQ29udGVudDogJ0xvYWQgY29udGVudCBmb3IgY2FsbG91dCdcbiAgICB9LFxuICAgIGRhdGF2aWV3OiB7XG4gICAgICBpdGVtc1BlclBhZ2U6ICdJdGVtcyBwZXIgcGFnZTonLFxuICAgICAganVtcFRvUGFnZTogJ0p1bXAgdG8gcGFnZTonLFxuICAgICAgcGFnZUhlYWRlcjogJ1BhZ2Uge3twYWdlTnVtYmVyLCBudW1iZXJ9fSBvZiB7e3RvdGFsUGFnZXMsIG51bWJlcn19LCBUb3RhbCBpdGVtczoge3t0b3RhbEl0ZW1zLCBudW1iZXJ9fSdcbiAgICB9LFxuICAgIGVkaXRvckxvY2s6IHtcbiAgICAgIGxvY2tlZEJ5VG9vbHRpcDogJ0xvY2tlZCBieScsXG4gICAgICBsb2NrZWROb3RlVG9vbHRpcDogJ1RoaXMgbm90ZSBpcyBsb2NrZWQgd2hpbGUgYW4gb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLicsXG4gICAgICB1bmxvY2tDb25maXJtTWVzc2FnZTogJ1RoaXMgd2lsbCBjYW5jZWwgdGhlIG9wZXJhdGlvbihzKSBjdXJyZW50bHkgaG9sZGluZyBhIGxvY2sgb24gdGhpcyBub3RlIGFuZCBtYXkgbGVhdmUgdGhlIHZhdWx0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4gVGhlIG5vdGUgaXMgbG9ja2VkIGJ5OicsXG4gICAgICB1bmxvY2tDb25maXJtVGl0bGU6ICdVbmxvY2sgbm90ZT8nLFxuICAgICAgdW5sb2NrTWVudUl0ZW06ICdVbmxvY2snXG4gICAgfSxcbiAgICBtZXRhZGF0YUNhY2hlOiB7XG4gICAgICBnZXRCYWNrbGlua3NGb3JGaWxlUGF0aDogJ0dldCBiYWNrbGlua3MgZm9yIHt7ZmlsZVBhdGh9fSdcbiAgICB9LFxuICAgIG5vdGljZXM6IHtcbiAgICAgIGF0dGFjaG1lbnRJc1N0aWxsVXNlZDogJ0F0dGFjaG1lbnQge3thdHRhY2htZW50UGF0aH19IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuIEl0IHdpbGwgbm90IGJlIGRlbGV0ZWQuJyxcbiAgICAgIHVuaGFuZGxlZEVycm9yOiAnQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uJ1xuICAgIH0sXG4gICAgcXVldWU6IHtcbiAgICAgIGZsdXNoUXVldWU6ICdGbHVzaCBxdWV1ZSdcbiAgICB9LFxuICAgIHJlbmFtZURlbGV0ZUhhbmRsZXI6IHtcbiAgICAgIGhhbmRsZURlbGV0ZTogJ0hhbmRsZSBkZWxldGU6IHt7ZmlsZVBhdGh9fScsXG4gICAgICBoYW5kbGVPcnBoYW5lZFJlbmFtZXM6ICdIYW5kbGUgb3JwaGFuZWQgcmVuYW1lcycsXG4gICAgICBoYW5kbGVSZW5hbWU6ICdIYW5kbGUgcmVuYW1lOiB7e29sZFBhdGh9fSAtPiB7e25ld1BhdGh9fScsXG4gICAgICB1cGRhdGVkTGlua3M6ICdVcGRhdGVkIHt7bGlua3NDb3VudCwgbnVtYmVyfX0gbGlua3MgaW4ge3tmaWxlc0NvdW50LCBudW1iZXJ9fSBmaWxlcy4nXG4gICAgfSxcbiAgICB2YXVsdDoge1xuICAgICAgcHJvY2Vzc0ZpbGU6ICdQcm9jZXNzIGZpbGUge3tmaWxlUGF0aH19J1xuICAgIH1cbiAgfVxufSBhcyBjb25zdDtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNPLE1BQU0sS0FBSztBQUFBLEVBQ2hCLGtCQUFrQjtBQUFBLElBQ2hCLGlCQUFpQjtBQUFBLE1BQ2YsY0FBYztBQUFBLE1BQ2QsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLE1BQ1osb0JBQW9CO0FBQUEsTUFDcEIsVUFBVTtBQUFBLElBQ1o7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLFFBQVE7QUFBQSxNQUNSLElBQUk7QUFBQSxJQUNOO0FBQUEsSUFDQSxTQUFTO0FBQUEsTUFDUCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsY0FBYztBQUFBLE1BQ2QsWUFBWTtBQUFBLE1BQ1osWUFBWTtBQUFBLElBQ2Q7QUFBQSxJQUNBLFlBQVk7QUFBQSxNQUNWLGlCQUFpQjtBQUFBLE1BQ2pCLG1CQUFtQjtBQUFBLE1BQ25CLHNCQUFzQjtBQUFBLE1BQ3RCLG9CQUFvQjtBQUFBLE1BQ3BCLGdCQUFnQjtBQUFBLElBQ2xCO0FBQUEsSUFDQSxlQUFlO0FBQUEsTUFDYix5QkFBeUI7QUFBQSxJQUMzQjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsdUJBQXVCO0FBQUEsTUFDdkIsZ0JBQWdCO0FBQUEsSUFDbEI7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLFlBQVk7QUFBQSxJQUNkO0FBQUEsSUFDQSxxQkFBcUI7QUFBQSxNQUNuQixjQUFjO0FBQUEsTUFDZCx1QkFBdUI7QUFBQSxNQUN2QixjQUFjO0FBQUEsTUFDZCxjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLGFBQWE7QUFBQSxJQUNmO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -29,7 +29,11 @@ export declare const en: {
29
29
  readonly pageHeader: "Page {{pageNumber, number}} of {{totalPages, number}}, Total items: {{totalItems, number}}";
30
30
  };
31
31
  readonly editorLock: {
32
+ readonly lockedByTooltip: "Locked by";
32
33
  readonly lockedNoteTooltip: "This note is locked while an operation is in progress.";
34
+ readonly unlockConfirmMessage: "This will cancel the operation(s) currently holding a lock on this note and may leave the vault in an inconsistent state. The note is locked by:";
35
+ readonly unlockConfirmTitle: "Unlock note?";
36
+ readonly unlockMenuItem: "Unlock";
33
37
  };
34
38
  readonly metadataCache: {
35
39
  readonly getBacklinksForFilePath: "Get backlinks for {{filePath}}";
@@ -32,7 +32,11 @@ declare const translationsMapImpl: {
32
32
  readonly pageHeader: "Page {{pageNumber, number}} of {{totalPages, number}}, Total items: {{totalItems, number}}";
33
33
  };
34
34
  readonly editorLock: {
35
+ readonly lockedByTooltip: "Locked by";
35
36
  readonly lockedNoteTooltip: "This note is locked while an operation is in progress.";
37
+ readonly unlockConfirmMessage: "This will cancel the operation(s) currently holding a lock on this note and may leave the vault in an inconsistent state. The note is locked by:";
38
+ readonly unlockConfirmTitle: "Unlock note?";
39
+ readonly unlockMenuItem: "Unlock";
36
40
  };
37
41
  readonly metadataCache: {
38
42
  readonly getBacklinksForFilePath: "Get backlinks for {{filePath}}";
@@ -217,6 +217,7 @@ async function insertAfterCodeBlock(params) {
217
217
  const { app, ctx, lineOffset = 0, text } = params;
218
218
  await (0, import_vault.process)({
219
219
  app,
220
+ editorLockComponent: params.editorLockComponent,
220
221
  async newContentProvider({ content }) {
221
222
  const markdownInfo = await getCodeBlockMarkdownInfo(params);
222
223
  (0, import_type_guards.assertNonNullable)(markdownInfo, "Could not uniquely identify the code block.");
@@ -238,6 +239,7 @@ async function insertBeforeCodeBlock(params) {
238
239
  const { app, ctx, lineOffset = 0, text } = params;
239
240
  await (0, import_vault.process)({
240
241
  app,
242
+ editorLockComponent: params.editorLockComponent,
241
243
  async newContentProvider({ content }) {
242
244
  const markdownInfo = await getCodeBlockMarkdownInfo(params);
243
245
  if (!markdownInfo) {
@@ -269,6 +271,7 @@ async function replaceCodeBlock(params) {
269
271
  params.abortSignal?.throwIfAborted();
270
272
  await (0, import_vault.process)({
271
273
  app,
274
+ editorLockComponent: params.editorLockComponent,
272
275
  async newContentProvider({ abortSignal, content }) {
273
276
  abortSignal = (0, import_abort_controller.abortSignalAny)(abortSignal, params.abortSignal);
274
277
  abortSignal.throwIfAborted();
@@ -409,4 +412,4 @@ function isSuitableCodeBlock(params) {
409
412
  removeCodeBlock,
410
413
  replaceCodeBlock
411
414
  });
412
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgY29kZSBibG9ja3MgaW4gT2JzaWRpYW4uXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gIE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vdmFsdWUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmltcG9ydCB0eXBlIHsgQ29udGVudEFyZ3MgfSBmcm9tICcuL3ZhdWx0LnRzJztcblxuaW1wb3J0IHsgYWJvcnRTaWduYWxBbnkgfSBmcm9tICcuLi9hYm9ydC1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jIH0gZnJvbSAnLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7XG4gIGVuc3VyZUxmRW5kaW5ncyxcbiAgZ2V0TGZOb3JtYWxpemVkT2Zmc2V0VG9PcmlnaW5hbE9mZnNldE1hcHBlcixcbiAgaGFzU2luZ2xlT2NjdXJyZW5jZSxcbiAgaW5kZW50LFxuICB1bmluZGVudFxufSBmcm9tICcuLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wcm92aWRlci50cyc7XG5pbXBvcnQgeyBnZXRGaWxlT3JOdWxsIH0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBpbnZva2VXaXRoRmlsZVN5c3RlbUxvY2ssXG4gIHByb2Nlc3MsXG4gIHNhdmVOb3RlXG59IGZyb20gJy4vdmF1bHQudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm99LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQSB7QGxpbmsgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dH0gb2JqZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBBIHtAbGluayBIVE1MRWxlbWVudH0gcmVwcmVzZW50aW5nIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgZWw6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBBIHNvdXJjZSBvZiB0aGUgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBpbnNlcnRBZnRlckNvZGVCbG9ja30gLyB7QGxpbmsgaW5zZXJ0QmVmb3JlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRDb2RlQmxvY2tQYXJhbXMgZXh0ZW5kcyBHZXRDb2RlQmxvY2tNYXJrZG93bkluZm9QYXJhbXMge1xuICAvKipcbiAgICogQSBudW1iZXIgb2YgbGluZXMgdG8gb2Zmc2V0IHRoZSBpbnNlcnRpb24gYnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAwYFxuICAgKi9cbiAgcmVhZG9ubHkgbGluZU9mZnNldD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwcmVzZXJ2ZSB0aGUgbGluZSBwcmVmaXggb2YgdGhlIGNvZGUgYmxvY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFByZXNlcnZlTGluZVByZWZpeD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgdGV4dCB0byBpbnNlcnQgYWZ0ZXIgdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbW92ZUNvZGVCbG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlQ29kZUJsb2NrUGFyYW1zIGV4dGVuZHMgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8ga2VlcCB0aGUgZ2FwIGFmdGVyIHJlbW92aW5nIHRoZSBjb2RlIGJsb2NrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRLZWVwR2FwPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVwbGFjZUNvZGVCbG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwbGFjZUNvZGVCbG9ja1BhcmFtcyBleHRlbmRzIEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBhYm9ydCBzaWduYWwgdG8gY29udHJvbCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGEgbmV3IGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBjb2RlQmxvY2tQcm92aWRlcjogVmFsdWVQcm92aWRlcjxzdHJpbmcsIENvbnRlbnRBcmdzPjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBrZWVwIHRoZSBnYXAgd2hlbiB0aGUgbmV3IGNvZGUgYmxvY2sgaXMgZW1wdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEtlZXBHYXBXaGVuRW1wdHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXNlcnZlIHRoZSBsaW5lIHByZWZpeCBvZiB0aGUgY29kZSBibG9jay5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENyZWF0ZU1hcmtkb3duSW5mb0Zyb21NYXRjaFBhcmFtcyB7XG4gIHJlYWRvbmx5IGFwcHJveGltYXRlU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uO1xuICByZWFkb25seSBsaW5lc0JlZm9yZVNlY3Rpb25Db3VudDogbnVtYmVyO1xuICByZWFkb25seSBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheTtcbiAgcmVhZG9ubHkgbm90ZUNvbnRlbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcG90ZW50aWFsQ29kZUJsb2NrVGV4dDogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2VMaW5lc0NvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRleHRMaW5lT2Zmc2V0czogUmVhZG9ubHlNYXA8bnVtYmVyLCBudW1iZXI+O1xufVxuXG5pbnRlcmZhY2UgSW5zZXJ0VGV4dFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudCB0byBpbnNlcnQgdGhlIHRleHQgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpbmUgaW5kZXggdG8gaW5zZXJ0IHRoZSB0ZXh0IGF0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zZXJ0TGluZUluZGV4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJlc2VydmUgdGhlIGxpbmUgcHJlZml4IG9mIHRoZSBsaW5lIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFByZXNlcnZlTGluZVByZWZpeD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGluc2VydC5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElzU3VpdGFibGVDb2RlQmxvY2tQYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgY29kZSBibG9jayBpcyBpbnNpZGUgYSBjYWxsb3V0LlxuICAgKi9cbiAgcmVhZG9ubHkgaXNJbkNhbGxvdXQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsYW5ndWFnZSB0aGUgY29kZSBibG9jayBpcyBleHBlY3RlZCB0byBoYXZlLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaCBvZiB0aGUgY29kZSBibG9jayBjYW5kaWRhdGUuXG4gICAqL1xuICByZWFkb25seSBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheTtcblxuICAvKipcbiAgICogVGhlIExGLW5vcm1hbGl6ZWQgc291cmNlIG9mIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlTGY6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvZGUgYmxvY2sgaW4gYSBNYXJrZG93biBzZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2RlIGJsb2NrIGluIHRoZSBNYXJrZG93biBzZWN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvKHBhcmFtczogR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zKTogUHJvbWlzZTxDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIHwgbnVsbD4ge1xuICBjb25zdCB7IGFwcCwgY3R4LCBlbCwgc291cmNlIH0gPSBwYXJhbXM7XG5cbiAgY29uc3Qgc291cmNlRmlsZSA9IGdldEZpbGVPck51bGwoeyBhcHAsIHBhdGhPckZpbGU6IGN0eC5zb3VyY2VQYXRoIH0pO1xuICBhc3NlcnROb25OdWxsYWJsZShzb3VyY2VGaWxlLCBgU291cmNlIGZpbGUgJHtjdHguc291cmNlUGF0aH0gbm90IGZvdW5kLmApO1xuXG4gIGF3YWl0IHJlcXVlc3RBbmltYXRpb25GcmFtZUFzeW5jKCk7XG4gIGF3YWl0IHNhdmVOb3RlKGFwcCwgc291cmNlRmlsZSk7XG5cbiAgbGV0IG1hcmtkb3duSW5mbzogQ29kZUJsb2NrTWFya2Rvd25JbmZvcm1hdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGF3YWl0IGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayh7XG4gICAgYXBwLFxuICAgIGZuKG5vdGVDb250ZW50KSB7XG4gICAgICBjb25zdCBub3RlQ29udGVudExmID0gZW5zdXJlTGZFbmRpbmdzKG5vdGVDb250ZW50KTtcblxuICAgICAgY29uc3QgYXBwcm94aW1hdGVTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gPSB7XG4gICAgICAgIGxpbmVFbmQ6IG5vdGVDb250ZW50TGYuc3BsaXQoJ1xcbicpLmxlbmd0aCAtIDEsXG4gICAgICAgIGxpbmVTdGFydDogMCxcbiAgICAgICAgdGV4dDogbm90ZUNvbnRlbnRMZlxuICAgICAgfTtcblxuICAgICAgYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0ID0gZW5zdXJlTGZFbmRpbmdzKGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dCk7XG4gICAgICBjb25zdCBzb3VyY2VMZiA9IGVuc3VyZUxmRW5kaW5ncyhzb3VyY2UpO1xuXG4gICAgICBpZiAoXG4gICAgICAgICFoYXNTaW5nbGVPY2N1cnJlbmNlKHtcbiAgICAgICAgICBzZWFyY2hWYWx1ZTogYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0LFxuICAgICAgICAgIHN0cjogbm90ZUNvbnRlbnRMZlxuICAgICAgICB9KVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VjdGlvbk9mZnNldCA9IG5vdGVDb250ZW50TGYuaW5kZXhPZihhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHQpO1xuICAgICAgY29uc3QgbGluZXNCZWZvcmVTZWN0aW9uQ291bnQgPSBub3RlQ29udGVudExmLnNsaWNlKDAsIHNlY3Rpb25PZmZzZXQpLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxO1xuXG4gICAgICBjb25zdCBpc0luQ2FsbG91dCA9ICEhZWwucGFyZW50RWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdjYWxsb3V0LWNvbnRlbnQnKTtcblxuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZUZyb21FbGVtZW50KGVsKTtcbiAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc291cmNlTGYuc3BsaXQoJ1xcbicpO1xuXG4gICAgICBjb25zdCB0ZXh0TGluZXMgPSBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHQuc3BsaXQoJ1xcbicpO1xuICAgICAgY29uc3QgdGV4dExpbmVPZmZzZXRzID0gbmV3IE1hcDxudW1iZXIsIG51bWJlcj4oKTtcbiAgICAgIHRleHRMaW5lT2Zmc2V0cy5zZXQobGluZXNCZWZvcmVTZWN0aW9uQ291bnQsIHNlY3Rpb25PZmZzZXQpO1xuXG4gICAgICBsZXQgbGFzdFRleHRMaW5lT2Zmc2V0ID0gc2VjdGlvbk9mZnNldDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dExpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRleHRMaW5lID0gdGV4dExpbmVzW2ldID8/ICcnO1xuICAgICAgICBjb25zdCBsaW5lT2Zmc2V0ID0gbGFzdFRleHRMaW5lT2Zmc2V0ICsgdGV4dExpbmUubGVuZ3RoICsgMTtcbiAgICAgICAgdGV4dExpbmVPZmZzZXRzLnNldChsaW5lc0JlZm9yZVNlY3Rpb25Db3VudCArIGkgKyAxLCBsaW5lT2Zmc2V0KTtcbiAgICAgICAgbGFzdFRleHRMaW5lT2Zmc2V0ID0gbGluZU9mZnNldDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcG90ZW50aWFsQ29kZUJsb2NrVGV4dExpbmVzID0gdGV4dExpbmVzLm1hcCgobGluZSwgaW5kZXgpID0+IGFwcHJveGltYXRlU2VjdGlvbkluZm8ubGluZVN0YXJ0IDw9IGluZGV4ICYmIGluZGV4IDw9IGFwcHJveGltYXRlU2VjdGlvbkluZm8ubGluZUVuZCA/IGxpbmUgOiAnJyk7XG4gICAgICBjb25zdCBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0ID0gcG90ZW50aWFsQ29kZUJsb2NrVGV4dExpbmVzLmpvaW4oJ1xcbicpO1xuXG4gICAgICBjb25zdCBSRUdfRVhQID0gLyg/PD1efFxcbikoPzxMaW5lUHJlZml4PiB7MCwzfSg/Oj4gezEsM30pKikoPzxDb2RlQmxvY2tTdGFydERlbGltaXRlcj4oPzxDb2RlQmxvY2tTdGFydERlbGltaXRlckNoYXI+W2B+XSkoPzpcXGs8Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXJDaGFyPnsyLH0pKSg/PENvZGVCbG9ja0xhbmd1YWdlPlxcUyopKD86WyBcXHRdKD88Q29kZUJsb2NrQXJncz4uKj8pKT8oPzpcXG4oPzxDb2RlQmxvY2tDb250ZW50Pig/Olxcbj9cXGs8TGluZVByZWZpeD4uKikrPykpP1xcblxcazxMaW5lUHJlZml4Pig/PENvZGVCbG9ja0VuZERlbGltaXRlcj5cXGs8Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXI+XFxrPENvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyQ2hhcj4qKVsgXFx0XSooPz1cXG58JCkvZztcblxuICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0Lm1hdGNoQWxsKFJFR19FWFApKSB7XG4gICAgICAgIGlmICghaXNTdWl0YWJsZUNvZGVCbG9jayh7IGlzSW5DYWxsb3V0LCBsYW5ndWFnZSwgbWF0Y2gsIHNvdXJjZUxmIH0pKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWFya2Rvd25JbmZvKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFya2Rvd25JbmZvID0gY3JlYXRlTWFya2Rvd25JbmZvRnJvbU1hdGNoKHtcbiAgICAgICAgICBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLFxuICAgICAgICAgIGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50LFxuICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgIG5vdGVDb250ZW50LFxuICAgICAgICAgIHBvdGVudGlhbENvZGVCbG9ja1RleHQsXG4gICAgICAgICAgc291cmNlTGluZXNDb3VudDogc291cmNlTGluZXMubGVuZ3RoLFxuICAgICAgICAgIHRleHRMaW5lT2Zmc2V0c1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXJrZG93bkluZm8pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAobm90ZUNvbnRlbnRMZiA9PT0gbm90ZUNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsZk9mZnNldE1hcHBlciA9IGdldExmTm9ybWFsaXplZE9mZnNldFRvT3JpZ2luYWxPZmZzZXRNYXBwZXIobm90ZUNvbnRlbnQpO1xuICAgICAgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCA9IGxmT2Zmc2V0TWFwcGVyKG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5vZmZzZXQpO1xuICAgICAgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5vZmZzZXQgPSBsZk9mZnNldE1hcHBlcihtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuZW5kLm9mZnNldCk7XG4gICAgfSxcbiAgICBwYXRoT3JGaWxlOiBzb3VyY2VGaWxlXG4gIH0pO1xuXG4gIHJldHVybiBtYXJrZG93bkluZm87XG59XG5cbi8qKlxuICogSW5zZXJ0cyB0ZXh0IGFmdGVyIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gSW50ZW50aW9uYWxseSBzaGFyZXMgSW5zZXJ0Q29kZUJsb2NrUGFyYW1zIHdpdGggaW5zZXJ0QmVmb3JlQ29kZUJsb2NrLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydEFmdGVyQ29kZUJsb2NrKHBhcmFtczogSW5zZXJ0Q29kZUJsb2NrUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgYXBwLCBjdHgsIGxpbmVPZmZzZXQgPSAwLCB0ZXh0IH0gPSBwYXJhbXM7XG5cbiAgYXdhaXQgcHJvY2Vzcyh7XG4gICAgYXBwLFxuICAgIGFzeW5jIG5ld0NvbnRlbnRQcm92aWRlcih7IGNvbnRlbnQgfSkge1xuICAgICAgY29uc3QgbWFya2Rvd25JbmZvID0gYXdhaXQgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvKHBhcmFtcyk7XG4gICAgICBhc3NlcnROb25OdWxsYWJsZShtYXJrZG93bkluZm8sICdDb3VsZCBub3QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGNvZGUgYmxvY2suJyk7XG5cbiAgICAgIGlmIChjb250ZW50ICE9PSBtYXJrZG93bkluZm8ubm90ZUNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluc2VydExpbmVJbmRleCA9IG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQubGluZSArIGxpbmVPZmZzZXQgKyAxO1xuICAgICAgcmV0dXJuIGluc2VydFRleHQobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPEluc2VydFRleHRQYXJhbXM+KHtcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgaW5zZXJ0TGluZUluZGV4LFxuICAgICAgICBzaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXg6IHBhcmFtcy5zaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXgsXG4gICAgICAgIHRleHRcbiAgICAgIH0pKTtcbiAgICB9LFxuICAgIHBhdGhPckZpbGU6IGN0eC5zb3VyY2VQYXRoXG4gIH0pO1xufVxuXG4vKipcbiAqIEluc2VydHMgdGV4dCBiZWZvcmUgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBJbnNlcnRDb2RlQmxvY2tQYXJhbXMgd2l0aCBpbnNlcnRBZnRlckNvZGVCbG9jay5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnNlcnRCZWZvcmVDb2RlQmxvY2socGFyYW1zOiBJbnNlcnRDb2RlQmxvY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhcHAsIGN0eCwgbGluZU9mZnNldCA9IDAsIHRleHQgfSA9IHBhcmFtcztcblxuICBhd2FpdCBwcm9jZXNzKHtcbiAgICBhcHAsXG4gICAgYXN5bmMgbmV3Q29udGVudFByb3ZpZGVyKHsgY29udGVudCB9KSB7XG4gICAgICBjb25zdCBtYXJrZG93bkluZm8gPSBhd2FpdCBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm8ocGFyYW1zKTtcbiAgICAgIGlmICghbWFya2Rvd25JbmZvKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBjb2RlIGJsb2NrLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29udGVudCAhPT0gbWFya2Rvd25JbmZvLm5vdGVDb250ZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbnNlcnRMaW5lSW5kZXggPSBtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuc3RhcnQubGluZSAtIGxpbmVPZmZzZXQ7XG4gICAgICByZXR1cm4gaW5zZXJ0VGV4dChub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8SW5zZXJ0VGV4dFBhcmFtcz4oe1xuICAgICAgICBjb250ZW50LFxuICAgICAgICBpbnNlcnRMaW5lSW5kZXgsXG4gICAgICAgIHNob3VsZFByZXNlcnZlTGluZVByZWZpeDogcGFyYW1zLnNob3VsZFByZXNlcnZlTGluZVByZWZpeCxcbiAgICAgICAgdGV4dFxuICAgICAgfSkpO1xuICAgIH0sXG4gICAgcGF0aE9yRmlsZTogY3R4LnNvdXJjZVBhdGhcbiAgfSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZUNvZGVCbG9jayhwYXJhbXM6IFJlbW92ZUNvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCByZXBsYWNlQ29kZUJsb2NrKHtcbiAgICAuLi5wYXJhbXMsXG4gICAgY29kZUJsb2NrUHJvdmlkZXI6ICcnLFxuICAgIHNob3VsZEtlZXBHYXBXaGVuRW1wdHk6IHBhcmFtcy5zaG91bGRLZWVwR2FwID8/IGZhbHNlXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZUNvZGVCbG9jayhwYXJhbXM6IFJlcGxhY2VDb2RlQmxvY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhcHAsIGNvZGVCbG9ja1Byb3ZpZGVyLCBjdHggfSA9IHBhcmFtcztcbiAgcGFyYW1zLmFib3J0U2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGF3YWl0IHByb2Nlc3Moe1xuICAgIGFwcCxcbiAgICBhc3luYyBuZXdDb250ZW50UHJvdmlkZXIoeyBhYm9ydFNpZ25hbCwgY29udGVudCB9KSB7XG4gICAgICBhYm9ydFNpZ25hbCA9IGFib3J0U2lnbmFsQW55KGFib3J0U2lnbmFsLCBwYXJhbXMuYWJvcnRTaWduYWwpO1xuICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIGNvbnN0IG1hcmtkb3duSW5mbyA9IGF3YWl0IGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXMpO1xuICAgICAgaWYgKCFtYXJrZG93bkluZm8pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGNvZGUgYmxvY2suJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250ZW50ICE9PSBtYXJrZG93bkluZm8ubm90ZUNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGxldCBvbGRDb2RlQmxvY2sgPSBjb250ZW50LnNsaWNlKG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5vZmZzZXQsIG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQub2Zmc2V0KTtcbiAgICAgIGlmIChwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4KSB7XG4gICAgICAgIG9sZENvZGVCbG9jayA9IHVuaW5kZW50KHtcbiAgICAgICAgICBwcmVmaXg6IG1hcmtkb3duSW5mby5saW5lUHJlZml4LFxuICAgICAgICAgIHRleHQ6IG9sZENvZGVCbG9ja1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IG5ld0NvZGVCbG9jayA9IGF3YWl0IHJlc29sdmVWYWx1ZShjb2RlQmxvY2tQcm92aWRlciwgeyBhYm9ydFNpZ25hbCwgY29udGVudDogb2xkQ29kZUJsb2NrIH0pO1xuICAgICAgYWJvcnRTaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIGlmICgobmV3Q29kZUJsb2NrIHx8IHBhcmFtcy5zaG91bGRLZWVwR2FwV2hlbkVtcHR5KSAmJiBwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4KSB7XG4gICAgICAgIG5ld0NvZGVCbG9jayA9IGluZGVudCh7XG4gICAgICAgICAgcHJlZml4OiBtYXJrZG93bkluZm8ubGluZVByZWZpeCxcbiAgICAgICAgICB0ZXh0OiBuZXdDb2RlQmxvY2tcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRleHRCZWZvcmVDb2RlQmxvY2sgPSBjb250ZW50LnNsaWNlKDAsIG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5vZmZzZXQpO1xuICAgICAgY29uc3QgdGV4dEFmdGVyQ29kZUJsb2NrID0gY29udGVudC5zbGljZShtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuZW5kLm9mZnNldCk7XG5cbiAgICAgIGlmIChuZXdDb2RlQmxvY2sgfHwgcGFyYW1zLnNob3VsZEtlZXBHYXBXaGVuRW1wdHkpIHtcbiAgICAgICAgcmV0dXJuIGAke3RleHRCZWZvcmVDb2RlQmxvY2t9JHtuZXdDb2RlQmxvY2t9JHt0ZXh0QWZ0ZXJDb2RlQmxvY2t9YDtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0ZXh0QmVmb3JlQ29kZUJsb2NrICYmICF0ZXh0QWZ0ZXJDb2RlQmxvY2spIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgICBpZiAodGV4dEJlZm9yZUNvZGVCbG9jaykge1xuICAgICAgICByZXR1cm4gYCR7dGV4dEJlZm9yZUNvZGVCbG9jay5zbGljZSgwLCAtMSl9JHt0ZXh0QWZ0ZXJDb2RlQmxvY2t9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3RleHRCZWZvcmVDb2RlQmxvY2t9JHt0ZXh0QWZ0ZXJDb2RlQmxvY2suc2xpY2UoMSl9YDtcbiAgICB9LFxuICAgIHBhdGhPckZpbGU6IGN0eC5zb3VyY2VQYXRoXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVNYXJrZG93bkluZm9Gcm9tTWF0Y2gocGFyYW1zOiBDcmVhdGVNYXJrZG93bkluZm9Gcm9tTWF0Y2hQYXJhbXMpOiBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIHtcbiAgY29uc3Qge1xuICAgIGFwcHJveGltYXRlU2VjdGlvbkluZm8sXG4gICAgbGluZXNCZWZvcmVTZWN0aW9uQ291bnQsXG4gICAgbWF0Y2gsXG4gICAgbm90ZUNvbnRlbnQsXG4gICAgcG90ZW50aWFsQ29kZUJsb2NrVGV4dCxcbiAgICBzb3VyY2VMaW5lc0NvdW50LFxuICAgIHRleHRMaW5lT2Zmc2V0c1xuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGxpbmVQcmVmaXggPSBtYXRjaC5ncm91cHM/LlsnTGluZVByZWZpeCddID8/ICcnO1xuICBjb25zdCBjb2RlQmxvY2tTdGFydERlbGltaXRlciA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tTdGFydERlbGltaXRlciddID8/ICcnO1xuICBjb25zdCBjb2RlQmxvY2tFbmREZWxpbWl0ZXIgPSBtYXRjaC5ncm91cHM/LlsnQ29kZUJsb2NrRW5kRGVsaW1pdGVyJ10gPz8gJyc7XG4gIGNvbnN0IGNvZGVCbG9ja0FyZ3NTdHIgPSBtYXRjaC5ncm91cHM/LlsnQ29kZUJsb2NrQXJncyddID8/ICcnO1xuICBjb25zdCBsYW5ndWFnZSA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tMYW5ndWFnZSddID8/ICcnO1xuXG4gIGNvbnN0IHByZXZpb3VzVGV4dCA9IHBvdGVudGlhbENvZGVCbG9ja1RleHQuc2xpY2UoMCwgbWF0Y2guaW5kZXgpO1xuICBjb25zdCBwcmV2aW91c1RleHRMaW5lc0NvdW50ID0gcHJldmlvdXNUZXh0LnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxO1xuXG4gIGNvbnN0IHN0YXJ0TGluZSA9IGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50ICsgcHJldmlvdXNUZXh0TGluZXNDb3VudDtcbiAgY29uc3QgZW5kTGluZSA9IHN0YXJ0TGluZSArIHNvdXJjZUxpbmVzQ291bnQgKyAxO1xuXG4gIHJldHVybiB7XG4gICAgYXJnczogY29kZUJsb2NrQXJnc1N0ci5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKSxcbiAgICBlbmREZWxpbWl0ZXI6IGNvZGVCbG9ja0VuZERlbGltaXRlcixcbiAgICBsYW5ndWFnZSxcbiAgICBsaW5lUHJlZml4LFxuICAgIG5vdGVDb250ZW50LFxuICAgIHBvc2l0aW9uSW5Ob3RlOiB7XG4gICAgICBlbmQ6IHtcbiAgICAgICAgY29sOiAodGV4dExpbmVPZmZzZXRzLmdldChlbmRMaW5lICsgMSkgPz8gMCkgLSAodGV4dExpbmVPZmZzZXRzLmdldChlbmRMaW5lKSA/PyAwKSAtIDEsXG4gICAgICAgIGxpbmU6IGVuZExpbmUsXG4gICAgICAgIG9mZnNldDogKHRleHRMaW5lT2Zmc2V0cy5nZXQoZW5kTGluZSArIDEpID8/IDApIC0gMVxuICAgICAgfSxcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGNvbDogMCxcbiAgICAgICAgbGluZTogc3RhcnRMaW5lLFxuICAgICAgICBvZmZzZXQ6IHRleHRMaW5lT2Zmc2V0cy5nZXQoc3RhcnRMaW5lKSA/PyAwXG4gICAgICB9XG4gICAgfSxcbiAgICByYXdBcmdzU3RyOiBjb2RlQmxvY2tBcmdzU3RyLFxuICAgIHNlY3Rpb25JbmZvOiB7XG4gICAgICBsaW5lRW5kOiBwcmV2aW91c1RleHRMaW5lc0NvdW50ICsgc291cmNlTGluZXNDb3VudCArIDEsXG4gICAgICBsaW5lU3RhcnQ6IHByZXZpb3VzVGV4dExpbmVzQ291bnQsXG4gICAgICB0ZXh0OiBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHRcbiAgICB9LFxuICAgIHN0YXJ0RGVsaW1pdGVyOiBjb2RlQmxvY2tTdGFydERlbGltaXRlclxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRMYW5ndWFnZUZyb21FbGVtZW50KGVsOiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IEJMT0NLX0xBTkdVQUdFX1BSRUZJWCA9ICdibG9jay1sYW5ndWFnZS0nO1xuICByZXR1cm4gQXJyYXkuZnJvbShlbC5jbGFzc0xpc3QpLmZpbmQoKGNscykgPT4gY2xzLnN0YXJ0c1dpdGgoQkxPQ0tfTEFOR1VBR0VfUFJFRklYKSk/LnNsaWNlKEJMT0NLX0xBTkdVQUdFX1BSRUZJWC5sZW5ndGgpID8/ICcnO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRUZXh0KHBhcmFtczogSW5zZXJ0VGV4dFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgY29udGVudCwgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4ID0gZmFsc2UsIHRleHQgfSA9IHBhcmFtcztcbiAgbGV0IHsgaW5zZXJ0TGluZUluZGV4IH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKTtcbiAgY29uc3QgbmV3TGluZXMgPSBsaW5lcy5zbGljZSgpO1xuICBjb25zdCB0ZXh0TGluZXMgPSB0ZXh0LnNwbGl0KCdcXG4nKTtcblxuICBpZiAoaW5zZXJ0TGluZUluZGV4IDwgMCkge1xuICAgIGluc2VydExpbmVJbmRleCA9IDA7XG4gIH1cbiAgaWYgKGluc2VydExpbmVJbmRleCA+IGxpbmVzLmxlbmd0aCkge1xuICAgIGluc2VydExpbmVJbmRleCA9IGxpbmVzLmxlbmd0aDtcbiAgfVxuXG4gIGNvbnN0IFBSRUZJWF9MSU5FX1JFR19FWFAgPSAvXiB7MCwzfSg/Oj4gezEsM30pKi9nO1xuICBjb25zdCBtYXRjaCA9IChsaW5lc1tpbnNlcnRMaW5lSW5kZXhdID8/ICcnKS5tYXRjaChQUkVGSVhfTElORV9SRUdfRVhQKTtcbiAgY29uc3QgbGluZVByZWZpeCA9IG1hdGNoPy5bMF0gPz8gJyc7XG4gIG5ld0xpbmVzLnNwbGljZShcbiAgICBpbnNlcnRMaW5lSW5kZXgsXG4gICAgMCxcbiAgICAuLi4oc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4XG4gICAgICA/IHRleHRMaW5lcy5tYXAoKGxpbmUpID0+XG4gICAgICAgIGluZGVudCh7XG4gICAgICAgICAgcHJlZml4OiBsaW5lUHJlZml4LFxuICAgICAgICAgIHRleHQ6IGxpbmVcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIDogdGV4dExpbmVzKVxuICApO1xuICByZXR1cm4gbmV3TGluZXMuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIGlzU3VpdGFibGVDb2RlQmxvY2socGFyYW1zOiBJc1N1aXRhYmxlQ29kZUJsb2NrUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgaXNJbkNhbGxvdXQsIGxhbmd1YWdlLCBtYXRjaCwgc291cmNlTGYgfSA9IHBhcmFtcztcblxuICBjb25zdCBjb2RlQmxvY2tMYW5ndWFnZSA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tMYW5ndWFnZSddID8/ICcnO1xuICBpZiAoY29kZUJsb2NrTGFuZ3VhZ2UgIT09IGxhbmd1YWdlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbGluZVByZWZpeCA9IG1hdGNoLmdyb3Vwcz8uWydMaW5lUHJlZml4J10gPz8gJyc7XG5cbiAgaWYgKGlzSW5DYWxsb3V0ICYmICFsaW5lUHJlZml4LmluY2x1ZGVzKCc+ICcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29kZUJsb2NrQ29udGVudCA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tDb250ZW50J10gPz8gJyc7XG4gIGNvbnN0IGNsZWFuQ29kZUJsb2NrQ29udGVudCA9IGNvZGVCbG9ja0NvbnRlbnQuc3BsaXQoJ1xcbicpLm1hcCgobGluZSkgPT4gbGluZS5zbGljZShsaW5lUHJlZml4Lmxlbmd0aCkpLmpvaW4oJ1xcbicpO1xuXG4gIHJldHVybiBjbGVhbkNvZGVCbG9ja0NvbnRlbnQgPT09IHNvdXJjZUxmO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrQkEsOEJBQStCO0FBQy9CLG1CQUEyQztBQUMzQywwQkFBNEM7QUFDNUMsb0JBTU87QUFDUCx5QkFBa0M7QUFDbEMsNEJBQTZCO0FBQzdCLHlCQUE4QjtBQUM5QixtQkFJTztBQTBKUCxlQUFzQix5QkFBeUIsUUFBc0Y7QUFDbkksUUFBTSxFQUFFLEtBQUssS0FBSyxJQUFJLE9BQU8sSUFBSTtBQUVqQyxRQUFNLGlCQUFhLGtDQUFjLEVBQUUsS0FBSyxZQUFZLElBQUksV0FBVyxDQUFDO0FBQ3BFLDRDQUFrQixZQUFZLGVBQWUsSUFBSSxVQUFVLGFBQWE7QUFFeEUsWUFBTSx5Q0FBMkI7QUFDakMsWUFBTSx1QkFBUyxLQUFLLFVBQVU7QUFFOUIsTUFBSSxlQUFvRDtBQUV4RCxZQUFNLHVDQUF5QjtBQUFBLElBQzdCO0FBQUEsSUFDQSxHQUFHLGFBQWE7QUFDZCxZQUFNLG9CQUFnQiwrQkFBZ0IsV0FBVztB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
415
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHByb2Nlc3NpbmcgY29kZSBibG9ja3MgaW4gT2JzaWRpYW4uXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZXBseSBjb3VwbGVkIHRvIE9ic2lkaWFuIHJ1bnRpbWU7IHJlcXVpcmVzIHJ1bm5pbmcgdmF1bHQgZm9yIG1lYW5pbmdmdWwgdGVzdGluZy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQsXG4gIE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vdmFsdWUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIH0gZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmltcG9ydCB0eXBlIHsgRWRpdG9yTG9ja0NvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9yLWxvY2sudHMnO1xuaW1wb3J0IHR5cGUgeyBDb250ZW50QXJncyB9IGZyb20gJy4vdmF1bHQudHMnO1xuXG5pbXBvcnQgeyBhYm9ydFNpZ25hbEFueSB9IGZyb20gJy4uL2Fib3J0LWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMgfSBmcm9tICcuLi9hc3luYy50cyc7XG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICcuLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHtcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBnZXRMZk5vcm1hbGl6ZWRPZmZzZXRUb09yaWdpbmFsT2Zmc2V0TWFwcGVyLFxuICBoYXNTaW5nbGVPY2N1cnJlbmNlLFxuICBpbmRlbnQsXG4gIHVuaW5kZW50XG59IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmltcG9ydCB7IGdldEZpbGVPck51bGwgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7XG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgcHJvY2VzcyxcbiAgc2F2ZU5vdGVcbn0gZnJvbSAnLi92YXVsdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldENvZGVCbG9ja01hcmtkb3duSW5mb30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIHtAbGluayBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0fSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSBjdHg6IE1hcmtkb3duUG9zdFByb2Nlc3NvckNvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEge0BsaW5rIEhUTUxFbGVtZW50fSByZXByZXNlbnRpbmcgdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEEgc291cmNlIG9mIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGluc2VydEFmdGVyQ29kZUJsb2NrfSAvIHtAbGluayBpbnNlcnRCZWZvcmVDb2RlQmxvY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydENvZGVCbG9ja1BhcmFtcyBleHRlbmRzIEdldENvZGVCbG9ja01hcmtkb3duSW5mb1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZWRpdG9yLWxvY2sgY29tcG9uZW50IHVzZWQgdG8gbG9jayB0aGUgbm90ZSB3aGlsZSBpdCBpcyBiZWluZyBtb2RpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvckxvY2tDb21wb25lbnQ6IEVkaXRvckxvY2tDb21wb25lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBBIG51bWJlciBvZiBsaW5lcyB0byBvZmZzZXQgdGhlIGluc2VydGlvbiBieS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDBgXG4gICAqL1xuICByZWFkb25seSBsaW5lT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXNlcnZlIHRoZSBsaW5lIHByZWZpeCBvZiB0aGUgY29kZSBibG9jay5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSB0ZXh0IHRvIGluc2VydCBhZnRlciB0aGUgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVtb3ZlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdmVDb2RlQmxvY2tQYXJhbXMgZXh0ZW5kcyBHZXRDb2RlQmxvY2tNYXJrZG93bkluZm9QYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVkaXRvci1sb2NrIGNvbXBvbmVudCB1c2VkIHRvIGxvY2sgdGhlIG5vdGUgd2hpbGUgaXQgaXMgYmVpbmcgbW9kaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3JMb2NrQ29tcG9uZW50OiBFZGl0b3JMb2NrQ29tcG9uZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBrZWVwIHRoZSBnYXAgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGNvZGUgYmxvY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEtlZXBHYXA/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZXBsYWNlQ29kZUJsb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlQ29kZUJsb2NrUGFyYW1zIGV4dGVuZHMgR2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIGFib3J0IHNpZ25hbCB0byBjb250cm9sIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBuZXcgY29kZSBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCbG9ja1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPHN0cmluZywgQ29udGVudEFyZ3M+O1xuXG4gIC8qKlxuICAgKiBUaGUgZWRpdG9yLWxvY2sgY29tcG9uZW50IHVzZWQgdG8gbG9jayB0aGUgbm90ZSB3aGlsZSBpdCBpcyBiZWluZyBtb2RpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvckxvY2tDb21wb25lbnQ6IEVkaXRvckxvY2tDb21wb25lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGtlZXAgdGhlIGdhcCB3aGVuIHRoZSBuZXcgY29kZSBibG9jayBpcyBlbXB0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkS2VlcEdhcFdoZW5FbXB0eT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJlc2VydmUgdGhlIGxpbmUgcHJlZml4IG9mIHRoZSBjb2RlIGJsb2NrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXg/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlTWFya2Rvd25JbmZvRnJvbU1hdGNoUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwcm94aW1hdGVTZWN0aW9uSW5mbzogTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb247XG4gIHJlYWRvbmx5IGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5O1xuICByZWFkb25seSBub3RlQ29udGVudDogc3RyaW5nO1xuICByZWFkb25seSBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZUxpbmVzQ291bnQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgdGV4dExpbmVPZmZzZXRzOiBSZWFkb25seU1hcDxudW1iZXIsIG51bWJlcj47XG59XG5cbmludGVyZmFjZSBJbnNlcnRUZXh0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHRvIGluc2VydCB0aGUgdGV4dCBpbnRvLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGluZSBpbmRleCB0byBpbnNlcnQgdGhlIHRleHQgYXQuXG4gICAqL1xuICByZWFkb25seSBpbnNlcnRMaW5lSW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwcmVzZXJ2ZSB0aGUgbGluZSBwcmVmaXggb2YgdGhlIGxpbmUgYXQgdGhlIGluc2VydGlvbiBwb2ludC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gaW5zZXJ0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSXNTdWl0YWJsZUNvZGVCbG9ja1BhcmFtcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb2RlIGJsb2NrIGlzIGluc2lkZSBhIGNhbGxvdXQuXG4gICAqL1xuICByZWFkb25seSBpc0luQ2FsbG91dDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRoZSBjb2RlIGJsb2NrIGlzIGV4cGVjdGVkIHRvIGhhdmUuXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVndWxhciBleHByZXNzaW9uIG1hdGNoIG9mIHRoZSBjb2RlIGJsb2NrIGNhbmRpZGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5O1xuXG4gIC8qKlxuICAgKiBUaGUgTEYtbm9ybWFsaXplZCBzb3VyY2Ugb2YgdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VMZjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgY29kZSBibG9jayBpbiBhIE1hcmtkb3duIHNlY3Rpb24uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvZGUgYmxvY2sgaW4gdGhlIE1hcmtkb3duIHNlY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm8ocGFyYW1zOiBHZXRDb2RlQmxvY2tNYXJrZG93bkluZm9QYXJhbXMpOiBQcm9taXNlPENvZGVCbG9ja01hcmtkb3duSW5mb3JtYXRpb24gfCBudWxsPiB7XG4gIGNvbnN0IHsgYXBwLCBjdHgsIGVsLCBzb3VyY2UgfSA9IHBhcmFtcztcblxuICBjb25zdCBzb3VyY2VGaWxlID0gZ2V0RmlsZU9yTnVsbCh7IGFwcCwgcGF0aE9yRmlsZTogY3R4LnNvdXJjZVBhdGggfSk7XG4gIGFzc2VydE5vbk51bGxhYmxlKHNvdXJjZUZpbGUsIGBTb3VyY2UgZmlsZSAke2N0eC5zb3VyY2VQYXRofSBub3QgZm91bmQuYCk7XG5cbiAgYXdhaXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lQXN5bmMoKTtcbiAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBzb3VyY2VGaWxlKTtcblxuICBsZXQgbWFya2Rvd25JbmZvOiBDb2RlQmxvY2tNYXJrZG93bkluZm9ybWF0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgYXdhaXQgaW52b2tlV2l0aEZpbGVTeXN0ZW1Mb2NrKHtcbiAgICBhcHAsXG4gICAgZm4obm90ZUNvbnRlbnQpIHtcbiAgICAgIGNvbnN0IG5vdGVDb250ZW50TGYgPSBlbnN1cmVMZkVuZGluZ3Mobm90ZUNvbnRlbnQpO1xuXG4gICAgICBjb25zdCBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvOiBNYXJrZG93blNlY3Rpb25JbmZvcm1hdGlvbiA9IHtcbiAgICAgICAgbGluZUVuZDogbm90ZUNvbnRlbnRMZi5zcGxpdCgnXFxuJykubGVuZ3RoIC0gMSxcbiAgICAgICAgbGluZVN0YXJ0OiAwLFxuICAgICAgICB0ZXh0OiBub3RlQ29udGVudExmXG4gICAgICB9O1xuXG4gICAgICBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHQgPSBlbnN1cmVMZkVuZGluZ3MoYXBwcm94aW1hdGVTZWN0aW9uSW5mby50ZXh0KTtcbiAgICAgIGNvbnN0IHNvdXJjZUxmID0gZW5zdXJlTGZFbmRpbmdzKHNvdXJjZSk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIWhhc1NpbmdsZU9jY3VycmVuY2Uoe1xuICAgICAgICAgIHNlYXJjaFZhbHVlOiBhcHByb3hpbWF0ZVNlY3Rpb25JbmZvLnRleHQsXG4gICAgICAgICAgc3RyOiBub3RlQ29udGVudExmXG4gICAgICAgIH0pXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWN0aW9uT2Zmc2V0ID0gbm90ZUNvbnRlbnRMZi5pbmRleE9mKGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dCk7XG4gICAgICBjb25zdCBsaW5lc0JlZm9yZVNlY3Rpb25Db3VudCA9IG5vdGVDb250ZW50TGYuc2xpY2UoMCwgc2VjdGlvbk9mZnNldCkuc3BsaXQoJ1xcbicpLmxlbmd0aCAtIDE7XG5cbiAgICAgIGNvbnN0IGlzSW5DYWxsb3V0ID0gISFlbC5wYXJlbnRFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ2NhbGxvdXQtY29udGVudCcpO1xuXG4gICAgICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlRnJvbUVsZW1lbnQoZWwpO1xuICAgICAgY29uc3Qgc291cmNlTGluZXMgPSBzb3VyY2VMZi5zcGxpdCgnXFxuJyk7XG5cbiAgICAgIGNvbnN0IHRleHRMaW5lcyA9IGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dC5zcGxpdCgnXFxuJyk7XG4gICAgICBjb25zdCB0ZXh0TGluZU9mZnNldHMgPSBuZXcgTWFwPG51bWJlciwgbnVtYmVyPigpO1xuICAgICAgdGV4dExpbmVPZmZzZXRzLnNldChsaW5lc0JlZm9yZVNlY3Rpb25Db3VudCwgc2VjdGlvbk9mZnNldCk7XG5cbiAgICAgIGxldCBsYXN0VGV4dExpbmVPZmZzZXQgPSBzZWN0aW9uT2Zmc2V0O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0TGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGV4dExpbmUgPSB0ZXh0TGluZXNbaV0gPz8gJyc7XG4gICAgICAgIGNvbnN0IGxpbmVPZmZzZXQgPSBsYXN0VGV4dExpbmVPZmZzZXQgKyB0ZXh0TGluZS5sZW5ndGggKyAxO1xuICAgICAgICB0ZXh0TGluZU9mZnNldHMuc2V0KGxpbmVzQmVmb3JlU2VjdGlvbkNvdW50ICsgaSArIDEsIGxpbmVPZmZzZXQpO1xuICAgICAgICBsYXN0VGV4dExpbmVPZmZzZXQgPSBsaW5lT2Zmc2V0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0TGluZXMgPSB0ZXh0TGluZXMubWFwKChsaW5lLCBpbmRleCkgPT4gYXBwcm94aW1hdGVTZWN0aW9uSW5mby5saW5lU3RhcnQgPD0gaW5kZXggJiYgaW5kZXggPD0gYXBwcm94aW1hdGVTZWN0aW9uSW5mby5saW5lRW5kID8gbGluZSA6ICcnKTtcbiAgICAgIGNvbnN0IHBvdGVudGlhbENvZGVCbG9ja1RleHQgPSBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0TGluZXMuam9pbignXFxuJyk7XG5cbiAgICAgIGNvbnN0IFJFR19FWFAgPSAvKD88PV58XFxuKSg/PExpbmVQcmVmaXg+IHswLDN9KD86PiB7MSwzfSkqKSg/PENvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyPig/PENvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyQ2hhcj5bYH5dKSg/OlxcazxDb2RlQmxvY2tTdGFydERlbGltaXRlckNoYXI+ezIsfSkpKD88Q29kZUJsb2NrTGFuZ3VhZ2U+XFxTKikoPzpbIFxcdF0oPzxDb2RlQmxvY2tBcmdzPi4qPykpPyg/Olxcbig/PENvZGVCbG9ja0NvbnRlbnQ+KD86XFxuP1xcazxMaW5lUHJlZml4Pi4qKSs/KSk/XFxuXFxrPExpbmVQcmVmaXg+KD88Q29kZUJsb2NrRW5kRGVsaW1pdGVyPlxcazxDb2RlQmxvY2tTdGFydERlbGltaXRlcj5cXGs8Q29kZUJsb2NrU3RhcnREZWxpbWl0ZXJDaGFyPiopWyBcXHRdKig/PVxcbnwkKS9nO1xuXG4gICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHBvdGVudGlhbENvZGVCbG9ja1RleHQubWF0Y2hBbGwoUkVHX0VYUCkpIHtcbiAgICAgICAgaWYgKCFpc1N1aXRhYmxlQ29kZUJsb2NrKHsgaXNJbkNhbGxvdXQsIGxhbmd1YWdlLCBtYXRjaCwgc291cmNlTGYgfSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXJrZG93bkluZm8pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtYXJrZG93bkluZm8gPSBjcmVhdGVNYXJrZG93bkluZm9Gcm9tTWF0Y2goe1xuICAgICAgICAgIGFwcHJveGltYXRlU2VjdGlvbkluZm8sXG4gICAgICAgICAgbGluZXNCZWZvcmVTZWN0aW9uQ291bnQsXG4gICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgbm90ZUNvbnRlbnQsXG4gICAgICAgICAgcG90ZW50aWFsQ29kZUJsb2NrVGV4dCxcbiAgICAgICAgICBzb3VyY2VMaW5lc0NvdW50OiBzb3VyY2VMaW5lcy5sZW5ndGgsXG4gICAgICAgICAgdGV4dExpbmVPZmZzZXRzXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW1hcmtkb3duSW5mbykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChub3RlQ29udGVudExmID09PSBub3RlQ29udGVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxmT2Zmc2V0TWFwcGVyID0gZ2V0TGZOb3JtYWxpemVkT2Zmc2V0VG9PcmlnaW5hbE9mZnNldE1hcHBlcihub3RlQ29udGVudCk7XG4gICAgICBtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuc3RhcnQub2Zmc2V0ID0gbGZPZmZzZXRNYXBwZXIobWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCk7XG4gICAgICBtYXJrZG93bkluZm8ucG9zaXRpb25Jbk5vdGUuZW5kLm9mZnNldCA9IGxmT2Zmc2V0TWFwcGVyKG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQub2Zmc2V0KTtcbiAgICB9LFxuICAgIHBhdGhPckZpbGU6IHNvdXJjZUZpbGVcbiAgfSk7XG5cbiAgcmV0dXJuIG1hcmtkb3duSW5mbztcbn1cblxuLyoqXG4gKiBJbnNlcnRzIHRleHQgYWZ0ZXIgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBJbnNlcnRDb2RlQmxvY2tQYXJhbXMgd2l0aCBpbnNlcnRCZWZvcmVDb2RlQmxvY2suXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zZXJ0QWZ0ZXJDb2RlQmxvY2socGFyYW1zOiBJbnNlcnRDb2RlQmxvY2tQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhcHAsIGN0eCwgbGluZU9mZnNldCA9IDAsIHRleHQgfSA9IHBhcmFtcztcblxuICBhd2FpdCBwcm9jZXNzKHtcbiAgICBhcHAsXG4gICAgZWRpdG9yTG9ja0NvbXBvbmVudDogcGFyYW1zLmVkaXRvckxvY2tDb21wb25lbnQsXG4gICAgYXN5bmMgbmV3Q29udGVudFByb3ZpZGVyKHsgY29udGVudCB9KSB7XG4gICAgICBjb25zdCBtYXJrZG93bkluZm8gPSBhd2FpdCBnZXRDb2RlQmxvY2tNYXJrZG93bkluZm8ocGFyYW1zKTtcbiAgICAgIGFzc2VydE5vbk51bGxhYmxlKG1hcmtkb3duSW5mbywgJ0NvdWxkIG5vdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgY29kZSBibG9jay4nKTtcblxuICAgICAgaWYgKGNvbnRlbnQgIT09IG1hcmtkb3duSW5mby5ub3RlQ29udGVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW5zZXJ0TGluZUluZGV4ID0gbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5saW5lICsgbGluZU9mZnNldCArIDE7XG4gICAgICByZXR1cm4gaW5zZXJ0VGV4dChub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8SW5zZXJ0VGV4dFBhcmFtcz4oe1xuICAgICAgICBjb250ZW50LFxuICAgICAgICBpbnNlcnRMaW5lSW5kZXgsXG4gICAgICAgIHNob3VsZFByZXNlcnZlTGluZVByZWZpeDogcGFyYW1zLnNob3VsZFByZXNlcnZlTGluZVByZWZpeCxcbiAgICAgICAgdGV4dFxuICAgICAgfSkpO1xuICAgIH0sXG4gICAgcGF0aE9yRmlsZTogY3R4LnNvdXJjZVBhdGhcbiAgfSk7XG59XG5cbi8qKlxuICogSW5zZXJ0cyB0ZXh0IGJlZm9yZSB0aGUgY29kZSBibG9jay5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEludGVudGlvbmFsbHkgc2hhcmVzIEluc2VydENvZGVCbG9ja1BhcmFtcyB3aXRoIGluc2VydEFmdGVyQ29kZUJsb2NrLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydEJlZm9yZUNvZGVCbG9jayhwYXJhbXM6IEluc2VydENvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCwgY3R4LCBsaW5lT2Zmc2V0ID0gMCwgdGV4dCB9ID0gcGFyYW1zO1xuXG4gIGF3YWl0IHByb2Nlc3Moe1xuICAgIGFwcCxcbiAgICBlZGl0b3JMb2NrQ29tcG9uZW50OiBwYXJhbXMuZWRpdG9yTG9ja0NvbXBvbmVudCxcbiAgICBhc3luYyBuZXdDb250ZW50UHJvdmlkZXIoeyBjb250ZW50IH0pIHtcbiAgICAgIGNvbnN0IG1hcmtkb3duSW5mbyA9IGF3YWl0IGdldENvZGVCbG9ja01hcmtkb3duSW5mbyhwYXJhbXMpO1xuICAgICAgaWYgKCFtYXJrZG93bkluZm8pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGNvZGUgYmxvY2suJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250ZW50ICE9PSBtYXJrZG93bkluZm8ubm90ZUNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluc2VydExpbmVJbmRleCA9IG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5zdGFydC5saW5lIC0gbGluZU9mZnNldDtcbiAgICAgIHJldHVybiBpbnNlcnRUZXh0KG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxJbnNlcnRUZXh0UGFyYW1zPih7XG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIGluc2VydExpbmVJbmRleCxcbiAgICAgICAgc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4OiBwYXJhbXMuc2hvdWxkUHJlc2VydmVMaW5lUHJlZml4LFxuICAgICAgICB0ZXh0XG4gICAgICB9KSk7XG4gICAgfSxcbiAgICBwYXRoT3JGaWxlOiBjdHguc291cmNlUGF0aFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBjb2RlIGJsb2NrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVtb3ZlQ29kZUJsb2NrKHBhcmFtczogUmVtb3ZlQ29kZUJsb2NrUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJlcGxhY2VDb2RlQmxvY2soe1xuICAgIC4uLnBhcmFtcyxcbiAgICBjb2RlQmxvY2tQcm92aWRlcjogJycsXG4gICAgc2hvdWxkS2VlcEdhcFdoZW5FbXB0eTogcGFyYW1zLnNob3VsZEtlZXBHYXAgPz8gZmFsc2VcbiAgfSk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGNvZGUgYmxvY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlQ29kZUJsb2NrKHBhcmFtczogUmVwbGFjZUNvZGVCbG9ja1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCwgY29kZUJsb2NrUHJvdmlkZXIsIGN0eCB9ID0gcGFyYW1zO1xuICBwYXJhbXMuYWJvcnRTaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG5cbiAgYXdhaXQgcHJvY2Vzcyh7XG4gICAgYXBwLFxuICAgIGVkaXRvckxvY2tDb21wb25lbnQ6IHBhcmFtcy5lZGl0b3JMb2NrQ29tcG9uZW50LFxuICAgIGFzeW5jIG5ld0NvbnRlbnRQcm92aWRlcih7IGFib3J0U2lnbmFsLCBjb250ZW50IH0pIHtcbiAgICAgIGFib3J0U2lnbmFsID0gYWJvcnRTaWduYWxBbnkoYWJvcnRTaWduYWwsIHBhcmFtcy5hYm9ydFNpZ25hbCk7XG4gICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgY29uc3QgbWFya2Rvd25JbmZvID0gYXdhaXQgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvKHBhcmFtcyk7XG4gICAgICBpZiAoIW1hcmtkb3duSW5mbykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB1bmlxdWVseSBpZGVudGlmeSB0aGUgY29kZSBibG9jay4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRlbnQgIT09IG1hcmtkb3duSW5mby5ub3RlQ29udGVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgbGV0IG9sZENvZGVCbG9jayA9IGNvbnRlbnQuc2xpY2UobWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCwgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLmVuZC5vZmZzZXQpO1xuICAgICAgaWYgKHBhcmFtcy5zaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXgpIHtcbiAgICAgICAgb2xkQ29kZUJsb2NrID0gdW5pbmRlbnQoe1xuICAgICAgICAgIHByZWZpeDogbWFya2Rvd25JbmZvLmxpbmVQcmVmaXgsXG4gICAgICAgICAgdGV4dDogb2xkQ29kZUJsb2NrXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBsZXQgbmV3Q29kZUJsb2NrID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNvZGVCbG9ja1Byb3ZpZGVyLCB7IGFib3J0U2lnbmFsLCBjb250ZW50OiBvbGRDb2RlQmxvY2sgfSk7XG4gICAgICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgaWYgKChuZXdDb2RlQmxvY2sgfHwgcGFyYW1zLnNob3VsZEtlZXBHYXBXaGVuRW1wdHkpICYmIHBhcmFtcy5zaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXgpIHtcbiAgICAgICAgbmV3Q29kZUJsb2NrID0gaW5kZW50KHtcbiAgICAgICAgICBwcmVmaXg6IG1hcmtkb3duSW5mby5saW5lUHJlZml4LFxuICAgICAgICAgIHRleHQ6IG5ld0NvZGVCbG9ja1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGV4dEJlZm9yZUNvZGVCbG9jayA9IGNvbnRlbnQuc2xpY2UoMCwgbWFya2Rvd25JbmZvLnBvc2l0aW9uSW5Ob3RlLnN0YXJ0Lm9mZnNldCk7XG4gICAgICBjb25zdCB0ZXh0QWZ0ZXJDb2RlQmxvY2sgPSBjb250ZW50LnNsaWNlKG1hcmtkb3duSW5mby5wb3NpdGlvbkluTm90ZS5lbmQub2Zmc2V0KTtcblxuICAgICAgaWYgKG5ld0NvZGVCbG9jayB8fCBwYXJhbXMuc2hvdWxkS2VlcEdhcFdoZW5FbXB0eSkge1xuICAgICAgICByZXR1cm4gYCR7dGV4dEJlZm9yZUNvZGVCbG9ja30ke25ld0NvZGVCbG9ja30ke3RleHRBZnRlckNvZGVCbG9ja31gO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRleHRCZWZvcmVDb2RlQmxvY2sgJiYgIXRleHRBZnRlckNvZGVCbG9jaykge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0ZXh0QmVmb3JlQ29kZUJsb2NrKSB7XG4gICAgICAgIHJldHVybiBgJHt0ZXh0QmVmb3JlQ29kZUJsb2NrLnNsaWNlKDAsIC0xKX0ke3RleHRBZnRlckNvZGVCbG9ja31gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7dGV4dEJlZm9yZUNvZGVCbG9ja30ke3RleHRBZnRlckNvZGVCbG9jay5zbGljZSgxKX1gO1xuICAgIH0sXG4gICAgcGF0aE9yRmlsZTogY3R4LnNvdXJjZVBhdGhcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU1hcmtkb3duSW5mb0Zyb21NYXRjaChwYXJhbXM6IENyZWF0ZU1hcmtkb3duSW5mb0Zyb21NYXRjaFBhcmFtcyk6IENvZGVCbG9ja01hcmtkb3duSW5mb3JtYXRpb24ge1xuICBjb25zdCB7XG4gICAgYXBwcm94aW1hdGVTZWN0aW9uSW5mbyxcbiAgICBsaW5lc0JlZm9yZVNlY3Rpb25Db3VudCxcbiAgICBtYXRjaCxcbiAgICBub3RlQ29udGVudCxcbiAgICBwb3RlbnRpYWxDb2RlQmxvY2tUZXh0LFxuICAgIHNvdXJjZUxpbmVzQ291bnQsXG4gICAgdGV4dExpbmVPZmZzZXRzXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgbGluZVByZWZpeCA9IG1hdGNoLmdyb3Vwcz8uWydMaW5lUHJlZml4J10gPz8gJyc7XG4gIGNvbnN0IGNvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyJ10gPz8gJyc7XG4gIGNvbnN0IGNvZGVCbG9ja0VuZERlbGltaXRlciA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tFbmREZWxpbWl0ZXInXSA/PyAnJztcbiAgY29uc3QgY29kZUJsb2NrQXJnc1N0ciA9IG1hdGNoLmdyb3Vwcz8uWydDb2RlQmxvY2tBcmdzJ10gPz8gJyc7XG4gIGNvbnN0IGxhbmd1YWdlID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0xhbmd1YWdlJ10gPz8gJyc7XG5cbiAgY29uc3QgcHJldmlvdXNUZXh0ID0gcG90ZW50aWFsQ29kZUJsb2NrVGV4dC5zbGljZSgwLCBtYXRjaC5pbmRleCk7XG4gIGNvbnN0IHByZXZpb3VzVGV4dExpbmVzQ291bnQgPSBwcmV2aW91c1RleHQuc3BsaXQoJ1xcbicpLmxlbmd0aCAtIDE7XG5cbiAgY29uc3Qgc3RhcnRMaW5lID0gbGluZXNCZWZvcmVTZWN0aW9uQ291bnQgKyBwcmV2aW91c1RleHRMaW5lc0NvdW50O1xuICBjb25zdCBlbmRMaW5lID0gc3RhcnRMaW5lICsgc291cmNlTGluZXNDb3VudCArIDE7XG5cbiAgcmV0dXJuIHtcbiAgICBhcmdzOiBjb2RlQmxvY2tBcmdzU3RyLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pLFxuICAgIGVuZERlbGltaXRlcjogY29kZUJsb2NrRW5kRGVsaW1pdGVyLFxuICAgIGxhbmd1YWdlLFxuICAgIGxpbmVQcmVmaXgsXG4gICAgbm90ZUNvbnRlbnQsXG4gICAgcG9zaXRpb25Jbk5vdGU6IHtcbiAgICAgIGVuZDoge1xuICAgICAgICBjb2w6ICh0ZXh0TGluZU9mZnNldHMuZ2V0KGVuZExpbmUgKyAxKSA/PyAwKSAtICh0ZXh0TGluZU9mZnNldHMuZ2V0KGVuZExpbmUpID8/IDApIC0gMSxcbiAgICAgICAgbGluZTogZW5kTGluZSxcbiAgICAgICAgb2Zmc2V0OiAodGV4dExpbmVPZmZzZXRzLmdldChlbmRMaW5lICsgMSkgPz8gMCkgLSAxXG4gICAgICB9LFxuICAgICAgc3RhcnQ6IHtcbiAgICAgICAgY29sOiAwLFxuICAgICAgICBsaW5lOiBzdGFydExpbmUsXG4gICAgICAgIG9mZnNldDogdGV4dExpbmVPZmZzZXRzLmdldChzdGFydExpbmUpID8/IDBcbiAgICAgIH1cbiAgICB9LFxuICAgIHJhd0FyZ3NTdHI6IGNvZGVCbG9ja0FyZ3NTdHIsXG4gICAgc2VjdGlvbkluZm86IHtcbiAgICAgIGxpbmVFbmQ6IHByZXZpb3VzVGV4dExpbmVzQ291bnQgKyBzb3VyY2VMaW5lc0NvdW50ICsgMSxcbiAgICAgIGxpbmVTdGFydDogcHJldmlvdXNUZXh0TGluZXNDb3VudCxcbiAgICAgIHRleHQ6IGFwcHJveGltYXRlU2VjdGlvbkluZm8udGV4dFxuICAgIH0sXG4gICAgc3RhcnREZWxpbWl0ZXI6IGNvZGVCbG9ja1N0YXJ0RGVsaW1pdGVyXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldExhbmd1YWdlRnJvbUVsZW1lbnQoZWw6IEhUTUxFbGVtZW50KTogc3RyaW5nIHtcbiAgY29uc3QgQkxPQ0tfTEFOR1VBR0VfUFJFRklYID0gJ2Jsb2NrLWxhbmd1YWdlLSc7XG4gIHJldHVybiBBcnJheS5mcm9tKGVsLmNsYXNzTGlzdCkuZmluZCgoY2xzKSA9PiBjbHMuc3RhcnRzV2l0aChCTE9DS19MQU5HVUFHRV9QUkVGSVgpKT8uc2xpY2UoQkxPQ0tfTEFOR1VBR0VfUFJFRklYLmxlbmd0aCkgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIGluc2VydFRleHQocGFyYW1zOiBJbnNlcnRUZXh0UGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3QgeyBjb250ZW50LCBzaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXggPSBmYWxzZSwgdGV4dCB9ID0gcGFyYW1zO1xuICBsZXQgeyBpbnNlcnRMaW5lSW5kZXggfSA9IHBhcmFtcztcblxuICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBuZXdMaW5lcyA9IGxpbmVzLnNsaWNlKCk7XG4gIGNvbnN0IHRleHRMaW5lcyA9IHRleHQuc3BsaXQoJ1xcbicpO1xuXG4gIGlmIChpbnNlcnRMaW5lSW5kZXggPCAwKSB7XG4gICAgaW5zZXJ0TGluZUluZGV4ID0gMDtcbiAgfVxuICBpZiAoaW5zZXJ0TGluZUluZGV4ID4gbGluZXMubGVuZ3RoKSB7XG4gICAgaW5zZXJ0TGluZUluZGV4ID0gbGluZXMubGVuZ3RoO1xuICB9XG5cbiAgY29uc3QgUFJFRklYX0xJTkVfUkVHX0VYUCA9IC9eIHswLDN9KD86PiB7MSwzfSkqL2c7XG4gIGNvbnN0IG1hdGNoID0gKGxpbmVzW2luc2VydExpbmVJbmRleF0gPz8gJycpLm1hdGNoKFBSRUZJWF9MSU5FX1JFR19FWFApO1xuICBjb25zdCBsaW5lUHJlZml4ID0gbWF0Y2g/LlswXSA/PyAnJztcbiAgbmV3TGluZXMuc3BsaWNlKFxuICAgIGluc2VydExpbmVJbmRleCxcbiAgICAwLFxuICAgIC4uLihzaG91bGRQcmVzZXJ2ZUxpbmVQcmVmaXhcbiAgICAgID8gdGV4dExpbmVzLm1hcCgobGluZSkgPT5cbiAgICAgICAgaW5kZW50KHtcbiAgICAgICAgICBwcmVmaXg6IGxpbmVQcmVmaXgsXG4gICAgICAgICAgdGV4dDogbGluZVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgOiB0ZXh0TGluZXMpXG4gICk7XG4gIHJldHVybiBuZXdMaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuZnVuY3Rpb24gaXNTdWl0YWJsZUNvZGVCbG9jayhwYXJhbXM6IElzU3VpdGFibGVDb2RlQmxvY2tQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBpc0luQ2FsbG91dCwgbGFuZ3VhZ2UsIG1hdGNoLCBzb3VyY2VMZiB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGNvZGVCbG9ja0xhbmd1YWdlID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0xhbmd1YWdlJ10gPz8gJyc7XG4gIGlmIChjb2RlQmxvY2tMYW5ndWFnZSAhPT0gbGFuZ3VhZ2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBsaW5lUHJlZml4ID0gbWF0Y2guZ3JvdXBzPy5bJ0xpbmVQcmVmaXgnXSA/PyAnJztcblxuICBpZiAoaXNJbkNhbGxvdXQgJiYgIWxpbmVQcmVmaXguaW5jbHVkZXMoJz4gJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjb2RlQmxvY2tDb250ZW50ID0gbWF0Y2guZ3JvdXBzPy5bJ0NvZGVCbG9ja0NvbnRlbnQnXSA/PyAnJztcbiAgY29uc3QgY2xlYW5Db2RlQmxvY2tDb250ZW50ID0gY29kZUJsb2NrQ29udGVudC5zcGxpdCgnXFxuJykubWFwKChsaW5lKSA9PiBsaW5lLnNsaWNlKGxpbmVQcmVmaXgubGVuZ3RoKSkuam9pbignXFxuJyk7XG5cbiAgcmV0dXJuIGNsZWFuQ29kZUJsb2NrQ29udGVudCA9PT0gc291cmNlTGY7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQSw4QkFBK0I7QUFDL0IsbUJBQTJDO0FBQzNDLDBCQUE0QztBQUM1QyxvQkFNTztBQUNQLHlCQUFrQztBQUNsQyw0QkFBNkI7QUFDN0IseUJBQThCO0FBQzlCLG1CQUlPO0FBeUtQLGVBQXNCLHlCQUF5QixRQUFzRjtBQUNuSSxRQUFNLEVBQUUsS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJO0FBRWpDLFFBQU0saUJBQWEsa0NBQWMsRUFBRSxLQUFLLFlBQVksSUFBSSxXQUFXLENBQUM7QUFDcEUsNENBQWtCLFlBQVksZUFBZSxJQUFJLFVBQVUsYUFBYTtBQUV4RSxZQUFNLHlDQUEyQjtBQUNqQyxZQUFNLHVCQUFTLEtBQUssVUFBVTtBQUU5QixNQUFJLGVBQW9EO0FBRXhELFlBQU0sdUNBQXlCO0FBQUEsSUFDN0I7QUFBQSxJQUNBLEdBQUcsYUFBYTtBQUNkLFlBQU0sb0JBQWdCLCtCQUFnQixXQUFXO0FBRWpELFlBQU0seUJBQXFEO0FBQUEsUUFDekQsU0FBUyxjQUFjLE1BQU0sSUFBSSxFQUFFLFNBQVM7QUFBQSxRQUM1QyxXQUFXO0FBQUEsUUFDWCxNQUFNO0FBQUEsTUFDUjtBQUVBLDZCQUF1QixXQUFPLCtCQUFnQix1QkFBdUIsSUFBSTtBQUN6RSxZQUFNLGVBQVcsK0JBQWdCLE1BQU07QUFFdkMsVUFDRSxLQUFDLG1DQUFvQjtBQUFBLFFBQ25CLGFB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
@@ -7,6 +7,7 @@
7
7
  import type { App, MarkdownPostProcessorContext } from 'obsidian' with { 'resolution-mode': 'import' };
8
8
  import type { ValueProvider } from '../value-provider.cjs';
9
9
  import type { CodeBlockMarkdownInformation } from './code-block-markdown-information.cjs';
10
+ import type { EditorLockComponent } from './editor-lock.cjs';
10
11
  import type { ContentArgs } from './vault.cjs';
11
12
  /**
12
13
  * Options for {@link getCodeBlockMarkdownInfo}.
@@ -33,6 +34,10 @@ export interface GetCodeBlockMarkdownInfoParams {
33
34
  * Options for {@link insertAfterCodeBlock} / {@link insertBeforeCodeBlock}.
34
35
  */
35
36
  export interface InsertCodeBlockParams extends GetCodeBlockMarkdownInfoParams {
37
+ /**
38
+ * The editor-lock component used to lock the note while it is being modified.
39
+ */
40
+ readonly editorLockComponent: EditorLockComponent | null;
36
41
  /**
37
42
  * A number of lines to offset the insertion by.
38
43
  *
@@ -54,6 +59,10 @@ export interface InsertCodeBlockParams extends GetCodeBlockMarkdownInfoParams {
54
59
  * Options for {@link removeCodeBlock}.
55
60
  */
56
61
  export interface RemoveCodeBlockParams extends GetCodeBlockMarkdownInfoParams {
62
+ /**
63
+ * The editor-lock component used to lock the note while it is being modified.
64
+ */
65
+ readonly editorLockComponent: EditorLockComponent | null;
57
66
  /**
58
67
  * Whether to keep the gap after removing the code block.
59
68
  *
@@ -73,6 +82,10 @@ export interface ReplaceCodeBlockParams extends GetCodeBlockMarkdownInfoParams {
73
82
  * Provides a new code block.
74
83
  */
75
84
  readonly codeBlockProvider: ValueProvider<string, ContentArgs>;
85
+ /**
86
+ * The editor-lock component used to lock the note while it is being modified.
87
+ */
88
+ readonly editorLockComponent: EditorLockComponent | null;
76
89
  /**
77
90
  * Whether to keep the gap when the new code block is empty.
78
91
  *
@@ -172,6 +172,7 @@ class MinimizableModal {
172
172
  this.isMinimizedValue = true;
173
173
  this.minimizeButtonEl.hide();
174
174
  this.modal.containerEl.hide();
175
+ this.modal.app.keymap.popScope(this.modal.scope);
175
176
  this.minimizedBarEl = this.createMinimizedBar();
176
177
  }
177
178
  /**
@@ -184,6 +185,7 @@ class MinimizableModal {
184
185
  }
185
186
  this.isMinimizedValue = false;
186
187
  this.removeMinimizedBar();
188
+ this.modal.app.keymap.pushScope(this.modal.scope);
187
189
  this.modal.containerEl.show();
188
190
  this.minimizeButtonEl.show();
189
191
  }
@@ -232,4 +234,4 @@ class MinimizableModal {
232
234
  0 && (module.exports = {
233
235
  MinimizableModal
234
236
  });
235
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEEgd3JhcHBlciB0aGF0IG1ha2VzIGFueSBPYnNpZGlhbiB7QGxpbmsgTW9kYWx9IG1pbmltaXphYmxlLlxuICpcbiAqIE9ic2lkaWFuJ3Mge0BsaW5rIE1vZGFsfSBpcyBibG9ja2luZyBcdTIwMTQgd2hpbGUgaXQgaXMgb3BlbiB0aGUgcmVzdCBvZiB0aGUgYXBwIGlzIGRpbW1lZCBhbmRcbiAqIGluZXJ0IFx1MjAxNCBhbmQgaXQgY2Fubm90IGJlIG1pbmltaXplZC4ge0BsaW5rIE1pbmltaXphYmxlTW9kYWx9IHdyYXBzIGFueSBtb2RhbCBpbnN0YW5jZSAocGxhaW5cbiAqIGBNb2RhbGAsIGBGdXp6eVN1Z2dlc3RNb2RhbGAsIHRoZSBsaWJyYXJ5J3MgYE1vZGFsQmFzZWAsIHlvdXIgb3duIHN1YmNsYXNzLCBcdTIwMjYgXHUyMDE0IGluY2x1ZGluZyBtb2RhbHNcbiAqIHlvdSBkbyBub3Qgb3duKSBhbmQgYWRkcyBhIG1pbmltaXplIGJ1dHRvbjogd2hlbiBtaW5pbWl6ZWQsIHRoZSBtb2RhbCAoYW5kIGl0cyBibG9ja2luZyBiYWNrZHJvcClcbiAqIGlzIGhpZGRlbiBhbmQgYSBzbWFsbCBmbG9hdGluZyBiYXIgd2l0aCBhIHJlc3RvcmUgYnV0dG9uIGlzIHNob3duIGluc3RlYWQsIHNvIHRoZSBhcHAgc3RheXMgZnVsbHlcbiAqIHVzYWJsZSB3aGlsZSBhIGxvbmctcnVubmluZyBvcGVyYXRpb24gY29udGludWVzIGluIHRoZSBiYWNrZ3JvdW5kLlxuICpcbiAqIFRoZSB3cmFwcGVyIHJldXNlcyB0aGUgbW9kYWwncyBvd24gdGl0bGUgKGB0aXRsZUVsYCkgYXMgdGhlIG1pbmltaXplZCBiYXIgbGFiZWwsIHNvIHNldCB0aGUgdGl0bGVcbiAqIHRoZSB1c3VhbCB3YXkgKGBtb2RhbC5zZXRUaXRsZSguLi4pYCkuIFJlbmRlciBhcmJpdHJhcnkgY29udGVudCBpbnRvIHtAbGluayBNb2RhbC5jb250ZW50RWx9LFxuICogaW5jbHVkaW5nIGNsaWNrYWJsZSBub3RlIGxpbmtzIHByb2R1Y2VkIGJ5IGByZW5kZXJJbnRlcm5hbExpbmtgIGZyb21cbiAqIGBvYnNpZGlhbi1kZXYtdXRpbHMvb2JzaWRpYW4vbWFya2Rvd25gOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBtb2RhbCA9IG5ldyBNeU1vZGFsKGFwcCk7XG4gKiBtb2RhbC5zZXRUaXRsZSgnTWVyZ2luZyBub3RlcycpO1xuICogbW9kYWwuY29udGVudEVsLmFwcGVuZENoaWxkKGF3YWl0IHJlbmRlckludGVybmFsTGluayh7IGFwcCwgcGF0aE9yQWJzdHJhY3RGaWxlOiBmaWxlIH0pKTtcbiAqXG4gKiBjb25zdCBtaW5pbWl6YWJsZSA9IG5ldyBNaW5pbWl6YWJsZU1vZGFsKG1vZGFsKTtcbiAqIG1pbmltaXphYmxlLm1vZGFsLm9wZW4oKTtcbiAqIG1pbmltaXphYmxlLm1pbmltaXplKCk7IC8vIGFwcCBpcyB1c2FibGUgYWdhaW47IGEgZmxvYXRpbmcgYmFyIG9mZmVycyBcInJlc3RvcmVcIlxuICogYGBgXG4gKlxuICogVGhlIHdyYXBwZWQgbW9kYWwgY2FuIHN0aWxsIGJlIGNsb3NlZCBub3JtYWxseTsgdGhlIGZsb2F0aW5nIGJhciBpcyBjbGVhbmVkIHVwIGF1dG9tYXRpY2FsbHkgd2hlblxuICogdGhlIG1vZGFsIGNsb3NlcyAoZXZlbiBpZiBpdCBpcyBjbG9zZWQgd2hpbGUgbWluaW1pemVkKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1vZGFsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBhcm91bmQgfSBmcm9tICdtb25rZXktYXJvdW5kJztcbmltcG9ydCB7IHNldEljb24gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG5jb25zdCBNSU5JTUlaRV9JQ09OX0lEID0gJ21pbnVzJztcbmNvbnN0IFJFU1RPUkVfSUNPTl9JRCA9ICdtYXhpbWl6ZS0yJztcblxuLyoqXG4gKiBXcmFwcyBhIHtAbGluayBNb2RhbH0gaW5zdGFuY2UgdG8gbWFrZSBpdCBtaW5pbWl6YWJsZSB0byBhIHNtYWxsIGZsb2F0aW5nIGJhciBhbmQgcmVzdG9yYWJsZSxcbiAqIGtlZXBpbmcgdGhlIGFwcCB1c2FibGUgd2hpbGUgbWluaW1pemVkLlxuICpcbiAqIEB0eXBlUGFyYW0gVE1vZGFsIC0gVGhlIHR5cGUgb2YgdGhlIHdyYXBwZWQgbW9kYWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBNaW5pbWl6YWJsZU1vZGFsPFRNb2RhbCBleHRlbmRzIE1vZGFsPiB7XG4gIC8qKlxuICAgKiBUaGUgd3JhcHBlZCBtb2RhbC4gT3BlbiwgY2xvc2UsIGFuZCBwb3B1bGF0ZSBpdCBhcyB1c3VhbCAoZS5nLiBgbWluaW1pemFibGUubW9kYWwub3BlbigpYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbW9kYWw6IFRNb2RhbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbW9kYWwgaXMgY3VycmVudGx5IG1pbmltaXplZC5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBtb2RhbCBpcyBjdXJyZW50bHkgbWluaW1pemVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNNaW5pbWl6ZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNaW5pbWl6ZWRWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG1pbmltaXplQnV0dG9uRWw6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG1pbmltaXplZEJhckVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBXcmFwcyB0aGUgZ2l2ZW4gbW9kYWwsIGFkZGluZyBhIG1pbmltaXplIGJ1dHRvbiBhbmQgd2lyaW5nIHVwIGNsZWFudXAgb24gY2xvc2UuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RhbCAtIFRoZSBtb2RhbCBpbnN0YW5jZSB0byBtYWtlIG1pbmltaXphYmxlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKG1vZGFsOiBUTW9kYWwpIHtcbiAgICB0aGlzLm1vZGFsID0gbW9kYWw7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhtb2RhbC5jb250YWluZXJFbCwgW0Nzc0NsYXNzLk1pbmltaXphYmxlTW9kYWxdKTtcbiAgICB0aGlzLm1pbmltaXplQnV0dG9uRWwgPSB0aGlzLmNyZWF0ZU1pbmltaXplQnV0dG9uKCk7XG4gICAgdGhpcy5wYXRjaE9uQ2xvc2UobW9kYWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltaXplcyB0aGUgbW9kYWw6IGhpZGVzIHRoZSBtb2RhbCBhbmQgaXRzIGJhY2tkcm9wIGFuZCBzaG93cyBhIGZsb2F0aW5nIGJhciB3aXRoIGEgcmVzdG9yZVxuICAgKiBidXR0b24uIEEgbm8tb3AgaWYgdGhlIG1vZGFsIGlzIGFscmVhZHkgbWluaW1pemVkLlxuICAgKi9cbiAgcHVibGljIG1pbmltaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTWluaW1pemVkVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTWluaW1pemVkVmFsdWUgPSB0cnVlO1xuICAgIHRoaXMubWluaW1pemVCdXR0b25FbC5oaWRlKCk7XG4gICAgdGhpcy5tb2RhbC5jb250YWluZXJFbC5oaWRlKCk7XG4gICAgdGhpcy5taW5pbWl6ZWRCYXJFbCA9IHRoaXMuY3JlYXRlTWluaW1pemVkQmFyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIG1vZGFsIGZyb20gdGhlIG1pbmltaXplZCBzdGF0ZSwgcmVtb3ZpbmcgdGhlIGZsb2F0aW5nIGJhci4gQSBuby1vcCBpZiB0aGUgbW9kYWwgaXNcbiAgICogbm90IG1pbmltaXplZC5cbiAgICovXG4gIHB1YmxpYyByZXN0b3JlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc01pbmltaXplZFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc01pbmltaXplZFZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5yZW1vdmVNaW5pbWl6ZWRCYXIoKTtcbiAgICB0aGlzLm1vZGFsLmNvbnRhaW5lckVsLnNob3coKTtcbiAgICB0aGlzLm1pbmltaXplQnV0dG9uRWwuc2hvdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNaW5pbWl6ZUJ1dHRvbigpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgYnV0dG9uRWwgPSB0aGlzLm1vZGFsLm1vZGFsRWwuY3JlYXRlRWwoJ2J1dHRvbicsIHsgY2xzOiBDc3NDbGFzcy5NaW5pbWl6ZUJ1dHRvbiB9KTtcbiAgICBzZXRJY29uKGJ1dHRvbkVsLCBNSU5JTUlaRV9JQ09OX0lEKTtcbiAgICBidXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRoaXMubWluaW1pemUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gYnV0dG9uRWw7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1pbmltaXplZEJhcigpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgYmFyRWwgPSB0aGlzLm1vZGFsLmNvbnRhaW5lckVsLm93bmVyRG9jdW1lbnQuYm9keS5jcmVhdGVEaXYoKTtcbiAgICBhZGRQbHVnaW5Dc3NDbGFzc2VzKGJhckVsLCBbQ3NzQ2xhc3MuTWluaW1pemVkTW9kYWxCYXJdKTtcbiAgICBiYXJFbC5jcmVhdGVTcGFuKHtcbiAgICAgIGNsczogQ3NzQ2xhc3MuTWluaW1pemVkTW9kYWxCYXJUaXRsZSxcbiAgICAgIHRleHQ6IHRoaXMubW9kYWwudGl0bGVFbC50ZXh0Q29udGVudFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3RvcmVCdXR0b25FbCA9IGJhckVsLmNyZWF0ZUVsKCdidXR0b24nLCB7IGNsczogQ3NzQ2xhc3MuUmVzdG9yZUJ1dHRvbiB9KTtcbiAgICBzZXRJY29uKHJlc3RvcmVCdXR0b25FbCwgUkVTVE9SRV9JQ09OX0lEKTtcbiAgICByZXN0b3JlQnV0dG9uRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICB0aGlzLnJlc3RvcmUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gYmFyRWw7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlTWluaW1pemVkQmFyKCk7XG4gICAgdGhpcy5pc01pbmltaXplZFZhbHVlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHBhdGNoT25DbG9zZShtb2RhbDogTW9kYWwpOiB2b2lkIHtcbiAgICBhcm91bmQobW9kYWwsIHtcbiAgICAgIG9uQ2xvc2U6IChuZXh0OiAoKSA9PiB2b2lkKTogKCkgPT4gdm9pZCA9PiB7XG4gICAgICAgIHJldHVybiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgbmV4dC5jYWxsKG1vZGFsKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUNsb3NlKCk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU1pbmltaXplZEJhcigpOiB2b2lkIHtcbiAgICB0aGlzLm1pbmltaXplZEJhckVsPy5yZW1vdmUoKTtcbiAgICB0aGlzLm1pbmltaXplZEJhckVsID0gbnVsbDtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
237
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEEgd3JhcHBlciB0aGF0IG1ha2VzIGFueSBPYnNpZGlhbiB7QGxpbmsgTW9kYWx9IG1pbmltaXphYmxlLlxuICpcbiAqIE9ic2lkaWFuJ3Mge0BsaW5rIE1vZGFsfSBpcyBibG9ja2luZyBcdTIwMTQgd2hpbGUgaXQgaXMgb3BlbiB0aGUgcmVzdCBvZiB0aGUgYXBwIGlzIGRpbW1lZCBhbmRcbiAqIGluZXJ0IFx1MjAxNCBhbmQgaXQgY2Fubm90IGJlIG1pbmltaXplZC4ge0BsaW5rIE1pbmltaXphYmxlTW9kYWx9IHdyYXBzIGFueSBtb2RhbCBpbnN0YW5jZSAocGxhaW5cbiAqIGBNb2RhbGAsIGBGdXp6eVN1Z2dlc3RNb2RhbGAsIHRoZSBsaWJyYXJ5J3MgYE1vZGFsQmFzZWAsIHlvdXIgb3duIHN1YmNsYXNzLCBcdTIwMjYgXHUyMDE0IGluY2x1ZGluZyBtb2RhbHNcbiAqIHlvdSBkbyBub3Qgb3duKSBhbmQgYWRkcyBhIG1pbmltaXplIGJ1dHRvbjogd2hlbiBtaW5pbWl6ZWQsIHRoZSBtb2RhbCAoYW5kIGl0cyBibG9ja2luZyBiYWNrZHJvcClcbiAqIGlzIGhpZGRlbiBhbmQgYSBzbWFsbCBmbG9hdGluZyBiYXIgd2l0aCBhIHJlc3RvcmUgYnV0dG9uIGlzIHNob3duIGluc3RlYWQsIHNvIHRoZSBhcHAgc3RheXMgZnVsbHlcbiAqIHVzYWJsZSB3aGlsZSBhIGxvbmctcnVubmluZyBvcGVyYXRpb24gY29udGludWVzIGluIHRoZSBiYWNrZ3JvdW5kLlxuICpcbiAqIFRoZSB3cmFwcGVyIHJldXNlcyB0aGUgbW9kYWwncyBvd24gdGl0bGUgKGB0aXRsZUVsYCkgYXMgdGhlIG1pbmltaXplZCBiYXIgbGFiZWwsIHNvIHNldCB0aGUgdGl0bGVcbiAqIHRoZSB1c3VhbCB3YXkgKGBtb2RhbC5zZXRUaXRsZSguLi4pYCkuIFJlbmRlciBhcmJpdHJhcnkgY29udGVudCBpbnRvIHtAbGluayBNb2RhbC5jb250ZW50RWx9LFxuICogaW5jbHVkaW5nIGNsaWNrYWJsZSBub3RlIGxpbmtzIHByb2R1Y2VkIGJ5IGByZW5kZXJJbnRlcm5hbExpbmtgIGZyb21cbiAqIGBvYnNpZGlhbi1kZXYtdXRpbHMvb2JzaWRpYW4vbWFya2Rvd25gOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBtb2RhbCA9IG5ldyBNeU1vZGFsKGFwcCk7XG4gKiBtb2RhbC5zZXRUaXRsZSgnTWVyZ2luZyBub3RlcycpO1xuICogbW9kYWwuY29udGVudEVsLmFwcGVuZENoaWxkKGF3YWl0IHJlbmRlckludGVybmFsTGluayh7IGFwcCwgcGF0aE9yQWJzdHJhY3RGaWxlOiBmaWxlIH0pKTtcbiAqXG4gKiBjb25zdCBtaW5pbWl6YWJsZSA9IG5ldyBNaW5pbWl6YWJsZU1vZGFsKG1vZGFsKTtcbiAqIG1pbmltaXphYmxlLm1vZGFsLm9wZW4oKTtcbiAqIG1pbmltaXphYmxlLm1pbmltaXplKCk7IC8vIGFwcCBpcyB1c2FibGUgYWdhaW47IGEgZmxvYXRpbmcgYmFyIG9mZmVycyBcInJlc3RvcmVcIlxuICogYGBgXG4gKlxuICogVGhlIHdyYXBwZWQgbW9kYWwgY2FuIHN0aWxsIGJlIGNsb3NlZCBub3JtYWxseTsgdGhlIGZsb2F0aW5nIGJhciBpcyBjbGVhbmVkIHVwIGF1dG9tYXRpY2FsbHkgd2hlblxuICogdGhlIG1vZGFsIGNsb3NlcyAoZXZlbiBpZiBpdCBpcyBjbG9zZWQgd2hpbGUgbWluaW1pemVkKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1vZGFsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBhcm91bmQgfSBmcm9tICdtb25rZXktYXJvdW5kJztcbmltcG9ydCB7IHNldEljb24gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFkZFBsdWdpbkNzc0NsYXNzZXMgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG5jb25zdCBNSU5JTUlaRV9JQ09OX0lEID0gJ21pbnVzJztcbmNvbnN0IFJFU1RPUkVfSUNPTl9JRCA9ICdtYXhpbWl6ZS0yJztcblxuLyoqXG4gKiBXcmFwcyBhIHtAbGluayBNb2RhbH0gaW5zdGFuY2UgdG8gbWFrZSBpdCBtaW5pbWl6YWJsZSB0byBhIHNtYWxsIGZsb2F0aW5nIGJhciBhbmQgcmVzdG9yYWJsZSxcbiAqIGtlZXBpbmcgdGhlIGFwcCB1c2FibGUgd2hpbGUgbWluaW1pemVkLlxuICpcbiAqIEB0eXBlUGFyYW0gVE1vZGFsIC0gVGhlIHR5cGUgb2YgdGhlIHdyYXBwZWQgbW9kYWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBNaW5pbWl6YWJsZU1vZGFsPFRNb2RhbCBleHRlbmRzIE1vZGFsPiB7XG4gIC8qKlxuICAgKiBUaGUgd3JhcHBlZCBtb2RhbC4gT3BlbiwgY2xvc2UsIGFuZCBwb3B1bGF0ZSBpdCBhcyB1c3VhbCAoZS5nLiBgbWluaW1pemFibGUubW9kYWwub3BlbigpYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbW9kYWw6IFRNb2RhbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbW9kYWwgaXMgY3VycmVudGx5IG1pbmltaXplZC5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBtb2RhbCBpcyBjdXJyZW50bHkgbWluaW1pemVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNNaW5pbWl6ZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNaW5pbWl6ZWRWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG1pbmltaXplQnV0dG9uRWw6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG1pbmltaXplZEJhckVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBXcmFwcyB0aGUgZ2l2ZW4gbW9kYWwsIGFkZGluZyBhIG1pbmltaXplIGJ1dHRvbiBhbmQgd2lyaW5nIHVwIGNsZWFudXAgb24gY2xvc2UuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RhbCAtIFRoZSBtb2RhbCBpbnN0YW5jZSB0byBtYWtlIG1pbmltaXphYmxlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKG1vZGFsOiBUTW9kYWwpIHtcbiAgICB0aGlzLm1vZGFsID0gbW9kYWw7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyhtb2RhbC5jb250YWluZXJFbCwgW0Nzc0NsYXNzLk1pbmltaXphYmxlTW9kYWxdKTtcbiAgICB0aGlzLm1pbmltaXplQnV0dG9uRWwgPSB0aGlzLmNyZWF0ZU1pbmltaXplQnV0dG9uKCk7XG4gICAgdGhpcy5wYXRjaE9uQ2xvc2UobW9kYWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltaXplcyB0aGUgbW9kYWw6IGhpZGVzIHRoZSBtb2RhbCBhbmQgaXRzIGJhY2tkcm9wIGFuZCBzaG93cyBhIGZsb2F0aW5nIGJhciB3aXRoIGEgcmVzdG9yZVxuICAgKiBidXR0b24uIEEgbm8tb3AgaWYgdGhlIG1vZGFsIGlzIGFscmVhZHkgbWluaW1pemVkLlxuICAgKi9cbiAgcHVibGljIG1pbmltaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTWluaW1pemVkVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTWluaW1pemVkVmFsdWUgPSB0cnVlO1xuICAgIHRoaXMubWluaW1pemVCdXR0b25FbC5oaWRlKCk7XG4gICAgdGhpcy5tb2RhbC5jb250YWluZXJFbC5oaWRlKCk7XG4gICAgLy8gVGhlIG1vZGFsIHN0YXlzIG9wZW4gd2hpbGUgbWluaW1pemVkLCBzbyBpdHMga2V5bWFwIHNjb3BlIHdvdWxkIG90aGVyd2lzZSBzdGF5IGFjdGl2ZS5cbiAgICAvLyBPYnNpZGlhbidzIGZvY3VzIHRyYXAgdGhlbiBzdGVhbHMgZm9jdXMgYmFjayB0byB0aGUgaGlkZGVuIG1vZGFsLCBzbyB0aGUgZWRpdG9yIGNhbm5vdCB0eXBlLlxuICAgIC8vIFBvcHBpbmcgdGhlIHNjb3BlIHJlbGVhc2VzIHRoZSB0cmFwIGFuZCB0aGUgYEVzY2FwZWAgY2FwdHVyZTsgYHJlc3RvcmUoKWAgcmUtcHVzaGVzIGl0LlxuICAgIHRoaXMubW9kYWwuYXBwLmtleW1hcC5wb3BTY29wZSh0aGlzLm1vZGFsLnNjb3BlKTtcbiAgICB0aGlzLm1pbmltaXplZEJhckVsID0gdGhpcy5jcmVhdGVNaW5pbWl6ZWRCYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgbW9kYWwgZnJvbSB0aGUgbWluaW1pemVkIHN0YXRlLCByZW1vdmluZyB0aGUgZmxvYXRpbmcgYmFyLiBBIG5vLW9wIGlmIHRoZSBtb2RhbCBpc1xuICAgKiBub3QgbWluaW1pemVkLlxuICAgKi9cbiAgcHVibGljIHJlc3RvcmUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzTWluaW1pemVkVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTWluaW1pemVkVmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLnJlbW92ZU1pbmltaXplZEJhcigpO1xuICAgIC8vIFJlLXB1c2ggdGhlIHNjb3BlIHBvcHBlZCBpbiBtaW5pbWl6ZSgpIHNvIHRoZSByZXN0b3JlZCBtb2RhbCBibG9ja3MgdGhlIGFwcCBhZ2FpbiAoZm9jdXMgdHJhcFxuICAgIC8vICsgRXNjYXBlIGNhcHR1cmUpLlxuICAgIHRoaXMubW9kYWwuYXBwLmtleW1hcC5wdXNoU2NvcGUodGhpcy5tb2RhbC5zY29wZSk7XG4gICAgdGhpcy5tb2RhbC5jb250YWluZXJFbC5zaG93KCk7XG4gICAgdGhpcy5taW5pbWl6ZUJ1dHRvbkVsLnNob3coKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTWluaW1pemVCdXR0b24oKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGJ1dHRvbkVsID0gdGhpcy5tb2RhbC5tb2RhbEVsLmNyZWF0ZUVsKCdidXR0b24nLCB7IGNsczogQ3NzQ2xhc3MuTWluaW1pemVCdXR0b24gfSk7XG4gICAgc2V0SWNvbihidXR0b25FbCwgTUlOSU1JWkVfSUNPTl9JRCk7XG4gICAgYnV0dG9uRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICB0aGlzLm1pbmltaXplKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGJ1dHRvbkVsO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNaW5pbWl6ZWRCYXIoKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGJhckVsID0gdGhpcy5tb2RhbC5jb250YWluZXJFbC5vd25lckRvY3VtZW50LmJvZHkuY3JlYXRlRGl2KCk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3NlcyhiYXJFbCwgW0Nzc0NsYXNzLk1pbmltaXplZE1vZGFsQmFyXSk7XG4gICAgYmFyRWwuY3JlYXRlU3Bhbih7XG4gICAgICBjbHM6IENzc0NsYXNzLk1pbmltaXplZE1vZGFsQmFyVGl0bGUsXG4gICAgICB0ZXh0OiB0aGlzLm1vZGFsLnRpdGxlRWwudGV4dENvbnRlbnRcbiAgICB9KTtcbiAgICBjb25zdCByZXN0b3JlQnV0dG9uRWwgPSBiYXJFbC5jcmVhdGVFbCgnYnV0dG9uJywgeyBjbHM6IENzc0NsYXNzLlJlc3RvcmVCdXR0b24gfSk7XG4gICAgc2V0SWNvbihyZXN0b3JlQnV0dG9uRWwsIFJFU1RPUkVfSUNPTl9JRCk7XG4gICAgcmVzdG9yZUJ1dHRvbkVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGhpcy5yZXN0b3JlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGJhckVsO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZU1pbmltaXplZEJhcigpO1xuICAgIHRoaXMuaXNNaW5pbWl6ZWRWYWx1ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXRjaE9uQ2xvc2UobW9kYWw6IE1vZGFsKTogdm9pZCB7XG4gICAgYXJvdW5kKG1vZGFsLCB7XG4gICAgICBvbkNsb3NlOiAobmV4dDogKCkgPT4gdm9pZCk6ICgpID0+IHZvaWQgPT4ge1xuICAgICAgICByZXR1cm4gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIG5leHQuY2FsbChtb2RhbCk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDbG9zZSgpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVNaW5pbWl6ZWRCYXIoKTogdm9pZCB7XG4gICAgdGhpcy5taW5pbWl6ZWRCYXJFbD8ucmVtb3ZlKCk7XG4gICAgdGhpcy5taW5pbWl6ZWRCYXJFbCA9IG51bGw7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlDQSwyQkFBdUI7QUFDdkIsc0JBQXdCO0FBRXhCLHVCQUF5QjtBQUN6Qiw0QkFBb0M7QUFFcEMsTUFBTSxtQkFBbUI7QUFDekIsTUFBTSxrQkFBa0I7QUFRakIsTUFBTSxpQkFBdUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlsQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9oQixJQUFXLGNBQXVCO0FBQ2hDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVRLG1CQUFtQjtBQUFBLEVBQ1Y7QUFBQSxFQUNULGlCQUFxQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU90QyxZQUFZLE9BQWU7QUFDaEMsU0FBSyxRQUFRO0FBQ2IsbURBQW9CLE1BQU0sYUFBYSxDQUFDLDBCQUFTLGdCQUFnQixDQUFDO0FBQ2xFLFNBQUssbUJBQW1CLEtBQUsscUJBQXFCO0FBQ2xELFNBQUssYUFBYSxLQUFLO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTU8sV0FBaUI7QUFDdEIsUUFBSSxLQUFLLGtCQUFrQjtBQUN6QjtBQUFBLElBQ0Y7QUFFQSxTQUFLLG1CQUFtQjtBQUN4QixTQUFLLGlCQUFpQixLQUFLO0FBQzNCLFNBQUssTUFBTSxZQUFZLEtBQUs7QUFJNUIsU0FBSyxNQUFNLElBQUksT0FBTyxTQUFTLEtBQUssTUFBTSxLQUFLO0FBQy9DLFNBQUssaUJBQWlCLEtBQUssbUJBQW1CO0FBQUEsRUFDaEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTU8sVUFBZ0I7QUFDckIsUUFBSSxDQUFDLEtBQUssa0JBQWtCO0FBQzFCO0FBQUEsSUFDRjtBQUVBLFNBQUssbUJBQW1CO0FBQ3hCLFNBQUssbUJBQW1CO0FBR3hCLFNBQUssTUFBTSxJQUFJLE9BQU8sVUFBVSxLQUFLLE1BQU0sS0FBSztBQUNoRCxTQUFLLE1BQU0sWUFBWSxLQUFLO0FBQzVCLFNBQUssaUJBQWlCLEtBQUs7QUFBQSxFQUM3QjtBQUFBLEVBRVEsdUJBQW9DO0FBQzFDLFVBQU0sV0FBVyxLQUFLLE1BQU0sUUFBUSxTQUFTLFVBQVUsRUFBRSxLQUFLLDBCQUFTLGVBQWUsQ0FBQztBQUN2RixpQ0FBUSxVQUFVLGdCQUFnQjtBQUNsQyxhQUFTLGlCQUFpQixTQUFTLE1BQU07QUFDdkMsV0FBSyxTQUFTO0FBQUEsSUFDaEIsQ0FBQztBQUNELFdBQU87QUFBQSxFQUNUO0FBQUEsRUFFUSxxQkFBa0M7QUFDeEMsVUFBTSxRQUFRLEtBQUssTUFBTSxZQUFZLGNBQWMsS0FBSyxVQUFVO0FBQ2xFLG1EQUFvQixPQUFPLENBQUMsMEJBQVMsaUJBQWlCLENBQUM7QUFDdkQsVUFBTSxXQUFXO0FBQUEsTUFDZixLQUFLLDBCQUFTO0FBQUEsTUFDZCxNQUFNLEtBQUssTUFBTSxRQUFRO0FBQUEsSUFDM0IsQ0FBQztBQUNELFVBQU0sa0JBQWtCLE1BQU0sU0FBUyxVQUFVLEVBQUUsS0FBSywwQkFBUyxjQUFjLENBQUM7QUFDaEYsaUNBQVEsaUJBQWlCLGVBQWU7QUFDeEMsb0JBQWdCLGlCQUFpQixTQUFTLE1BQU07QUFDOUMsV0FBSyxRQUFRO0FBQUEsSUFDZixDQUFDO0FBQ0QsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVRLGNBQW9CO0FBQzFCLFNBQUssbUJBQW1CO0FBQ3hCLFNBQUssbUJBQW1CO0FBQUEsRUFDMUI7QUFBQSxFQUVRLGFBQWEsT0FBb0I7QUFDdkMscUNBQU8sT0FBTztBQUFBLE1BQ1osU0FBUyxDQUFDLFNBQWlDO0FBQ3pDLGVBQU8sTUFBWTtBQUNqQixlQUFLLEtBQUssS0FBSztBQUNmLGVBQUssWUFBWTtBQUFBLFFBQ25CO0FBQUEsTUFDRjtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVRLHFCQUEyQjtBQUNqQyxTQUFLLGdCQUFnQixPQUFPO0FBQzVCLFNBQUssaUJBQWlCO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -165,6 +165,7 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
165
165
  ObsidianPluginRepoPaths2["MarkdownlintConfigYaml"] = ".markdownlint.yaml";
166
166
  ObsidianPluginRepoPaths2["MarkdownlintConfigYml"] = ".markdownlint.yml";
167
167
  ObsidianPluginRepoPaths2["Mocks"] = "src/test-helpers";
168
+ ObsidianPluginRepoPaths2["NodeModules"] = "node_modules";
168
169
  ObsidianPluginRepoPaths2["NpmShrinkwrapJson"] = "npm-shrinkwrap.json";
169
170
  ObsidianPluginRepoPaths2["PackageJson"] = "package.json";
170
171
  ObsidianPluginRepoPaths2["PackageLockJson"] = "package-lock.json";
@@ -182,4 +183,4 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
182
183
  0 && (module.exports = {
183
184
  ObsidianPluginRepoPaths
184
185
  });
185
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKiBDb21tb25KUyBmaWxlLiAqL1xuICBBbnlDanMgPSAnKi5janMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEFueUpzID0gJyouanMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKiBBbnkgcGF0aCByZWN1cnNpdmVseS4gKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqIEFueSB0ZXN0IFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VGVzdFRzID0gJyoudGVzdC50cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUc3ggPSAnKi50c3gnLFxuXG4gIC8qKiBDaGFuZ2Vsb2cgZmlsZS4gKi9cbiAgQ2hhbmdlbG9nTWQgPSAnQ0hBTkdFTE9HLm1kJyxcblxuICAvKiogQ29tbWl0bGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEN1cnJlbnQgZm9sZGVyLiAqL1xuICBDdXJyZW50Rm9sZGVyID0gJy4nLFxuXG4gIC8qKiBEaXN0cmlidXRpb24gZm9sZGVyLiAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKiBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiAqL1xuICBEaXN0QnVpbGQgPSAnZGlzdC9idWlsZCcsXG5cbiAgLyoqIERldmVsb3BtZW50IGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIuICovXG4gIERpc3REZXYgPSAnZGlzdC9kZXYnLFxuXG4gIC8qKiBDb21tb25KUyBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBFc2xpbnRDb25maWdDanMgPSAnZXNsaW50LmNvbmZpZy5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnSnMgPSAnZXNsaW50LmNvbmZpZy5qcycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ01qcyA9ICdlc2xpbnQuY29uZmlnLm1qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnVHMgPSAnZXNsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEhvdCByZWxvYWQgZmlsZS4gKi9cbiAgSG90UmVsb2FkID0gJy5ob3RyZWxvYWQnLFxuXG4gIC8qKiBNYWluIENTUyBmaWxlLiAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKiogTWFpbiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIE1haW5KcyA9ICdtYWluLmpzJyxcblxuICAvKiogTWFpbiBUeXBlU2NyaXB0IGZpbGUuICovXG4gIE1haW5UcyA9ICdtYWluLnRzJyxcblxuICAvKiogTWFuaWZlc3QgZmlsZSBmb3IgYmV0YSByZWxlYXNlcy4gKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKiBNYW5pZmVzdCBmaWxlLiAqL1xuICBNYW5pZmVzdEpzb24gPSAnbWFuaWZlc3QuanNvbicsXG5cbiAgLyoqIENvbW1vbkpTIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyA9ICcubWFya2Rvd25saW50LWNsaTIuY2pzJyxcblxuICAvKiogSlNPTkMgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogWUFNTCBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdZYW1sID0gJy5tYXJrZG93bmxpbnQtY2xpMi55YW1sJyxcblxuICAvKiogQ29tbW9uSlMgTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKiogSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdKc29uID0gJy5tYXJrZG93bmxpbnQuanNvbicsXG5cbiAgLyoqIEpTT05DIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENvbmZpZ0pzb25jID0gJy5tYXJrZG93bmxpbnQuanNvbmMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKiogWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZYW1sID0gJy5tYXJrZG93bmxpbnQueWFtbCcsXG5cbiAgLyoqIFlBTUwgTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWW1sID0gJy5tYXJrZG93bmxpbnQueW1sJyxcblxuICAvKiogTW9ja3MgZm9sZGVyLiAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKiogTlBNIHNocmlua3dyYXAgZmlsZS4gKi9cbiAgTnBtU2hyaW5rd3JhcEpzb24gPSAnbnBtLXNocmlua3dyYXAuanNvbicsXG5cbiAgLyoqIFBhY2thZ2UgSlNPTiBmaWxlLiAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKiBQYWNrYWdlLWxvY2sgSlNPTiBmaWxlLiAqL1xuICBQYWNrYWdlTG9ja0pzb24gPSAncGFja2FnZS1sb2NrLmpzb24nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0IHV0aWxpdGllcyBmb2xkZXIgKGRldi1vbmx5IHRvb2xpbmcgdGhhdCBydW5zIGluIHRoZSBjb25zdW1lcidzIE5vZGUgZW52aXJvbm1lbnQsIG5vdCB0aGUgT2JzaWRpYW4gcnVudGltZSkuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NyYy9zY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3R5bGVzIENTUyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFRlc3RzIGZvbGRlci4gKi9cbiAgVGVzdHMgPSAnX190ZXN0c19fJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVmVyc2lvbnMgSlNPTiBmaWxlLiAqL1xuICBWZXJzaW9uc0pzb24gPSAndmVyc2lvbnMuanNvbicsXG5cbiAgLyoqIFZpdGVzdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFZpdGVzdENvbmZpZ1RzID0gJ3ZpdGVzdC5jb25maWcudHMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTTyxJQUFLLDBCQUFMLGtCQUFLQSw2QkFBTDtBQUVMLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsV0FBUTtBQUdSLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxpQkFBYztBQUdkLEVBQUFBLHlCQUFBLHdCQUFxQjtBQUdyQixFQUFBQSx5QkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEseUJBQUEsVUFBTztBQUdQLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxhQUFVO0FBR1YsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxvQkFBaUI7QUFHakIsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxvQkFBaUI7QUFHakIsRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLHNCQUFtQjtBQUduQixFQUFBQSx5QkFBQSxrQkFBZTtBQUdmLEVBQUFBLHlCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSx5QkFBQSxpQ0FBOEI7QUFHOUIsRUFBQUEseUJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLHlCQUFBLGdDQUE2QjtBQUc3QixFQUFBQSx5QkFBQSwyQkFBd0I7QUFHeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBR3pCLEVBQUFBLHlCQUFBLDZCQUEwQjtBQUcxQixFQUFBQSx5QkFBQSwyQkFBd0I7QUFHeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBR3pCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUd4QixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsdUJBQW9CO0FBR3BCLEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxpQkFBYztBQUdkLEVBQUFBLHlCQUFBLFNBQU07QUFHTixFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsV0FBUTtBQUdSLEVBQUFBLHlCQUFBLGtCQUFlO0FBR2YsRUFBQUEseUJBQUEsa0JBQWU7QUFHZixFQUFBQSx5QkFBQSxvQkFBaUI7QUE1SVAsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhblBsdWdpblJlcG9QYXRocyJdCn0K
186
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKiBDb21tb25KUyBmaWxlLiAqL1xuICBBbnlDanMgPSAnKi5janMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEFueUpzID0gJyouanMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKiBBbnkgcGF0aCByZWN1cnNpdmVseS4gKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqIEFueSB0ZXN0IFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VGVzdFRzID0gJyoudGVzdC50cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUc3ggPSAnKi50c3gnLFxuXG4gIC8qKiBDaGFuZ2Vsb2cgZmlsZS4gKi9cbiAgQ2hhbmdlbG9nTWQgPSAnQ0hBTkdFTE9HLm1kJyxcblxuICAvKiogQ29tbWl0bGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEN1cnJlbnQgZm9sZGVyLiAqL1xuICBDdXJyZW50Rm9sZGVyID0gJy4nLFxuXG4gIC8qKiBEaXN0cmlidXRpb24gZm9sZGVyLiAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKiBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiAqL1xuICBEaXN0QnVpbGQgPSAnZGlzdC9idWlsZCcsXG5cbiAgLyoqIERldmVsb3BtZW50IGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIuICovXG4gIERpc3REZXYgPSAnZGlzdC9kZXYnLFxuXG4gIC8qKiBDb21tb25KUyBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBFc2xpbnRDb25maWdDanMgPSAnZXNsaW50LmNvbmZpZy5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnSnMgPSAnZXNsaW50LmNvbmZpZy5qcycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ01qcyA9ICdlc2xpbnQuY29uZmlnLm1qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRXNsaW50Q29uZmlnVHMgPSAnZXNsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqIEhvdCByZWxvYWQgZmlsZS4gKi9cbiAgSG90UmVsb2FkID0gJy5ob3RyZWxvYWQnLFxuXG4gIC8qKiBNYWluIENTUyBmaWxlLiAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKiogTWFpbiBKYXZhU2NyaXB0IGZpbGUuICovXG4gIE1haW5KcyA9ICdtYWluLmpzJyxcblxuICAvKiogTWFpbiBUeXBlU2NyaXB0IGZpbGUuICovXG4gIE1haW5UcyA9ICdtYWluLnRzJyxcblxuICAvKiogTWFuaWZlc3QgZmlsZSBmb3IgYmV0YSByZWxlYXNlcy4gKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKiBNYW5pZmVzdCBmaWxlLiAqL1xuICBNYW5pZmVzdEpzb24gPSAnbWFuaWZlc3QuanNvbicsXG5cbiAgLyoqIENvbW1vbkpTIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyA9ICcubWFya2Rvd25saW50LWNsaTIuY2pzJyxcblxuICAvKiogSlNPTkMgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKiogRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKiogWUFNTCBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdZYW1sID0gJy5tYXJrZG93bmxpbnQtY2xpMi55YW1sJyxcblxuICAvKiogQ29tbW9uSlMgTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKiogSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdKc29uID0gJy5tYXJrZG93bmxpbnQuanNvbicsXG5cbiAgLyoqIEpTT05DIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENvbmZpZ0pzb25jID0gJy5tYXJrZG93bmxpbnQuanNvbmMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKiogWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZYW1sID0gJy5tYXJrZG93bmxpbnQueWFtbCcsXG5cbiAgLyoqIFlBTUwgTWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWW1sID0gJy5tYXJrZG93bmxpbnQueW1sJyxcblxuICAvKiogTW9ja3MgZm9sZGVyLiAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogTlBNIHNocmlua3dyYXAgZmlsZS4gKi9cbiAgTnBtU2hyaW5rd3JhcEpzb24gPSAnbnBtLXNocmlua3dyYXAuanNvbicsXG5cbiAgLyoqIFBhY2thZ2UgSlNPTiBmaWxlLiAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKiBQYWNrYWdlLWxvY2sgSlNPTiBmaWxlLiAqL1xuICBQYWNrYWdlTG9ja0pzb24gPSAncGFja2FnZS1sb2NrLmpzb24nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0IHV0aWxpdGllcyBmb2xkZXIgKGRldi1vbmx5IHRvb2xpbmcgdGhhdCBydW5zIGluIHRoZSBjb25zdW1lcidzIE5vZGUgZW52aXJvbm1lbnQsIG5vdCB0aGUgT2JzaWRpYW4gcnVudGltZSkuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NyYy9zY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3R5bGVzIENTUyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFRlc3RzIGZvbGRlci4gKi9cbiAgVGVzdHMgPSAnX190ZXN0c19fJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVmVyc2lvbnMgSlNPTiBmaWxlLiAqL1xuICBWZXJzaW9uc0pzb24gPSAndmVyc2lvbnMuanNvbicsXG5cbiAgLyoqIFZpdGVzdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFZpdGVzdENvbmZpZ1RzID0gJ3ZpdGVzdC5jb25maWcudHMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTTyxJQUFLLDBCQUFMLGtCQUFLQSw2QkFBTDtBQUVMLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsV0FBUTtBQUdSLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxpQkFBYztBQUdkLEVBQUFBLHlCQUFBLHdCQUFxQjtBQUdyQixFQUFBQSx5QkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEseUJBQUEsVUFBTztBQUdQLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxhQUFVO0FBR1YsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxvQkFBaUI7QUFHakIsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxvQkFBaUI7QUFHakIsRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLHNCQUFtQjtBQUduQixFQUFBQSx5QkFBQSxrQkFBZTtBQUdmLEVBQUFBLHlCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSx5QkFBQSxpQ0FBOEI7QUFHOUIsRUFBQUEseUJBQUEsK0JBQTRCO0FBRzVCLEVBQUFBLHlCQUFBLGdDQUE2QjtBQUc3QixFQUFBQSx5QkFBQSwyQkFBd0I7QUFHeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBR3pCLEVBQUFBLHlCQUFBLDZCQUEwQjtBQUcxQixFQUFBQSx5QkFBQSwyQkFBd0I7QUFHeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBR3pCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUd4QixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsaUJBQWM7QUFHZCxFQUFBQSx5QkFBQSx1QkFBb0I7QUFHcEIsRUFBQUEseUJBQUEsaUJBQWM7QUFHZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEseUJBQUEsYUFBVTtBQUdWLEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEsU0FBTTtBQUdOLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsa0JBQWU7QUFHZixFQUFBQSx5QkFBQSxrQkFBZTtBQUdmLEVBQUFBLHlCQUFBLG9CQUFpQjtBQS9JUCxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIl0KfQo=