obsidian-dev-utils 13.15.1-beta.6 → 13.15.1-beta.8

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.
@@ -37,28 +37,28 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
37
37
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
38
  var Debug_exports = {};
39
39
  __export(Debug_exports, {
40
- enableNamespaces: () => enableNamespaces,
40
+ enableLibraryDebuggers: () => enableLibraryDebuggers,
41
+ getDebugController: () => getDebugController,
41
42
  getDebugger: () => getDebugger,
42
43
  getLibDebugger: () => getLibDebugger,
43
- initDebugHelpers: () => initDebugHelpers
44
+ showInitialDebugMessage: () => showInitialDebugMessage
44
45
  });
45
46
  module.exports = __toCommonJS(Debug_exports);
46
47
  var import_debug = __toESM(__extractDefault(require('debug')), 1);
47
- let currentPluginId = "";
48
+ var import_Library = require('./Library.cjs');
49
+ var import_PluginId = require('./obsidian/Plugin/PluginId.cjs');
48
50
  const NAMESPACE_SEPARATOR = ",";
49
51
  const NEGATED_NAMESPACE_PREFIX = "-";
50
- function enableNamespaces(namespaces) {
51
- const set = new Set(getNamespaces());
52
- for (const namespace of toArray(namespaces)) {
53
- if (!namespace.startsWith(NEGATED_NAMESPACE_PREFIX)) {
54
- const negatedNamespace = NEGATED_NAMESPACE_PREFIX + namespace;
55
- if (set.has(negatedNamespace)) {
56
- set.delete(negatedNamespace);
57
- }
58
- }
59
- set.add(namespace);
60
- }
61
- setNamespaces(Array.from(set));
52
+ function enableLibraryDebuggers() {
53
+ enableNamespaces([import_Library.LIBRARY_NAME, `${import_Library.LIBRARY_NAME}:*`]);
54
+ }
55
+ function getDebugController() {
56
+ return {
57
+ disable: disableNamespaces,
58
+ enable: enableNamespaces,
59
+ get: getNamespaces,
60
+ set: setNamespaces
61
+ };
62
62
  }
63
63
  function getDebugger(namespace, framesToSkip = 0) {
64
64
  const debugInstance = (0, import_debug.default)(namespace);
@@ -71,17 +71,11 @@ function getDebugger(namespace, framesToSkip = 0) {
71
71
  return debugInstance;
72
72
  }
73
73
  function getLibDebugger(namespace) {
74
- const prefix = currentPluginId ? `${currentPluginId}:` : "";
75
- return getDebugger(`${prefix}obsidian-dev-utils:${namespace}`);
74
+ const pluginId = (0, import_PluginId.getPluginId)();
75
+ const prefix = pluginId ? `${pluginId}:` : "";
76
+ return getDebugger(`${prefix}${import_Library.LIBRARY_NAME}:${namespace}`);
76
77
  }
77
- function initDebugHelpers(pluginId) {
78
- currentPluginId = pluginId;
79
- window.DEBUG = {
80
- disable: disableNamespaces,
81
- enable: enableNamespaces,
82
- get: getNamespaces,
83
- set: setNamespaces
84
- };
78
+ function showInitialDebugMessage(pluginId) {
85
79
  const isEnabled = import_debug.default.enabled(pluginId);
86
80
  const state = isEnabled ? "enabled" : "disabled";
87
81
  const changeAction = isEnabled ? "disable" : "enable";
@@ -104,6 +98,19 @@ function disableNamespaces(namespaces) {
104
98
  }
105
99
  setNamespaces(Array.from(set));
106
100
  }
101
+ function enableNamespaces(namespaces) {
102
+ const set = new Set(getNamespaces());
103
+ for (const namespace of toArray(namespaces)) {
104
+ if (!namespace.startsWith(NEGATED_NAMESPACE_PREFIX)) {
105
+ const negatedNamespace = NEGATED_NAMESPACE_PREFIX + namespace;
106
+ if (set.has(negatedNamespace)) {
107
+ set.delete(negatedNamespace);
108
+ }
109
+ }
110
+ set.add(namespace);
111
+ }
112
+ setNamespaces(Array.from(set));
113
+ }
107
114
  function getNamespaces() {
108
115
  return toArray(import_debug.default.load() ?? "");
109
116
  }
@@ -145,9 +152,10 @@ function toArray(namespaces) {
145
152
  }
146
153
  // Annotate the CommonJS export names for ESM import in node:
147
154
  0 && (module.exports = {
148
- enableNamespaces,
155
+ enableLibraryDebuggers,
156
+ getDebugController,
149
157
  getDebugger,
150
158
  getLibDebugger,
151
- initDebugHelpers
159
+ showInitialDebugMessage
152
160
  });
153
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0RlYnVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEZWJ1Z1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnZ2VyIH0gZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnQ29udHJvbGxlciB9IGZyb20gJy4vRGVidWdDb250cm9sbGVyLnRzJztcblxuaW50ZXJmYWNlIERlYnVnZ2VyRXggZXh0ZW5kcyBEZWJ1Z2dlciB7XG4gIHByaW50U3RhY2tUcmFjZShzdGFja1RyYWNlOiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbn1cblxuaW50ZXJmYWNlIERlYnVnV3JhcHBlciB7XG4gIERFQlVHOiBEZWJ1Z0NvbnRyb2xsZXI7XG59XG5cbmxldCBjdXJyZW50UGx1Z2luSWQgPSAnJztcbmNvbnN0IE5BTUVTUEFDRV9TRVBBUkFUT1IgPSAnLCc7XG5jb25zdCBORUdBVEVEX05BTUVTUEFDRV9QUkVGSVggPSAnLSc7XG5cbi8qKlxuICogRW5hYmxlcyB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZXMgLSBUaGUgbmFtZXNwYWNlcyB0byBlbmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVOYW1lc3BhY2VzKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQoZ2V0TmFtZXNwYWNlcygpKTtcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgdG9BcnJheShuYW1lc3BhY2VzKSkge1xuICAgIGlmICghbmFtZXNwYWNlLnN0YXJ0c1dpdGgoTkVHQVRFRF9OQU1FU1BBQ0VfUFJFRklYKSkge1xuICAgICAgY29uc3QgbmVnYXRlZE5hbWVzcGFjZSA9IE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCArIG5hbWVzcGFjZTtcbiAgICAgIGlmIChzZXQuaGFzKG5lZ2F0ZWROYW1lc3BhY2UpKSB7XG4gICAgICAgIHNldC5kZWxldGUobmVnYXRlZE5hbWVzcGFjZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNldC5hZGQobmFtZXNwYWNlKTtcbiAgfVxuICBzZXROYW1lc3BhY2VzKEFycmF5LmZyb20oc2V0KSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGRlYnVnZ2VyIGluc3RhbmNlIHdpdGggYSBsb2cgZnVuY3Rpb24gdGhhdCBpbmNsdWRlcyB0aGUgY2FsbGVyJ3MgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICogQHBhcmFtIGZyYW1lc1RvU2tpcCAtIFRoZSBudW1iZXIgb2YgZnJhbWVzIHRvIHNraXAgaW4gdGhlIHN0YWNrIHRyYWNlLlxuICogQHJldHVybnMgQSBkZWJ1Z2dlciBpbnN0YW5jZSB3aXRoIGEgbG9nIGZ1bmN0aW9uIHRoYXQgaW5jbHVkZXMgdGhlIGNhbGxlcidzIGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWJ1Z2dlcihuYW1lc3BhY2U6IHN0cmluZywgZnJhbWVzVG9Ta2lwID0gMCk6IERlYnVnZ2VyRXgge1xuICBjb25zdCBkZWJ1Z0luc3RhbmNlID0gZGVidWcobmFtZXNwYWNlKSBhcyBEZWJ1Z2dlckV4O1xuICBkZWJ1Z0luc3RhbmNlLmxvZyA9IChtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQgPT4ge1xuICAgIGxvZ1dpdGhDYWxsZXIobmFtZXNwYWNlLCBmcmFtZXNUb1NraXAsIG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICB9O1xuICBkZWJ1Z0luc3RhbmNlLnByaW50U3RhY2tUcmFjZSA9IChzdGFja1RyYWNlLCB0aXRsZSk6IHZvaWQgPT4ge1xuICAgIHByaW50U3RhY2tUcmFjZShuYW1lc3BhY2UsIHN0YWNrVHJhY2UsIHRpdGxlKTtcbiAgfTtcbiAgcmV0dXJuIGRlYnVnSW5zdGFuY2U7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGRlYnVnZ2VyIGluc3RhbmNlIGZvciB0aGUgYG9ic2lkaWFuLWRldi11dGlsc2AgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBkZWJ1Z2dlciBpbnN0YW5jZSBmb3IgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaWJEZWJ1Z2dlcihuYW1lc3BhY2U6IHN0cmluZyk6IERlYnVnZ2VyRXgge1xuICBjb25zdCBwcmVmaXggPSBjdXJyZW50UGx1Z2luSWQgPyBgJHtjdXJyZW50UGx1Z2luSWR9OmAgOiAnJztcbiAgcmV0dXJuIGdldERlYnVnZ2VyKGAke3ByZWZpeH1vYnNpZGlhbi1kZXYtdXRpbHM6JHtuYW1lc3BhY2V9YCk7XG59XG5cbi8qKlxuICogQWRkcyB0aGUgREVCVUcgdmFyaWFibGUgdG8gdGhlIHdpbmRvdyBvYmplY3QuXG4gKlxuICogQHBhcmFtIHBsdWdpbklkIC0gVGhlIHBsdWdpbiBJRC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXREZWJ1Z0hlbHBlcnMocGx1Z2luSWQ6IHN0cmluZyk6IHZvaWQge1xuICBjdXJyZW50UGx1Z2luSWQgPSBwbHVnaW5JZDtcbiAgKHdpbmRvdyBhcyBQYXJ0aWFsPERlYnVnV3JhcHBlcj4pLkRFQlVHID0ge1xuICAgIGRpc2FibGU6IGRpc2FibGVOYW1lc3BhY2VzLFxuICAgIGVuYWJsZTogZW5hYmxlTmFtZXNwYWNlcyxcbiAgICBnZXQ6IGdldE5hbWVzcGFjZXMsXG4gICAgc2V0OiBzZXROYW1lc3BhY2VzXG4gIH07XG5cbiAgY29uc3QgaXNFbmFibGVkID0gZGVidWcuZW5hYmxlZChwbHVnaW5JZCk7XG4gIGNvbnN0IHN0YXRlID0gaXNFbmFibGVkID8gJ2VuYWJsZWQnIDogJ2Rpc2FibGVkJztcbiAgY29uc3QgY2hhbmdlQWN0aW9uID0gaXNFbmFibGVkID8gJ2Rpc2FibGUnIDogJ2VuYWJsZSc7XG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBnZXROYW1lc3BhY2VzKCk7XG4gIHNldE5hbWVzcGFjZXMocGx1Z2luSWQpO1xuICBnZXREZWJ1Z2dlcihwbHVnaW5JZCkoYERlYnVnIG1lc3NhZ2VzIGZvciBwbHVnaW4gJHtwbHVnaW5JZH0gYXJlICR7c3RhdGV9LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWRldi11dGlscy8/dGFiPXJlYWRtZS1vdi1maWxlI2RlYnVnZ2luZyBob3cgdG8gJHtjaGFuZ2VBY3Rpb259IHRoZW0uYCk7XG4gIHNldE5hbWVzcGFjZXMobmFtZXNwYWNlcyk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVOYW1lc3BhY2VzKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQoZ2V0TmFtZXNwYWNlcygpKTtcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgdG9BcnJheShuYW1lc3BhY2VzKSkge1xuICAgIGlmIChuYW1lc3BhY2Uuc3RhcnRzV2l0aChORUdBVEVEX05BTUVTUEFDRV9QUkVGSVgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgbmVnYXRlZE5hbWVzcGFjZSA9IE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCArIG5hbWVzcGFjZTtcbiAgICBpZiAoc2V0LmhhcyhuYW1lc3BhY2UpKSB7XG4gICAgICBzZXQuZGVsZXRlKG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHNldC5hZGQobmVnYXRlZE5hbWVzcGFjZSk7XG4gIH1cbiAgc2V0TmFtZXNwYWNlcyhBcnJheS5mcm9tKHNldCkpO1xufVxuXG5mdW5jdGlvbiBnZXROYW1lc3BhY2VzKCk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHRvQXJyYXkoZGVidWcubG9hZCgpID8/ICcnKTtcbn1cblxuZnVuY3Rpb24gaXNJbk9ic2lkaWFuKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbmZ1bmN0aW9uIGxvZ1dpdGhDYWxsZXIobmFtZXNwYWNlOiBzdHJpbmcsIGZyYW1lc1RvU2tpcDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuICBpZiAoIWRlYnVnLmVuYWJsZWQobmFtZXNwYWNlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY2FsbGVyIGxpbmUgaW5kZXggaXMgNCBiZWNhdXNlIHRoZSBjYWxsIHN0YWNrIGlzIGFzIGZvbGxvd3M6XG4gICAqXG4gICAqIDA6IEVycm9yXG4gICAqIDE6ICAgICBhdCBsb2dXaXRoQ2FsbGVyICg/Oj86PylcbiAgICogMjogICAgIGF0IGRlYnVnSW5zdGFuY2UubG9nICg/Oj86PylcbiAgICogMzogICAgIGF0IGRlYnVnICg/Oj86PylcbiAgICogNDogICAgIGF0IGZ1bmN0aW9uTmFtZSAocGF0aC90by9jYWxsZXIuanM6Pzo/KVxuICAgKi9cbiAgY29uc3QgQ0FMTEVSX0xJTkVfSU5ERVggPSA0O1xuXG4gIGNvbnN0IHN0YWNrTGluZXMgPSBuZXcgRXJyb3IoKS5zdGFjaz8uc3BsaXQoJ1xcbicpID8/IFtdO1xuICBjb25zdCBjYWxsZXJMaW5lID0gc3RhY2tMaW5lc1tDQUxMRVJfTElORV9JTkRFWCArIGZyYW1lc1RvU2tpcF0gPz8gJyc7XG4gIGNvbnNvbGUuZGVidWcobWVzc2FnZSwgLi4uYXJncyk7XG4gIGlmIChpc0luT2JzaWRpYW4oKSkge1xuICAgIHByaW50U3RhY2tUcmFjZShuYW1lc3BhY2UsIGNhbGxlckxpbmUsICdEZWJ1ZyBtZXNzYWdlIGNhbGxlcicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50U3RhY2tUcmFjZShuYW1lc3BhY2U6IHN0cmluZywgc3RhY2tUcmFjZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBfZGVidWdnZXIgPSBkZWJ1ZyhuYW1lc3BhY2UpO1xuXG4gIGlmICghX2RlYnVnZ2VyLmVuYWJsZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIXN0YWNrVHJhY2UpIHtcbiAgICBzdGFja1RyYWNlID0gJyh1bmF2YWlsYWJsZSknO1xuICB9XG4gIGlmICghdGl0bGUpIHtcbiAgICB0aXRsZSA9ICdDYWxsZXIgc3RhY2sgdHJhY2UnO1xuICB9XG5cbiAgX2RlYnVnZ2VyKHRpdGxlKTtcbiAgY29uc3QgcHJlZml4ID0gaXNJbk9ic2lkaWFuKCkgPyAnU3RhY2tUcmFjZUZha2VFcnJvclxcbicgOiAnJztcbiAgY29uc29sZS5kZWJ1ZyhgJHtwcmVmaXh9JHtzdGFja1RyYWNlfWApO1xufVxuXG5mdW5jdGlvbiBzZXROYW1lc3BhY2VzKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGRlYnVnLmVuYWJsZSh0b0FycmF5KG5hbWVzcGFjZXMpLmpvaW4oTkFNRVNQQUNFX1NFUEFSQVRPUikpO1xufVxuXG5mdW5jdGlvbiB0b0FycmF5KG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gdHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnID8gbmFtZXNwYWNlcy5zcGxpdChOQU1FU1BBQ0VfU0VQQVJBVE9SKS5maWx0ZXIoQm9vbGVhbikgOiBuYW1lc3BhY2VzLmZsYXRNYXAodG9BcnJheSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLG1CQUFrQjtBQVlsQixJQUFJ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
161
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0RlYnVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEZWJ1Z1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnZ2VyIH0gZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnQ29udHJvbGxlciB9IGZyb20gJy4vRGVidWdDb250cm9sbGVyLnRzJztcblxuaW1wb3J0IHsgTElCUkFSWV9OQU1FIH0gZnJvbSAnLi9MaWJyYXJ5LnRzJztcbmltcG9ydCB7IGdldFBsdWdpbklkIH0gZnJvbSAnLi9vYnNpZGlhbi9QbHVnaW4vUGx1Z2luSWQudHMnO1xuXG5pbnRlcmZhY2UgRGVidWdnZXJFeCBleHRlbmRzIERlYnVnZ2VyIHtcbiAgcHJpbnRTdGFja1RyYWNlKHN0YWNrVHJhY2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xufVxuXG5jb25zdCBOQU1FU1BBQ0VfU0VQQVJBVE9SID0gJywnO1xuY29uc3QgTkVHQVRFRF9OQU1FU1BBQ0VfUFJFRklYID0gJy0nO1xuXG4vKipcbiAqIEVuYWJsZXMgdGhlIGRlYnVnZ2VycyBmb3IgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVMaWJyYXJ5RGVidWdnZXJzKCk6IHZvaWQge1xuICBlbmFibGVOYW1lc3BhY2VzKFtMSUJSQVJZX05BTUUsIGAke0xJQlJBUllfTkFNRX06KmBdKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZGVidWcgY29udHJvbGxlci5cbiAqXG4gKiBAcmV0dXJucyBBIGRlYnVnIGNvbnRyb2xsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWJ1Z0NvbnRyb2xsZXIoKTogRGVidWdDb250cm9sbGVyIHtcbiAgcmV0dXJuIHtcbiAgICBkaXNhYmxlOiBkaXNhYmxlTmFtZXNwYWNlcyxcbiAgICBlbmFibGU6IGVuYWJsZU5hbWVzcGFjZXMsXG4gICAgZ2V0OiBnZXROYW1lc3BhY2VzLFxuICAgIHNldDogc2V0TmFtZXNwYWNlc1xuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkZWJ1Z2dlciBpbnN0YW5jZSB3aXRoIGEgbG9nIGZ1bmN0aW9uIHRoYXQgaW5jbHVkZXMgdGhlIGNhbGxlcidzIGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXIuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSBuYW1lc3BhY2UgZm9yIHRoZSBkZWJ1Z2dlciBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmcmFtZXNUb1NraXAgLSBUaGUgbnVtYmVyIG9mIGZyYW1lcyB0byBza2lwIGluIHRoZSBzdGFjayB0cmFjZS5cbiAqIEByZXR1cm5zIEEgZGVidWdnZXIgaW5zdGFuY2Ugd2l0aCBhIGxvZyBmdW5jdGlvbiB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsZXIncyBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVidWdnZXIobmFtZXNwYWNlOiBzdHJpbmcsIGZyYW1lc1RvU2tpcCA9IDApOiBEZWJ1Z2dlckV4IHtcbiAgY29uc3QgZGVidWdJbnN0YW5jZSA9IGRlYnVnKG5hbWVzcGFjZSkgYXMgRGVidWdnZXJFeDtcbiAgZGVidWdJbnN0YW5jZS5sb2cgPSAobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkID0+IHtcbiAgICBsb2dXaXRoQ2FsbGVyKG5hbWVzcGFjZSwgZnJhbWVzVG9Ta2lwLCBtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfTtcbiAgZGVidWdJbnN0YW5jZS5wcmludFN0YWNrVHJhY2UgPSAoc3RhY2tUcmFjZSwgdGl0bGUpOiB2b2lkID0+IHtcbiAgICBwcmludFN0YWNrVHJhY2UobmFtZXNwYWNlLCBzdGFja1RyYWNlLCB0aXRsZSk7XG4gIH07XG4gIHJldHVybiBkZWJ1Z0luc3RhbmNlO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkZWJ1Z2dlciBpbnN0YW5jZSBmb3IgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSBuYW1lc3BhY2UgZm9yIHRoZSBkZWJ1Z2dlciBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEEgZGVidWdnZXIgaW5zdGFuY2UgZm9yIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGliRGVidWdnZXIobmFtZXNwYWNlOiBzdHJpbmcpOiBEZWJ1Z2dlckV4IHtcbiAgY29uc3QgcGx1Z2luSWQgPSBnZXRQbHVnaW5JZCgpO1xuICBjb25zdCBwcmVmaXggPSBwbHVnaW5JZCA/IGAke3BsdWdpbklkfTpgIDogJyc7XG4gIHJldHVybiBnZXREZWJ1Z2dlcihgJHtwcmVmaXh9JHtMSUJSQVJZX05BTUV9OiR7bmFtZXNwYWNlfWApO1xufVxuXG4vKipcbiAqIFNob3dzIGFuIGluaXRpYWwgZGVidWcgbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIElELlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQ6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBpc0VuYWJsZWQgPSBkZWJ1Zy5lbmFibGVkKHBsdWdpbklkKTtcbiAgY29uc3Qgc3RhdGUgPSBpc0VuYWJsZWQgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnO1xuICBjb25zdCBjaGFuZ2VBY3Rpb24gPSBpc0VuYWJsZWQgPyAnZGlzYWJsZScgOiAnZW5hYmxlJztcbiAgY29uc3QgbmFtZXNwYWNlcyA9IGdldE5hbWVzcGFjZXMoKTtcbiAgc2V0TmFtZXNwYWNlcyhwbHVnaW5JZCk7XG4gIGdldERlYnVnZ2VyKHBsdWdpbklkKShgRGVidWcgbWVzc2FnZXMgZm9yIHBsdWdpbiAke3BsdWdpbklkfSBhcmUgJHtzdGF0ZX0uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzLz90YWI9cmVhZG1lLW92LWZpbGUjZGVidWdnaW5nIGhvdyB0byAke2NoYW5nZUFjdGlvbn0gdGhlbS5gKTtcbiAgc2V0TmFtZXNwYWNlcyhuYW1lc3BhY2VzKTtcbn1cblxuZnVuY3Rpb24gZGlzYWJsZU5hbWVzcGFjZXMobmFtZXNwYWNlczogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgY29uc3Qgc2V0ID0gbmV3IFNldChnZXROYW1lc3BhY2VzKCkpO1xuICBmb3IgKGNvbnN0IG5hbWVzcGFjZSBvZiB0b0FycmF5KG5hbWVzcGFjZXMpKSB7XG4gICAgaWYgKG5hbWVzcGFjZS5zdGFydHNXaXRoKE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuZWdhdGVkTmFtZXNwYWNlID0gTkVHQVRFRF9OQU1FU1BBQ0VfUFJFRklYICsgbmFtZXNwYWNlO1xuICAgIGlmIChzZXQuaGFzKG5hbWVzcGFjZSkpIHtcbiAgICAgIHNldC5kZWxldGUobmFtZXNwYWNlKTtcbiAgICB9XG4gICAgc2V0LmFkZChuZWdhdGVkTmFtZXNwYWNlKTtcbiAgfVxuICBzZXROYW1lc3BhY2VzKEFycmF5LmZyb20oc2V0KSk7XG59XG5cbmZ1bmN0aW9uIGVuYWJsZU5hbWVzcGFjZXMobmFtZXNwYWNlczogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgY29uc3Qgc2V0ID0gbmV3IFNldChnZXROYW1lc3BhY2VzKCkpO1xuICBmb3IgKGNvbnN0IG5hbWVzcGFjZSBvZiB0b0FycmF5KG5hbWVzcGFjZXMpKSB7XG4gICAgaWYgKCFuYW1lc3BhY2Uuc3RhcnRzV2l0aChORUdBVEVEX05BTUVTUEFDRV9QUkVGSVgpKSB7XG4gICAgICBjb25zdCBuZWdhdGVkTmFtZXNwYWNlID0gTkVHQVRFRF9OQU1FU1BBQ0VfUFJFRklYICsgbmFtZXNwYWNlO1xuICAgICAgaWYgKHNldC5oYXMobmVnYXRlZE5hbWVzcGFjZSkpIHtcbiAgICAgICAgc2V0LmRlbGV0ZShuZWdhdGVkTmFtZXNwYWNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc2V0LmFkZChuYW1lc3BhY2UpO1xuICB9XG4gIHNldE5hbWVzcGFjZXMoQXJyYXkuZnJvbShzZXQpKTtcbn1cblxuZnVuY3Rpb24gZ2V0TmFtZXNwYWNlcygpOiBzdHJpbmdbXSB7XG4gIHJldHVybiB0b0FycmF5KGRlYnVnLmxvYWQoKSA/PyAnJyk7XG59XG5cbmZ1bmN0aW9uIGlzSW5PYnNpZGlhbigpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xufVxuXG5mdW5jdGlvbiBsb2dXaXRoQ2FsbGVyKG5hbWVzcGFjZTogc3RyaW5nLCBmcmFtZXNUb1NraXA6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgaWYgKCFkZWJ1Zy5lbmFibGVkKG5hbWVzcGFjZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNhbGxlciBsaW5lIGluZGV4IGlzIDQgYmVjYXVzZSB0aGUgY2FsbCBzdGFjayBpcyBhcyBmb2xsb3dzOlxuICAgKlxuICAgKiAwOiBFcnJvclxuICAgKiAxOiAgICAgYXQgbG9nV2l0aENhbGxlciAoPzo/Oj8pXG4gICAqIDI6ICAgICBhdCBkZWJ1Z0luc3RhbmNlLmxvZyAoPzo/Oj8pXG4gICAqIDM6ICAgICBhdCBkZWJ1ZyAoPzo/Oj8pXG4gICAqIDQ6ICAgICBhdCBmdW5jdGlvbk5hbWUgKHBhdGgvdG8vY2FsbGVyLmpzOj86PylcbiAgICovXG4gIGNvbnN0IENBTExFUl9MSU5FX0lOREVYID0gNDtcblxuICBjb25zdCBzdGFja0xpbmVzID0gbmV3IEVycm9yKCkuc3RhY2s/LnNwbGl0KCdcXG4nKSA/PyBbXTtcbiAgY29uc3QgY2FsbGVyTGluZSA9IHN0YWNrTGluZXNbQ0FMTEVSX0xJTkVfSU5ERVggKyBmcmFtZXNUb1NraXBdID8/ICcnO1xuICBjb25zb2xlLmRlYnVnKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICBpZiAoaXNJbk9ic2lkaWFuKCkpIHtcbiAgICBwcmludFN0YWNrVHJhY2UobmFtZXNwYWNlLCBjYWxsZXJMaW5lLCAnRGVidWcgbWVzc2FnZSBjYWxsZXInKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFN0YWNrVHJhY2UobmFtZXNwYWNlOiBzdHJpbmcsIHN0YWNrVHJhY2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgX2RlYnVnZ2VyID0gZGVidWcobmFtZXNwYWNlKTtcblxuICBpZiAoIV9kZWJ1Z2dlci5lbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFzdGFja1RyYWNlKSB7XG4gICAgc3RhY2tUcmFjZSA9ICcodW5hdmFpbGFibGUpJztcbiAgfVxuICBpZiAoIXRpdGxlKSB7XG4gICAgdGl0bGUgPSAnQ2FsbGVyIHN0YWNrIHRyYWNlJztcbiAgfVxuXG4gIF9kZWJ1Z2dlcih0aXRsZSk7XG4gIGNvbnN0IHByZWZpeCA9IGlzSW5PYnNpZGlhbigpID8gJ1N0YWNrVHJhY2VGYWtlRXJyb3JcXG4nIDogJyc7XG4gIGNvbnNvbGUuZGVidWcoYCR7cHJlZml4fSR7c3RhY2tUcmFjZX1gKTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBuYW1lc3BhY2VzIHRvIGVuYWJsZS5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlcyAtIFRoZSBuYW1lc3BhY2VzIHRvIGVuYWJsZS5cbiAqL1xuZnVuY3Rpb24gc2V0TmFtZXNwYWNlcyhuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBkZWJ1Zy5lbmFibGUodG9BcnJheShuYW1lc3BhY2VzKS5qb2luKE5BTUVTUEFDRV9TRVBBUkFUT1IpKTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheShuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJyA/IG5hbWVzcGFjZXMuc3BsaXQoTkFNRVNQQUNFX1NFUEFSQVRPUikuZmlsdGVyKEJvb2xlYW4pIDogbmFtZXNwYWNlcy5mbGF0TWFwKHRvQXJyYXkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLG1CQUFrQjtBQUlsQixxQkFBNkI7QUFDN0Isc0JBQTRCO0FBTTVCLE1BQU0sc0JBQXNCO0FBQzVCLE1BQU0sMkJBQTJCO0FBSzFCLFNBQVMseUJBQStCO0FBQzdDLG1CQUFpQixDQUFDLDZCQUFjLEdBQUcsMkJBQVksSUFBSSxDQUFDO0FBQ3REO0FBT08sU0FBUyxxQkFBc0M7QUFDcEQsU0FBTztBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsS0FBSztBQUFBLEVBQ1A7QUFDRjtBQVNPLFNBQVMsWUFBWSxXQUFtQixlQUFlLEdBQWU7QUFDM0UsUUFBTSxvQkFBZ0IsYUFBQUEsU0FBTSxTQUFTO0FBQ3JDLGdCQUFjLE1BQU0sQ0FBQyxZQUFvQixTQUEwQjtBQUNqRSxrQkFBYyxXQUFXLGNBQWMsU0FBUyxHQUFHLElBQUk7QUFBQSxFQUN6RDtBQUNBLGdCQUFjLGtCQUFrQixDQUFDLFlBQVksVUFBZ0I7QUFDM0Qsb0JBQWdCLFdBQVcsWUFBWSxLQUFLO0FBQUEsRUFDOUM7QUFDQSxTQUFPO0FBQ1Q7QUFRTyxTQUFTLGVBQWUsV0FBK0I7QUFDNUQsUUFBTSxlQUFXLDZCQUFZO0FBQzdCLFFBQU0sU0FBUyxXQUFXLEdBQUcsUUFBUSxNQUFNO0FBQzNDLFNBQU8sWUFBWSxHQUFHLE1BQU0sR0FBRywyQkFBWSxJQUFJLFNBQVMsRUFBRTtBQUM1RDtBQU9PLFNBQVMsd0JB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
@@ -3,15 +3,20 @@
3
3
  * Contains utility functions for debugging.
4
4
  */
5
5
  import type { Debugger } from 'debug';
6
+ import type { DebugController } from './DebugController.ts';
6
7
  interface DebuggerEx extends Debugger {
7
8
  printStackTrace(stackTrace: string, title?: string): void;
8
9
  }
9
10
  /**
10
- * Enables the specified namespaces.
11
+ * Enables the debuggers for the `obsidian-dev-utils` library.
12
+ */
13
+ export declare function enableLibraryDebuggers(): void;
14
+ /**
15
+ * Returns a debug controller.
11
16
  *
12
- * @param namespaces - The namespaces to enable.
17
+ * @returns A debug controller.
13
18
  */
14
- export declare function enableNamespaces(namespaces: string | string[]): void;
19
+ export declare function getDebugController(): DebugController;
15
20
  /**
16
21
  * Returns a debugger instance with a log function that includes the caller's file name and line number.
17
22
  *
@@ -28,9 +33,9 @@ export declare function getDebugger(namespace: string, framesToSkip?: number): D
28
33
  */
29
34
  export declare function getLibDebugger(namespace: string): DebuggerEx;
30
35
  /**
31
- * Adds the DEBUG variable to the window object.
36
+ * Shows an initial debug message.
32
37
  *
33
38
  * @param pluginId - The plugin ID.
34
39
  */
35
- export declare function initDebugHelpers(pluginId: string): void;
40
+ export declare function showInitialDebugMessage(pluginId: string): void;
36
41
  export {};
@@ -0,0 +1,44 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ function __extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}
7
+
8
+ (function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
9
+
10
+ "use strict";
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var Library_exports = {};
29
+ __export(Library_exports, {
30
+ LIBRARY_NAME: () => LIBRARY_NAME,
31
+ LIBRARY_STYLES: () => LIBRARY_STYLES,
32
+ LIBRARY_VERSION: () => LIBRARY_VERSION
33
+ });
34
+ module.exports = __toCommonJS(Library_exports);
35
+ const LIBRARY_VERSION = "13.15.1-beta.8";
36
+ const LIBRARY_NAME = "obsidian-dev-utils";
37
+ const LIBRARY_STYLES = ".obsidian-dev-utils.plugin-settings-tab .value-component-invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n";
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ LIBRARY_NAME,
41
+ LIBRARY_STYLES,
42
+ LIBRARY_VERSION
43
+ });
44
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0xpYnJhcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnJChMSUJSQVJZX1ZFUlNJT04pJztcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYG9ic2lkaWFuLWRldi11dGlsc2AgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IExJQlJBUllfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBzdHlsZXMgb2YgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBMSUJSQVJZX1NUWUxFUyA9ICckKExJQlJBUllfU1RZTEVTKSc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdPLE1BQU0sa0JBQWtCO0FBS3hCLE1BQU0sZUFBZTtBQUtyQixNQUFNLGlCQUFpQjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The version of the `obsidian-dev-utils` library.
3
+ */
4
+ export declare const LIBRARY_VERSION = "$(LIBRARY_VERSION)";
5
+ /**
6
+ * The name of the `obsidian-dev-utils` library.
7
+ */
8
+ export declare const LIBRARY_NAME = "obsidian-dev-utils";
9
+ /**
10
+ * The styles of the `obsidian-dev-utils` library.
11
+ */
12
+ export declare const LIBRARY_STYLES = "$(LIBRARY_STYLES)";
@@ -44,6 +44,7 @@ __export(index_exports, {
44
44
  Error: () => Error2,
45
45
  Function: () => Function,
46
46
  HTMLElement: () => HTMLElement,
47
+ Library: () => Library,
47
48
  Object: () => Object2,
48
49
  Path: () => Path,
49
50
  RegExp: () => RegExp,
@@ -63,6 +64,7 @@ var DebugController = __toESM(__extractDefault(require('./DebugController.cjs'))
63
64
  var Error2 = __toESM(__extractDefault(require('./Error.cjs')), 1);
64
65
  var Function = __toESM(__extractDefault(require('./Function.cjs')), 1);
65
66
  var HTMLElement = __toESM(__extractDefault(require('./HTMLElement.cjs')), 1);
67
+ var Library = __toESM(__extractDefault(require('./Library.cjs')), 1);
66
68
  var Object2 = __toESM(__extractDefault(require('./Object.cjs')), 1);
67
69
  var obsidian = __toESM(__extractDefault(require('./obsidian/index.cjs')), 1);
68
70
  var Path = __toESM(__extractDefault(require('./Path.cjs')), 1);
@@ -80,6 +82,7 @@ var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1)
80
82
  Error,
81
83
  Function,
82
84
  HTMLElement,
85
+ Library,
83
86
  Object,
84
87
  Path,
85
88
  RegExp,
@@ -90,4 +93,4 @@ var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1)
90
93
  scripts,
91
94
  url
92
95
  });
93
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgX3R5cGVzIGZyb20gJy4vQHR5cGVzLnRzJztcbmV4cG9ydCAqIGFzIEFzeW5jIGZyb20gJy4vQXN5bmMudHMnO1xuZXhwb3J0ICogYXMgQmxvYiBmcm9tICcuL0Jsb2IudHMnO1xuZXhwb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyBEZWJ1Z0NvbnRyb2xsZXIgZnJvbSAnLi9EZWJ1Z0NvbnRyb2xsZXIudHMnO1xuZXhwb3J0ICogYXMgRXJyb3IgZnJvbSAnLi9FcnJvci50cyc7XG5leHBvcnQgKiBhcyBGdW5jdGlvbiBmcm9tICcuL0Z1bmN0aW9uLnRzJztcbmV4cG9ydCAqIGFzIEhUTUxFbGVtZW50IGZyb20gJy4vSFRNTEVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgT2JqZWN0IGZyb20gJy4vT2JqZWN0LnRzJztcbmV4cG9ydCAqIGFzIG9ic2lkaWFuIGZyb20gJy4vb2JzaWRpYW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgUGF0aCBmcm9tICcuL1BhdGgudHMnO1xuZXhwb3J0ICogYXMgUmVnRXhwIGZyb20gJy4vUmVnRXhwLnRzJztcbmV4cG9ydCAqIGFzIHNjcmlwdHMgZnJvbSAnLi9zY3JpcHRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFN0cmluZyBmcm9tICcuL1N0cmluZy50cyc7XG5leHBvcnQgKiBhcyB1cmwgZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVQcm92aWRlciBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUFBO0FBQUEsRUFBQTtBQUFBO0FBQUEsZ0JBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLGFBQXdCO0FBQ3hCLFlBQXVCO0FBQ3ZCLFdBQXNCO0FBQ3RCLFlBQXVCO0FBQ3ZCLHNCQUFpQztBQUNqQyxJQUFBRCxTQUF1QjtBQUN2QixlQUEwQjtBQUMxQixrQkFBNkI7QUFDN0IsSUFBQUMsVUFBd0I7QUFDeEIsZUFBMEI7QUFDMUIsV0FBc0I7QUFDdEIsYUFBd0I7QUFDeEIsY0FBeUI7QUFDekIsYUFBd0I7QUFDeEIsVUFBcUI7QUFDckIsb0JBQStCOyIsCiAgIm5hbWVzIjogWyJFcnJvciIsICJPYmplY3QiXQp9Cg==
96
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgX3R5cGVzIGZyb20gJy4vQHR5cGVzLnRzJztcbmV4cG9ydCAqIGFzIEFzeW5jIGZyb20gJy4vQXN5bmMudHMnO1xuZXhwb3J0ICogYXMgQmxvYiBmcm9tICcuL0Jsb2IudHMnO1xuZXhwb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyBEZWJ1Z0NvbnRyb2xsZXIgZnJvbSAnLi9EZWJ1Z0NvbnRyb2xsZXIudHMnO1xuZXhwb3J0ICogYXMgRXJyb3IgZnJvbSAnLi9FcnJvci50cyc7XG5leHBvcnQgKiBhcyBGdW5jdGlvbiBmcm9tICcuL0Z1bmN0aW9uLnRzJztcbmV4cG9ydCAqIGFzIEhUTUxFbGVtZW50IGZyb20gJy4vSFRNTEVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgTGlicmFyeSBmcm9tICcuL0xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgT2JqZWN0IGZyb20gJy4vT2JqZWN0LnRzJztcbmV4cG9ydCAqIGFzIG9ic2lkaWFuIGZyb20gJy4vb2JzaWRpYW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgUGF0aCBmcm9tICcuL1BhdGgudHMnO1xuZXhwb3J0ICogYXMgUmVnRXhwIGZyb20gJy4vUmVnRXhwLnRzJztcbmV4cG9ydCAqIGFzIHNjcmlwdHMgZnJvbSAnLi9zY3JpcHRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFN0cmluZyBmcm9tICcuL1N0cmluZy50cyc7XG5leHBvcnQgKiBhcyB1cmwgZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVQcm92aWRlciBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUFBO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQSxnQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsYUFBd0I7QUFDeEIsWUFBdUI7QUFDdkIsV0FBc0I7QUFDdEIsWUFBdUI7QUFDdkIsc0JBQWlDO0FBQ2pDLElBQUFELFNBQXVCO0FBQ3ZCLGVBQTBCO0FBQzFCLGtCQUE2QjtBQUM3QixjQUF5QjtBQUN6QixJQUFBQyxVQUF3QjtBQUN4QixlQUEwQjtBQUMxQixXQUFzQjtBQUN0QixhQUF3QjtBQUN4QixjQUF5QjtBQUN6QixhQUF3QjtBQUN4QixVQUFxQjtBQUNyQixvQkFBK0I7IiwKICAibmFtZXMiOiBbIkVycm9yIiwgIk9iamVjdCJdCn0K
@@ -6,6 +6,7 @@ export * as DebugController from './DebugController.ts';
6
6
  export * as Error from './Error.ts';
7
7
  export * as Function from './Function.ts';
8
8
  export * as HTMLElement from './HTMLElement.ts';
9
+ export * as Library from './Library.ts';
9
10
  export * as Object from './Object.ts';
10
11
  export * as obsidian from './obsidian/index.ts';
11
12
  export * as Path from './Path.ts';
@@ -32,27 +32,18 @@ __export(App_exports, {
32
32
  getObsidianDevUtilsState: () => getObsidianDevUtilsState
33
33
  });
34
34
  module.exports = __toCommonJS(App_exports);
35
+ var import_Error = require('../Error.cjs');
35
36
  class ValueWrapper {
36
37
  constructor(value) {
37
38
  this.value = value;
38
39
  }
39
40
  }
40
41
  function getApp() {
41
- let canRequire;
42
42
  try {
43
- globalThis.require.resolve("obsidian/app");
44
- canRequire = true;
45
- } catch {
46
- canRequire = false;
47
- }
48
- if (canRequire) {
49
43
  return globalThis.require('obsidian/app');
44
+ } catch {
45
+ return globalThis.app ?? (0, import_Error.throwExpression)(new Error("Obsidian app not found"));
50
46
  }
51
- const app = globalThis.app;
52
- if (app) {
53
- return app;
54
- }
55
- throw new Error("Obsidian app not found");
56
47
  }
57
48
  function getObsidianDevUtilsState(app, key, defaultValue) {
58
49
  const sharedStateWrapper = app;
@@ -65,4 +56,4 @@ function getObsidianDevUtilsState(app, key, defaultValue) {
65
56
  getApp,
66
57
  getObsidianDevUtilsState
67
58
  });
68
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gQXBwXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gcmV0cmlldmUgdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIFdyYXBwZXIgdHlwZSBmb3IgYWNjZXNzaW5nIHRoZSBgQXBwYCBpbnN0YW5jZSBnbG9iYWxseS5cbiAqL1xuaW50ZXJmYWNlIEFwcFdyYXBwZXIge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgcmVmZXJlbmNlIHRvIHRoZSBPYnNpZGlhbiBgQXBwYCBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xufVxuXG5pbnRlcmZhY2UgT2JzaWRpYW5EZXZVdGlsc1N0YXRlV3JhcHBlciB7XG4gIG9ic2lkaWFuRGV2VXRpbHNTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogV3JhcHBlciB0eXBlIGZvciBzdG9yaW5nIHNoYXJlZCBzdGF0ZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQ+IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogVCkgeyB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBPYnNpZGlhbiBgQXBwYCBpbnN0YW5jZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYEFwcGAgaW5zdGFuY2UuXG4gKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGBBcHBgIGluc3RhbmNlIGNhbm5vdCBiZSBmb3VuZC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZml4LXJlcXVpcmUtbW9kdWxlcy8/dGFiPXJlYWRtZS1vdi1maWxlI29ic2lkaWFuYXBwLW1vZHVsZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcCgpOiBBcHAge1xuICBsZXQgY2FuUmVxdWlyZTogYm9vbGVhbjtcbiAgdHJ5IHtcbiAgICBnbG9iYWxUaGlzLnJlcXVpcmUucmVzb2x2ZSgnb2JzaWRpYW4vYXBwJyk7XG4gICAgY2FuUmVxdWlyZSA9IHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIGNhblJlcXVpcmUgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChjYW5SZXF1aXJlKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucmVxdWlyZSgnb2JzaWRpYW4vYXBwJykgYXMgQXBwO1xuICB9XG5cbiAgY29uc3QgYXBwID0gKGdsb2JhbFRoaXMgYXMgUGFydGlhbDxBcHBXcmFwcGVyPikuYXBwO1xuICBpZiAoYXBwKSB7XG4gICAgcmV0dXJuIGFwcDtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignT2JzaWRpYW4gYXBwIG5vdCBmb3VuZCcpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBvciBjcmVhdGVzIGEgc2hhcmVkIHN0YXRlIHdyYXBwZXIgb2JqZWN0IGZvciBhIGdpdmVuIGtleSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gc3RvcmUgb3IgcmV0cmlldmUgdGhlIHNoYXJlZCBzdGF0ZS5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgLSBUaGUgZGVmYXVsdCB2YWx1ZSB0byB1c2UgaWYgdGhlIHNoYXJlZCBzdGF0ZSBkb2VzIG5vdCBleGlzdC5cbiAqIEByZXR1cm5zIFRoZSBWYWx1ZVdyYXBwZXIgb2JqZWN0IHRoYXQgc3RvcmVzIHRoZSBzaGFyZWQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGU8VD4oYXBwOiBBcHAsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBWYWx1ZVdyYXBwZXI8VD4ge1xuICBjb25zdCBzaGFyZWRTdGF0ZVdyYXBwZXIgPSBhcHAgYXMgUGFydGlhbDxPYnNpZGlhbkRldlV0aWxzU3RhdGVXcmFwcGVyPjtcbiAgY29uc3Qgc2hhcmVkU3RhdGUgPSBzaGFyZWRTdGF0ZVdyYXBwZXIub2JzaWRpYW5EZXZVdGlsc1N0YXRlID8/PSB7fTtcbiAgcmV0dXJuIChzaGFyZWRTdGF0ZVtrZXldID8/PSBuZXcgVmFsdWVXcmFwcGVyPFQ+KGRlZmF1bHRWYWx1ZSkpIGFzIFZhbHVlV3JhcHBlcjxUPjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JPLE1BQU0sYUFBZ0I7QUFBQSxFQUNwQixZQUFtQixPQUFVO0FBQVY7QUFBQSxFQUFZO0FBQ3hDO0FBVU8sU0FBUyxTQUFjO0FBQzVCLE1BQUk7QUFDSixNQUFJO0FBQ0YsZUFBVyxRQUFRLFFBQVEsY0FBYztBQUN6QyxpQkFBYTtBQUFBLEVBQ2YsUUFBUTtBQUNOLGlCQUFhO0FBQUEsRUFDZjtBQUVBLE1BQUksWUFBWTtBQUNkLFdBQU8sV0FBVyxRQUFRLGNBQWM7QUFBQSxFQUMxQztBQUVBLFFBQU0sTUFBTyxXQUFtQztBQUNoRCxNQUFJLEtBQUs7QUFDUCxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sSUFBSSxNQUFNLHdCQUF3QjtBQUMxQztBQVVPLFNBQVMseUJBQTRCLEtBQVUsS0FBYSxjQUFrQztBQUNuRyxRQUFNLHFCQUFxQjtBQUMzQixRQUFNLGNBQWMsbUJBQW1CLDBCQUEwQixDQUFDO0FBQ2xFLFNBQVEsWUFBWSxHQUFHLE1BQU0sSUFBSSxhQUFnQixZQUFZO0FBQy9EOyIsCiAgIm5hbWVzIjogW10KfQo=
59
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gQXBwXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gcmV0cmlldmUgdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuLi9FcnJvci50cyc7XG5cbi8qKlxuICogV3JhcHBlciB0eXBlIGZvciBhY2Nlc3NpbmcgdGhlIGBBcHBgIGluc3RhbmNlIGdsb2JhbGx5LlxuICovXG5pbnRlcmZhY2UgQXBwV3JhcHBlciB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCByZWZlcmVuY2UgdG8gdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICAgKi9cbiAgYXBwOiBBcHA7XG59XG5cbmludGVyZmFjZSBPYnNpZGlhbkRldlV0aWxzU3RhdGVXcmFwcGVyIHtcbiAgb2JzaWRpYW5EZXZVdGlsc1N0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3Jpbmcgc2hhcmVkIHN0YXRlIGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWx1ZVdyYXBwZXI8VD4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHZhbHVlOiBUKSB7IH1cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBgQXBwYCBpbnN0YW5jZS5cbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgYEFwcGAgaW5zdGFuY2UgY2Fubm90IGJlIGZvdW5kLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1jb2Rlc2NyaXB0LXRvb2xraXQ/dGFiPXJlYWRtZS1vdi1maWxlI29ic2lkaWFuYXBwLW1vZHVsZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcCgpOiBBcHAge1xuICB0cnkge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnJlcXVpcmUoJ29ic2lkaWFuL2FwcCcpIGFzIEFwcDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIChnbG9iYWxUaGlzIGFzIFBhcnRpYWw8QXBwV3JhcHBlcj4pLmFwcCA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdPYnNpZGlhbiBhcHAgbm90IGZvdW5kJykpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIG9yIGNyZWF0ZXMgYSBzaGFyZWQgc3RhdGUgd3JhcHBlciBvYmplY3QgZm9yIGEgZ2l2ZW4ga2V5IGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBzdG9yZSBvciByZXRyaWV2ZSB0aGUgc2hhcmVkIHN0YXRlLlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIHRvIHVzZSBpZiB0aGUgc2hhcmVkIHN0YXRlIGRvZXMgbm90IGV4aXN0LlxuICogQHJldHVybnMgVGhlIFZhbHVlV3JhcHBlciBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIHNoYXJlZCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZTxUPihhcHA6IEFwcCwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCk6IFZhbHVlV3JhcHBlcjxUPiB7XG4gIGNvbnN0IHNoYXJlZFN0YXRlV3JhcHBlciA9IGFwcCBhcyBQYXJ0aWFsPE9ic2lkaWFuRGV2VXRpbHNTdGF0ZVdyYXBwZXI+O1xuICBjb25zdCBzaGFyZWRTdGF0ZSA9IHNoYXJlZFN0YXRlV3JhcHBlci5vYnNpZGlhbkRldlV0aWxzU3RhdGUgPz89IHt9O1xuICByZXR1cm4gKHNoYXJlZFN0YXRlW2tleV0gPz89IG5ldyBWYWx1ZVdyYXBwZXI8VD4oZGVmYXVsdFZhbHVlKSkgYXMgVmFsdWVXcmFwcGVyPFQ+O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxtQkFBZ0M7QUFtQnpCLE1BQU0sYUFBZ0I7QUFBQSxFQUNwQixZQUFtQixPQUFVO0FBQVY7QUFBQSxFQUFZO0FBQ3hDO0FBVU8sU0FBUyxTQUFjO0FBQzVCLE1BQUk7QUFDRixXQUFPLFdBQVcsUUFBUSxjQUFjO0FBQUEsRUFDMUMsUUFBUTtBQUNOLFdBQVEsV0FBbUMsV0FBTyw4QkFBZ0IsSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQUEsRUFDdkc7QUFDRjtBQVVPLFNBQVMseUJBQTRCLEtBQVUsS0FBYSxjQUFrQztBQUNuRyxRQUFNLHFCQUFxQjtBQUMzQixRQUFNLGNBQWMsbUJBQW1CLDBCQUEwQixDQUFDO0FBQ2xFLFNBQVEsWUFBWSxHQUFHLE1BQU0sSUFBSSxhQUFnQixZQUFZO0FBQy9EOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -16,7 +16,7 @@ export declare class ValueWrapper<T> {
16
16
  * @returns The `App` instance.
17
17
  * @throws Will throw an error if the `App` instance cannot be found.
18
18
  *
19
- * @see {@link https://github.com/mnaoumov/obsidian-fix-require-modules/?tab=readme-ov-file#obsidianapp-module}
19
+ * @see {@link https://github.com/mnaoumov/obsidian-codescript-toolkit?tab=readme-ov-file#obsidianapp-module}
20
20
  */
21
21
  export declare function getApp(): App;
22
22
  /**
@@ -35,7 +35,6 @@ __export(Dataview_exports, {
35
35
  renderPaginatedTable: () => renderPaginatedTable
36
36
  });
37
37
  module.exports = __toCommonJS(Dataview_exports);
38
- var import_compare_versions_d = undefined;
39
38
  var import_Async = require('../Async.cjs');
40
39
  var import_Error = require('../Error.cjs');
41
40
  var import_FileSystem = require('./FileSystem.cjs');
@@ -239,4 +238,4 @@ async function renderPaginated(options) {
239
238
  renderPaginatedList,
240
239
  renderPaginatedTable
241
240
  });
242
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEYXRhdmlld1xuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnRcbmltcG9ydCAnLi4vQHR5cGVzL2NvbXBhcmUtdmVyc2lvbnMuZC50cyc7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVQcm9taXNlIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvYXBpL2lubGluZS1hcGkuZC50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIERhdGFBcnJheSxcbiAgRGF0YXZpZXdBcGksXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHR5cGUgeyBDb21iaW5lZEZyb250bWF0dGVyIH0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5cbmltcG9ydCB7IGNvbnZlcnRBc3luY1RvU3luYyB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7XG4gIGVycm9yVG9TdHJpbmcsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5cbi8qKlxuICogRXhwb3J0IERhdGVUaW1lIGFuZCBMaW5rIHR5cGVzIGZyb20gdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IHR5cGUge1xuICBEYXRlVGltZSxcbiAgTGlua1xufSBmcm9tICcuL0B0eXBlcy9EYXRhdmlldy9pbmRleC5kLnRzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3QVBJIG9iamVjdCByZXByZXNlbnRzIHRoZSBBUEkgZm9yIGludGVyYWN0aW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbWJpbmVkIHBhZ2UgdHlwZSwgd2hpY2ggaW5jbHVkZXMgdGhlIGZyb250IG1hdHRlciBhbmQgdGhlIFNNYXJrZG93blBhZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+ID0gQ29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4gJiBTTWFya2Rvd25QYWdlO1xuXG4vKipcbiAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgdGhlIERhdGF2aWV3IElubGluZSBBUEksIHByb3ZpZGluZyBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIGN1c3RvbSBwYWdlIHR5cGVzIGFuZCBhcnJheSBoYW5kbGluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhdmlld0lubGluZUFwaSBleHRlbmRzIERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWwge1xuICAvKipcbiAgICogV3JhcHMgYW4gYXJyYXkgb2YgaXRlbXMgaW50byBhIGBEYXRhQXJyYXlgIG9iamVjdC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGluIHRoZSBhcnJheS5cbiAgICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBBIGBEYXRhQXJyYXlgIGNvbnRhaW5pbmcgdGhlIGl0ZW1zLlxuICAgKi9cbiAgYXJyYXk8VD4oYXJyOiBUW10pOiBEYXRhQXJyYXk8VD47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBwYWdlLCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgY3VycmVudDxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KCk6IENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlcj47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBwYWdlcyBiYXNlZCBvbiBhbiBvcHRpb25hbCBxdWVyeSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHBhcmFtIHF1ZXJ5IC0gQW4gb3B0aW9uYWwgc3RyaW5nIHF1ZXJ5IHRvIGZpbHRlciB0aGUgcGFnZXMuXG4gICAqIEByZXR1cm5zIEEgYERhdGFBcnJheWAgb2YgcGFnZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcGFnZXM8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPihxdWVyeT86IHN0cmluZyk6IERhdGFBcnJheTxDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXI+PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBhcmFncmFwaCBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgY29udGVudCBvZiB0aGUgcGFyYWdyYXBoLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnQuXG4gICAqL1xuICBwYXJhZ3JhcGgoXG4gICAgdGV4dDogdW5rbm93bixcbiAgICBvcHRpb25zPzogRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyXG4gICk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xufVxuXG4vKipcbiAqIERvbUVsZW1lbnRJbmZvIHdpdGggYW4gb3B0aW9uYWwgY29udGFpbmVyLlxuICovXG5leHBvcnQgdHlwZSBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXIgPSB7IGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IH0gJiBEb21FbGVtZW50SW5mbztcblxuLyoqXG4gKiBUaGUgY29tYmluZWQgZmlsZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duRmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGUgPSBTTWFya2Rvd25QYWdlWydmaWxlJ107XG5cbi8qKlxuICogTGlzdCBvZiBwYWdlIGZpbGVzLlxuICovXG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBBcnJheU9yRGF0YUFycmF5PFBhZ2VGaWxlPjtcblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBjdXJyZW50IGZpbGUgY2FjaGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjYWNoZSBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUoZHY6IERhdGF2aWV3SW5saW5lQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IERhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZ2V0RmlsZShkdi5hcHAsIGR2LmN1cnJlbnQoKS5maWxlLnBhdGgpKTtcbn1cblxuY29uc3QgcGFnaW5hdGlvbkNzcyA9IGBcbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IGdyYXk7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICBtYXJnaW46IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGJsdWU7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuY3VycmVudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gc2VsZWN0LFxuLnBhZ2luYXRpb24gaW5wdXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuYDtcblxuLyoqXG4gKiBBcnJheSBvciBEYXRhQXJyYXkgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlPckRhdGFBcnJheTxUPiA9IERhdGFBcnJheTxUPiB8IFRbXTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVySWZyYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgcGF0aCB0byB0aGUgcmVzb3VyY2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBpZnJhbWUuXG4gICAqL1xuICByZWxhdGl2ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgd2lkdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgbGlzdCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGl0ZW1zIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgZWxlbWVudCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZE9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZXIgZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgcGFnaW5hdGVkIGNvbnRlbnQuXG4gICAqIEBwYXJhbSByb3dzIC0gVGhlIHJvd3MgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICAgKi9cbiAgcmVuZGVyZXI6IChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KSA9PiBNYXliZVByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIG9mIHRoZSB0YWJsZSB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnRcbiAqIHRoYXQgd2FzIHVzZWQgYXMgdGhlIHRlbXBvcmFyeSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZW5kZXJlZENvbnRhaW5lcihkdjogRGF0YXZpZXdJbmxpbmVBcGksIHJlbmRlcmVyOiAoKSA9PiBNYXliZVByb21pc2U8dm9pZD4pOiBQcm9taXNlPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiB7XG4gIGNvbnN0IHRlbXBDb250YWluZXIgPSBkdi5wYXJhZ3JhcGgoJycpO1xuICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkdi5wYXJhZ3JhcGgoJ1x1Mjc0QycgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignQ29udGFpbmVyIHBhcmVudCBub3QgZm91bmQnKSk7XG4gICAgdGVtcENvbnRhaW5lci5yZW1vdmUoKTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wQ29udGFpbmVyO1xufVxuXG4vKipcbiAqIEluc2VydHMgYSBjb2RlIGJsb2NrIGludG8gdGhlIHNwZWNpZmllZCBEYXRhdmlldyBpbnN0YW5jZSB1c2luZyB0aGUgcHJvdmlkZWQgbGFuZ3VhZ2UgYW5kIGNvZGUuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlIHRvIGluc2VydCB0aGUgY29kZSBibG9jayBpbnRvLlxuICogQHBhcmFtIGxhbmd1YWdlIC0gVGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgZm9yIHRoZSBjb2RlIGJsb2NrLlxuICogQHBhcmFtIGNvZGUgLSBUaGUgY29kZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGNvZGUgYmxvY2suXG4gKiBAcmV0dXJucyBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q29kZUJsb2NrKGR2OiBEYXRhdmlld0lubGluZUFwaSwgbGFuZ3VhZ2U6IHN0cmluZywgY29kZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGZlbmNlTWF0Y2hlcyA9IGNvZGUubWF0Y2hBbGwoL15gezMsfS9nbSk7XG4gIGNvbnN0IGZlbmNlTGVuZ3RocyA9IEFycmF5LmZyb20oZmVuY2VNYXRjaGVzKS5tYXAoKGZlbmNlTWF0Y2gpID0+IGZlbmNlTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgY29uc3QgbWF4RmVuY2VMZW5ndGggPSBNYXRoLm1heCgwLCAuLi5mZW5jZUxlbmd0aHMpO1xuICBjb25zdCByZXN1bHRGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDMsIG1heEZlbmNlTGVuZ3RoICsgMSk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlID0gJ2AnLnJlcGVhdChyZXN1bHRGZW5jZUxlbmd0aCk7XG5cbiAgZHYucGFyYWdyYXBoKGAke3Jlc3VsdEZlbmNlfSR7bGFuZ3VhZ2V9XG4ke2NvZGV9XG4ke3Jlc3VsdEZlbmNlfWApO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHJlbGF0aXZlIHBhdGgsIHdpZHRoLCBhbmQgaGVpZ2h0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgaWZyYW1lLlxuICpcbiAqIEByZXR1cm5zIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJZnJhbWUob3B0aW9uczogUmVuZGVySWZyYW1lT3B0aW9ucyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVpZ2h0ID0gJzYwMHB4JyxcbiAgICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gICAgd2lkdGggPSAnMTAwJSdcbiAgfSA9IG9wdGlvbnM7XG4gIGR2LmVsKCdpZnJhbWUnLCAnJywge1xuICAgIGF0dHI6IHtcbiAgICAgIGhlaWdodCxcbiAgICAgIHNyYzogcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybChkdi5hcHAsIGdldFBhdGgoZHYuYXBwLCByZWxhdGl2ZVBhdGhPckZpbGUpLCBkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSxcbiAgICAgIHdpZHRoXG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSBsaXN0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgcGFnaW5hdGVkIGxpc3QuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGlzdCBpcyByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZExpc3Q8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkTGlzdE9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXSxcbiAgICByb3dzXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCBkdi5saXN0KHJvd3MpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIHRhYmxlIHVzaW5nIHRoZSBwcm92aWRlZCBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyBpbiB0aGUgdGFibGUgcm93cy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCB0YWJsZS5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YWJsZSBpcyByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZFRhYmxlPFQgZXh0ZW5kcyB1bmtub3duW10+KG9wdGlvbnM6IFJlbmRlclBhZ2luYXRlZFRhYmxlT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVhZGVycyxcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYudGFibGUoaGVhZGVycywgcm93cyk7XG4gICAgfSxcbiAgICByb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byByZW5kZXIgcGFnaW5hdGVkIGNvbnRlbnQgdXNpbmcgdGhlIHNwZWNpZmllZCByZW5kZXJlci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyB0byBwYWdpbmF0ZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVuZGVyZWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZDxUPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRPcHRpb25zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcmVuZGVyZXIsXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgaWYgKHJvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgZHYucGFyYWdyYXBoKCdObyBpdGVtcyBmb3VuZCcpO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjb250YWluZXIgPSBkdi5jb250YWluZXI7XG4gIGxldCBpdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2VPcHRpb25zWzBdID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoJ0l0ZW1zIHBlciBwYWdlIG9wdGlvbnMgYXJlIGVtcHR5JykpO1xuICBsZXQgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2luYXRpb25EaXYgPSBjb250YWluZXIuY3JlYXRlRWwoJ2RpdicsIHsgY2xzOiAncGFnaW5hdGlvbicgfSk7XG4gICAgY29uc3QgcGFnaW5hdGlvblJvdzFEaXYgPSBwYWdpbmF0aW9uRGl2LmNyZWF0ZURpdigpO1xuXG4gICAgY3JlYXRlUGFnZUxpbmsoJ0ZpcnN0JywgMSwgcGFnZU51bWJlciA9PT0gMSk7XG4gICAgY3JlYXRlUGFnZUxpbmsoJ1ByZXYnLCBwYWdlTnVtYmVyIC0gMSwgcGFnZU51bWJlciA9PT0gMSk7XG5cbiAgICBpZiAocGFnZU51bWJlciA+IDMpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKCdzcGFuJywgeyB0ZXh0OiAnLi4uJyB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gTWF0aC5tYXgoMSwgcGFnZU51bWJlciAtIDIpOyBpIDw9IE1hdGgubWluKHRvdGFsUGFnZXMsIHBhZ2VOdW1iZXIgKyAyKTsgaSsrKSB7XG4gICAgICBjb25zdCBwYWdlTGluayA9IGNyZWF0ZVBhZ2VMaW5rKGkudG9TdHJpbmcoKSwgaSwgaSA9PT0gcGFnZU51bWJlcik7XG4gICAgICBpZiAoaSA9PT0gcGFnZU51bWJlcikge1xuICAgICAgICBwYWdlTGluay5hZGRDbGFzcygnY3VycmVudCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYWdlTnVtYmVyIDwgdG90YWxQYWdlcyAtIDIpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKCdzcGFuJywgeyB0ZXh0OiAnLi4uJyB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVQYWdlTGluaygnTmV4dCcsIHBhZ2VOdW1iZXIgKyAxLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcbiAgICBjcmVhdGVQYWdlTGluaygnTGFzdCcsIHRvdGFsUGFnZXMsIHBhZ2VOdW1iZXIgPT09IHRvdGFsUGFnZXMpO1xuXG4gICAgY29uc3QgcGFnaW5hdGlvblJvdzJEaXYgPSBwYWdpbmF0aW9uRGl2LmNyZWF0ZURpdigpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NwYW4nLCB7IHRleHQ6ICcgSXRlbXMgcGVyIHBhZ2U6ICcgfSk7XG5cbiAgICBjb25zdCBpdGVtc1BlclBhZ2VTZWxlY3QgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc2VsZWN0Jyk7XG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucy5mb3JFYWNoKChvcHRpb246IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgaXRlbXNQZXJQYWdlU2VsZWN0LmNyZWF0ZUVsKCdvcHRpb24nLCB7IHRleHQ6IG9wdGlvbi50b1N0cmluZygpLCB2YWx1ZTogb3B0aW9uLnRvU3RyaW5nKCkgfSk7XG4gICAgfSk7XG4gICAgaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlID0gaXRlbXNQZXJQYWdlLnRvU3RyaW5nKCk7XG4gICAgaXRlbXNQZXJQYWdlU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUpO1xuICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gICAgICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuICAgIH0pKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdzcGFuJywgeyB0ZXh0OiAnICBKdW1wIHRvIHBhZ2U6ICcgfSk7XG5cbiAgICBjb25zdCBqdW1wVG9QYWdlSW5wdXQgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnaW5wdXQnLCB7IGF0dHI6IHsgbWF4OiB0b3RhbFBhZ2VzLCBtaW46IDEgfSwgdHlwZTogJ251bWJlcicgfSk7XG4gICAganVtcFRvUGFnZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChqdW1wVG9QYWdlSW5wdXQudmFsdWUpO1xuICAgICAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdG90YWxQYWdlcykge1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogYCAgUGFnZSAke3BhZ2VOdW1iZXIudG9TdHJpbmcoKX0gb2YgJHt0b3RhbFBhZ2VzLnRvU3RyaW5nKCl9LCBUb3RhbCBpdGVtczogJHtyb3dzLmxlbmd0aC50b1N0cmluZygpfWAgfSk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQYWdlTGluayh0ZXh0OiBzdHJpbmcsIHBhZ2VOdW1iZXI6IG51bWJlciwgZGlzYWJsZWQgPSBmYWxzZSk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnYScsIHsgY2xzOiAncGFnZS1saW5rJywgaHJlZjogYCMke3BhZ2VOdW1iZXIudG9TdHJpbmcoKX1gLCB0ZXh0OiB0ZXh0IH0pO1xuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGxpbmsuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgIGxpbmsub25jbGljayA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShwYWdlTnVtYmVyKTtcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250YWluZXIuZW1wdHkoKTtcbiAgICBjb250YWluZXIuY3JlYXRlRWwoJ3N0eWxlJywgeyB0ZXh0OiBwYWdpbmF0aW9uQ3NzIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlTnVtYmVyIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IHJvd3NGb3JDdXJyZW50UGFnZSA9IHJvd3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuXG4gICAgY29uc3Qgb2xkQ29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuXG4gICAgZHYuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZW5kZXJlcihyb3dzRm9yQ3VycmVudFBhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGR2LnBhcmFncmFwaCgnXHUyNzRDJyArIGVycm9yVG9TdHJpbmcoZSkpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkdi5jb250YWluZXIgPSBvbGRDb250YWluZXI7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXIpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLGdDQUFPO0FBWVAsbUJBQW1DO0FBQ25DLG1CQUdPO0FBQ1Asd0JBR087QUFDUCx5QkFBMEM7QUF5RjFDLGVBQXNCLHVCQUF1QixJQUFzQztBQUNqRixRQUFNLGFBQWEsTUFBTSxXQUFPLDJCQUFRLEdBQUcsS0FBSyxHQUFHLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQztBQUN6RTtBQUVBLE1BQU0sZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwSXRCLGVBQXNCLHFCQUFxQixJQUF1QixVQUFtRTtBQUNuSSxRQUFNLGdCQUFnQixHQUFHLFVBQVUsRUFBRTtBQUNyQyxLQUFHLFlBQVk7QUFDZixLQUFHLFVBQVUsTUFBTTtBQUVuQixNQUFJO0FBQ0YsVUFBTSxTQUFTO0FBQUEsRUFDakIsU0FBUyxHQUFHO0FBQ1YsT0FBRyxVQUFVLGVBQU0sNEJBQWMsQ0FBQyxDQUFDO0FBQUEsRUFDckMsVUFBRTtBQUNBLE9BQUcsWUFBWSxjQUFjLHFCQUFpQiw4QkFBZ0IsSUFBSSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JHLGtCQUFjLE9BQU87QUFBQSxFQUN2QjtBQUVBLFNBQU87QUFDVDtBQVVPLFNBQVMsZ0JBQWdCLElBQXVCLFVBQWtCLE1BQW9CO0FBQzNGLFFBQU0sZUFB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
241
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEYXRhdmlld1xuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YXZpZXdJbmxpbmVBcGkgYXMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB9IGZyb20gJy4vQHR5cGVzL0RhdGF2aWV3L2FwaS9pbmxpbmUtYXBpLmQudHMnO1xuaW1wb3J0IHR5cGUge1xuICBEYXRhQXJyYXksXG4gIERhdGF2aWV3QXBpLFxuICBTTWFya2Rvd25QYWdlXG59IGZyb20gJy4vQHR5cGVzL0RhdGF2aWV3L2luZGV4LmQudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuXG5pbXBvcnQgeyBjb252ZXJ0QXN5bmNUb1N5bmMgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQge1xuICBlcnJvclRvU3RyaW5nLFxuICB0aHJvd0V4cHJlc3Npb25cbn0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0UGF0aFxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHsgcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybCB9IGZyb20gJy4vUmVzb3VyY2VVcmwudHMnO1xuXG4vKipcbiAqIEV4cG9ydCBEYXRlVGltZSBhbmQgTGluayB0eXBlcyBmcm9tIHRoZSBEYXRhdmlldyBBUEkuXG4gKi9cbmV4cG9ydCB0eXBlIHtcbiAgRGF0ZVRpbWUsXG4gIExpbmtcbn0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0FQSSBvYmplY3QgcmVwcmVzZW50cyB0aGUgQVBJIGZvciBpbnRlcmFjdGluZyB3aXRoIERhdGF2aWV3IGluIE9ic2lkaWFuLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZhclxuICB2YXIgRGF0YXZpZXdBUEk6IERhdGF2aWV3QXBpIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBjb21iaW5lZCBwYWdlIHR5cGUsIHdoaWNoIGluY2x1ZGVzIHRoZSBmcm9udCBtYXR0ZXIgYW5kIHRoZSBTTWFya2Rvd25QYWdlLlxuICovXG5leHBvcnQgdHlwZSBDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPiA9IENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+ICYgU01hcmtkb3duUGFnZTtcblxuLyoqXG4gKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIHRoZSBEYXRhdmlldyBJbmxpbmUgQVBJLCBwcm92aWRpbmcgYWRkaXRpb25hbCBtZXRob2RzIGZvciBjdXN0b20gcGFnZSB0eXBlcyBhbmQgYXJyYXkgaGFuZGxpbmcuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21QYWdlIC0gVGhlIHR5cGUgb2YgdGhlIGN1c3RvbSBwYWdlLiBEZWZhdWx0cyB0byBgU01hcmtkb3duUGFnZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXZpZXdJbmxpbmVBcGkgZXh0ZW5kcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIHtcbiAgLyoqXG4gICAqIFdyYXBzIGFuIGFycmF5IG9mIGl0ZW1zIGludG8gYSBgRGF0YUFycmF5YCBvYmplY3QuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXkuXG4gICAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gd3JhcC5cbiAgICogQHJldHVybnMgQSBgRGF0YUFycmF5YCBjb250YWluaW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIGFycmF5PFQ+KGFycjogVFtdKTogRGF0YUFycmF5PFQ+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgcGFnZSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgcGFnZS5cbiAgICovXG4gIGN1cnJlbnQ8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPigpOiBDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXI+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgcGFnZXMgYmFzZWQgb24gYW4gb3B0aW9uYWwgcXVlcnksIHdpdGggYW4gb3B0aW9uYWwgY3VzdG9tIHBhZ2UgdHlwZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBDdXN0b21QYWdlIC0gVGhlIHR5cGUgb2YgdGhlIGN1c3RvbSBwYWdlLiBEZWZhdWx0cyB0byBgU01hcmtkb3duUGFnZWAuXG4gICAqIEBwYXJhbSBxdWVyeSAtIEFuIG9wdGlvbmFsIHN0cmluZyBxdWVyeSB0byBmaWx0ZXIgdGhlIHBhZ2VzLlxuICAgKiBAcmV0dXJucyBBIGBEYXRhQXJyYXlgIG9mIHBhZ2VzIG1hdGNoaW5nIHRoZSBxdWVyeS5cbiAgICovXG4gIHBhZ2VzPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4ocXVlcnk/OiBzdHJpbmcpOiBEYXRhQXJyYXk8Q29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyPj47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwYXJhZ3JhcGggSFRNTCBlbGVtZW50IHdpdGggdGhlIHByb3ZpZGVkIHRleHQgYW5kIG9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0IC0gVGhlIGNvbnRlbnQgb2YgdGhlIHBhcmFncmFwaC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBET00gZWxlbWVudCBvcHRpb25zLCBpbmNsdWRpbmcgYW4gb3B0aW9uYWwgY29udGFpbmVyLlxuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBIVE1MIHBhcmFncmFwaCBlbGVtZW50LlxuICAgKi9cbiAgcGFyYWdyYXBoKFxuICAgIHRleHQ6IHVua25vd24sXG4gICAgb3B0aW9ucz86IERvbUVsZW1lbnRJbmZvV2l0aENvbnRhaW5lclxuICApOiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbn1cblxuLyoqXG4gKiBEb21FbGVtZW50SW5mbyB3aXRoIGFuIG9wdGlvbmFsIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IHR5cGUgRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyID0geyBjb250YWluZXI/OiBIVE1MRWxlbWVudCB9ICYgRG9tRWxlbWVudEluZm87XG5cbi8qKlxuICogVGhlIGNvbWJpbmVkIGZpbGUgdHlwZSwgd2hpY2ggaW5jbHVkZXMgdGhlIGZyb250IG1hdHRlciBhbmQgdGhlIFNNYXJrZG93bkZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIFBhZ2VGaWxlID0gU01hcmtkb3duUGFnZVsnZmlsZSddO1xuXG4vKipcbiAqIExpc3Qgb2YgcGFnZSBmaWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGVzID0gQXJyYXlPckRhdGFBcnJheTxQYWdlRmlsZT47XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgY3VycmVudCBmaWxlIGNhY2hlIHVzaW5nIHRoZSBEYXRhdmlldyBBUEkuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY2FjaGUgaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRDdXJyZW50RmlsZUNhY2hlKGR2OiBEYXRhdmlld0lubGluZUFwaSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBEYXRhdmlld0FQST8uaW5kZXgucmVsb2FkKGdldEZpbGUoZHYuYXBwLCBkdi5jdXJyZW50KCkuZmlsZS5wYXRoKSk7XG59XG5cbmNvbnN0IHBhZ2luYXRpb25Dc3MgPSBgXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmN1cnJlbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uIHNlbGVjdCxcbi5wYWdpbmF0aW9uIGlucHV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbmA7XG5cbi8qKlxuICogQXJyYXkgb3IgRGF0YUFycmF5IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5T3JEYXRhQXJyYXk8VD4gPSBEYXRhQXJyYXk8VD4gfCBUW107XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGFuIGlmcmFtZSBpbiB0aGUgRGF0YXZpZXcgY29udGFpbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlcklmcmFtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBpZnJhbWUuXG4gICAqL1xuICBoZWlnaHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJlc291cmNlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgcmVsYXRpdmVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIHdpZHRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRMaXN0T3B0aW9uczxUPiB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlLiBEZWZhdWx0cyB0byBgWzEwLCAyMCwgNTAsIDEwMF1gLlxuICAgKi9cbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpdGVtcyB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGEgcGFnaW5hdGVkIGVsZW1lbnQgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXTtcblxuICAvKipcbiAgICogVGhlIHJlbmRlcmVyIGZ1bmN0aW9uIHRvIGRpc3BsYXkgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICAgKiBAcGFyYW0gcm93cyAtIFRoZSByb3dzIHRvIHJlbmRlci5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBpcyByZW5kZXJlZC5cbiAgICovXG4gIHJlbmRlcmVyOiAocm93czogQXJyYXlPckRhdGFBcnJheTxUPikgPT4gTWF5YmVQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgcm93cyB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcmVuZGVyaW5nIGEgcGFnaW5hdGVkIHRhYmxlIHVzaW5nIHRoZSBEYXRhdmlldyBBUEkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyUGFnaW5hdGVkVGFibGVPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogVGhlIGhlYWRlcnMgb2YgdGhlIHRhYmxlLlxuICAgKi9cbiAgaGVhZGVyczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlLiBEZWZhdWx0cyB0byBgWzEwLCAyMCwgNTAsIDEwMF1gLlxuICAgKi9cbiAgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm93cyBvZiB0aGUgdGFibGUgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGNvbnRlbnQgdXNpbmcgdGhlIHByb3ZpZGVkIHJlbmRlcmVyIGZ1bmN0aW9uIGluIGEgdGVtcG9yYXJ5IGNvbnRhaW5lcixcbiAqIGFuZCB0aGVuIHJldHVybnMgdGhlIGNvbnRhaW5lci5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcmVuZGVyZXIgLSBUaGUgZnVuY3Rpb24gcmVzcG9uc2libGUgZm9yIHJlbmRlcmluZyB0aGUgY29udGVudC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBIVE1MIHBhcmFncmFwaCBlbGVtZW50XG4gKiB0aGF0IHdhcyB1c2VkIGFzIHRoZSB0ZW1wb3JhcnkgY29udGFpbmVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVuZGVyZWRDb250YWluZXIoZHY6IERhdGF2aWV3SW5saW5lQXBpLCByZW5kZXJlcjogKCkgPT4gTWF5YmVQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxIVE1MUGFyYWdyYXBoRWxlbWVudD4ge1xuICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZHYucGFyYWdyYXBoKCcnKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcENvbnRhaW5lcjtcbiAgZHYuY29udGFpbmVyLmVtcHR5KCk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZW5kZXJlcigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZHYucGFyYWdyYXBoKCdcdTI3NEMnICsgZXJyb3JUb1N0cmluZyhlKSk7XG4gIH0gZmluYWxseSB7XG4gICAgZHYuY29udGFpbmVyID0gdGVtcENvbnRhaW5lci5wYXJlbnRFbGVtZW50ID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoJ0NvbnRhaW5lciBwYXJlbnQgbm90IGZvdW5kJykpO1xuICAgIHRlbXBDb250YWluZXIucmVtb3ZlKCk7XG4gIH1cblxuICByZXR1cm4gdGVtcENvbnRhaW5lcjtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGEgY29kZSBibG9jayBpbnRvIHRoZSBzcGVjaWZpZWQgRGF0YXZpZXcgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGxhbmd1YWdlIGFuZCBjb2RlLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZSB0byBpbnNlcnQgdGhlIGNvZGUgYmxvY2sgaW50by5cbiAqIEBwYXJhbSBsYW5ndWFnZSAtIFRoZSBsYW5ndWFnZSBpZGVudGlmaWVyIGZvciB0aGUgY29kZSBibG9jay5cbiAqIEBwYXJhbSBjb2RlIC0gVGhlIGNvZGUgY29udGVudCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBjb2RlIGJsb2NrLlxuICogQHJldHVybnMgVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydENvZGVCbG9jayhkdjogRGF0YXZpZXdJbmxpbmVBcGksIGxhbmd1YWdlOiBzdHJpbmcsIGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBmZW5jZU1hdGNoZXMgPSBjb2RlLm1hdGNoQWxsKC9eYHszLH0vZ20pO1xuICBjb25zdCBmZW5jZUxlbmd0aHMgPSBBcnJheS5mcm9tKGZlbmNlTWF0Y2hlcykubWFwKChmZW5jZU1hdGNoKSA9PiBmZW5jZU1hdGNoWzBdLmxlbmd0aCk7XG4gIGNvbnN0IG1heEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoMCwgLi4uZmVuY2VMZW5ndGhzKTtcbiAgY29uc3QgcmVzdWx0RmVuY2VMZW5ndGggPSBNYXRoLm1heCgzLCBtYXhGZW5jZUxlbmd0aCArIDEpO1xuICBjb25zdCByZXN1bHRGZW5jZSA9ICdgJy5yZXBlYXQocmVzdWx0RmVuY2VMZW5ndGgpO1xuXG4gIGR2LnBhcmFncmFwaChgJHtyZXN1bHRGZW5jZX0ke2xhbmd1YWdlfVxuJHtjb2RlfVxuJHtyZXN1bHRGZW5jZX1gKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGFuIGlmcmFtZSBpbiB0aGUgRGF0YXZpZXcgY29udGFpbmVyIHdpdGggdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwYXRoLCB3aWR0aCwgYW5kIGhlaWdodC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIGlmcmFtZS5cbiAqXG4gKiBAcmV0dXJucyBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVySWZyYW1lKG9wdGlvbnM6IFJlbmRlcklmcmFtZU9wdGlvbnMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlaWdodCA9ICc2MDBweCcsXG4gICAgcmVsYXRpdmVQYXRoT3JGaWxlLFxuICAgIHdpZHRoID0gJzEwMCUnXG4gIH0gPSBvcHRpb25zO1xuICBkdi5lbCgnaWZyYW1lJywgJycsIHtcbiAgICBhdHRyOiB7XG4gICAgICBoZWlnaHQsXG4gICAgICBzcmM6IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwoZHYuYXBwLCBnZXRQYXRoKGR2LmFwcCwgcmVsYXRpdmVQYXRoT3JGaWxlKSwgZHYuY3VycmVudCgpLmZpbGUucGF0aCksXG4gICAgICB3aWR0aFxuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCBsaXN0IHVzaW5nIHRoZSBwcm92aWRlZCBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyBpbiB0aGUgbGlzdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBsaXN0LlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxpc3QgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRMaXN0PFQ+KG9wdGlvbnM6IFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzKTtcbiAgICB9LFxuICAgIHJvd3NcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgaW4gdGhlIHRhYmxlIHJvd3MuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgdGFibGUuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFibGUgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRUYWJsZTxUIGV4dGVuZHMgdW5rbm93bltdPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICByZW5kZXJlcjogYXN5bmMgKHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2LnRhYmxlKGhlYWRlcnMsIHJvd3MpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVuZGVyIHBhZ2luYXRlZCBjb250ZW50IHVzaW5nIHRoZSBzcGVjaWZpZWQgcmVuZGVyZXIuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWQ8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJlbmRlcmVyLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgIGR2LnBhcmFncmFwaCgnTm8gaXRlbXMgZm91bmQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuICBsZXQgaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlT3B0aW9uc1swXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdJdGVtcyBwZXIgcGFnZSBvcHRpb25zIGFyZSBlbXB0eScpKTtcbiAgbGV0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uRGl2ID0gY29udGFpbmVyLmNyZWF0ZUVsKCdkaXYnLCB7IGNsczogJ3BhZ2luYXRpb24nIH0pO1xuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cxRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIGNyZWF0ZVBhZ2VMaW5rKCdGaXJzdCcsIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKCdQcmV2JywgcGFnZU51bWJlciAtIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPiAzKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSAyKTsgaSA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgMik7IGkrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayhpLnRvU3RyaW5nKCksIGksIGkgPT09IHBhZ2VOdW1iZXIpO1xuICAgICAgaWYgKGkgPT09IHBhZ2VOdW1iZXIpIHtcbiAgICAgICAgcGFnZUxpbmsuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFnZU51bWJlciA8IHRvdGFsUGFnZXMgLSAyKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoJ05leHQnLCBwYWdlTnVtYmVyICsgMSwgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG4gICAgY3JlYXRlUGFnZUxpbmsoJ0xhc3QnLCB0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdzcGFuJywgeyB0ZXh0OiAnIEl0ZW1zIHBlciBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QgaXRlbXNQZXJQYWdlU2VsZWN0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NlbGVjdCcpO1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5jcmVhdGVFbCgnb3B0aW9uJywgeyB0ZXh0OiBvcHRpb24udG9TdHJpbmcoKSwgdmFsdWU6IG9wdGlvbi50b1N0cmluZygpIH0pO1xuICAgIH0pO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IGl0ZW1zUGVyUGFnZS50b1N0cmluZygpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlKTtcbiAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICAgICAgYXdhaXQgcmVuZGVyUGFnZSgxKTtcbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJyAgSnVtcCB0byBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QganVtcFRvUGFnZUlucHV0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ2lucHV0JywgeyBhdHRyOiB7IG1heDogdG90YWxQYWdlcywgbWluOiAxIH0sIHR5cGU6ICdudW1iZXInIH0pO1xuICAgIGp1bXBUb1BhZ2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQoanVtcFRvUGFnZUlucHV0LnZhbHVlKTtcbiAgICAgICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NwYW4nLCB7IHRleHQ6IGAgIFBhZ2UgJHtwYWdlTnVtYmVyLnRvU3RyaW5nKCl9IG9mICR7dG90YWxQYWdlcy50b1N0cmluZygpfSwgVG90YWwgaXRlbXM6ICR7cm93cy5sZW5ndGgudG9TdHJpbmcoKX1gIH0pO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFnZUxpbmsodGV4dDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIsIGRpc2FibGVkID0gZmFsc2UpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgICBjb25zdCBsaW5rID0gcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlRWwoJ2EnLCB7IGNsczogJ3BhZ2UtbGluaycsIGhyZWY6IGAjJHtwYWdlTnVtYmVyLnRvU3RyaW5nKCl9YCwgdGV4dDogdGV4dCB9KTtcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICBsaW5rLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICBsaW5rLm9uY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZU51bWJlcik7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29udGFpbmVyLmVtcHR5KCk7XG4gICAgY29udGFpbmVyLmNyZWF0ZUVsKCdzdHlsZScsIHsgdGV4dDogcGFnaW5hdGlvbkNzcyB9KTtcblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZU51bWJlciAtIDEpICogaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCByb3dzRm9yQ3VycmVudFBhZ2UgPSByb3dzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcblxuICAgIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcblxuICAgIGR2LmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkdi5wYXJhZ3JhcGgoJ1x1Mjc0QycgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZHYuY29udGFpbmVyID0gb2xkQ29udGFpbmVyO1xuICAgIH1cblxuICAg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
@@ -2,7 +2,6 @@
2
2
  * @packageDocumentation Dataview
3
3
  * This module provides utility functions for working with Dataview in Obsidian.
4
4
  */
5
- import '../@types/compare-versions.d.ts';
6
5
  import type { MaybePromise } from '../Async.ts';
7
6
  import type { DataviewInlineApi as DataviewInlineApiOriginal } from './@types/Dataview/api/inline-api.d.ts';
8
7
  import type { DataArray, DataviewApi, SMarkdownPage } from './@types/Dataview/index.d.ts';
@@ -38,6 +38,8 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
38
38
  ObsidianPluginRepoPaths2["DistBuild"] = "dist/build";
39
39
  ObsidianPluginRepoPaths2["DistDev"] = "dist/dev";
40
40
  ObsidianPluginRepoPaths2["HotReload"] = ".hotreload";
41
+ ObsidianPluginRepoPaths2["Lib"] = "lib";
42
+ ObsidianPluginRepoPaths2["LibraryCjs"] = "Library.cjs";
41
43
  ObsidianPluginRepoPaths2["MainJs"] = "main.js";
42
44
  ObsidianPluginRepoPaths2["MainTs"] = "main.ts";
43
45
  ObsidianPluginRepoPaths2["ManifestJson"] = "manifest.json";
@@ -53,4 +55,4 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
53
55
  0 && (module.exports = {
54
56
  ObsidianPluginRepoPaths
55
57
  });
56
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9PYnNpZGlhblBsdWdpblJlcG9QYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHNcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZGlyZWN0b3J5IHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBkaXJlY3RvcnkgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKiBSZXByZXNlbnRzIGFueSBwYXRoIHJlY3Vyc2l2ZWx5LiAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKiogUmVwcmVzZW50cyBhbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgY2hhbmdlbG9nIGZpbGUuICovXG4gIENoYW5nZWxvZ01kID0gJ0NIQU5HRUxPRy5tZCcsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIGRpc3RyaWJ1dGlvbiBkaXJlY3RvcnkuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIGJ1aWxkIGRpcmVjdG9yeSB3aXRoaW4gdGhlIGRpc3RyaWJ1dGlvbiBkaXJlY3RvcnkuICovXG4gIERpc3RCdWlsZCA9ICdkaXN0L2J1aWxkJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgZGV2ZWxvcG1lbnQgZGlyZWN0b3J5IHdpdGhpbiB0aGUgZGlzdHJpYnV0aW9uIGRpcmVjdG9yeS4gKi9cbiAgRGlzdERldiA9ICdkaXN0L2RldicsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIGhvdCByZWxvYWQgZmlsZS4gKi9cbiAgSG90UmVsb2FkID0gJy5ob3RyZWxvYWQnLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBtYWluIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgTWFpbkpzID0gJ21haW4uanMnLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBtYWluIFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgTWFpblRzID0gJ21haW4udHMnLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBtYW5pZmVzdCBmaWxlLiAqL1xuICBNYW5pZmVzdEpzb24gPSAnbWFuaWZlc3QuanNvbicsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIHBhY2thZ2UuanNvbiBmaWxlLiAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBwYWNrYWdlLWxvY2suanNvbiBmaWxlLiAqL1xuICBQYWNrYWdlTG9ja0pzb24gPSAncGFja2FnZS1sb2NrLmpzb24nLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBzb3VyY2UgZGlyZWN0b3J5LiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgc3R5bGVzLmNzcyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIHZlcnNpb25zLmpzb24gZmlsZS4gKi9cbiAgVmVyc2lvbnNKc29uID0gJ3ZlcnNpb25zLmpzb24nXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUU8sSUFBSywwQkFBTCxrQkFBS0EsNkJBQUw7QUFFTCxFQUFBQSx5QkFBQSxhQUFVO0FBR1YsRUFBQUEseUJBQUEsV0FBUTtBQUdSLEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEsVUFBTztBQUdQLEVBQUFBLHlCQUFBLGVBQVk7QUFHWixFQUFBQSx5QkFBQSxhQUFVO0FBR1YsRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxZQUFTO0FBR1QsRUFBQUEseUJBQUEsa0JBQWU7QUFHZixFQUFBQSx5QkFBQSxpQkFBYztBQUdkLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUdsQixFQUFBQSx5QkFBQSxTQUFNO0FBR04sRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLGtCQUFlO0FBR2YsRUFBQUEseUJBQUEsa0JBQWU7QUEvQ0wsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhblBsdWdpblJlcG9QYXRocyJdCn0K
58
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9PYnNpZGlhblBsdWdpblJlcG9QYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHNcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZGlyZWN0b3J5IHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBkaXJlY3RvcnkgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKiBSZXByZXNlbnRzIGFueSBwYXRoIHJlY3Vyc2l2ZWx5LiAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKiogUmVwcmVzZW50cyBhbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgY2hhbmdlbG9nIGZpbGUuICovXG4gIENoYW5nZWxvZ01kID0gJ0NIQU5HRUxPRy5tZCcsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIGRpc3RyaWJ1dGlvbiBkaXJlY3RvcnkuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIGJ1aWxkIGRpcmVjdG9yeSB3aXRoaW4gdGhlIGRpc3RyaWJ1dGlvbiBkaXJlY3RvcnkuICovXG4gIERpc3RCdWlsZCA9ICdkaXN0L2J1aWxkJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgZGV2ZWxvcG1lbnQgZGlyZWN0b3J5IHdpdGhpbiB0aGUgZGlzdHJpYnV0aW9uIGRpcmVjdG9yeS4gKi9cbiAgRGlzdERldiA9ICdkaXN0L2RldicsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIGhvdCByZWxvYWQgZmlsZS4gKi9cbiAgSG90UmVsb2FkID0gJy5ob3RyZWxvYWQnLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBsaWIgZGlyZWN0b3J5LiAqL1xuICBMaWIgPSAnbGliJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgTGlicmFyeS5janMgZmlsZS4gKi9cbiAgTGlicmFyeUNqcyA9ICdMaWJyYXJ5LmNqcycsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIG1haW4gSmF2YVNjcmlwdCBmaWxlLiAqL1xuICBNYWluSnMgPSAnbWFpbi5qcycsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIG1haW4gVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBNYWluVHMgPSAnbWFpbi50cycsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIG1hbmlmZXN0IGZpbGUuICovXG4gIE1hbmlmZXN0SnNvbiA9ICdtYW5pZmVzdC5qc29uJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgcGFja2FnZS5qc29uIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIHBhY2thZ2UtbG9jay5qc29uIGZpbGUuICovXG4gIFBhY2thZ2VMb2NrSnNvbiA9ICdwYWNrYWdlLWxvY2suanNvbicsXG5cbiAgLyoqIFJlcHJlc2VudHMgdGhlIHNvdXJjZSBkaXJlY3RvcnkuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBSZXByZXNlbnRzIHRoZSBzdHlsZXMuY3NzIGZpbGUuICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogUmVwcmVzZW50cyB0aGUgdmVyc2lvbnMuanNvbiBmaWxlLiAqL1xuICBWZXJzaW9uc0pzb24gPSAndmVyc2lvbnMuanNvbidcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRTyxJQUFLLDBCQUFMLGtCQUFLQSw2QkFBTDtBQUVMLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxXQUFRO0FBR1IsRUFBQUEseUJBQUEsaUJBQWM7QUFHZCxFQUFBQSx5QkFBQSxVQUFPO0FBR1AsRUFBQUEseUJBQUEsZUFBWTtBQUdaLEVBQUFBLHlCQUFBLGFBQVU7QUFHVixFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsU0FBTTtBQUdOLEVBQUFBLHlCQUFBLGdCQUFhO0FBR2IsRUFBQUEseUJBQUEsWUFBUztBQUdULEVBQUFBLHlCQUFBLFlBQVM7QUFHVCxFQUFBQSx5QkFBQSxrQkFBZTtBQUdmLEVBQUFBLHlCQUFBLGlCQUFjO0FBR2QsRUFBQUEseUJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLHlCQUFBLFNBQU07QUFHTixFQUFBQSx5QkFBQSxlQUFZO0FBR1osRUFBQUEseUJBQUEsa0JBQWU7QUFHZixFQUFBQSx5QkFBQSxrQkFBZTtBQXJETCxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIl0KfQo=
@@ -20,6 +20,10 @@ export declare enum ObsidianPluginRepoPaths {
20
20
  DistDev = "dist/dev",
21
21
  /** Represents the hot reload file. */
22
22
  HotReload = ".hotreload",
23
+ /** Represents the lib directory. */
24
+ Lib = "lib",
25
+ /** Represents the Library.cjs file. */
26
+ LibraryCjs = "Library.cjs",
23
27
  /** Represents the main JavaScript file. */
24
28
  MainJs = "main.js",
25
29
  /** Represents the main TypeScript file. */
@@ -34,6 +34,7 @@ var import_obsidian = require('obsidian');
34
34
  var import_Debug = require('../../Debug.cjs');
35
35
  var import_Error = require('../../Error.cjs');
36
36
  var import_Function = require('../../Function.cjs');
37
+ var import_PluginContext = require('./PluginContext.cjs');
37
38
  var __process = globalThis["process"] ?? {
38
39
  "browser": true,
39
40
  "cwd": () => "/",
@@ -76,7 +77,7 @@ class PluginBase extends import_obsidian.Plugin {
76
77
  */
77
78
  constructor(app, manifest) {
78
79
  super(app, manifest);
79
- (0, import_Debug.initDebugHelpers)(manifest.id);
80
+ (0, import_PluginContext.initPluginContext)(app, manifest.id);
80
81
  }
81
82
  /**
82
83
  * Logs a message to the console.
@@ -179,4 +180,4 @@ ${message}`);
179
180
  0 && (module.exports = {
180
181
  PluginBase
181
182
  });
182
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJicm93c2VyXCI6IHRydWUsXG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBQbHVnaW5CYXNlXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNsYXNzIHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgbWFuYWdpbmcgcGx1Z2luIHNldHRpbmdzLCBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIGFuZCBoYW5kbGluZyBlcnJvcnMuXG4gKiBTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgbWV0aG9kcyB0byBjcmVhdGUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgc2V0dGluZ3MgdGFicywgYW5kIGNvbXBsZXRlIHBsdWdpbi1zcGVjaWZpY1xuICogbG9hZGluZyB0YXNrcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbk1hbmlmZXN0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBBcHAsXG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5U2V0dGluZ3MgfSBmcm9tICcuL0VtcHR5U2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7XG4gIGdldERlYnVnZ2VyLFxuICBpbml0RGVidWdIZWxwZXJzXG59IGZyb20gJy4uLy4uL0RlYnVnLnRzJztcbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IEVtcHR5U2V0dGluZ3M+IGV4dGVuZHMgUGx1Z2luIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIEFib3J0U2lnbmFsIHVzZWQgZm9yIGFib3J0aW5nIGxvbmctcnVubmluZyBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYWJvcnQgc2lnbmFsLlxuICAgKi9cbiAgcHVibGljIGdldCBhYm9ydFNpZ25hbCgpOiBBYm9ydFNpZ25hbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fib3J0U2lnbmFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb3B5IG9mIHRoZSBjdXJyZW50IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgQSBjb3B5IG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzQ29weSgpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3ModGhpcy5zZXR0aW5ncy50b0pTT04oKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzZXR0aW5ncygpOiBQbHVnaW5TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWJvcnRTaWduYWwhOiBBYm9ydFNpZ25hbDtcblxuICBwcml2YXRlIF9zZXR0aW5ncyE6IFBsdWdpblNldHRpbmdzO1xuXG4gIHByaXZhdGUgbm90aWNlPzogTm90aWNlO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IFBsdWdpbkJhc2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBUaGUgcGx1Z2luIG1hbmlmZXN0LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBtYW5pZmVzdDogUGx1Z2luTWFuaWZlc3QpIHtcbiAgICBzdXBlcihhcHAsIG1hbmlmZXN0KTtcbiAgICBpbml0RGVidWdIZWxwZXJzKG1hbmlmZXN0LmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGEgbWVzc2FnZSB0byB0aGUgY29uc29sZS5cbiAgICpcbiAgICogVXNlIGluc3RlYWQgb2YgYGNvbnNvbGUuZGVidWcoKWAuXG4gICAqXG4gICAqIFRob3NlIG1lc3NhZ2VzIGFyZSBub3Qgc2hvd24gYnkgZGVmYXVsdCwgYnV0IHRoZXkgY2FuIGJlIHNob3duIGJ5IGVuYWJsaW5nIGB5b3VyLXBsdWdpbi1pZGAgZGVidWdnZXIgbmFtZXNwYWNlLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzLz90YWI9cmVhZG1lLW92LWZpbGUjZGVidWdnaW5nfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2cuXG4gICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBsb2cuXG4gICAqL1xuICBwdWJsaWMgY29uc29sZURlYnVnKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgLy8gU2tpcCB0aGUgYGNvbnNvbGVEZWJ1ZygpYCBjYWxsIGl0c2VsZlxuICAgIGNvbnN0IEZSQU1FU19UT19TS0lQID0gMTtcbiAgICBjb25zdCBfZGVidWdnZXIgPSBnZXREZWJ1Z2dlcih0aGlzLm1hbmlmZXN0LmlkLCBGUkFNRVNfVE9fU0tJUCk7XG4gICAgX2RlYnVnZ2VyKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWRcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93Tm90aWNlKCdBbiB1bmhhbmRsZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSBjaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgICB9KSk7XG5cbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xuICAgIGNvbnN0IHBsdWdpblNldHRpbmdzVGFiID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5nc1RhYigpO1xuICAgIGlmIChwbHVnaW5TZXR0aW5nc1RhYikge1xuICAgICAgdGhpcy5hZGRTZXR0aW5nVGFiKHBsdWdpblNldHRpbmdzVGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fYWJvcnRTaWduYWwgPSBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5vbmxvYWRDb21wbGV0ZSgpO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KHRoaXMub25MYXlvdXRSZWFkeS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgbmV3IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIG5ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncyB0byBzYXZlLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2F2ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZVNldHRpbmdzKG5ld1NldHRpbmdzOiBQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGpzb24gPSBuZXdTZXR0aW5ncy50b0pTT04oKTtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3MoanNvbik7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBjcmVhdGUgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzKGRhdGE6IHVua25vd24pOiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIHRhYiBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk6IG51bGwgfCBQbHVnaW5TZXR0aW5nVGFiO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgbm90aWNlIG1lc3NhZ2UgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG93Tm90aWNlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGljZSkge1xuICAgICAgdGhpcy5ub3RpY2UuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm90aWNlID0gbmV3IE5vdGljZShgJHt0aGlzLm1hbmlmZXN0Lm5hbWV9XFxuJHttZXNzYWdlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbSB0aGUgc2F2ZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3MoZGF0YSk7XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzLnNob3VsZFNhdmVBZnRlckxvYWQoKSkge1xuICAgICAgYXdhaXQgdGhpcy5zYXZlU2V0dGluZ3ModGhpcy5fc2V0dGluZ3MpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCQSxzQkFLTztBQU1QLG1CQUdPO0FBQ1AsbUJBQStDO0FBQy9DLHNCQUFxQjtBQWpDckIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsV0FBVztBQUFBLEVBQ1gsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQW1DTyxNQUFlLG1CQUE4RSx1QkFBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU16RyxJQUFXLGNBQTJCO0FBQ3BDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLGVBQStCO0FBQ3hDLFdBQU8sS0FBSyxxQkFBcUIsS0FBSyxTQUFTLE9BQU8sQ0FBQztBQUFBLEVBQ3pEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxXQUEyQjtBQUN2QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFUTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRRCxZQUFZLEtBQVUsVUFBMEI7QUFDckQsVUFBTSxLQUFLLFFBQVE7QUFDbkIsdUNBQWlCLFNBQVMsRUFBRTtBQUFBLEVBQzlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFjTyxhQUFhLFlBQW9CLE1BQXVCO0FBRTdELFVBQU0saUJBQWlCO0FBQ3ZCLFVBQU0sZ0JBQVksMEJBQVksS0FBSyxTQUFTLElBQUksY0FBYztBQUM5RCxjQUFVLFNBQVMsR0FBRyxJQUFJO0FBQUEsRUFDNUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQXNCLDJCQUEwQztBQUM5RCxVQUFNLEtBQUssYUFBYTtBQUFBLEVBQzFCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUFzQixTQUF3QjtBQUM1QyxTQUFLLGFBQVMsNkNBQStCLE1BQU07QUFDakQsV0FBSyxXQUFXLDZFQUE2RTtBQUFBLElBQy9GLENBQUMsQ0FBQztBQUVGLFVBQU0sS0FBSyxhQUFhO0FBQ3hCLFVBQU0sb0JBQW9CLEtBQUssd0JBQXdCO0FBQ3ZELFFBQUksbUJBQW1CO0FBQ3JCLFdBQUssY0FBYyxpQkFBaUI7QUFBQSxJQUN0QztBQUVBLFVBQU0sa0JBQWtCLElBQUksZ0JBQWdCO0FBQzVDLFNBQUssZUFBZSxnQkFBZ0I7QUFDcEMsU0FBSyxTQUFTLE1BQU07QUFDbEIsc0JBQWdCLE1BQU07QUFBQSxJQUN4QixDQUFDO0FBQ0QsVUFBTSxLQUFLLGVBQWU7QUFDMUIsU0FBSyxJQUFJLFVBQVUsY0FBYyxLQUFLLGNBQWMsS0FBSyxJQUFJLENBQUM7QUFBQSxFQUNoRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsTUFBYSxhQUFhLGFBQTRDO0FBQ3BFLFVBQU0sT0FBTyxZQUFZLE9BQU87QUFDaEMsU0FBSyxZQUFZLEtBQUsscUJBQXFCLElBQUk7QUFDL0MsVUFBTSxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQzFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUF1QlUsZ0JBQW9DO0FBQzVDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUVUsaUJBQXFDO0FBQzdDLDhCQUFLO0FBQUEsRUFDUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFdBQVcsU0FBdUI7QUFDMUMsUUFBSSxLQUFLLFFBQVE7QUFDZixXQUFLLE9BQU8sS0FBSztBQUFBLElBQ25CO0FBRUEsU0FBSyxTQUFTLElBQUksdUJBQU8sR0FBRyxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQUssT0FBTyxFQUFFO0FBQUEsRUFDOUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFjLGVBQThCO0FBQzFDLFVBQU0sT0FBTyxNQUFNLEtBQUssU0FBUztBQUNqQyxTQUFLLFlBQVksS0FBSyxxQkFBcUIsSUFBSTtBQUMvQyxRQUFJLEtBQUssVUFBVSxvQkFBb0IsR0FBRztBQUN4QyxZQUFNLEtBQUssYUFBYSxLQUFLLFNBQVM7QUFBQSxJQUN4QztBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
183
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJicm93c2VyXCI6IHRydWUsXG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBQbHVnaW5CYXNlXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBUaGlzIGNsYXNzIHNpbXBsaWZpZXMgdGhlIHByb2Nlc3Mgb2YgbWFuYWdpbmcgcGx1Z2luIHNldHRpbmdzLCBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIGFuZCBoYW5kbGluZyBlcnJvcnMuXG4gKiBTdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQgbWV0aG9kcyB0byBjcmVhdGUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgc2V0dGluZ3MgdGFicywgYW5kIGNvbXBsZXRlIHBsdWdpbi1zcGVjaWZpY1xuICogbG9hZGluZyB0YXNrcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbk1hbmlmZXN0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBBcHAsXG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5U2V0dGluZ3MgfSBmcm9tICcuL0VtcHR5U2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJBc3luY0Vycm9yRXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi9QbHVnaW5Db250ZXh0LnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYnVpbHQtaW4gc3VwcG9ydCBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSByZXByZXNlbnRpbmcgdGhlIHBsdWdpbiBzZXR0aW5ncyBvYmplY3QuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgUGx1Z2luU2V0dGluZ3NCYXNlID0gRW1wdHlTZXR0aW5ncz4gZXh0ZW5kcyBQbHVnaW4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgQWJvcnRTaWduYWwgdXNlZCBmb3IgYWJvcnRpbmcgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhYm9ydCBzaWduYWwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFib3J0U2lnbmFsKCk6IEFib3J0U2lnbmFsIHtcbiAgICByZXR1cm4gdGhpcy5fYWJvcnRTaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGNvcHkgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDb3B5KCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyh0aGlzLnNldHRpbmdzLnRvSlNPTigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNldHRpbmdzKCk6IFBsdWdpblNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbCE6IEFib3J0U2lnbmFsO1xuXG4gIHByaXZhdGUgX3NldHRpbmdzITogUGx1Z2luU2V0dGluZ3M7XG5cbiAgcHJpdmF0ZSBub3RpY2U/OiBOb3RpY2U7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBuZXcgUGx1Z2luQmFzZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuICAgIGluaXRQbHVnaW5Db250ZXh0KGFwcCwgbWFuaWZlc3QuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLlxuICAgKlxuICAgKiBVc2UgaW5zdGVhZCBvZiBgY29uc29sZS5kZWJ1ZygpYC5cbiAgICpcbiAgICogVGhvc2UgbWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0LCBidXQgdGhleSBjYW4gYmUgc2hvd24gYnkgZW5hYmxpbmcgYHlvdXItcGx1Z2luLWlkYCBkZWJ1Z2dlciBuYW1lc3BhY2UuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tbmFvdW1vdi9vYnNpZGlhbi1kZXYtdXRpbHMvP3RhYj1yZWFkbWUtb3YtZmlsZSNkZWJ1Z2dpbmd9IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAgICogQHBhcmFtIGFyZ3MgLSBUaGUgYXJndW1lbnRzIHRvIGxvZy5cbiAgICovXG4gIHB1YmxpYyBjb25zb2xlRGVidWcobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICAvLyBTa2lwIHRoZSBgY29uc29sZURlYnVnKClgIGNhbGwgaXRzZWxmXG4gICAgY29uc3QgRlJBTUVTX1RPX1NLSVAgPSAxO1xuICAgIGNvbnN0IF9kZWJ1Z2dlciA9IGdldERlYnVnZ2VyKHRoaXMubWFuaWZlc3QuaWQsIEZSQU1FU19UT19TS0lQKTtcbiAgICBfZGVidWdnZXIobWVzc2FnZSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGV4dGVybmFsIHNldHRpbmdzIGNoYW5nZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH0pKTtcblxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NUYWIgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk7XG4gICAgaWYgKHBsdWdpblNldHRpbmdzVGFiKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIocGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9hYm9ydFNpZ25hbCA9IGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLm9ubG9hZENvbXBsZXRlKCk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkodGhpcy5vbkxheW91dFJlYWR5LmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBuZXcgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gbmV3U2V0dGluZ3MgLSBUaGUgbmV3IHNldHRpbmdzIHRvIHNhdmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlU2V0dGluZ3MobmV3U2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QganNvbiA9IG5ld1NldHRpbmdzLnRvSlNPTigpO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyhqc29uKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKGpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncy4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGNyZWF0ZSB0aGUgcGx1Z2luIHNldHRpbmdzIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3MoZGF0YTogdW5rbm93bik6IFBsdWdpblNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcGx1Z2luIHNldHRpbmdzIHRhYi4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZ3MgdGFiIG9yIG51bGwgaWYgbm90IGFwcGxpY2FibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTogbnVsbCB8IFBsdWdpblNldHRpbmdUYWI7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBsYXlvdXQgaXMgcmVhZHkuIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybSBhY3Rpb25zIG9uY2VcbiAgICogdGhlIGxheW91dCBpcyByZWFkeS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbGF5b3V0IHNldHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0UmVhZHkoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBsb2FkaW5nIGlzIGNvbXBsZXRlLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybVxuICAgKiBhbnkgYWRkaXRpb25hbCBzZXR1cCByZXF1aXJlZCBhZnRlciBsb2FkaW5nIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb3Igdm9pZCBpbmRpY2F0aW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBsb2FkIHByb2Nlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25sb2FkQ29tcGxldGUoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoKSBhcyB1bmtub3duO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyhkYXRhKTtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3Muc2hvdWxkU2F2ZUFmdGVyTG9hZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVTZXR0aW5ncyh0aGlzLl9zZXR0aW5ncyk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUJBLHNCQUtPO0FBTVAsbUJBQTRCO0FBQzVCLG1CQUErQztBQUMvQyxzQkFBcUI7QUFDckIsMkJBQWtDO0FBL0JsQyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxXQUFXO0FBQUEsRUFDWCxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBaUNPLE1BQWUsbUJBQThFLHVCQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXpHLElBQVcsY0FBMkI7QUFDcEMsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsZUFBK0I7QUFDeEMsV0FBTyxLQUFLLHFCQUFxQixLQUFLLFNBQVMsT0FBTyxDQUFDO0FBQUEsRUFDekQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLFdBQTJCO0FBQ3ZDLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVRO0FBQUEsRUFFQTtBQUFBLEVBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFELFlBQVksS0FBVSxVQUEwQjtBQUNyRCxVQUFNLEtBQUssUUFBUTtBQUNuQixnREFBa0IsS0FBSyxTQUFTLEVBQUU7QUFBQSxFQUNwQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBY08sYUFBYSxZQUFvQixNQUF1QjtBQUU3RCxVQUFNLGlCQUFpQjtBQUN2QixVQUFNLGdCQUFZLDBCQUFZLEtBQUssU0FBUyxJQUFJLGNBQWM7QUFDOUQsY0FBVSxTQUFTLEdBQUcsSUFBSTtBQUFBLEVBQzVCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUFzQiwyQkFBMEM7QUFDOUQsVUFBTSxLQUFLLGFBQWE7QUFBQSxFQUMxQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsU0FBd0I7QUFDNUMsU0FBSyxhQUFTLDZDQUErQixNQUFNO0FBQ2pELFdBQUssV0FBVyw2RUFBNkU7QUFBQSxJQUMvRixDQUFDLENBQUM7QUFFRixVQUFNLEtBQUssYUFBYTtBQUN4QixVQUFNLG9CQUFvQixLQUFLLHdCQUF3QjtBQUN2RCxRQUFJLG1CQUFtQjtBQUNyQixXQUFLLGNBQWMsaUJBQWlCO0FBQUEsSUFDdEM7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxTQUFLLGVBQWUsZ0JBQWdCO0FBQ3BDLFNBQUssU0FBUyxNQUFNO0FBQ2xCLHNCQUFnQixNQUFNO0FBQUEsSUFDeEIsQ0FBQztBQUNELFVBQU0sS0FBSyxlQUFlO0FBQzFCLFNBQUssSUFBSSxVQUFVLGNBQWMsS0FBSyxjQUFjLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDaEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsYUFBYSxhQUE0QztBQUNwRSxVQUFNLE9BQU8sWUFBWSxPQUFPO0FBQ2hDLFNBQUssWUFBWSxLQUFLLHFCQUFxQixJQUFJO0FBQy9DLFVBQU0sS0FBSyxTQUFTLElBQUk7QUFBQSxFQUMxQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBdUJVLGdCQUFvQztBQUM1Qyw4QkFBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFVLGlCQUFxQztBQUM3Qyw4QkFBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxXQUFXLFNBQXVCO0FBQzFDLFFBQUksS0FBSyxRQUFRO0FBQ2YsV0FBSyxPQUFPLEtBQUs7QUFBQSxJQUNuQjtBQUVBLFNBQUssU0FBUyxJQUFJLHVCQUFPLEdBQUcsS0FBSyxTQUFTLElBQUk7QUFBQSxFQUFLLE9BQU8sRUFBRTtBQUFBLEVBQzlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBYyxlQUE4QjtBQUMxQyxVQUFNLE9BQU8sTUFBTSxLQUFLLFNBQVM7QUFDakMsU0FBSyxZQUFZLEtBQUsscUJBQXFCLElBQUk7QUFDL0MsUUFBSSxLQUFLLFVBQVUsb0JBQW9CLEdBQUc7QUFDeEMsWUFBTSxLQUFLLGFBQWEsS0FBSyxTQUFTO0FBQUEsSUFDeEM7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==