@mnaoumov/obsidian-lib 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +9 -1
  2. package/dist/lib/cjs/__merged.cjs +40 -64
  3. package/dist/lib/cjs/active-file-provider.cjs +40 -64
  4. package/dist/lib/cjs/app.cjs +40 -64
  5. package/dist/lib/cjs/async-with-notice.cjs +40 -64
  6. package/dist/lib/cjs/attachment-path.cjs +40 -64
  7. package/dist/lib/cjs/attachment-unit-folder.cjs +40 -64
  8. package/dist/lib/cjs/backlink-index.cjs +41 -65
  9. package/dist/lib/cjs/backlink.cjs +40 -64
  10. package/dist/lib/cjs/bases-view-registrar.cjs +40 -64
  11. package/dist/lib/cjs/callout.cjs +40 -64
  12. package/dist/lib/cjs/canvas.cjs +40 -64
  13. package/dist/lib/cjs/case-insensitive-file-index.cjs +40 -64
  14. package/dist/lib/cjs/code-block-markdown-information.cjs +40 -64
  15. package/dist/lib/cjs/code-block-reg-exp.cjs +40 -64
  16. package/dist/lib/cjs/codemirror/index.cjs +40 -64
  17. package/dist/lib/cjs/codemirror/state-field-spec.cjs +40 -64
  18. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +40 -64
  19. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +40 -64
  20. package/dist/lib/cjs/command-handlers/command-handler.cjs +40 -64
  21. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +40 -64
  22. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +40 -64
  23. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +40 -64
  24. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +40 -64
  25. package/dist/lib/cjs/command-handlers/index.cjs +40 -64
  26. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +40 -64
  27. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +40 -64
  28. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +40 -64
  29. package/dist/lib/cjs/command-registrar.cjs +40 -64
  30. package/dist/lib/cjs/community-plugins.cjs +40 -64
  31. package/dist/lib/cjs/components/abort-signal-component.cjs +40 -64
  32. package/dist/lib/cjs/components/all-windows-event-component.cjs +40 -64
  33. package/dist/lib/cjs/components/async-error-handler-component.cjs +40 -64
  34. package/dist/lib/cjs/components/async-events-component.cjs +40 -64
  35. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +40 -64
  36. package/dist/lib/cjs/components/component-ex.cjs +41 -65
  37. package/dist/lib/cjs/components/console-debug-component.cjs +40 -64
  38. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +40 -64
  39. package/dist/lib/cjs/components/disposable-component.cjs +40 -64
  40. package/dist/lib/cjs/components/embed-extensions-component.cjs +40 -64
  41. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +40 -64
  42. package/dist/lib/cjs/components/index.cjs +40 -64
  43. package/dist/lib/cjs/components/layout-ready-component.cjs +40 -64
  44. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +40 -64
  45. package/dist/lib/cjs/components/monkey-around-component.cjs +40 -64
  46. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +40 -64
  47. package/dist/lib/cjs/components/plugin-context-component.cjs +40 -64
  48. package/dist/lib/cjs/components/plugin-gate-component.cjs +41 -65
  49. package/dist/lib/cjs/components/plugin-notice-component.cjs +40 -64
  50. package/dist/lib/cjs/components/plugin-settings-component.cjs +41 -65
  51. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +40 -64
  52. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +40 -64
  53. package/dist/lib/cjs/components/pointer-position-component.cjs +40 -64
  54. package/dist/lib/cjs/components/registry-component.cjs +40 -64
  55. package/dist/lib/cjs/components/release-notes-component.cjs +40 -64
  56. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +40 -64
  57. package/dist/lib/cjs/components/rmdir-guard-component.cjs +40 -64
  58. package/dist/lib/cjs/components/settings-migration-component.cjs +40 -64
  59. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +40 -64
  60. package/dist/lib/cjs/components/templates-language-component.cjs +40 -64
  61. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +40 -64
  62. package/dist/lib/cjs/constructors/index.cjs +40 -64
  63. package/dist/lib/cjs/css-class.cjs +40 -64
  64. package/dist/lib/cjs/data-handler.cjs +40 -64
  65. package/dist/lib/cjs/dataview-link.cjs +40 -64
  66. package/dist/lib/cjs/dataview.cjs +40 -64
  67. package/dist/lib/cjs/debug.cjs +40 -64
  68. package/dist/lib/cjs/demo-vault-helper-settings.cjs +40 -64
  69. package/dist/lib/cjs/demo-vault-helper.cjs +40 -64
  70. package/dist/lib/cjs/demo-vault-naming.cjs +40 -64
  71. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +40 -64
  72. package/dist/lib/cjs/desktop-trusted-input.cjs +40 -64
  73. package/dist/lib/cjs/editor-extension-registrar.cjs +40 -64
  74. package/dist/lib/cjs/editor-suggest-registrar.cjs +40 -64
  75. package/dist/lib/cjs/editor.cjs +40 -64
  76. package/dist/lib/cjs/events.cjs +40 -64
  77. package/dist/lib/cjs/extensions-registrar.cjs +40 -64
  78. package/dist/lib/cjs/file-change.cjs +40 -64
  79. package/dist/lib/cjs/file-explorer.cjs +40 -64
  80. package/dist/lib/cjs/file-manager.cjs +40 -64
  81. package/dist/lib/cjs/file-system.cjs +40 -64
  82. package/dist/lib/cjs/folder-note.cjs +40 -64
  83. package/dist/lib/cjs/frontmatter-formatting.cjs +41 -65
  84. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +40 -64
  85. package/dist/lib/cjs/frontmatter.cjs +40 -64
  86. package/dist/lib/cjs/generated-during-build.cjs +41 -65
  87. package/dist/lib/cjs/generated-during-build.d.cts +8 -2
  88. package/dist/lib/cjs/hover-link-source-registrar.cjs +40 -64
  89. package/dist/lib/cjs/html-element.cjs +40 -64
  90. package/dist/lib/cjs/i18n/custom-type-options.cjs +40 -64
  91. package/dist/lib/cjs/i18n/default-translations.cjs +40 -64
  92. package/dist/lib/cjs/i18n/i18n.cjs +40 -64
  93. package/dist/lib/cjs/i18n/index.cjs +40 -64
  94. package/dist/lib/cjs/i18n/locales/en.cjs +40 -64
  95. package/dist/lib/cjs/i18n/locales/index.cjs +40 -64
  96. package/dist/lib/cjs/i18n/locales/translations-map.cjs +40 -64
  97. package/dist/lib/cjs/index.cjs +40 -64
  98. package/dist/lib/cjs/is-in-obsidian.cjs +40 -64
  99. package/dist/lib/cjs/library-styles.cjs +40 -64
  100. package/dist/lib/cjs/library.cjs +40 -64
  101. package/dist/lib/cjs/link-name.cjs +40 -64
  102. package/dist/lib/cjs/link-update-progress.cjs +40 -64
  103. package/dist/lib/cjs/link.cjs +40 -64
  104. package/dist/lib/cjs/logger.cjs +40 -64
  105. package/dist/lib/cjs/loop.cjs +40 -64
  106. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +40 -64
  107. package/dist/lib/cjs/markdown-code-block-processor.cjs +40 -64
  108. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +40 -64
  109. package/dist/lib/cjs/markdown-view.cjs +40 -64
  110. package/dist/lib/cjs/markdown.cjs +40 -64
  111. package/dist/lib/cjs/menu-event-registrar.cjs +40 -64
  112. package/dist/lib/cjs/metadata-cache.cjs +40 -64
  113. package/dist/lib/cjs/mobile-trusted-input.cjs +40 -64
  114. package/dist/lib/cjs/modals/alert.cjs +40 -64
  115. package/dist/lib/cjs/modals/confirm.cjs +40 -64
  116. package/dist/lib/cjs/modals/index.cjs +40 -64
  117. package/dist/lib/cjs/modals/minimizable-modal.cjs +40 -64
  118. package/dist/lib/cjs/modals/modal-command-builder.cjs +40 -64
  119. package/dist/lib/cjs/modals/modal.cjs +40 -64
  120. package/dist/lib/cjs/modals/prompt.cjs +40 -64
  121. package/dist/lib/cjs/modals/select-item.cjs +40 -64
  122. package/dist/lib/cjs/modals/select-option.cjs +40 -64
  123. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +40 -64
  124. package/dist/lib/cjs/note-priority.cjs +41 -65
  125. package/dist/lib/cjs/notebook-navigator.cjs +40 -64
  126. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +40 -64
  127. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +40 -64
  128. package/dist/lib/cjs/obsidian-settings.cjs +40 -64
  129. package/dist/lib/cjs/parse-link.cjs +40 -64
  130. package/dist/lib/cjs/path-settings.cjs +40 -64
  131. package/dist/lib/cjs/pdf.cjs +40 -64
  132. package/dist/lib/cjs/plugin/index.cjs +40 -64
  133. package/dist/lib/cjs/plugin/plugin-api.cjs +40 -64
  134. package/dist/lib/cjs/plugin/plugin-context.cjs +40 -64
  135. package/dist/lib/cjs/plugin/plugin-event-source.cjs +40 -64
  136. package/dist/lib/cjs/plugin/plugin-install-state.cjs +40 -64
  137. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +40 -64
  138. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +41 -65
  139. package/dist/lib/cjs/plugin/plugin.cjs +41 -65
  140. package/dist/lib/cjs/plugin/settings-migration-api.cjs +40 -64
  141. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +40 -64
  142. package/dist/lib/cjs/popovers/field-popover.cjs +40 -64
  143. package/dist/lib/cjs/popovers/index.cjs +40 -64
  144. package/dist/lib/cjs/popovers/popover-anchor.cjs +40 -64
  145. package/dist/lib/cjs/popovers/popover.cjs +40 -64
  146. package/dist/lib/cjs/property-entry.cjs +40 -64
  147. package/dist/lib/cjs/queue.cjs +40 -64
  148. package/dist/lib/cjs/react/app-context.cjs +40 -64
  149. package/dist/lib/cjs/react/index.cjs +40 -64
  150. package/dist/lib/cjs/reference.cjs +40 -64
  151. package/dist/lib/cjs/resource-lock.cjs +40 -64
  152. package/dist/lib/cjs/resource-url.cjs +40 -64
  153. package/dist/lib/cjs/ribbon-icon-registrar.cjs +40 -64
  154. package/dist/lib/cjs/setting-components/checkbox-component.cjs +40 -64
  155. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +40 -64
  156. package/dist/lib/cjs/setting-components/date-component.cjs +40 -64
  157. package/dist/lib/cjs/setting-components/date-time-component.cjs +40 -64
  158. package/dist/lib/cjs/setting-components/email-component.cjs +40 -64
  159. package/dist/lib/cjs/setting-components/file-component.cjs +40 -64
  160. package/dist/lib/cjs/setting-components/index.cjs +40 -64
  161. package/dist/lib/cjs/setting-components/month-component.cjs +40 -64
  162. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +41 -65
  163. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +40 -64
  164. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +40 -64
  165. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +40 -64
  166. package/dist/lib/cjs/setting-components/number-component.cjs +40 -64
  167. package/dist/lib/cjs/setting-components/password-component.cjs +40 -64
  168. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +40 -64
  169. package/dist/lib/cjs/setting-components/telephone-component.cjs +40 -64
  170. package/dist/lib/cjs/setting-components/text-based-component.cjs +40 -64
  171. package/dist/lib/cjs/setting-components/time-component.cjs +40 -64
  172. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +40 -64
  173. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +40 -64
  174. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +40 -64
  175. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +40 -64
  176. package/dist/lib/cjs/setting-components/typed-text-component.cjs +41 -65
  177. package/dist/lib/cjs/setting-components/url-component.cjs +40 -64
  178. package/dist/lib/cjs/setting-components/validator-component.cjs +41 -65
  179. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +40 -64
  180. package/dist/lib/cjs/setting-components/week-component.cjs +40 -64
  181. package/dist/lib/cjs/setting-ex.cjs +40 -64
  182. package/dist/lib/cjs/setting-group-ex.cjs +40 -64
  183. package/dist/lib/cjs/status-bar-item-registrar.cjs +40 -64
  184. package/dist/lib/cjs/templater.cjs +40 -64
  185. package/dist/lib/cjs/transformers/duration-transformer.cjs +40 -64
  186. package/dist/lib/cjs/transformers/index.cjs +40 -64
  187. package/dist/lib/cjs/trusted-input.cjs +40 -64
  188. package/dist/lib/cjs/validation.cjs +40 -64
  189. package/dist/lib/cjs/vault-delete.cjs +40 -64
  190. package/dist/lib/cjs/vault-transaction.cjs +40 -64
  191. package/dist/lib/cjs/vault.cjs +41 -65
  192. package/dist/lib/cjs/view-registrar.cjs +40 -64
  193. package/dist/lib/cjs/workspace.cjs +40 -64
  194. package/dist/lib/esm/__merged.mjs +6 -14
  195. package/dist/lib/esm/active-file-provider.mjs +6 -14
  196. package/dist/lib/esm/app.mjs +6 -14
  197. package/dist/lib/esm/async-with-notice.mjs +6 -14
  198. package/dist/lib/esm/attachment-path.mjs +6 -14
  199. package/dist/lib/esm/attachment-unit-folder.mjs +6 -14
  200. package/dist/lib/esm/backlink-index.mjs +6 -14
  201. package/dist/lib/esm/backlink.mjs +6 -14
  202. package/dist/lib/esm/bases-view-registrar.mjs +6 -14
  203. package/dist/lib/esm/callout.mjs +6 -14
  204. package/dist/lib/esm/canvas.mjs +6 -14
  205. package/dist/lib/esm/case-insensitive-file-index.mjs +6 -14
  206. package/dist/lib/esm/code-block-markdown-information.mjs +5 -13
  207. package/dist/lib/esm/code-block-reg-exp.mjs +6 -14
  208. package/dist/lib/esm/codemirror/index.mjs +6 -14
  209. package/dist/lib/esm/codemirror/state-field-spec.mjs +5 -13
  210. package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +6 -14
  211. package/dist/lib/esm/command-handlers/command-handler-component.mjs +6 -14
  212. package/dist/lib/esm/command-handlers/command-handler.mjs +6 -14
  213. package/dist/lib/esm/command-handlers/editor-command-handler.mjs +6 -14
  214. package/dist/lib/esm/command-handlers/file-command-handler.mjs +6 -14
  215. package/dist/lib/esm/command-handlers/folder-command-handler.mjs +6 -14
  216. package/dist/lib/esm/command-handlers/global-command-handler.mjs +6 -14
  217. package/dist/lib/esm/command-handlers/index.mjs +6 -14
  218. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.mjs +6 -14
  219. package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +6 -14
  220. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +6 -14
  221. package/dist/lib/esm/command-registrar.mjs +6 -14
  222. package/dist/lib/esm/community-plugins.mjs +6 -14
  223. package/dist/lib/esm/components/abort-signal-component.mjs +6 -14
  224. package/dist/lib/esm/components/all-windows-event-component.mjs +6 -14
  225. package/dist/lib/esm/components/async-error-handler-component.mjs +6 -14
  226. package/dist/lib/esm/components/async-events-component.mjs +6 -14
  227. package/dist/lib/esm/components/case-insensitive-file-index-component.mjs +6 -14
  228. package/dist/lib/esm/components/component-ex.mjs +6 -14
  229. package/dist/lib/esm/components/console-debug-component.mjs +6 -14
  230. package/dist/lib/esm/components/core-plugin-toggle-component.mjs +6 -14
  231. package/dist/lib/esm/components/disposable-component.mjs +6 -14
  232. package/dist/lib/esm/components/embed-extensions-component.mjs +6 -14
  233. package/dist/lib/esm/components/generate-markdown-link-default-params-component.mjs +6 -14
  234. package/dist/lib/esm/components/index.mjs +6 -14
  235. package/dist/lib/esm/components/layout-ready-component.mjs +6 -14
  236. package/dist/lib/esm/components/menu-event-registrar-component.mjs +6 -14
  237. package/dist/lib/esm/components/monkey-around-component.mjs +6 -14
  238. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.mjs +6 -14
  239. package/dist/lib/esm/components/plugin-context-component.mjs +6 -14
  240. package/dist/lib/esm/components/plugin-gate-component.mjs +6 -14
  241. package/dist/lib/esm/components/plugin-notice-component.mjs +6 -14
  242. package/dist/lib/esm/components/plugin-settings-component.mjs +6 -14
  243. package/dist/lib/esm/components/plugin-settings-tab-component.mjs +6 -14
  244. package/dist/lib/esm/components/plugin-suggestion-component.mjs +6 -14
  245. package/dist/lib/esm/components/pointer-position-component.mjs +6 -14
  246. package/dist/lib/esm/components/registry-component.mjs +6 -14
  247. package/dist/lib/esm/components/release-notes-component.mjs +6 -14
  248. package/dist/lib/esm/components/rename-delete-handler-component.mjs +6 -14
  249. package/dist/lib/esm/components/rmdir-guard-component.mjs +6 -14
  250. package/dist/lib/esm/components/settings-migration-component.mjs +6 -14
  251. package/dist/lib/esm/components/syntax-highlighting-component.mjs +6 -14
  252. package/dist/lib/esm/components/templates-language-component.mjs +6 -14
  253. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.mjs +6 -14
  254. package/dist/lib/esm/constructors/index.mjs +6 -14
  255. package/dist/lib/esm/css-class.mjs +6 -14
  256. package/dist/lib/esm/data-handler.mjs +6 -14
  257. package/dist/lib/esm/dataview-link.mjs +6 -14
  258. package/dist/lib/esm/dataview.mjs +6 -14
  259. package/dist/lib/esm/debug.mjs +6 -14
  260. package/dist/lib/esm/demo-vault-helper-settings.mjs +5 -13
  261. package/dist/lib/esm/demo-vault-helper.mjs +6 -14
  262. package/dist/lib/esm/demo-vault-naming.mjs +6 -14
  263. package/dist/lib/esm/desktop-demo-vault-opener.mjs +6 -14
  264. package/dist/lib/esm/desktop-trusted-input.mjs +6 -14
  265. package/dist/lib/esm/editor-extension-registrar.mjs +6 -14
  266. package/dist/lib/esm/editor-suggest-registrar.mjs +6 -14
  267. package/dist/lib/esm/editor.mjs +6 -14
  268. package/dist/lib/esm/events.mjs +6 -14
  269. package/dist/lib/esm/extensions-registrar.mjs +6 -14
  270. package/dist/lib/esm/file-change.mjs +6 -14
  271. package/dist/lib/esm/file-explorer.mjs +6 -14
  272. package/dist/lib/esm/file-manager.mjs +6 -14
  273. package/dist/lib/esm/file-system.mjs +6 -14
  274. package/dist/lib/esm/folder-note.mjs +6 -14
  275. package/dist/lib/esm/frontmatter-formatting.mjs +6 -14
  276. package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +6 -14
  277. package/dist/lib/esm/frontmatter.mjs +6 -14
  278. package/dist/lib/esm/generated-during-build.d.mts +8 -2
  279. package/dist/lib/esm/generated-during-build.mjs +7 -15
  280. package/dist/lib/esm/hover-link-source-registrar.mjs +6 -14
  281. package/dist/lib/esm/html-element.mjs +6 -14
  282. package/dist/lib/esm/i18n/custom-type-options.mjs +6 -14
  283. package/dist/lib/esm/i18n/default-translations.mjs +6 -14
  284. package/dist/lib/esm/i18n/i18n.mjs +6 -14
  285. package/dist/lib/esm/i18n/index.mjs +6 -14
  286. package/dist/lib/esm/i18n/locales/en.mjs +6 -14
  287. package/dist/lib/esm/i18n/locales/index.mjs +6 -14
  288. package/dist/lib/esm/i18n/locales/translations-map.mjs +6 -14
  289. package/dist/lib/esm/index.mjs +6 -14
  290. package/dist/lib/esm/is-in-obsidian.mjs +6 -14
  291. package/dist/lib/esm/library-styles.mjs +6 -14
  292. package/dist/lib/esm/library.mjs +6 -14
  293. package/dist/lib/esm/link-name.mjs +6 -14
  294. package/dist/lib/esm/link-update-progress.mjs +5 -13
  295. package/dist/lib/esm/link.mjs +6 -14
  296. package/dist/lib/esm/logger.mjs +6 -14
  297. package/dist/lib/esm/loop.mjs +6 -14
  298. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +6 -14
  299. package/dist/lib/esm/markdown-code-block-processor.mjs +6 -14
  300. package/dist/lib/esm/markdown-post-processor-registrar.mjs +6 -14
  301. package/dist/lib/esm/markdown-view.mjs +6 -14
  302. package/dist/lib/esm/markdown.mjs +6 -14
  303. package/dist/lib/esm/menu-event-registrar.mjs +5 -13
  304. package/dist/lib/esm/metadata-cache.mjs +6 -14
  305. package/dist/lib/esm/mobile-trusted-input.mjs +6 -14
  306. package/dist/lib/esm/modals/alert.mjs +6 -14
  307. package/dist/lib/esm/modals/confirm.mjs +6 -14
  308. package/dist/lib/esm/modals/index.mjs +6 -14
  309. package/dist/lib/esm/modals/minimizable-modal.mjs +6 -14
  310. package/dist/lib/esm/modals/modal-command-builder.mjs +6 -14
  311. package/dist/lib/esm/modals/modal.mjs +6 -14
  312. package/dist/lib/esm/modals/prompt.mjs +6 -14
  313. package/dist/lib/esm/modals/select-item.mjs +6 -14
  314. package/dist/lib/esm/modals/select-option.mjs +6 -14
  315. package/dist/lib/esm/modals/suggest-modal-command-builder.mjs +6 -14
  316. package/dist/lib/esm/note-priority.mjs +6 -14
  317. package/dist/lib/esm/notebook-navigator.mjs +6 -14
  318. package/dist/lib/esm/obsidian-dev-utils-state.mjs +6 -14
  319. package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +6 -14
  320. package/dist/lib/esm/obsidian-settings.mjs +6 -14
  321. package/dist/lib/esm/parse-link.mjs +6 -14
  322. package/dist/lib/esm/path-settings.mjs +6 -14
  323. package/dist/lib/esm/pdf.mjs +6 -14
  324. package/dist/lib/esm/plugin/index.mjs +6 -14
  325. package/dist/lib/esm/plugin/plugin-api.mjs +6 -14
  326. package/dist/lib/esm/plugin/plugin-context.mjs +6 -14
  327. package/dist/lib/esm/plugin/plugin-event-source.mjs +6 -14
  328. package/dist/lib/esm/plugin/plugin-install-state.mjs +6 -14
  329. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +6 -14
  330. package/dist/lib/esm/plugin/plugin-settings-tab.mjs +6 -14
  331. package/dist/lib/esm/plugin/plugin.mjs +6 -14
  332. package/dist/lib/esm/plugin/settings-migration-api.mjs +5 -13
  333. package/dist/lib/esm/plugin-cli-handler-registrar.mjs +6 -14
  334. package/dist/lib/esm/popovers/field-popover.mjs +6 -14
  335. package/dist/lib/esm/popovers/index.mjs +6 -14
  336. package/dist/lib/esm/popovers/popover-anchor.mjs +6 -14
  337. package/dist/lib/esm/popovers/popover.mjs +6 -14
  338. package/dist/lib/esm/property-entry.mjs +6 -14
  339. package/dist/lib/esm/queue.mjs +6 -14
  340. package/dist/lib/esm/react/app-context.mjs +6 -14
  341. package/dist/lib/esm/react/index.mjs +6 -14
  342. package/dist/lib/esm/reference.mjs +6 -14
  343. package/dist/lib/esm/resource-lock.mjs +6 -14
  344. package/dist/lib/esm/resource-url.mjs +6 -14
  345. package/dist/lib/esm/ribbon-icon-registrar.mjs +6 -14
  346. package/dist/lib/esm/setting-components/checkbox-component.mjs +6 -14
  347. package/dist/lib/esm/setting-components/code-highlighter-component.mjs +6 -14
  348. package/dist/lib/esm/setting-components/date-component.mjs +6 -14
  349. package/dist/lib/esm/setting-components/date-time-component.mjs +6 -14
  350. package/dist/lib/esm/setting-components/email-component.mjs +6 -14
  351. package/dist/lib/esm/setting-components/file-component.mjs +6 -14
  352. package/dist/lib/esm/setting-components/index.mjs +6 -14
  353. package/dist/lib/esm/setting-components/month-component.mjs +6 -14
  354. package/dist/lib/esm/setting-components/multiple-dropdown-component.mjs +6 -14
  355. package/dist/lib/esm/setting-components/multiple-email-component.mjs +6 -14
  356. package/dist/lib/esm/setting-components/multiple-file-component.mjs +6 -14
  357. package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -14
  358. package/dist/lib/esm/setting-components/number-component.mjs +6 -14
  359. package/dist/lib/esm/setting-components/password-component.mjs +6 -14
  360. package/dist/lib/esm/setting-components/setting-component-wrapper.mjs +6 -14
  361. package/dist/lib/esm/setting-components/telephone-component.mjs +6 -14
  362. package/dist/lib/esm/setting-components/text-based-component.mjs +6 -14
  363. package/dist/lib/esm/setting-components/time-component.mjs +6 -14
  364. package/dist/lib/esm/setting-components/tri-state-checkbox-component.mjs +6 -14
  365. package/dist/lib/esm/setting-components/typed-dropdown-component.mjs +6 -14
  366. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.mjs +6 -14
  367. package/dist/lib/esm/setting-components/typed-range-text-component.mjs +6 -14
  368. package/dist/lib/esm/setting-components/typed-text-component.mjs +6 -14
  369. package/dist/lib/esm/setting-components/url-component.mjs +6 -14
  370. package/dist/lib/esm/setting-components/validator-component.mjs +6 -14
  371. package/dist/lib/esm/setting-components/value-component-with-change-tracking.mjs +5 -13
  372. package/dist/lib/esm/setting-components/week-component.mjs +6 -14
  373. package/dist/lib/esm/setting-ex.mjs +6 -14
  374. package/dist/lib/esm/setting-group-ex.mjs +6 -14
  375. package/dist/lib/esm/status-bar-item-registrar.mjs +6 -14
  376. package/dist/lib/esm/templater.mjs +6 -14
  377. package/dist/lib/esm/transformers/duration-transformer.mjs +6 -14
  378. package/dist/lib/esm/transformers/index.mjs +6 -14
  379. package/dist/lib/esm/trusted-input.mjs +6 -14
  380. package/dist/lib/esm/validation.mjs +6 -14
  381. package/dist/lib/esm/vault-delete.mjs +6 -14
  382. package/dist/lib/esm/vault-transaction.mjs +6 -14
  383. package/dist/lib/esm/vault.mjs +6 -14
  384. package/dist/lib/esm/view-registrar.mjs +6 -14
  385. package/dist/lib/esm/workspace.mjs +6 -14
  386. package/package.json +69 -24
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
5
5
 
6
6
  (function () {
7
7
  function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
- symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
+ symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
10
  }
11
11
 
12
12
  function ensureBrowserProcess() {
13
13
  const browserProcess = {
14
14
  browser: true,
15
15
  cwd() {
16
- return '/';
16
+ return "/";
17
17
  },
18
18
  env: {},
19
- platform: 'android'
19
+ platform: "android"
20
20
  };
21
-
22
- // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
21
  const existingProcess = globalThis.process;
24
-
25
22
  if (!existingProcess) {
26
- // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
23
  globalThis.process = browserProcess;
28
24
  return;
29
25
  }
30
-
31
26
  if (existingProcess.versions?.node) {
32
27
  return;
33
28
  }
34
-
35
29
  const existingProcessRecord = existingProcess;
36
-
37
30
  for (const [key, value] of Object.entries(browserProcess)) {
38
31
  existingProcessRecord[key] ??= value;
39
32
  }
40
-
41
- existingProcessRecord['browser'] = true;
33
+ existingProcessRecord["browser"] = true;
42
34
  }
43
35
 
44
36
  function keepName($unknown) {
@@ -46,17 +38,13 @@ function keepName($unknown) {
46
38
  }
47
39
 
48
40
  (function initCjs() {
49
- // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
50
41
  const globalThisRecord = globalThis;
51
42
  ensureDisposeSymbols();
52
- globalThisRecord['__name'] ??= keepName;
53
- globalThisRecord['__extractDefault'] ??= extractDefault;
54
-
43
+ globalThisRecord["__name"] ??= keepName;
44
+ globalThisRecord["__extractDefault"] ??= extractDefault;
55
45
  ensureBrowserProcess();
56
-
57
- // eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
58
46
  function extractDefault(module) {
59
- return module && module.__esModule && 'default' in module ? module.default : module;
47
+ return module && module.__esModule && "default" in module ? module.default : module;
60
48
  }
61
49
  })();
62
50
  })();
@@ -65,8 +53,6 @@ function keepName($unknown) {
65
53
  if (!originalRequire || originalRequire.__isPatched) {
66
54
  return;
67
55
  }
68
-
69
- // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
70
56
  require = Object.assign(
71
57
  (id) => requirePatched(id),
72
58
  originalRequire,
@@ -74,53 +60,45 @@ function keepName($unknown) {
74
60
  __isPatched: true
75
61
  }
76
62
  );
77
-
78
63
  function extractDefault(module) {
79
- return module && module.__esModule && 'default' in module ? module.default : module;
64
+ return module && module.__esModule && "default" in module ? module.default : module;
80
65
  }
81
-
82
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
83
- '@codemirror/autocomplete',
84
- '@codemirror/collab',
85
- '@codemirror/commands',
86
- '@codemirror/language',
87
- '@codemirror/lint',
88
- '@codemirror/search',
89
- '@codemirror/state',
90
- '@codemirror/text',
91
- '@codemirror/view',
92
- '@lezer/common',
93
- '@lezer/highlight',
94
- '@lezer/lr',
95
- 'obsidian']
96
- );
97
-
98
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
99
- '@codemirror/closebrackets',
100
- '@codemirror/comment',
101
- '@codemirror/fold',
102
- '@codemirror/gutter',
103
- '@codemirror/highlight',
104
- '@codemirror/history',
105
- '@codemirror/matchbrackets',
106
- '@codemirror/panel',
107
- '@codemirror/rangeset',
108
- '@codemirror/rectangular-selection',
109
- '@codemirror/stream-parser',
110
- '@codemirror/tooltip']
111
- );
112
-
66
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
67
+ "@codemirror/autocomplete",
68
+ "@codemirror/collab",
69
+ "@codemirror/commands",
70
+ "@codemirror/language",
71
+ "@codemirror/lint",
72
+ "@codemirror/search",
73
+ "@codemirror/state",
74
+ "@codemirror/text",
75
+ "@codemirror/view",
76
+ "@lezer/common",
77
+ "@lezer/highlight",
78
+ "@lezer/lr",
79
+ "obsidian"
80
+ ]);
81
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
82
+ "@codemirror/closebrackets",
83
+ "@codemirror/comment",
84
+ "@codemirror/fold",
85
+ "@codemirror/gutter",
86
+ "@codemirror/highlight",
87
+ "@codemirror/history",
88
+ "@codemirror/matchbrackets",
89
+ "@codemirror/panel",
90
+ "@codemirror/rangeset",
91
+ "@codemirror/rectangular-selection",
92
+ "@codemirror/stream-parser",
93
+ "@codemirror/tooltip"
94
+ ]);
113
95
  function requirePatched(id) {
114
96
  if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
115
97
  return originalRequire?.(id);
116
98
  }
117
-
118
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
119
99
  if (globalThis.app.isMobile) {
120
- if (id === 'process' || id === 'node:process') {
121
- // eslint-disable-next-line no-console -- Valid usage.
100
+ if (id === "process" || id === "node:process") {
122
101
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
123
-
124
102
  return process;
125
103
  }
126
104
  } else {
@@ -129,8 +107,6 @@ function keepName($unknown) {
129
107
  return extractDefault(module);
130
108
  }
131
109
  }
132
-
133
- // eslint-disable-next-line no-console -- Valid usage.
134
110
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
135
111
  return {};
136
112
  }
@@ -369,4 +345,4 @@ class EditorCommandHandler extends import_command_handler.CommandHandler {
369
345
  0 && (module.exports = {
370
346
  EditorCommandHandler
371
347
  });
372
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmQtaGFuZGxlcnMvZWRpdG9yLWNvbW1hbmQtaGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbW1hbmQgaGFuZGxlciBmb3IgZWRpdG9yIGNvbW1hbmRzIHdpdGggb3B0aW9uYWwgZWRpdG9yIG1lbnUgaW50ZWdyYXRpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kLFxuICBFZGl0b3IsXG4gIEljb25OYW1lLFxuICBNYXJrZG93bkZpbGVJbmZvLFxuICBNYXJrZG93blZpZXcsXG4gIE1lbnVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICBpbnZva2VBc3luY1NhZmVseVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmRIYW5kbGVyQ29uc3RydWN0b3JQYXJhbXMsXG4gIENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dFxufSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5cbmltcG9ydCB7IENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXIudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIGFuIGVkaXRvciBjb21tYW5kIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQ29tbWFuZEhhbmRsZXJDb25zdHJ1Y3RvclBhcmFtcyBleHRlbmRzIENvbW1hbmRIYW5kbGVyQ29uc3RydWN0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGl0ZW0gbmFtZSB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUgc3VibWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvck1lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCB0aGUgY29tbWFuZCB0byBhIHN1Ym1lbnUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBFZGl0b3JDb21tYW5kSGFuZGxlci5lZGl0b3JDaGVja0NhbGxiYWNrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JDb21tYW5kSGFuZGxlckVkaXRvckNoZWNrQ2FsbGJhY2tQYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciBPYnNpZGlhbiBpcyBvbmx5IGNoZWNraW5nIGF2YWlsYWJpbGl0eSAobm90IGV4ZWN1dGluZykuXG4gICAqL1xuICByZWFkb25seSBjaGVja2luZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IE1hcmtkb3duRmlsZUluZm87XG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0b3IgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3I6IEVkaXRvcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRWRpdG9yQ29tbWFuZEhhbmRsZXIuaGFuZGxlRWRpdG9yTWVudX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQ29tbWFuZEhhbmRsZXJIYW5kbGVFZGl0b3JNZW51UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXJrZG93biBmaWxlIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBNYXJrZG93bkZpbGVJbmZvO1xuXG4gIC8qKlxuICAgKiBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBtZW51IHRvIGFkZCBpdGVtcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IG1lbnU6IE1lbnU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIEVkaXRvckNvbW1hbmRIYW5kbGVyLmhhbmRsZVZpZXdwb3J0TWVudX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQ29tbWFuZEhhbmRsZXJIYW5kbGVWaWV3cG9ydE1lbnVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVudTogTWVudTtcblxuICAvKipcbiAgICogVGhlIHZpZXcgbW9kZSAoYCdzb3VyY2UnYCBvciBgJ3ByZXZpZXcnYCkuXG4gICAqL1xuICByZWFkb25seSBtb2RlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoYXQgcmFpc2VkIHRoZSBtZW51LiBPYnNpZGlhbiAxLjEzLjcgYWx3YXlzIHBhc3NlcyBgJ2d1dHRlcidgIC0gc2VlXG4gICAqIHtAbGluayBNYXJrZG93blZpZXdwb3J0TWVudUV2ZW50SGFuZGxlcn0uXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1hcmtkb3duIHZpZXcgdGhlIG1lbnUgd2FzIHJhaXNlZCBvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlldzogTWFya2Rvd25WaWV3O1xufVxuXG4vKipcbiAqIENvbW1hbmQgaGFuZGxlciBmb3IgZWRpdG9yIGNvbW1hbmRzLlxuICpcbiAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUge0BsaW5rIGNhbkV4ZWN1dGVFZGl0b3J9IGFuZCB7QGxpbmsgZXhlY3V0ZUVkaXRvcn0gdG8gcHJvdmlkZSBiZWhhdmlvci5cbiAqIE9wdGlvbmFsbHkgaW50ZWdyYXRlcyB3aXRoIHRoZSBlZGl0b3IgY29udGV4dCBtZW51IHZpYSB7QGxpbmsgc2hvdWxkQWRkVG9FZGl0b3JNZW51fSwgYW5kIHdpdGggdGhlXG4gKiBtYXJrZG93biB2aWV3cG9ydCAobWFyZ2luKSBtZW51IHZpYSB7QGxpbmsgc2hvdWxkQWRkVG9WaWV3cG9ydE1lbnV9LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWRpdG9yQ29tbWFuZEhhbmRsZXIgZXh0ZW5kcyBDb21tYW5kSGFuZGxlciB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpdGVtIG5hbWUgdG8gdXNlIGluIHRoZSBlZGl0b3IgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGl0ZW0gbmFtZSwgb3IgYHVuZGVmaW5lZGAgdG8gdXNlIHRoZSBjb21tYW5kIG5hbWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRvck1lbnVJdGVtTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JNZW51SXRlbU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2VjdGlvbiBuYW1lLCBvciBgdW5kZWZpbmVkYCB0byB1c2UgdGhlIHBsdWdpbiBuYW1lLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBlZGl0b3JNZW51U2VjdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JNZW51U2VjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpY29uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUgc3VibWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGljb24sIG9yIGB1bmRlZmluZWRgIGZvciBubyBpY29uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBlZGl0b3JNZW51U3VibWVudUljb24oKTogSWNvbk5hbWUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JNZW51U3VibWVudUljb247XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0b3JNZW51SXRlbU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRvck1lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBlZGl0b3IgY29tbWFuZCBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBlZGl0b3IgY29tbWFuZCBoYW5kbGVyLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogRWRpdG9yQ29tbWFuZEhhbmRsZXJDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy5fZWRpdG9yTWVudUl0ZW1OYW1lID0gcGFyYW1zLmVkaXRvck1lbnVJdGVtTmFtZTtcbiAgICB0aGlzLl9lZGl0b3JNZW51U2VjdGlvbiA9IHBhcmFtcy5lZGl0b3JNZW51U2VjdGlvbjtcbiAgICB0aGlzLl9lZGl0b3JNZW51U3VibWVudUljb24gPSBwYXJhbXMuZWRpdG9yTWVudVN1Ym1lbnVJY29uO1xuICAgIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUgPSBwYXJhbXMuc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBwbGFpbiBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IHdpdGggYW4gYGVkaXRvckNoZWNrQ2FsbGJhY2tgLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJ1aWxkQ29tbWFuZCgpOiBDb21tYW5kIHtcbiAgICByZXR1cm4ge1xuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogKGNoZWNraW5nLCBlZGl0b3IsIGNvbnRleHQpID0+XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hlY2tDYWxsYmFjayh7XG4gICAgICAgICAgY2hlY2tpbmcsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgfSksXG4gICAgICBpY29uOiB0aGlzLmljb24sXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG5hbWU6IHRoaXMubmFtZVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBlZGl0b3ItbWVudSBhbmQgbWFya2Rvd24tdmlld3BvcnQtbWVudSBldmVudCBoYW5kbGVycy5cbiAgICpcbiAgICogQm90aCBhcmUgcmVnaXN0ZXJlZCB1bmNvbmRpdGlvbmFsbHk7IHdoZXRoZXIgYW4gaXRlbSBhY3R1YWxseSBhcHBlYXJzIGlzIGRlY2lkZWQgcGVyIG1lbnUgcmVuZGVyIGJ5XG4gICAqIHtAbGluayBzaG91bGRBZGRUb0VkaXRvck1lbnV9IC8ge0BsaW5rIHNob3VsZEFkZFRvVmlld3BvcnRNZW51fSwgd2hpY2ggYm90aCBkZWZhdWx0IHRvIGBmYWxzZWAuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIHJlZ2lzdHJhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9uUmVnaXN0ZXJlZChjb250ZXh0OiBDb21tYW5kSGFuZGxlclJlZ2lzdHJhdGlvbkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vblJlZ2lzdGVyZWQoY29udGV4dCk7XG4gICAgY29udGV4dC5tZW51RXZlbnRSZWdpc3RyYXIucmVnaXN0ZXJFZGl0b3JNZW51RXZlbnRIYW5kbGVyKChtZW51LCBlZGl0b3IsICRjb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUVkaXRvck1lbnUoe1xuICAgICAgICBjb250ZXh0OiAkY29udGV4dCxcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBtZW51XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb250ZXh0Lm1lbnVFdmVudFJlZ2lzdHJhci5yZWdpc3Rlck1hcmtkb3duVmlld3BvcnRNZW51RXZlbnRIYW5kbGVyKChtZW51LCB2aWV3LCBtb2RlLCBzb3VyY2UpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlVmlld3BvcnRNZW51KHtcbiAgICAgICAgbWVudSxcbiAgICAgICAgbW9kZSxcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2aWV3XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBmb3IgdGhlIGdpdmVuIGVkaXRvciBhbmQgY29udGV4dC5cbiAgICpcbiAgICogQHBhcmFtIF9lZGl0b3IgLSBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gX2NvbnRleHQgLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNhbkV4ZWN1dGVFZGl0b3IoX2VkaXRvcjogRWRpdG9yLCBfY29udGV4dDogTWFya2Rvd25GaWxlSW5mbyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kIGZvciB0aGUgZ2l2ZW4gZWRpdG9yIGFuZCBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gZWRpdG9yIC0gVGhlIGVkaXRvciBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGV4ZWN1dGVFZGl0b3IoZWRpdG9yOiBFZGl0b3IsIGNvbnRleHQ6IE1hcmtkb3duRmlsZUluZm8pOiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgdG8gYWRkIHRoZSBjb21tYW5kIHRvIGEgc3VibWVudS5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gYSBzdWJtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgY29tbWFuZCBwYWxldHRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byB0aGUgY29tbWFuZCBwYWxldHRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZEFkZFRvQ29tbWFuZFBhbGV0dGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgZWRpdG9yIGNvbnRleHQgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9lZGl0b3IgLSBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gX2NvbnRleHQgLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byB0aGUgZWRpdG9yIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9FZGl0b3JNZW51KF9lZGl0b3I6IEVkaXRvciwgX2NvbnRleHQ6IE1hcmtkb3duRmlsZUluZm8pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgbWFya2Rvd24gdmlld3BvcnQgKG1hcmdpbikgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBUaGF0IGlzIHRoZSBtZW51IGNhcnJ5aW5nIGBSZWFkYWJsZSBsaW5lIGxlbmd0aGAgLyBgTGluZSBudW1iZXJzYCAvIGBJbmxpbmUgdGl0bGVgLCByYWlzZWQgYnlcbiAgICogcmlnaHQtY2xpY2tpbmcgdGhlIGVtcHR5IHNwYWNlIGJlc2lkZSB0aGUgdGV4dCBvciB0aGUgbGluZS1udW1iZXIgZ3V0dGVyIFx1MjAxNCBhIG1lbnVcbiAgICoge0BsaW5rIHNob3VsZEFkZFRvRWRpdG9yTWVudX0gY2FuIG5ldmVyIHJlYWNoLCBiZWNhdXNlIGEgbWFyZ2luIGNsaWNrIGxhbmRzIG91dHNpZGUgdGhlIGVkaXRvcidzXG4gICAqIGBjb250ZW50RE9NYC4gSXQgaXMgYSBuYXR1cmFsIGhvbWUgZm9yIHdob2xlLW5vdGUgY29tbWFuZHMgb25jZSB0aGUgZWRpdG9yIG1lbnUgZ2V0cyBjcm93ZGVkLlxuICAgKlxuICAgKiBgbW9kZWAgYW5kIGBzb3VyY2VgIGFyZSBwYXNzZWQgdGhyb3VnaCByYXRoZXIgdGhhbiBmaWx0ZXJlZCBoZXJlOiB3aGV0aGVyIGEgY29tbWFuZCBiZWxvbmdzIGluXG4gICAqIHJlYWRpbmcgbW9kZSBpcyB0aGUgY29uc3VtaW5nIHBsdWdpbidzIGNhbGwuIE5vdGUgdGhhdCBPYnNpZGlhbiAxLjEzLjcgYWx3YXlzIHBhc3NlcyBgJ2d1dHRlcidgIGFzXG4gICAqIGBzb3VyY2VgLCBzbyBvbmx5IGBtb2RlYCBjdXJyZW50bHkgZGlzY3JpbWluYXRlcyAtIHNlZSB7QGxpbmsgTWFya2Rvd25WaWV3cG9ydE1lbnVFdmVudEhhbmRsZXJ9LlxuICAgKlxuICAgKiBAcGFyYW0gX3ZpZXcgLSBUaGUgbWFya2Rvd24gdmlldyB0aGUgbWVudSB3YXMgcmFpc2VkIG92ZXIuXG4gICAqIEBwYXJhbSBfbW9kZSAtIFRoZSB2aWV3IG1vZGUgKGAnc291cmNlJ2Agb3IgYCdwcmV2aWV3J2ApLlxuICAgKiBAcGFyYW0gX3NvdXJjZSAtIFdoYXQgcmFpc2VkIHRoZSBtZW51LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byB0aGUgdmlld3BvcnQgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb1ZpZXdwb3J0TWVudShfdmlldzogTWFya2Rvd25WaWV3LCBfbW9kZTogc3RyaW5nLCBfc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgY29tbWFuZCdzIGl0ZW0gdG8gYSBtZW51LCBpbiB0aGUgaGFuZGxlcidzIG93biBzZWN0aW9uLlxuICAgKlxuICAgKiBTaGFyZWQgYnkgYm90aCBtZW51IHN1cmZhY2VzOiBhbiBpdGVtIHByZXNlbnRzIGlkZW50aWNhbGx5IHdoaWNoZXZlciBvZiB0aGUgdHdvIGl0IHdhcyBvcHRlZCBpbnRvLFxuICAgKiBzbyB0aGUgc2VjdGlvbiAvIHN1Ym1lbnUgLyBpY29uIHBsdW1iaW5nIGxpdmVzIGhlcmUgb25jZS5cbiAgICpcbiAgICogQHBhcmFtIG1lbnUgLSBUaGUgbWVudSB0byBhZGQgdGhlIGl0ZW0gdG8uXG4gICAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIHRoZSBjb21tYW5kIHdpbGwgcnVuIGFnYWluc3QuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dCB0aGUgY29tbWFuZCB3aWxsIHJ1biBhZ2FpbnN0LlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRNZW51SXRlbShtZW51OiBNZW51LCBlZGl0b3I6IEVkaXRvciwgY29udGV4dDogTWFya2Rvd25GaWxlSW5mbyk6IHZvaWQge1xuICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmVkaXRvck1lbnVTZWN0aW9uID8/IHRoaXMucGx1Z2luTmFtZTtcbiAgICBpZiAodGhpcy5zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51KCkpIHtcbiAgICAgIG1lbnUuc2V0U2VjdGlvblN1Ym1lbnUoc2VjdGlvbiwge1xuICAgICAgICBpY29uOiB0aGlzLmVkaXRvck1lbnVTdWJtZW51SWNvbiA/PyAnJyxcbiAgICAgICAgdGl0bGU6IHNlY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG1lbnUuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5lZGl0b3JNZW51SXRlbU5hbWUgPz8gdGhpcy5uYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5zZXRTZWN0aW9uKHNlY3Rpb24pXG4gICAgICAgIC5vbkNsaWNrKGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKSA9PiB0aGlzLmV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjb250ZXh0KSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlZGl0b3JDaGVja0NhbGxiYWNrKHBhcmFtczogRWRpdG9yQ29tbWFuZEhhbmRsZXJFZGl0b3JDaGVja0NhbGxiYWNrUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge1xuICAgICAgY2hlY2tpbmcsXG4gICAgICBjb250ZXh0LFxuICAgICAgZWRpdG9yXG4gICAgfSA9IHBhcmFtcztcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpIHx8ICF0aGlzLmNhbkV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjb250ZXh0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghY2hlY2tpbmcpIHtcbiAgICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHRoaXMuZXhlY3V0ZUVkaXRvcihlZGl0b3IsIGNvbnRleHQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRWRpdG9yTWVudShwYXJhbXM6IEVkaXRvckNvbW1hbmRIYW5kbGVySGFuZGxlRWRpdG9yTWVudVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBlZGl0b3IsXG4gICAgICBtZW51XG4gICAgfSA9IHBhcmFtcztcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9FZGl0b3JNZW51KGVkaXRvciwgY29udGV4dCkgfHwgIXRoaXMuY2FuRXhlY3V0ZUVkaXRvcihlZGl0b3IsIGNvbnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hZGRNZW51SXRlbShtZW51LCBlZGl0b3IsIGNvbnRleHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWaWV3cG9ydE1lbnUocGFyYW1zOiBFZGl0b3JDb21tYW5kSGFuZGxlckhhbmRsZVZpZXdwb3J0TWVudVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIG1lbnUsXG4gICAgICBtb2RlLFxuICAgICAgc291cmNlLFxuICAgICAgdmlld1xuICAgIH0gPSBwYXJhbXM7XG4gICAgaWYgKCF0aGlzLnNob3VsZEFkZFRvVmlld3BvcnRNZW51KHZpZXcsIG1vZGUsIHNvdXJjZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBIGBNYXJrZG93blZpZXdgIElTIGEgYE1hcmtkb3duRmlsZUluZm9gLCBzbyB0aGUgZXhpc3RpbmcgZWRpdG9yLXNpZGUgZ2F0ZSBhbmQgYm9keSBzZXJ2ZSB0aGlzXG4gICAgLy8gbWVudSB1bmNoYW5nZWQsIHdpdGggbm8gbmV3IGFic3RyYWN0IHN1cmZhY2UgZm9yIHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50LlxuICAgIGNvbnN0IGVkaXRvciA9IHZpZXcuZWRpdG9yO1xuICAgIGlmICghdGhpcy5jYW5FeGVjdXRlRWRpdG9yKGVkaXRvciwgdmlldykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUaGUgZXZlbnQncyBtZW51IGFscmVhZHkgZGVjbGFyZXMgc2VjdGlvbnMgYFsndmlldycsICcnXWAuIEFuIGl0ZW0gaW4gdGhlIGhhbmRsZXIncyBvd24gc2VjdGlvblxuICAgIC8vIHRoZXJlZm9yZSBzb3J0cyBiZWxvdyBPYnNpZGlhbidzIGBSZWFkYWJsZSBsaW5lIGxlbmd0aGAgLyBgTGluZSBudW1iZXJzYCAvIGBJbmxpbmUgdGl0bGVgIHRvZ2dsZXMuXG4gICAgdGhpcy5hZGRNZW51SXRlbShtZW51LCBlZGl0b3IsIHZpZXcpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLG1CQUdPO0FBT1AsNkJBQStCO0FBc0d4QixNQUFlLDZCQUE2QixzQ0FBZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1oRSxJQUFjLHFCQUF5QztBQUNyRCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxvQkFBd0M7QUFDcEQsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsd0JBQThDO0FBQzFELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVpQjtBQUFBLEVBRUE7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
348
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmQtaGFuZGxlcnMvZWRpdG9yLWNvbW1hbmQtaGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbW1hbmQgaGFuZGxlciBmb3IgZWRpdG9yIGNvbW1hbmRzIHdpdGggb3B0aW9uYWwgZWRpdG9yIG1lbnUgaW50ZWdyYXRpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kLFxuICBFZGl0b3IsXG4gIEljb25OYW1lLFxuICBNYXJrZG93bkZpbGVJbmZvLFxuICBNYXJrZG93blZpZXcsXG4gIE1lbnVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICBpbnZva2VBc3luY1NhZmVseVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbW1hbmRIYW5kbGVyQ29uc3RydWN0b3JQYXJhbXMsXG4gIENvbW1hbmRIYW5kbGVyUmVnaXN0cmF0aW9uQ29udGV4dFxufSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5cbmltcG9ydCB7IENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9jb21tYW5kLWhhbmRsZXIudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIGFuIGVkaXRvciBjb21tYW5kIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQ29tbWFuZEhhbmRsZXJDb25zdHJ1Y3RvclBhcmFtcyBleHRlbmRzIENvbW1hbmRIYW5kbGVyQ29uc3RydWN0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGl0ZW0gbmFtZSB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUgc3VibWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvck1lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCB0aGUgY29tbWFuZCB0byBhIHN1Ym1lbnUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBFZGl0b3JDb21tYW5kSGFuZGxlci5lZGl0b3JDaGVja0NhbGxiYWNrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JDb21tYW5kSGFuZGxlckVkaXRvckNoZWNrQ2FsbGJhY2tQYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciBPYnNpZGlhbiBpcyBvbmx5IGNoZWNraW5nIGF2YWlsYWJpbGl0eSAobm90IGV4ZWN1dGluZykuXG4gICAqL1xuICByZWFkb25seSBjaGVja2luZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IE1hcmtkb3duRmlsZUluZm87XG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0b3IgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3I6IEVkaXRvcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRWRpdG9yQ29tbWFuZEhhbmRsZXIuaGFuZGxlRWRpdG9yTWVudX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQ29tbWFuZEhhbmRsZXJIYW5kbGVFZGl0b3JNZW51UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXJrZG93biBmaWxlIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBNYXJrZG93bkZpbGVJbmZvO1xuXG4gIC8qKlxuICAgKiBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBtZW51IHRvIGFkZCBpdGVtcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IG1lbnU6IE1lbnU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIEVkaXRvckNvbW1hbmRIYW5kbGVyLmhhbmRsZVZpZXdwb3J0TWVudX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQ29tbWFuZEhhbmRsZXJIYW5kbGVWaWV3cG9ydE1lbnVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG1lbnUgdG8gYWRkIGl0ZW1zIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVudTogTWVudTtcblxuICAvKipcbiAgICogVGhlIHZpZXcgbW9kZSAoYCdzb3VyY2UnYCBvciBgJ3ByZXZpZXcnYCkuXG4gICAqL1xuICByZWFkb25seSBtb2RlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoYXQgcmFpc2VkIHRoZSBtZW51LiBPYnNpZGlhbiAxLjEzLjcgYWx3YXlzIHBhc3NlcyBgJ2d1dHRlcidgIC0gc2VlXG4gICAqIHtAbGluayBNYXJrZG93blZpZXdwb3J0TWVudUV2ZW50SGFuZGxlcn0uXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1hcmtkb3duIHZpZXcgdGhlIG1lbnUgd2FzIHJhaXNlZCBvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlldzogTWFya2Rvd25WaWV3O1xufVxuXG4vKipcbiAqIENvbW1hbmQgaGFuZGxlciBmb3IgZWRpdG9yIGNvbW1hbmRzLlxuICpcbiAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUge0BsaW5rIGNhbkV4ZWN1dGVFZGl0b3J9IGFuZCB7QGxpbmsgZXhlY3V0ZUVkaXRvcn0gdG8gcHJvdmlkZSBiZWhhdmlvci5cbiAqIE9wdGlvbmFsbHkgaW50ZWdyYXRlcyB3aXRoIHRoZSBlZGl0b3IgY29udGV4dCBtZW51IHZpYSB7QGxpbmsgc2hvdWxkQWRkVG9FZGl0b3JNZW51fSwgYW5kIHdpdGggdGhlXG4gKiBtYXJrZG93biB2aWV3cG9ydCAobWFyZ2luKSBtZW51IHZpYSB7QGxpbmsgc2hvdWxkQWRkVG9WaWV3cG9ydE1lbnV9LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWRpdG9yQ29tbWFuZEhhbmRsZXIgZXh0ZW5kcyBDb21tYW5kSGFuZGxlciB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpdGVtIG5hbWUgdG8gdXNlIGluIHRoZSBlZGl0b3IgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGl0ZW0gbmFtZSwgb3IgYHVuZGVmaW5lZGAgdG8gdXNlIHRoZSBjb21tYW5kIG5hbWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRvck1lbnVJdGVtTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JNZW51SXRlbU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGVkaXRvciBtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2VjdGlvbiBuYW1lLCBvciBgdW5kZWZpbmVkYCB0byB1c2UgdGhlIHBsdWdpbiBuYW1lLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBlZGl0b3JNZW51U2VjdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JNZW51U2VjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpY29uIHRvIHVzZSBpbiB0aGUgZWRpdG9yIG1lbnUgc3VibWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGljb24sIG9yIGB1bmRlZmluZWRgIGZvciBubyBpY29uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBlZGl0b3JNZW51U3VibWVudUljb24oKTogSWNvbk5hbWUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JNZW51U3VibWVudUljb247XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0b3JNZW51SXRlbU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yTWVudVNlY3Rpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRvck1lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBlZGl0b3IgY29tbWFuZCBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBlZGl0b3IgY29tbWFuZCBoYW5kbGVyLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogRWRpdG9yQ29tbWFuZEhhbmRsZXJDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgdGhpcy5fZWRpdG9yTWVudUl0ZW1OYW1lID0gcGFyYW1zLmVkaXRvck1lbnVJdGVtTmFtZTtcbiAgICB0aGlzLl9lZGl0b3JNZW51U2VjdGlvbiA9IHBhcmFtcy5lZGl0b3JNZW51U2VjdGlvbjtcbiAgICB0aGlzLl9lZGl0b3JNZW51U3VibWVudUljb24gPSBwYXJhbXMuZWRpdG9yTWVudVN1Ym1lbnVJY29uO1xuICAgIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUgPSBwYXJhbXMuc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBwbGFpbiBPYnNpZGlhbiB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0IHdpdGggYW4gYGVkaXRvckNoZWNrQ2FsbGJhY2tgLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgQ29tbWFuZH0gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJ1aWxkQ29tbWFuZCgpOiBDb21tYW5kIHtcbiAgICByZXR1cm4ge1xuICAgICAgZWRpdG9yQ2hlY2tDYWxsYmFjazogKGNoZWNraW5nLCBlZGl0b3IsIGNvbnRleHQpID0+XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hlY2tDYWxsYmFjayh7XG4gICAgICAgICAgY2hlY2tpbmcsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBlZGl0b3JcbiAgICAgICAgfSksXG4gICAgICBpY29uOiB0aGlzLmljb24sXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG5hbWU6IHRoaXMubmFtZVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBlZGl0b3ItbWVudSBhbmQgbWFya2Rvd24tdmlld3BvcnQtbWVudSBldmVudCBoYW5kbGVycy5cbiAgICpcbiAgICogQm90aCBhcmUgcmVnaXN0ZXJlZCB1bmNvbmRpdGlvbmFsbHk7IHdoZXRoZXIgYW4gaXRlbSBhY3R1YWxseSBhcHBlYXJzIGlzIGRlY2lkZWQgcGVyIG1lbnUgcmVuZGVyIGJ5XG4gICAqIHtAbGluayBzaG91bGRBZGRUb0VkaXRvck1lbnV9IC8ge0BsaW5rIHNob3VsZEFkZFRvVmlld3BvcnRNZW51fSwgd2hpY2ggYm90aCBkZWZhdWx0IHRvIGBmYWxzZWAuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIHJlZ2lzdHJhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9uUmVnaXN0ZXJlZChjb250ZXh0OiBDb21tYW5kSGFuZGxlclJlZ2lzdHJhdGlvbkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vblJlZ2lzdGVyZWQoY29udGV4dCk7XG4gICAgY29udGV4dC5tZW51RXZlbnRSZWdpc3RyYXIucmVnaXN0ZXJFZGl0b3JNZW51RXZlbnRIYW5kbGVyKChtZW51LCBlZGl0b3IsICRjb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUVkaXRvck1lbnUoe1xuICAgICAgICBjb250ZXh0OiAkY29udGV4dCxcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBtZW51XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb250ZXh0Lm1lbnVFdmVudFJlZ2lzdHJhci5yZWdpc3Rlck1hcmtkb3duVmlld3BvcnRNZW51RXZlbnRIYW5kbGVyKChtZW51LCB2aWV3LCBtb2RlLCBzb3VyY2UpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlVmlld3BvcnRNZW51KHtcbiAgICAgICAgbWVudSxcbiAgICAgICAgbW9kZSxcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2aWV3XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBmb3IgdGhlIGdpdmVuIGVkaXRvciBhbmQgY29udGV4dC5cbiAgICpcbiAgICogQHBhcmFtIF9lZGl0b3IgLSBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gX2NvbnRleHQgLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNhbkV4ZWN1dGVFZGl0b3IoX2VkaXRvcjogRWRpdG9yLCBfY29udGV4dDogTWFya2Rvd25GaWxlSW5mbyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kIGZvciB0aGUgZ2l2ZW4gZWRpdG9yIGFuZCBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gZWRpdG9yIC0gVGhlIGVkaXRvciBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGV4ZWN1dGVFZGl0b3IoZWRpdG9yOiBFZGl0b3IsIGNvbnRleHQ6IE1hcmtkb3duRmlsZUluZm8pOiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgdG8gYWRkIHRoZSBjb21tYW5kIHRvIGEgc3VibWVudS5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gYSBzdWJtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgY29tbWFuZCBwYWxldHRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byB0aGUgY29tbWFuZCBwYWxldHRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZEFkZFRvQ29tbWFuZFBhbGV0dGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgZWRpdG9yIGNvbnRleHQgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9lZGl0b3IgLSBUaGUgZWRpdG9yIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gX2NvbnRleHQgLSBUaGUgbWFya2Rvd24gZmlsZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byB0aGUgZWRpdG9yIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9FZGl0b3JNZW51KF9lZGl0b3I6IEVkaXRvciwgX2NvbnRleHQ6IE1hcmtkb3duRmlsZUluZm8pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgbWFya2Rvd24gdmlld3BvcnQgKG1hcmdpbikgY29udGV4dCBtZW51LlxuICAgKlxuICAgKiBUaGF0IGlzIHRoZSBtZW51IGNhcnJ5aW5nIGBSZWFkYWJsZSBsaW5lIGxlbmd0aGAgLyBgTGluZSBudW1iZXJzYCAvIGBJbmxpbmUgdGl0bGVgLCByYWlzZWQgYnlcbiAgICogcmlnaHQtY2xpY2tpbmcgdGhlIGVtcHR5IHNwYWNlIGJlc2lkZSB0aGUgdGV4dCBvciB0aGUgbGluZS1udW1iZXIgZ3V0dGVyIFx1MjAxNCBhIG1lbnVcbiAgICoge0BsaW5rIHNob3VsZEFkZFRvRWRpdG9yTWVudX0gY2FuIG5ldmVyIHJlYWNoLCBiZWNhdXNlIGEgbWFyZ2luIGNsaWNrIGxhbmRzIG91dHNpZGUgdGhlIGVkaXRvcidzXG4gICAqIGBjb250ZW50RE9NYC4gSXQgaXMgYSBuYXR1cmFsIGhvbWUgZm9yIHdob2xlLW5vdGUgY29tbWFuZHMgb25jZSB0aGUgZWRpdG9yIG1lbnUgZ2V0cyBjcm93ZGVkLlxuICAgKlxuICAgKiBgbW9kZWAgYW5kIGBzb3VyY2VgIGFyZSBwYXNzZWQgdGhyb3VnaCByYXRoZXIgdGhhbiBmaWx0ZXJlZCBoZXJlOiB3aGV0aGVyIGEgY29tbWFuZCBiZWxvbmdzIGluXG4gICAqIHJlYWRpbmcgbW9kZSBpcyB0aGUgY29uc3VtaW5nIHBsdWdpbidzIGNhbGwuIE5vdGUgdGhhdCBPYnNpZGlhbiAxLjEzLjcgYWx3YXlzIHBhc3NlcyBgJ2d1dHRlcidgIGFzXG4gICAqIGBzb3VyY2VgLCBzbyBvbmx5IGBtb2RlYCBjdXJyZW50bHkgZGlzY3JpbWluYXRlcyAtIHNlZSB7QGxpbmsgTWFya2Rvd25WaWV3cG9ydE1lbnVFdmVudEhhbmRsZXJ9LlxuICAgKlxuICAgKiBAcGFyYW0gX3ZpZXcgLSBUaGUgbWFya2Rvd24gdmlldyB0aGUgbWVudSB3YXMgcmFpc2VkIG92ZXIuXG4gICAqIEBwYXJhbSBfbW9kZSAtIFRoZSB2aWV3IG1vZGUgKGAnc291cmNlJ2Agb3IgYCdwcmV2aWV3J2ApLlxuICAgKiBAcGFyYW0gX3NvdXJjZSAtIFdoYXQgcmFpc2VkIHRoZSBtZW51LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRvIGFkZCB0byB0aGUgdmlld3BvcnQgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb1ZpZXdwb3J0TWVudShfdmlldzogTWFya2Rvd25WaWV3LCBfbW9kZTogc3RyaW5nLCBfc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgY29tbWFuZCdzIGl0ZW0gdG8gYSBtZW51LCBpbiB0aGUgaGFuZGxlcidzIG93biBzZWN0aW9uLlxuICAgKlxuICAgKiBTaGFyZWQgYnkgYm90aCBtZW51IHN1cmZhY2VzOiBhbiBpdGVtIHByZXNlbnRzIGlkZW50aWNhbGx5IHdoaWNoZXZlciBvZiB0aGUgdHdvIGl0IHdhcyBvcHRlZCBpbnRvLFxuICAgKiBzbyB0aGUgc2VjdGlvbiAvIHN1Ym1lbnUgLyBpY29uIHBsdW1iaW5nIGxpdmVzIGhlcmUgb25jZS5cbiAgICpcbiAgICogQHBhcmFtIG1lbnUgLSBUaGUgbWVudSB0byBhZGQgdGhlIGl0ZW0gdG8uXG4gICAqIEBwYXJhbSBlZGl0b3IgLSBUaGUgZWRpdG9yIHRoZSBjb21tYW5kIHdpbGwgcnVuIGFnYWluc3QuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIG1hcmtkb3duIGZpbGUgY29udGV4dCB0aGUgY29tbWFuZCB3aWxsIHJ1biBhZ2FpbnN0LlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRNZW51SXRlbShtZW51OiBNZW51LCBlZGl0b3I6IEVkaXRvciwgY29udGV4dDogTWFya2Rvd25GaWxlSW5mbyk6IHZvaWQge1xuICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmVkaXRvck1lbnVTZWN0aW9uID8/IHRoaXMucGx1Z2luTmFtZTtcbiAgICBpZiAodGhpcy5zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51KCkpIHtcbiAgICAgIG1lbnUuc2V0U2VjdGlvblN1Ym1lbnUoc2VjdGlvbiwge1xuICAgICAgICBpY29uOiB0aGlzLmVkaXRvck1lbnVTdWJtZW51SWNvbiA/PyAnJyxcbiAgICAgICAgdGl0bGU6IHNlY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG1lbnUuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5lZGl0b3JNZW51SXRlbU5hbWUgPz8gdGhpcy5uYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5zZXRTZWN0aW9uKHNlY3Rpb24pXG4gICAgICAgIC5vbkNsaWNrKGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKSA9PiB0aGlzLmV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjb250ZXh0KSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlZGl0b3JDaGVja0NhbGxiYWNrKHBhcmFtczogRWRpdG9yQ29tbWFuZEhhbmRsZXJFZGl0b3JDaGVja0NhbGxiYWNrUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge1xuICAgICAgY2hlY2tpbmcsXG4gICAgICBjb250ZXh0LFxuICAgICAgZWRpdG9yXG4gICAgfSA9IHBhcmFtcztcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpIHx8ICF0aGlzLmNhbkV4ZWN1dGVFZGl0b3IoZWRpdG9yLCBjb250ZXh0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghY2hlY2tpbmcpIHtcbiAgICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHRoaXMuZXhlY3V0ZUVkaXRvcihlZGl0b3IsIGNvbnRleHQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRWRpdG9yTWVudShwYXJhbXM6IEVkaXRvckNvbW1hbmRIYW5kbGVySGFuZGxlRWRpdG9yTWVudVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBlZGl0b3IsXG4gICAgICBtZW51XG4gICAgfSA9IHBhcmFtcztcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9FZGl0b3JNZW51KGVkaXRvciwgY29udGV4dCkgfHwgIXRoaXMuY2FuRXhlY3V0ZUVkaXRvcihlZGl0b3IsIGNvbnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hZGRNZW51SXRlbShtZW51LCBlZGl0b3IsIGNvbnRleHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWaWV3cG9ydE1lbnUocGFyYW1zOiBFZGl0b3JDb21tYW5kSGFuZGxlckhhbmRsZVZpZXdwb3J0TWVudVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIG1lbnUsXG4gICAgICBtb2RlLFxuICAgICAgc291cmNlLFxuICAgICAgdmlld1xuICAgIH0gPSBwYXJhbXM7XG4gICAgaWYgKCF0aGlzLnNob3VsZEFkZFRvVmlld3BvcnRNZW51KHZpZXcsIG1vZGUsIHNvdXJjZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBIGBNYXJrZG93blZpZXdgIElTIGEgYE1hcmtkb3duRmlsZUluZm9gLCBzbyB0aGUgZXhpc3RpbmcgZWRpdG9yLXNpZGUgZ2F0ZSBhbmQgYm9keSBzZXJ2ZSB0aGlzXG4gICAgLy8gbWVudSB1bmNoYW5nZWQsIHdpdGggbm8gbmV3IGFic3RyYWN0IHN1cmZhY2UgZm9yIHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50LlxuICAgIGNvbnN0IGVkaXRvciA9IHZpZXcuZWRpdG9yO1xuICAgIGlmICghdGhpcy5jYW5FeGVjdXRlRWRpdG9yKGVkaXRvciwgdmlldykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUaGUgZXZlbnQncyBtZW51IGFscmVhZHkgZGVjbGFyZXMgc2VjdGlvbnMgYFsndmlldycsICcnXWAuIEFuIGl0ZW0gaW4gdGhlIGhhbmRsZXIncyBvd24gc2VjdGlvblxuICAgIC8vIHRoZXJlZm9yZSBzb3J0cyBiZWxvdyBPYnNpZGlhbidzIGBSZWFkYWJsZSBsaW5lIGxlbmd0aGAgLyBgTGluZSBudW1iZXJzYCAvIGBJbmxpbmUgdGl0bGVgIHRvZ2dsZXMuXG4gICAgdGhpcy5hZGRNZW51SXRlbShtZW51LCBlZGl0b3IsIHZpZXcpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLG1CQUdPO0FBT1AsNkJBQStCO0FBc0d4QixNQUFlLDZCQUE2QixzQ0FBZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1oRSxJQUFjLHFCQUF5QztBQUNyRCxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBYyxvQkFBd0M7QUFDcEQsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQWMsd0JBQThDO0FBQzFELFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVpQjtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFB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
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
5
5
 
6
6
  (function () {
7
7
  function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
- symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
- symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
9
+ symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
10
10
  }
11
11
 
12
12
  function ensureBrowserProcess() {
13
13
  const browserProcess = {
14
14
  browser: true,
15
15
  cwd() {
16
- return '/';
16
+ return "/";
17
17
  },
18
18
  env: {},
19
- platform: 'android'
19
+ platform: "android"
20
20
  };
21
-
22
- // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
21
  const existingProcess = globalThis.process;
24
-
25
22
  if (!existingProcess) {
26
- // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
23
  globalThis.process = browserProcess;
28
24
  return;
29
25
  }
30
-
31
26
  if (existingProcess.versions?.node) {
32
27
  return;
33
28
  }
34
-
35
29
  const existingProcessRecord = existingProcess;
36
-
37
30
  for (const [key, value] of Object.entries(browserProcess)) {
38
31
  existingProcessRecord[key] ??= value;
39
32
  }
40
-
41
- existingProcessRecord['browser'] = true;
33
+ existingProcessRecord["browser"] = true;
42
34
  }
43
35
 
44
36
  function keepName($unknown) {
@@ -46,17 +38,13 @@ function keepName($unknown) {
46
38
  }
47
39
 
48
40
  (function initCjs() {
49
- // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
50
41
  const globalThisRecord = globalThis;
51
42
  ensureDisposeSymbols();
52
- globalThisRecord['__name'] ??= keepName;
53
- globalThisRecord['__extractDefault'] ??= extractDefault;
54
-
43
+ globalThisRecord["__name"] ??= keepName;
44
+ globalThisRecord["__extractDefault"] ??= extractDefault;
55
45
  ensureBrowserProcess();
56
-
57
- // eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
58
46
  function extractDefault(module) {
59
- return module && module.__esModule && 'default' in module ? module.default : module;
47
+ return module && module.__esModule && "default" in module ? module.default : module;
60
48
  }
61
49
  })();
62
50
  })();
@@ -65,8 +53,6 @@ function keepName($unknown) {
65
53
  if (!originalRequire || originalRequire.__isPatched) {
66
54
  return;
67
55
  }
68
-
69
- // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
70
56
  require = Object.assign(
71
57
  (id) => requirePatched(id),
72
58
  originalRequire,
@@ -74,53 +60,45 @@ function keepName($unknown) {
74
60
  __isPatched: true
75
61
  }
76
62
  );
77
-
78
63
  function extractDefault(module) {
79
- return module && module.__esModule && 'default' in module ? module.default : module;
64
+ return module && module.__esModule && "default" in module ? module.default : module;
80
65
  }
81
-
82
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
83
- '@codemirror/autocomplete',
84
- '@codemirror/collab',
85
- '@codemirror/commands',
86
- '@codemirror/language',
87
- '@codemirror/lint',
88
- '@codemirror/search',
89
- '@codemirror/state',
90
- '@codemirror/text',
91
- '@codemirror/view',
92
- '@lezer/common',
93
- '@lezer/highlight',
94
- '@lezer/lr',
95
- 'obsidian']
96
- );
97
-
98
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
99
- '@codemirror/closebrackets',
100
- '@codemirror/comment',
101
- '@codemirror/fold',
102
- '@codemirror/gutter',
103
- '@codemirror/highlight',
104
- '@codemirror/history',
105
- '@codemirror/matchbrackets',
106
- '@codemirror/panel',
107
- '@codemirror/rangeset',
108
- '@codemirror/rectangular-selection',
109
- '@codemirror/stream-parser',
110
- '@codemirror/tooltip']
111
- );
112
-
66
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
67
+ "@codemirror/autocomplete",
68
+ "@codemirror/collab",
69
+ "@codemirror/commands",
70
+ "@codemirror/language",
71
+ "@codemirror/lint",
72
+ "@codemirror/search",
73
+ "@codemirror/state",
74
+ "@codemirror/text",
75
+ "@codemirror/view",
76
+ "@lezer/common",
77
+ "@lezer/highlight",
78
+ "@lezer/lr",
79
+ "obsidian"
80
+ ]);
81
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
82
+ "@codemirror/closebrackets",
83
+ "@codemirror/comment",
84
+ "@codemirror/fold",
85
+ "@codemirror/gutter",
86
+ "@codemirror/highlight",
87
+ "@codemirror/history",
88
+ "@codemirror/matchbrackets",
89
+ "@codemirror/panel",
90
+ "@codemirror/rangeset",
91
+ "@codemirror/rectangular-selection",
92
+ "@codemirror/stream-parser",
93
+ "@codemirror/tooltip"
94
+ ]);
113
95
  function requirePatched(id) {
114
96
  if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
115
97
  return originalRequire?.(id);
116
98
  }
117
-
118
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
119
99
  if (globalThis.app.isMobile) {
120
- if (id === 'process' || id === 'node:process') {
121
- // eslint-disable-next-line no-console -- Valid usage.
100
+ if (id === "process" || id === "node:process") {
122
101
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
123
-
124
102
  return process;
125
103
  }
126
104
  } else {
@@ -129,8 +107,6 @@ function keepName($unknown) {
129
107
  return extractDefault(module);
130
108
  }
131
109
  }
132
-
133
- // eslint-disable-next-line no-console -- Valid usage.
134
110
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
135
111
  return {};
136
112
  }
@@ -306,4 +282,4 @@ class FileCommandHandler extends import_abstract_file_command_handler.AbstractFi
306
282
  0 && (module.exports = {
307
283
  FileCommandHandler
308
284
  });
309
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmQtaGFuZGxlcnMvZmlsZS1jb21tYW5kLWhhbmRsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21tYW5kIGhhbmRsZXIgZm9yIGZpbGUtc3BlY2lmaWMgY29tbWFuZHMgKFRGaWxlIG9ubHksIG5vdCBURm9sZGVyKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFRBYnN0cmFjdEZpbGUsXG4gIFRGaWxlLFxuICBXb3Jrc3BhY2VMZWFmXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGNoYWluIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcblxuaW1wb3J0IHR5cGUge1xuICBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlckNvbnN0cnVjdG9yUGFyYW1zLFxuICBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlclNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudVBhcmFtcyxcbiAgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51UGFyYW1zXG59IGZyb20gJy4vYWJzdHJhY3QtZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuXG5pbXBvcnQge1xuICBhc0FycmF5T2ZGaWxlcyxcbiAgYXNGaWxlLFxuICBpc0ZpbGVcbn0gZnJvbSAnLi4vZmlsZS1zeXN0ZW0udHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRmlsZUNvbW1hbmRIYW5kbGVyLnNob3VsZEFkZFRvRmlsZU1lbnV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVDb21tYW5kSGFuZGxlclNob3VsZEFkZFRvRmlsZU1lbnVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBmaWxlOiBURmlsZTtcblxuICAvKipcbiAgICogVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBsZWFmPzogdW5kZWZpbmVkIHwgV29ya3NwYWNlTGVhZjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRmlsZUNvbW1hbmRIYW5kbGVyLnNob3VsZEFkZFRvRmlsZXNNZW51fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0ZpbGVzTWVudVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZXMuXG4gICAqL1xuICByZWFkb25seSBmaWxlczogVEZpbGVbXTtcblxuICAvKipcbiAgICogVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBsZWFmPzogdW5kZWZpbmVkIHwgV29ya3NwYWNlTGVhZjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tYW5kIGhhbmRsZXIgZm9yIGZpbGUtc3BlY2lmaWMgY29tbWFuZHMuXG4gKlxuICogRmlsdGVycyBhYnN0cmFjdCBmaWxlcyB0byBvbmx5IGFjY2VwdCB7QGxpbmsgVEZpbGV9IGluc3RhbmNlcy5cbiAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUge0BsaW5rIGNhbkV4ZWN1dGVGaWxlfSBhbmQge0BsaW5rIGV4ZWN1dGVGaWxlfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpbGVDb21tYW5kSGFuZGxlciBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZmlsZSBjb21tYW5kIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZpbGUgY29tbWFuZCBoYW5kbGVyLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEluaGVyaXRzIHBhcmVudCdzIHBhcmFtcyB0eXBlLlxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlckNvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRvIG9ubHkgYWNjZXB0IFRGaWxlIGluc3RhbmNlcywgdGhlbiBkZWxlZ2F0ZXMgdG8ge0BsaW5rIGNhbkV4ZWN1dGVGaWxlfS5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZSAtIFRoZSBmaWxlIG9yIGZvbGRlci5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjYW5FeGVjdXRlQWJzdHJhY3RGaWxlKGFic3RyYWN0RmlsZTogVEFic3RyYWN0RmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0ZpbGUoYWJzdHJhY3RGaWxlKSAmJiB0aGlzLmNhbkV4ZWN1dGVGaWxlKGFic3RyYWN0RmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0byBvbmx5IGFjY2VwdCBURmlsZSBhcnJheXMsIHRoZW4gZGVsZWdhdGVzIHRvIHtAbGluayBjYW5FeGVjdXRlRmlsZXN9LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlcyAtIFRoZSBmaWxlcyBvciBmb2xkZXJzLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGVBYnN0cmFjdEZpbGVzKGFic3RyYWN0RmlsZXM6IFRBYnN0cmFjdEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhYnN0cmFjdEZpbGVzLmV2ZXJ5KChmKSA9PiBpc0ZpbGUoZikpICYmIHRoaXMuY2FuRXhlY3V0ZUZpbGVzKGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBmb3IgYSBzaW5nbGUgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIF9maWxlIC0gVGhlIGZpbGUuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FuRXhlY3V0ZUZpbGUoX2ZpbGU6IFRGaWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgZm9yIG11bHRpcGxlIGZpbGVzLlxuICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGNoZWNrcyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZXMgLSBUaGUgZmlsZXMuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FuRXhlY3V0ZUZpbGVzKGZpbGVzOiBURmlsZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpbGVzLmxlbmd0aCA+IDAgJiYgZmlsZXMuZXZlcnkoKGYpID0+IHRoaXMuY2FuRXhlY3V0ZUZpbGUoZikpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGVnYXRlcyB0byB7QGxpbmsgZXhlY3V0ZUZpbGV9LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyLlxuICAgKiBAcmV0dXJucyBgUHJvbWlzYWJsZTx2b2lkPmAgdGhhdCByZXNvbHZlcyB3aGVuIGFic3RyYWN0IGZpbGUgaGFkIGJlZW4gZXhlY3V0ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZXhlY3V0ZUFic3RyYWN0RmlsZShhYnN0cmFjdEZpbGU6IFRBYnN0cmFjdEZpbGUpOiBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlRmlsZShhc0ZpbGUoYWJzdHJhY3RGaWxlKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZWdhdGVzIHRvIHtAbGluayBleGVjdXRlRmlsZXN9LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlcyAtIFRoZSBmaWxlcyBvciBmb2xkZXJzLlxuICAgKiBAcmV0dXJucyBgUHJvbWlzYWJsZTx2b2lkPmAgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBhYnN0cmFjdCBmaWxlcyBoYXZlIGJlZW4gZXhlY3V0ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZXhlY3V0ZUFic3RyYWN0RmlsZXMoYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdKTogUHJvbWlzYWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZUZpbGVzKGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgY29tbWFuZCBmb3IgYSBzaW5nbGUgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBleGVjdXRlRmlsZShmaWxlOiBURmlsZSk6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kIGZvciBtdWx0aXBsZSBmaWxlcy5cbiAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBleGVjdXRlcyBzZXF1ZW50aWFsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlcyAtIFRoZSBmaWxlcy5cbiAgICogQHJldHVybnMgYFByb21pc2FibGU8dm9pZD5gIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGV4ZWN1dGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGV4ZWN1dGVGaWxlcyhmaWxlczogVEZpbGVbXSk6IFByb21pc2FibGU8dm9pZD4ge1xuICAgIGxldCBwcm9taXNlOiBudWxsIHwgUHJvbWlzZTx2b2lkPiA9IG51bGw7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBwcm9taXNlID0gY2hhaW4ocHJvbWlzZSwgKCkgPT4gdGhpcy5leGVjdXRlRmlsZShmaWxlKSk7XG4gICAgfVxuXG4gICAgaWYgKHByb21pc2UpIHtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRvIG9ubHkgc2hvdyBtZW51IGZvciBURmlsZSBpbnN0YW5jZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHNpbmdsZS1maWxlIG1lbnUgY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRvIHRoZSBmaWxlIG1lbnUuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gT3ZlcnJpZGUga2VlcHMgdGhlIGJhc2UgY2xhc3MgcGFyYW0gdHlwZS5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudShwYXJhbXM6IEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyU2hvdWxkQWRkVG9BYnN0cmFjdEZpbGVNZW51UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge1xuICAgICAgYWJzdHJhY3RGaWxlLFxuICAgICAgbGVhZixcbiAgICAgIHNvdXJjZVxuICAgIH0gPSBwYXJhbXM7XG4gICAgcmV0dXJuIGlzRmlsZShhYnN0cmFjdEZpbGUpICYmIHRoaXMuc2hvdWxkQWRkVG9GaWxlTWVudSh7XG4gICAgICBmaWxlOiBhYnN0cmFjdEZpbGUsXG4gICAgICBsZWFmLFxuICAgICAgc291cmNlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0byBvbmx5IHNob3cgbWVudSBmb3IgVEZpbGUgYXJyYXlzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtdWx0aS1maWxlIG1lbnUgY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRvIHRoZSBmaWxlcyBtZW51LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIE92ZXJyaWRlIGtlZXBzIHRoZSBiYXNlIGNsYXNzIHBhcmFtIHR5cGUuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51KHBhcmFtczogQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge1xuICAgICAgYWJzdHJhY3RGaWxlcyxcbiAgICAgIGxlYWYsXG4gICAgICBzb3VyY2VcbiAgICB9ID0gcGFyYW1zO1xuICAgIHJldHVybiBhYnN0cmFjdEZpbGVzLmV2ZXJ5KChmKSA9PiBpc0ZpbGUoZikpICYmIHRoaXMuc2hvdWxkQWRkVG9GaWxlc01lbnUoe1xuICAgICAgZmlsZXM6IGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpLFxuICAgICAgbGVhZixcbiAgICAgIHNvdXJjZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBjb21tYW5kIHNob3VsZCBhcHBlYXIgaW4gdGhlIHNpbmdsZS1maWxlIGNvbnRleHQgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgc2luZ2xlLWZpbGUgbWVudSBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0ZpbGVNZW51KHBhcmFtczogRmlsZUNvbW1hbmRIYW5kbGVyU2hvdWxkQWRkVG9GaWxlTWVudVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgZmlsZTogX2ZpbGUsIGxlYWY6IF9sZWFmLCBzb3VyY2U6IF9zb3VyY2UgfSA9IHBhcmFtcztcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgbXVsdGktZmlsZSBjb250ZXh0IG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIG11bHRpLWZpbGUgbWVudSBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGZpbGVzIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9GaWxlc01lbnUocGFyYW1zOiBGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0ZpbGVzTWVudVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgZmlsZXM6IF9maWxlcywgbGVhZjogX2xlYWYsIHNvdXJjZTogX3NvdXJjZSB9ID0gcGFyYW1zO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
285
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmQtaGFuZGxlcnMvZmlsZS1jb21tYW5kLWhhbmRsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21tYW5kIGhhbmRsZXIgZm9yIGZpbGUtc3BlY2lmaWMgY29tbWFuZHMgKFRGaWxlIG9ubHksIG5vdCBURm9sZGVyKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFRBYnN0cmFjdEZpbGUsXG4gIFRGaWxlLFxuICBXb3Jrc3BhY2VMZWFmXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGNoYWluIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcblxuaW1wb3J0IHR5cGUge1xuICBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlckNvbnN0cnVjdG9yUGFyYW1zLFxuICBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlclNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudVBhcmFtcyxcbiAgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51UGFyYW1zXG59IGZyb20gJy4vYWJzdHJhY3QtZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuXG5pbXBvcnQge1xuICBhc0FycmF5T2ZGaWxlcyxcbiAgYXNGaWxlLFxuICBpc0ZpbGVcbn0gZnJvbSAnLi4vZmlsZS1zeXN0ZW0udHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRmlsZUNvbW1hbmRIYW5kbGVyLnNob3VsZEFkZFRvRmlsZU1lbnV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVDb21tYW5kSGFuZGxlclNob3VsZEFkZFRvRmlsZU1lbnVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBmaWxlOiBURmlsZTtcblxuICAvKipcbiAgICogVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBsZWFmPzogdW5kZWZpbmVkIHwgV29ya3NwYWNlTGVhZjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRmlsZUNvbW1hbmRIYW5kbGVyLnNob3VsZEFkZFRvRmlsZXNNZW51fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0ZpbGVzTWVudVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZXMuXG4gICAqL1xuICByZWFkb25seSBmaWxlczogVEZpbGVbXTtcblxuICAvKipcbiAgICogVGhlIHdvcmtzcGFjZSBsZWFmLCBpZiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBsZWFmPzogdW5kZWZpbmVkIHwgV29ya3NwYWNlTGVhZjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tYW5kIGhhbmRsZXIgZm9yIGZpbGUtc3BlY2lmaWMgY29tbWFuZHMuXG4gKlxuICogRmlsdGVycyBhYnN0cmFjdCBmaWxlcyB0byBvbmx5IGFjY2VwdCB7QGxpbmsgVEZpbGV9IGluc3RhbmNlcy5cbiAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUge0BsaW5rIGNhbkV4ZWN1dGVGaWxlfSBhbmQge0BsaW5rIGV4ZWN1dGVGaWxlfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpbGVDb21tYW5kSGFuZGxlciBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZmlsZSBjb21tYW5kIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZpbGUgY29tbWFuZCBoYW5kbGVyLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEluaGVyaXRzIHBhcmVudCdzIHBhcmFtcyB0eXBlLlxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBBYnN0cmFjdEZpbGVDb21tYW5kSGFuZGxlckNvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRvIG9ubHkgYWNjZXB0IFRGaWxlIGluc3RhbmNlcywgdGhlbiBkZWxlZ2F0ZXMgdG8ge0BsaW5rIGNhbkV4ZWN1dGVGaWxlfS5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZSAtIFRoZSBmaWxlIG9yIGZvbGRlci5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjYW5FeGVjdXRlQWJzdHJhY3RGaWxlKGFic3RyYWN0RmlsZTogVEFic3RyYWN0RmlsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0ZpbGUoYWJzdHJhY3RGaWxlKSAmJiB0aGlzLmNhbkV4ZWN1dGVGaWxlKGFic3RyYWN0RmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0byBvbmx5IGFjY2VwdCBURmlsZSBhcnJheXMsIHRoZW4gZGVsZWdhdGVzIHRvIHtAbGluayBjYW5FeGVjdXRlRmlsZXN9LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlcyAtIFRoZSBmaWxlcyBvciBmb2xkZXJzLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGVBYnN0cmFjdEZpbGVzKGFic3RyYWN0RmlsZXM6IFRBYnN0cmFjdEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhYnN0cmFjdEZpbGVzLmV2ZXJ5KChmKSA9PiBpc0ZpbGUoZikpICYmIHRoaXMuY2FuRXhlY3V0ZUZpbGVzKGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBmb3IgYSBzaW5nbGUgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIF9maWxlIC0gVGhlIGZpbGUuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FuRXhlY3V0ZUZpbGUoX2ZpbGU6IFRGaWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgZm9yIG11bHRpcGxlIGZpbGVzLlxuICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGNoZWNrcyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZXMgLSBUaGUgZmlsZXMuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FuRXhlY3V0ZUZpbGVzKGZpbGVzOiBURmlsZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpbGVzLmxlbmd0aCA+IDAgJiYgZmlsZXMuZXZlcnkoKGYpID0+IHRoaXMuY2FuRXhlY3V0ZUZpbGUoZikpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGVnYXRlcyB0byB7QGxpbmsgZXhlY3V0ZUZpbGV9LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGZpbGUgb3IgZm9sZGVyLlxuICAgKiBAcmV0dXJucyBgUHJvbWlzYWJsZTx2b2lkPmAgdGhhdCByZXNvbHZlcyB3aGVuIGFic3RyYWN0IGZpbGUgaGFkIGJlZW4gZXhlY3V0ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZXhlY3V0ZUFic3RyYWN0RmlsZShhYnN0cmFjdEZpbGU6IFRBYnN0cmFjdEZpbGUpOiBQcm9taXNhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlRmlsZShhc0ZpbGUoYWJzdHJhY3RGaWxlKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZWdhdGVzIHRvIHtAbGluayBleGVjdXRlRmlsZXN9LlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlcyAtIFRoZSBmaWxlcyBvciBmb2xkZXJzLlxuICAgKiBAcmV0dXJucyBgUHJvbWlzYWJsZTx2b2lkPmAgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBhYnN0cmFjdCBmaWxlcyBoYXZlIGJlZW4gZXhlY3V0ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZXhlY3V0ZUFic3RyYWN0RmlsZXMoYWJzdHJhY3RGaWxlczogVEFic3RyYWN0RmlsZVtdKTogUHJvbWlzYWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZUZpbGVzKGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgY29tbWFuZCBmb3IgYSBzaW5nbGUgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBleGVjdXRlRmlsZShmaWxlOiBURmlsZSk6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kIGZvciBtdWx0aXBsZSBmaWxlcy5cbiAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBleGVjdXRlcyBzZXF1ZW50aWFsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlcyAtIFRoZSBmaWxlcy5cbiAgICogQHJldHVybnMgYFByb21pc2FibGU8dm9pZD5gIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGV4ZWN1dGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGV4ZWN1dGVGaWxlcyhmaWxlczogVEZpbGVbXSk6IFByb21pc2FibGU8dm9pZD4ge1xuICAgIGxldCBwcm9taXNlOiBudWxsIHwgUHJvbWlzZTx2b2lkPiA9IG51bGw7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBwcm9taXNlID0gY2hhaW4ocHJvbWlzZSwgKCkgPT4gdGhpcy5leGVjdXRlRmlsZShmaWxlKSk7XG4gICAgfVxuXG4gICAgaWYgKHByb21pc2UpIHtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRvIG9ubHkgc2hvdyBtZW51IGZvciBURmlsZSBpbnN0YW5jZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHNpbmdsZS1maWxlIG1lbnUgY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRvIHRoZSBmaWxlIG1lbnUuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gT3ZlcnJpZGUga2VlcHMgdGhlIGJhc2UgY2xhc3MgcGFyYW0gdHlwZS5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZEFkZFRvQWJzdHJhY3RGaWxlTWVudShwYXJhbXM6IEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyU2hvdWxkQWRkVG9BYnN0cmFjdEZpbGVNZW51UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge1xuICAgICAgYWJzdHJhY3RGaWxlLFxuICAgICAgbGVhZixcbiAgICAgIHNvdXJjZVxuICAgIH0gPSBwYXJhbXM7XG4gICAgcmV0dXJuIGlzRmlsZShhYnN0cmFjdEZpbGUpICYmIHRoaXMuc2hvdWxkQWRkVG9GaWxlTWVudSh7XG4gICAgICBmaWxlOiBhYnN0cmFjdEZpbGUsXG4gICAgICBsZWFmLFxuICAgICAgc291cmNlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0byBvbmx5IHNob3cgbWVudSBmb3IgVEZpbGUgYXJyYXlzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBtdWx0aS1maWxlIG1lbnUgY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRvIHRoZSBmaWxlcyBtZW51LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIE92ZXJyaWRlIGtlZXBzIHRoZSBiYXNlIGNsYXNzIHBhcmFtIHR5cGUuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51KHBhcmFtczogQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge1xuICAgICAgYWJzdHJhY3RGaWxlcyxcbiAgICAgIGxlYWYsXG4gICAgICBzb3VyY2VcbiAgICB9ID0gcGFyYW1zO1xuICAgIHJldHVybiBhYnN0cmFjdEZpbGVzLmV2ZXJ5KChmKSA9PiBpc0ZpbGUoZikpICYmIHRoaXMuc2hvdWxkQWRkVG9GaWxlc01lbnUoe1xuICAgICAgZmlsZXM6IGFzQXJyYXlPZkZpbGVzKGFic3RyYWN0RmlsZXMpLFxuICAgICAgbGVhZixcbiAgICAgIHNvdXJjZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBjb21tYW5kIHNob3VsZCBhcHBlYXIgaW4gdGhlIHNpbmdsZS1maWxlIGNvbnRleHQgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgc2luZ2xlLWZpbGUgbWVudSBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0ZpbGVNZW51KHBhcmFtczogRmlsZUNvbW1hbmRIYW5kbGVyU2hvdWxkQWRkVG9GaWxlTWVudVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgZmlsZTogX2ZpbGUsIGxlYWY6IF9sZWFmLCBzb3VyY2U6IF9zb3VyY2UgfSA9IHBhcmFtcztcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGFwcGVhciBpbiB0aGUgbXVsdGktZmlsZSBjb250ZXh0IG1lbnUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIG11bHRpLWZpbGUgbWVudSBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0byBhZGQgdG8gdGhlIGZpbGVzIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9GaWxlc01lbnUocGFyYW1zOiBGaWxlQ29tbWFuZEhhbmRsZXJTaG91bGRBZGRUb0ZpbGVzTWVudVBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgZmlsZXM6IF9maWxlcywgbGVhZjogX2xlYWYsIHNvdXJjZTogX3NvdXJjZSB9ID0gcGFyYW1zO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLG1CQUFzQjtBQVF0Qix5QkFJTztBQUNQLDJDQUEyQztBQWdEcEMsTUFBZSwyQkFBMkIsZ0VBQTJCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPbkUsWUFBWSxRQUFxRDtBQUN0RSxVQUFNLE1BQU07QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRbUIsdUJBQXVCLGNBQXNDO0FBQzlFLGVBQU8sMkJBQU8sWUFBWSxLQUFLLEtBQUssZUFBZSxZQUFZO0FBQUEsRUFDakU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFtQix3QkFBd0IsZUFBeUM7QUFDbEYsV0FBTyxjQUFjLE1BQU0sQ0FBQyxVQUFNLDJCQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssb0JBQWdCLG1DQUFlLGFBQWEsQ0FBQztBQUFBLEVBQ3BHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRVSxlQUFlLE9BQXVCO0FBQzlDLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNVLGdCQUFnQixPQUF5QjtBQUNqRCxXQUFPLE1BQU0sU0FBUyxLQUFLLE1BQU0sTUFBTSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsQ0FBQztBQUFBLEVBQ3RFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRbUIsb0JBQW9CLGNBQStDO0FBQ3BGLFdBQU8sS0FBSyxnQkFBWSwyQkFBTyxZQUFZLENBQUM7QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUW1CLHFCQUFxQixlQUFrRDtBQUN4RixXQUFPLEtBQUssaUJBQWEsbUNBQWUsYUFBYSxDQUFDO0FBQUEsRUFDeEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZ0JVLGFBQWEsT0FBa0M7QUFDdkQsUUFBSSxVQUFnQztBQUNwQyxlQUFXLFFBQVEsT0FBTztBQUN4QixvQkFBVSxvQkFBTSxTQUFTLE1BQU0sS0FBSyxZQUFZLElBQUksQ0FBQztBQUFBLElBQ3ZEO0FBRUEsUUFBSSxTQUFTO0FBQ1gsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNtQiw0QkFBNEIsUUFBOEU7QUFDM0gsVUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUNKLGVBQU8sMkJBQU8sWUFBWSxLQUFLLEtBQUssb0JBQW9CO0FBQUEsTUFDdEQsTUFBTTtBQUFBLE1BQ047QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTbUIsNkJBQTZCLFFBQStFO0FBQzdILFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixXQUFPLGNBQWMsTUFBTSxDQUFDLFVBQU0sMkJBQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxxQkFBcUI7QUFBQSxNQUN4RSxXQUFPLG1DQUFlLGFBQWE7QUFBQSxNQUNuQztBQUFBLE1BQ0E7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRVSxvQkFBb0IsUUFBOEQ7QUFDMUYsVUFBTSxFQUFFLE1BQU0sT0FBTyxNQUFNLE9BQU8sUUFBUSxRQUFRLElBQUk7QUFDdEQsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFVLHFCQUFxQixRQUErRDtBQUM1RixVQUFNLEVBQUUsT0FBTyxRQUFRLE1BQU0sT0FBTyxRQUFRLFFBQVEsSUFBSTtBQUN4RCxXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=