@mnaoumov/obsidian-lib 7.1.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/dist/lib/cjs/__merged.cjs +8 -6
  2. package/dist/lib/cjs/__merged.d.cts +1 -1
  3. package/dist/lib/cjs/active-file-provider.cjs +6 -6
  4. package/dist/lib/cjs/active-file-provider.d.cts +1 -1
  5. package/dist/lib/cjs/app.cjs +5 -5
  6. package/dist/lib/cjs/async-with-notice.cjs +5 -5
  7. package/dist/lib/cjs/attachment-path.cjs +6 -6
  8. package/dist/lib/cjs/attachment-unit-folder.cjs +5 -5
  9. package/dist/lib/cjs/backlink-index.cjs +13 -19
  10. package/dist/lib/cjs/backlink-index.d.cts +1 -1
  11. package/dist/lib/cjs/backlink.cjs +5 -5
  12. package/dist/lib/cjs/bases-view-registrar.cjs +6 -6
  13. package/dist/lib/cjs/bases-view-registrar.d.cts +1 -1
  14. package/dist/lib/cjs/callout.cjs +5 -5
  15. package/dist/lib/cjs/canvas.cjs +5 -5
  16. package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
  17. package/dist/lib/cjs/code-block-markdown-information.cjs +6 -6
  18. package/dist/lib/cjs/code-block-markdown-information.d.cts +9 -9
  19. package/dist/lib/cjs/code-block-reg-exp.cjs +5 -5
  20. package/dist/lib/cjs/codemirror/index.cjs +5 -5
  21. package/dist/lib/cjs/codemirror/state-field-spec.cjs +6 -6
  22. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +6 -6
  23. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +5 -5
  24. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +5 -5
  25. package/dist/lib/cjs/command-handlers/command-handler.cjs +5 -5
  26. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +5 -5
  27. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +5 -5
  28. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +5 -5
  29. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +5 -5
  30. package/dist/lib/cjs/command-handlers/index.cjs +5 -5
  31. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +5 -5
  32. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +5 -5
  33. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +5 -5
  34. package/dist/lib/cjs/command-registrar.cjs +6 -6
  35. package/dist/lib/cjs/command-registrar.d.cts +2 -2
  36. package/dist/lib/cjs/community-plugins.cjs +6 -6
  37. package/dist/lib/cjs/components/abort-signal-component.cjs +5 -5
  38. package/dist/lib/cjs/components/all-windows-event-component.cjs +5 -5
  39. package/dist/lib/cjs/components/async-error-handler-component.cjs +5 -5
  40. package/dist/lib/cjs/components/async-events-component.cjs +5 -5
  41. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +5 -5
  42. package/dist/lib/cjs/components/component-ex.cjs +5 -5
  43. package/dist/lib/cjs/components/console-debug-component.cjs +5 -5
  44. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +5 -5
  45. package/dist/lib/cjs/components/disposable-component.cjs +5 -5
  46. package/dist/lib/cjs/components/embed-extensions-component.cjs +5 -5
  47. package/dist/lib/cjs/components/file-explorer-root-menu-component.cjs +13 -16
  48. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +5 -5
  49. package/dist/lib/cjs/components/incremental-file-index-component.cjs +74 -10
  50. package/dist/lib/cjs/components/incremental-file-index-component.d.cts +16 -1
  51. package/dist/lib/cjs/components/index.cjs +5 -5
  52. package/dist/lib/cjs/components/layout-ready-component.cjs +5 -5
  53. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +5 -5
  54. package/dist/lib/cjs/components/monkey-around-component.cjs +5 -5
  55. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +5 -5
  56. package/dist/lib/cjs/components/plugin-context-component.cjs +5 -5
  57. package/dist/lib/cjs/components/plugin-gate-component.cjs +5 -5
  58. package/dist/lib/cjs/components/plugin-notice-component.cjs +6 -6
  59. package/dist/lib/cjs/components/plugin-notice-component.d.cts +3 -3
  60. package/dist/lib/cjs/components/plugin-settings-component.cjs +6 -6
  61. package/dist/lib/cjs/components/plugin-settings-component.d.cts +5 -5
  62. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +5 -5
  63. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +5 -5
  64. package/dist/lib/cjs/components/pointer-position-component.cjs +5 -5
  65. package/dist/lib/cjs/components/registry-component.cjs +5 -5
  66. package/dist/lib/cjs/components/release-notes-component.cjs +5 -5
  67. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +6 -6
  68. package/dist/lib/cjs/components/rename-delete-handler-component.d.cts +10 -10
  69. package/dist/lib/cjs/components/rmdir-guard-component.cjs +5 -5
  70. package/dist/lib/cjs/components/settings-migration-component.cjs +5 -5
  71. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +5 -5
  72. package/dist/lib/cjs/components/templates-language-component.cjs +5 -5
  73. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +5 -5
  74. package/dist/lib/cjs/constructors/index.cjs +5 -5
  75. package/dist/lib/cjs/css-class.cjs +5 -5
  76. package/dist/lib/cjs/data-handler.cjs +6 -6
  77. package/dist/lib/cjs/data-handler.d.cts +2 -2
  78. package/dist/lib/cjs/data-stores/data-store-replica.cjs +5 -5
  79. package/dist/lib/cjs/data-stores/data-store-seeds.cjs +6 -6
  80. package/dist/lib/cjs/data-stores/data-store-transport.cjs +5 -5
  81. package/dist/lib/cjs/data-stores/index.cjs +5 -5
  82. package/dist/lib/cjs/data-stores/local-data-store.cjs +21 -18
  83. package/dist/lib/cjs/data-stores/local-data-store.d.cts +9 -1
  84. package/dist/lib/cjs/data-stores/shared-data-store.cjs +6 -6
  85. package/dist/lib/cjs/dataview-link.cjs +5 -5
  86. package/dist/lib/cjs/dataview.cjs +12 -12
  87. package/dist/lib/cjs/dataview.d.cts +6 -6
  88. package/dist/lib/cjs/debug.cjs +5 -5
  89. package/dist/lib/cjs/demo-vault-helper-settings.cjs +5 -5
  90. package/dist/lib/cjs/demo-vault-helper.cjs +5 -5
  91. package/dist/lib/cjs/demo-vault-naming.cjs +5 -5
  92. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +5 -5
  93. package/dist/lib/cjs/desktop-trusted-input.cjs +6 -6
  94. package/dist/lib/cjs/desktop-trusted-input.d.cts +1 -1
  95. package/dist/lib/cjs/editor-extension-registrar.cjs +6 -6
  96. package/dist/lib/cjs/editor-extension-registrar.d.cts +1 -1
  97. package/dist/lib/cjs/editor-suggest-registrar.cjs +6 -6
  98. package/dist/lib/cjs/editor-suggest-registrar.d.cts +1 -1
  99. package/dist/lib/cjs/editor.cjs +5 -5
  100. package/dist/lib/cjs/events.cjs +5 -5
  101. package/dist/lib/cjs/extensions-registrar.cjs +6 -6
  102. package/dist/lib/cjs/extensions-registrar.d.cts +1 -1
  103. package/dist/lib/cjs/file-change.cjs +6 -6
  104. package/dist/lib/cjs/file-change.d.cts +3 -3
  105. package/dist/lib/cjs/file-explorer.cjs +5 -5
  106. package/dist/lib/cjs/file-manager.cjs +5 -5
  107. package/dist/lib/cjs/file-system.cjs +5 -5
  108. package/dist/lib/cjs/folder-note.cjs +6 -6
  109. package/dist/lib/cjs/folder-note.d.cts +1 -1
  110. package/dist/lib/cjs/frontmatter-formatting.cjs +5 -5
  111. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +6 -6
  112. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.d.cts +2 -2
  113. package/dist/lib/cjs/frontmatter.cjs +6 -6
  114. package/dist/lib/cjs/frontmatter.d.cts +7 -7
  115. package/dist/lib/cjs/generated-during-build.cjs +7 -7
  116. package/dist/lib/cjs/hover-link-source-registrar.cjs +6 -6
  117. package/dist/lib/cjs/hover-link-source-registrar.d.cts +1 -1
  118. package/dist/lib/cjs/html-element.cjs +5 -5
  119. package/dist/lib/cjs/i18n/custom-type-options.cjs +6 -6
  120. package/dist/lib/cjs/i18n/custom-type-options.d.cts +4 -4
  121. package/dist/lib/cjs/i18n/default-translations.cjs +5 -5
  122. package/dist/lib/cjs/i18n/i18n.cjs +5 -5
  123. package/dist/lib/cjs/i18n/index.cjs +5 -5
  124. package/dist/lib/cjs/i18n/locales/en.cjs +5 -5
  125. package/dist/lib/cjs/i18n/locales/index.cjs +5 -5
  126. package/dist/lib/cjs/i18n/locales/translations-map.cjs +5 -5
  127. package/dist/lib/cjs/index.cjs +5 -5
  128. package/dist/lib/cjs/is-in-obsidian.cjs +5 -5
  129. package/dist/lib/cjs/library-styles.cjs +5 -5
  130. package/dist/lib/cjs/library.cjs +5 -5
  131. package/dist/lib/cjs/link-name.cjs +5 -5
  132. package/dist/lib/cjs/link-update-progress.cjs +5 -5
  133. package/dist/lib/cjs/link.cjs +39 -15
  134. package/dist/lib/cjs/link.d.cts +49 -2
  135. package/dist/lib/cjs/logger.cjs +5 -5
  136. package/dist/lib/cjs/loop.cjs +5 -5
  137. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +6 -6
  138. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +1 -1
  139. package/dist/lib/cjs/markdown-code-block-processor.cjs +5 -5
  140. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +6 -6
  141. package/dist/lib/cjs/markdown-post-processor-registrar.d.cts +1 -1
  142. package/dist/lib/cjs/markdown-view.cjs +5 -5
  143. package/dist/lib/cjs/markdown.cjs +5 -5
  144. package/dist/lib/cjs/menu-event-registrar.cjs +6 -6
  145. package/dist/lib/cjs/menu-event-registrar.d.cts +4 -4
  146. package/dist/lib/cjs/metadata-cache.cjs +6 -6
  147. package/dist/lib/cjs/mobile-trusted-input.cjs +6 -6
  148. package/dist/lib/cjs/modals/alert.cjs +5 -5
  149. package/dist/lib/cjs/modals/confirm.cjs +5 -5
  150. package/dist/lib/cjs/modals/index.cjs +5 -5
  151. package/dist/lib/cjs/modals/minimizable-modal.cjs +6 -6
  152. package/dist/lib/cjs/modals/modal-command-builder.cjs +6 -6
  153. package/dist/lib/cjs/modals/modal-command-builder.d.cts +12 -12
  154. package/dist/lib/cjs/modals/modal.cjs +5 -5
  155. package/dist/lib/cjs/modals/prompt.cjs +14 -14
  156. package/dist/lib/cjs/modals/select-item.cjs +5 -5
  157. package/dist/lib/cjs/modals/select-option.cjs +5 -5
  158. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +5 -5
  159. package/dist/lib/cjs/note-priority.cjs +5 -5
  160. package/dist/lib/cjs/notebook-navigator.cjs +6 -6
  161. package/dist/lib/cjs/notebook-navigator.d.cts +3 -3
  162. package/dist/lib/cjs/obsidian-lib-state.cjs +6 -6
  163. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +6 -6
  164. package/dist/lib/cjs/obsidian-protocol-handler-registrar.d.cts +1 -1
  165. package/dist/lib/cjs/obsidian-settings.cjs +5 -5
  166. package/dist/lib/cjs/obsidian-word-characters.cjs +6 -6
  167. package/dist/lib/cjs/parse-link.cjs +6 -6
  168. package/dist/lib/cjs/parse-link.d.cts +2 -2
  169. package/dist/lib/cjs/path-settings.cjs +6 -6
  170. package/dist/lib/cjs/pdf.cjs +5 -5
  171. package/dist/lib/cjs/plugin/index.cjs +5 -5
  172. package/dist/lib/cjs/plugin/plugin-api.cjs +6 -6
  173. package/dist/lib/cjs/plugin/plugin-api.d.cts +2 -2
  174. package/dist/lib/cjs/plugin/plugin-context.cjs +6 -6
  175. package/dist/lib/cjs/plugin/plugin-event-source.cjs +6 -6
  176. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +1 -1
  177. package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
  178. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +5 -5
  179. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +6 -6
  180. package/dist/lib/cjs/plugin/plugin-settings-tab.d.cts +3 -3
  181. package/dist/lib/cjs/plugin/plugin.cjs +6 -6
  182. package/dist/lib/cjs/plugin/settings-migration-api.cjs +6 -6
  183. package/dist/lib/cjs/plugin/settings-migration-api.d.cts +1 -1
  184. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +6 -6
  185. package/dist/lib/cjs/plugin-cli-handler-registrar.d.cts +1 -1
  186. package/dist/lib/cjs/popovers/field-popover.cjs +5 -5
  187. package/dist/lib/cjs/popovers/index.cjs +5 -5
  188. package/dist/lib/cjs/popovers/popover-anchor.cjs +5 -5
  189. package/dist/lib/cjs/popovers/popover.cjs +5 -5
  190. package/dist/lib/cjs/property-entry.cjs +5 -5
  191. package/dist/lib/cjs/queue.cjs +6 -6
  192. package/dist/lib/cjs/react/app-context.cjs +5 -5
  193. package/dist/lib/cjs/react/index.cjs +5 -5
  194. package/dist/lib/cjs/reference.cjs +18 -6
  195. package/dist/lib/cjs/reference.d.cts +27 -7
  196. package/dist/lib/cjs/resource-lock.cjs +6 -6
  197. package/dist/lib/cjs/resource-url.cjs +5 -5
  198. package/dist/lib/cjs/ribbon-icon-registrar.cjs +6 -6
  199. package/dist/lib/cjs/ribbon-icon-registrar.d.cts +1 -1
  200. package/dist/lib/cjs/setting-components/checkbox-component.cjs +5 -5
  201. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +5 -5
  202. package/dist/lib/cjs/setting-components/date-component.cjs +5 -5
  203. package/dist/lib/cjs/setting-components/date-time-component.cjs +5 -5
  204. package/dist/lib/cjs/setting-components/email-component.cjs +5 -5
  205. package/dist/lib/cjs/setting-components/file-component.cjs +5 -5
  206. package/dist/lib/cjs/setting-components/index.cjs +5 -5
  207. package/dist/lib/cjs/setting-components/month-component.cjs +6 -6
  208. package/dist/lib/cjs/setting-components/month-component.d.cts +2 -2
  209. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +5 -5
  210. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +5 -5
  211. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +5 -5
  212. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +5 -5
  213. package/dist/lib/cjs/setting-components/number-component.cjs +5 -5
  214. package/dist/lib/cjs/setting-components/password-component.cjs +5 -5
  215. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +5 -5
  216. package/dist/lib/cjs/setting-components/telephone-component.cjs +5 -5
  217. package/dist/lib/cjs/setting-components/text-based-component.cjs +6 -6
  218. package/dist/lib/cjs/setting-components/text-based-component.d.cts +3 -3
  219. package/dist/lib/cjs/setting-components/time-component.cjs +5 -5
  220. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +5 -5
  221. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +5 -5
  222. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +5 -5
  223. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +5 -5
  224. package/dist/lib/cjs/setting-components/typed-text-component.cjs +5 -5
  225. package/dist/lib/cjs/setting-components/url-component.cjs +5 -5
  226. package/dist/lib/cjs/setting-components/validator-component.cjs +5 -5
  227. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +6 -6
  228. package/dist/lib/cjs/setting-components/week-component.cjs +6 -6
  229. package/dist/lib/cjs/setting-components/week-component.d.cts +2 -2
  230. package/dist/lib/cjs/setting-ex.cjs +5 -5
  231. package/dist/lib/cjs/setting-group-ex.cjs +5 -5
  232. package/dist/lib/cjs/status-bar-item-registrar.cjs +6 -6
  233. package/dist/lib/cjs/status-bar-item-registrar.d.cts +1 -1
  234. package/dist/lib/cjs/templater.cjs +6 -6
  235. package/dist/lib/cjs/templater.d.cts +9 -9
  236. package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -5
  237. package/dist/lib/cjs/transformers/index.cjs +5 -5
  238. package/dist/lib/cjs/trusted-input.cjs +5 -5
  239. package/dist/lib/cjs/validation.cjs +6 -6
  240. package/dist/lib/cjs/validation.d.cts +1 -1
  241. package/dist/lib/cjs/vault-delete.cjs +5 -5
  242. package/dist/lib/cjs/vault-transaction.cjs +6 -6
  243. package/dist/lib/cjs/vault.cjs +5 -5
  244. package/dist/lib/cjs/view-registrar.cjs +6 -6
  245. package/dist/lib/cjs/view-registrar.d.cts +1 -1
  246. package/dist/lib/cjs/workspace.cjs +5 -5
  247. package/dist/lib/esm/__merged.d.mts +1 -1
  248. package/dist/lib/esm/__merged.mjs +3 -1
  249. package/dist/lib/esm/active-file-provider.d.mts +1 -1
  250. package/dist/lib/esm/active-file-provider.mjs +1 -1
  251. package/dist/lib/esm/attachment-path.mjs +1 -1
  252. package/dist/lib/esm/backlink-index.d.mts +1 -1
  253. package/dist/lib/esm/backlink-index.mjs +8 -14
  254. package/dist/lib/esm/bases-view-registrar.d.mts +1 -1
  255. package/dist/lib/esm/bases-view-registrar.mjs +1 -1
  256. package/dist/lib/esm/code-block-markdown-information.d.mts +9 -9
  257. package/dist/lib/esm/codemirror/state-field-spec.d.mts +6 -6
  258. package/dist/lib/esm/command-registrar.d.mts +2 -2
  259. package/dist/lib/esm/command-registrar.mjs +1 -1
  260. package/dist/lib/esm/community-plugins.mjs +1 -1
  261. package/dist/lib/esm/components/file-explorer-root-menu-component.mjs +8 -11
  262. package/dist/lib/esm/components/incremental-file-index-component.d.mts +16 -1
  263. package/dist/lib/esm/components/incremental-file-index-component.mjs +69 -5
  264. package/dist/lib/esm/components/plugin-notice-component.d.mts +3 -3
  265. package/dist/lib/esm/components/plugin-notice-component.mjs +1 -1
  266. package/dist/lib/esm/components/plugin-settings-component.d.mts +5 -5
  267. package/dist/lib/esm/components/plugin-settings-component.mjs +1 -1
  268. package/dist/lib/esm/components/rename-delete-handler-component.d.mts +10 -10
  269. package/dist/lib/esm/components/rename-delete-handler-component.mjs +1 -1
  270. package/dist/lib/esm/data-handler.d.mts +2 -2
  271. package/dist/lib/esm/data-handler.mjs +1 -1
  272. package/dist/lib/esm/data-stores/data-store-seeds.mjs +1 -1
  273. package/dist/lib/esm/data-stores/local-data-store.d.mts +9 -1
  274. package/dist/lib/esm/data-stores/local-data-store.mjs +16 -13
  275. package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
  276. package/dist/lib/esm/dataview.d.mts +6 -6
  277. package/dist/lib/esm/dataview.mjs +7 -7
  278. package/dist/lib/esm/desktop-trusted-input.d.mts +1 -1
  279. package/dist/lib/esm/desktop-trusted-input.mjs +1 -1
  280. package/dist/lib/esm/editor-extension-registrar.d.mts +1 -1
  281. package/dist/lib/esm/editor-extension-registrar.mjs +1 -1
  282. package/dist/lib/esm/editor-suggest-registrar.d.mts +1 -1
  283. package/dist/lib/esm/editor-suggest-registrar.mjs +1 -1
  284. package/dist/lib/esm/extensions-registrar.d.mts +1 -1
  285. package/dist/lib/esm/extensions-registrar.mjs +1 -1
  286. package/dist/lib/esm/file-change.d.mts +3 -3
  287. package/dist/lib/esm/file-change.mjs +1 -1
  288. package/dist/lib/esm/folder-note.d.mts +1 -1
  289. package/dist/lib/esm/folder-note.mjs +1 -1
  290. package/dist/lib/esm/frontmatter-link-cache-with-offsets.d.mts +2 -2
  291. package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +1 -1
  292. package/dist/lib/esm/frontmatter.d.mts +7 -7
  293. package/dist/lib/esm/frontmatter.mjs +1 -1
  294. package/dist/lib/esm/generated-during-build.mjs +2 -2
  295. package/dist/lib/esm/hover-link-source-registrar.d.mts +1 -1
  296. package/dist/lib/esm/hover-link-source-registrar.mjs +1 -1
  297. package/dist/lib/esm/i18n/custom-type-options.d.mts +4 -4
  298. package/dist/lib/esm/i18n/custom-type-options.mjs +1 -1
  299. package/dist/lib/esm/link.d.mts +49 -2
  300. package/dist/lib/esm/link.mjs +35 -10
  301. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +1 -1
  302. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +1 -1
  303. package/dist/lib/esm/markdown-post-processor-registrar.d.mts +1 -1
  304. package/dist/lib/esm/markdown-post-processor-registrar.mjs +1 -1
  305. package/dist/lib/esm/menu-event-registrar.d.mts +4 -4
  306. package/dist/lib/esm/metadata-cache.mjs +1 -1
  307. package/dist/lib/esm/mobile-trusted-input.mjs +1 -1
  308. package/dist/lib/esm/modals/minimizable-modal.mjs +1 -1
  309. package/dist/lib/esm/modals/modal-command-builder.d.mts +12 -12
  310. package/dist/lib/esm/modals/modal-command-builder.mjs +1 -1
  311. package/dist/lib/esm/modals/prompt.mjs +9 -9
  312. package/dist/lib/esm/notebook-navigator.d.mts +3 -3
  313. package/dist/lib/esm/notebook-navigator.mjs +1 -1
  314. package/dist/lib/esm/obsidian-lib-state.mjs +1 -1
  315. package/dist/lib/esm/obsidian-protocol-handler-registrar.d.mts +1 -1
  316. package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +1 -1
  317. package/dist/lib/esm/obsidian-word-characters.mjs +1 -1
  318. package/dist/lib/esm/parse-link.d.mts +2 -2
  319. package/dist/lib/esm/parse-link.mjs +1 -1
  320. package/dist/lib/esm/path-settings.mjs +1 -1
  321. package/dist/lib/esm/plugin/plugin-api.d.mts +2 -2
  322. package/dist/lib/esm/plugin/plugin-api.mjs +1 -1
  323. package/dist/lib/esm/plugin/plugin-context.mjs +1 -1
  324. package/dist/lib/esm/plugin/plugin-event-source.d.mts +1 -1
  325. package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -1
  326. package/dist/lib/esm/plugin/plugin-settings-tab.d.mts +3 -3
  327. package/dist/lib/esm/plugin/plugin-settings-tab.mjs +1 -1
  328. package/dist/lib/esm/plugin/plugin.mjs +1 -1
  329. package/dist/lib/esm/plugin/settings-migration-api.d.mts +1 -1
  330. package/dist/lib/esm/plugin/settings-migration-api.mjs +1 -1
  331. package/dist/lib/esm/plugin-cli-handler-registrar.d.mts +1 -1
  332. package/dist/lib/esm/plugin-cli-handler-registrar.mjs +1 -1
  333. package/dist/lib/esm/queue.mjs +1 -1
  334. package/dist/lib/esm/reference.d.mts +27 -7
  335. package/dist/lib/esm/reference.mjs +12 -1
  336. package/dist/lib/esm/resource-lock.mjs +1 -1
  337. package/dist/lib/esm/ribbon-icon-registrar.d.mts +1 -1
  338. package/dist/lib/esm/ribbon-icon-registrar.mjs +1 -1
  339. package/dist/lib/esm/setting-components/month-component.d.mts +2 -2
  340. package/dist/lib/esm/setting-components/month-component.mjs +1 -1
  341. package/dist/lib/esm/setting-components/text-based-component.d.mts +3 -3
  342. package/dist/lib/esm/setting-components/text-based-component.mjs +1 -1
  343. package/dist/lib/esm/setting-components/week-component.d.mts +2 -2
  344. package/dist/lib/esm/setting-components/week-component.mjs +1 -1
  345. package/dist/lib/esm/status-bar-item-registrar.d.mts +1 -1
  346. package/dist/lib/esm/status-bar-item-registrar.mjs +1 -1
  347. package/dist/lib/esm/templater.d.mts +9 -9
  348. package/dist/lib/esm/templater.mjs +1 -1
  349. package/dist/lib/esm/validation.d.mts +1 -1
  350. package/dist/lib/esm/validation.mjs +1 -1
  351. package/dist/lib/esm/vault-transaction.mjs +1 -1
  352. package/dist/lib/esm/view-registrar.d.mts +1 -1
  353. package/dist/lib/esm/view-registrar.mjs +1 -1
  354. package/dist/styles.css +2 -2
  355. package/package.json +6 -3
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -83,4 +83,4 @@ var __copyProps = (to, from, except, desc) => {
83
83
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
84
84
  var value_component_with_change_tracking_exports = {};
85
85
  module.exports = __toCommonJS(value_component_with_change_tracking_exports);
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvdmFsdWUtY29tcG9uZW50LXdpdGgtY2hhbmdlLXRyYWNraW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIHR5cGUgdGhhdCBleHRlbmRzIFZhbHVlQ29tcG9uZW50IHRvIGFsbG93IGZvciBjaGFuZ2UgdHJhY2tpbmcuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVyZmFjZS1vbmx5IG1vZHVsZTsgbm8gcnVudGltZSBjb2RlIHRvIHRlc3QuICovXG5cbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQSBWYWx1ZUNvbXBvbmVudCB0aGF0IGNhbiB0cmFjayBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICBvbkNoYW5nZTogKGNhbGxiYWNrOiAobmV3VmFsdWU6IFQpID0+IHZvaWQpID0+IHRoaXM7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTsiLCJuYW1lcyI6W119
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvdmFsdWUtY29tcG9uZW50LXdpdGgtY2hhbmdlLXRyYWNraW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyBhIHR5cGUgdGhhdCBleHRlbmRzIFZhbHVlQ29tcG9uZW50IHRvIGFsbG93IGZvciBjaGFuZ2UgdHJhY2tpbmcuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVyZmFjZS1vbmx5IG1vZHVsZTsgbm8gcnVudGltZSBjb2RlIHRvIHRlc3QuICovXG5cbmltcG9ydCB0eXBlIHsgVmFsdWVDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQSBWYWx1ZUNvbXBvbmVudCB0aGF0IGNhbiB0cmFjayBjaGFuZ2VzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVDb21wb25lbnRXaXRoQ2hhbmdlVHJhY2tpbmc8VD4gZXh0ZW5kcyBWYWx1ZUNvbXBvbmVudDxUPiB7XG4gIC8qKlxuICAgKiBTZXRzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBjb21wb25lbnQgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyAtLSBDaGFuZ2UgdHJhY2tpbmcgd3JhcHMgYW5kIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgY2FsbGJhY2sgcmVnaXN0cmF0aW9uIG1ldGhvZC5cbiAgb25DaGFuZ2U6IChjYWxsYmFjazogKG5ld1ZhbHVlOiBUKSA9PiB2b2lkKSA9PiB0aGlzO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7IiwibmFtZXMiOltdfQ==
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -167,4 +167,4 @@ class WeekComponent extends import_typed_range_text_component.TypedRangeTextComp
167
167
  0 && (module.exports = {
168
168
  WeekComponent
169
169
  });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvd2Vlay1jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgd2Vlay5cbiAqL1xuXG5pbXBvcnQgeyBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IG1vbWVudCBhcyBtb21lbnRfIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBpbml0UGx1Z2luQ29udGV4dGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL3NldHRpbmctZXgudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWQtcmFuZ2UtdGV4dC1jb21wb25lbnQudHMnO1xuXG5jb25zdCBtb21lbnQgPSBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AobW9tZW50Xyk7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVktW1ddV1cnO1xuXG4vKipcbiAqIEFuIElTTyA4NjAxIHdlZWsgZGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJc29XZWVrIHtcbiAgLyoqXG4gICAqIEFuIElTTyA4NjAxIHdlZWsgbnVtYmVyICgxLTUzKS5cbiAgICovXG4gIHdlZWtOdW1iZXI6IG51bWJlcjtcblxuICAvKipcbiAgICogQSB5ZWFyICgxLTk5OTkpLlxuICAgKi9cbiAgeWVhcjogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgV2Vlay5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFdlZWt9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL3VucGtnLmNvbS9AbW5hb3Vtb3Yvb2JzaWRpYW4tbGliL2Rpc3Qvc3R5bGVzLmNzc30uXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWVrQ29tcG9uZW50IGV4dGVuZHMgVHlwZWRSYW5nZVRleHRDb21wb25lbnQ8SXNvV2Vlaz4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBXZWVrIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgc3VwZXIoe1xuICAgICAgY29udGFpbmVyRWwsXG4gICAgICBjc3NDbGFzczogQ3NzQ2xhc3MuV2Vla0NvbXBvbmVudCxcbiAgICAgIHR5cGU6ICd3ZWVrJ1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgV2Vlay5cbiAgICpcbiAgICogQHBhcmFtICRzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlRnJvbVN0cmluZygkc3RyaW5nOiBzdHJpbmcpOiBJc29XZWVrIHtcbiAgICBjb25zdCBwYXJzZWQgPSBtb21lbnQoJHN0cmluZywgREFURV9GT1JNQVQpO1xuXG4gICAgaWYgKCFwYXJzZWQuaXNWYWxpZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgd2VlaycpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB3ZWVrTnVtYmVyOiBwYXJzZWQuaXNvV2VlaygpLFxuICAgICAgeWVhcjogcGFyc2VkLnllYXIoKVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSB3ZWVrIHRvIGEgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgd2VlayB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlVG9TdHJpbmcodmFsdWU6IElzb1dlZWspOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKS55ZWFyKHZhbHVlLnllYXIpLmlzb1dlZWsodmFsdWUud2Vla051bWJlcik7XG4gICAgcmV0dXJuIGRhdGUuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsMEJBQTRDO0FBQzVDLHNCQUFrQztBQU9sQyx1QkFBeUI7QUFDekIsd0NBQXdDO0FBRXhDLE1BQU0sYUFBUyxpREFBNEIsZ0JBQUFBLE1BQU87QUFFbEQsTUFBTSxjQUFjO0FBMEJiLE1BQU0sc0JBQXNCLDBEQUFpQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0zRCxZQUFZLGFBQTBCO0FBQzNDLFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQSxVQUFVLDBCQUFTO0FBQUEsTUFDbkIsTUFBTTtBQUFBLElBQ1IsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixnQkFBZ0IsU0FBMEI7QUFDeEQsVUFBTSxTQUFTLE9BQU8sU0FBUyxXQUFXO0FBRTFDLFFBQUksQ0FBQyxPQUFPLFFBQVEsR0FBRztBQUNyQixZQUFNLElBQUksTUFBTSxjQUFjO0FBQUEsSUFDaEM7QUFFQSxXQUFPO0FBQUEsTUFDTCxZQUFZLE9BQU8sUUFBUTtBQUFBLE1BQzNCLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsY0FBYyxPQUF3QjtBQUNwRCxVQUFNLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLEVBQUUsUUFBUSxNQUFNLFVBQVU7QUFDL0QsV0FBTyxLQUFLLE9BQU8sV0FBVztBQUFBLEVBQ2hDO0FBQ0Y7IiwibmFtZXMiOlsibW9tZW50XyJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvd2Vlay1jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgd2Vlay5cbiAqL1xuXG5pbXBvcnQgeyBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IG1vbWVudCBhcyBtb21lbnRfIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIC0tIFdlIG5lZWQgdG8gaW1wb3J0IGBpbml0UGx1Z2luQ29udGV4dGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IGluaXRQbHVnaW5Db250ZXh0IH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uL3NldHRpbmctZXgudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWQtcmFuZ2UtdGV4dC1jb21wb25lbnQudHMnO1xuXG5jb25zdCBtb21lbnQgPSBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AobW9tZW50Xyk7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVktW1ddV1cnO1xuXG4vKipcbiAqIEFuIElTTyA4NjAxIHdlZWsgZGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJc29XZWVrIHtcbiAgLyoqXG4gICAqIEFuIElTTyA4NjAxIHdlZWsgbnVtYmVyICgxLTUzKS5cbiAgICovXG4gIHJlYWRvbmx5IHdlZWtOdW1iZXI6IG51bWJlcjtcblxuICAvKipcbiAgICogQSB5ZWFyICgxLTk5OTkpLlxuICAgKi9cbiAgcmVhZG9ubHkgeWVhcjogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgYW5kIGVkaXRzIGEgV2Vlay5cbiAqXG4gKiBZb3UgY2FuIGFkZCB0aGlzIGNvbXBvbmVudCB1c2luZyB7QGxpbmsgU2V0dGluZ0V4LmFkZFdlZWt9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL3VucGtnLmNvbS9AbW5hb3Vtb3Yvb2JzaWRpYW4tbGliL2Rpc3Qvc3R5bGVzLmNzc30uXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWVrQ29tcG9uZW50IGV4dGVuZHMgVHlwZWRSYW5nZVRleHRDb21wb25lbnQ8SXNvV2Vlaz4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBXZWVrIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgc3VwZXIoe1xuICAgICAgY29udGFpbmVyRWwsXG4gICAgICBjc3NDbGFzczogQ3NzQ2xhc3MuV2Vla0NvbXBvbmVudCxcbiAgICAgIHR5cGU6ICd3ZWVrJ1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgV2Vlay5cbiAgICpcbiAgICogQHBhcmFtICRzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlRnJvbVN0cmluZygkc3RyaW5nOiBzdHJpbmcpOiBJc29XZWVrIHtcbiAgICBjb25zdCBwYXJzZWQgPSBtb21lbnQoJHN0cmluZywgREFURV9GT1JNQVQpO1xuXG4gICAgaWYgKCFwYXJzZWQuaXNWYWxpZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgd2VlaycpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB3ZWVrTnVtYmVyOiBwYXJzZWQuaXNvV2VlaygpLFxuICAgICAgeWVhcjogcGFyc2VkLnllYXIoKVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSB3ZWVrIHRvIGEgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgd2VlayB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlVG9TdHJpbmcodmFsdWU6IElzb1dlZWspOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKS55ZWFyKHZhbHVlLnllYXIpLmlzb1dlZWsodmFsdWUud2Vla051bWJlcik7XG4gICAgcmV0dXJuIGRhdGUuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsMEJBQTRDO0FBQzVDLHNCQUFrQztBQU9sQyx1QkFBeUI7QUFDekIsd0NBQXdDO0FBRXhDLE1BQU0sYUFBUyxpREFBNEIsZ0JBQUFBLE1BQU87QUFFbEQsTUFBTSxjQUFjO0FBMEJiLE1BQU0sc0JBQXNCLDBEQUFpQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU0zRCxZQUFZLGFBQTBCO0FBQzNDLFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQSxVQUFVLDBCQUFTO0FBQUEsTUFDbkIsTUFBTTtBQUFBLElBQ1IsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixnQkFBZ0IsU0FBMEI7QUFDeEQsVUFBTSxTQUFTLE9BQU8sU0FBUyxXQUFXO0FBRTFDLFFBQUksQ0FBQyxPQUFPLFFBQVEsR0FBRztBQUNyQixZQUFNLElBQUksTUFBTSxjQUFjO0FBQUEsSUFDaEM7QUFFQSxXQUFPO0FBQUEsTUFDTCxZQUFZLE9BQU8sUUFBUTtBQUFBLE1BQzNCLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsY0FBYyxPQUF3QjtBQUNwRCxVQUFNLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLEVBQUUsUUFBUSxNQUFNLFVBQVU7QUFDL0QsV0FBTyxLQUFLLE9BQU8sV0FBVztBQUFBLEVBQ2hDO0FBQ0Y7IiwibmFtZXMiOlsibW9tZW50XyJdfQ==
@@ -13,11 +13,11 @@ export interface IsoWeek {
13
13
  /**
14
14
  * An ISO 8601 week number (1-53).
15
15
  */
16
- weekNumber: number;
16
+ readonly weekNumber: number;
17
17
  /**
18
18
  * A year (1-9999).
19
19
  */
20
- year: number;
20
+ readonly year: number;
21
21
  }
22
22
  /**
23
23
  * A component that displays and edits a Week.
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -141,4 +141,4 @@ class PluginStatusBarItemRegistrar {
141
141
  0 && (module.exports = {
142
142
  PluginStatusBarItemRegistrar
143
143
  });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTdGF0dXMgYmFyIGl0ZW0gcmVnaXN0cmFycy5cbiAqL1xuXG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogU3RhdHVzIGJhciBpdGVtIHJlZ2lzdHJhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0dXNCYXJJdGVtUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIHN0YXR1cyBiYXIgaXRlbS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlZ2lzdGVyZWQgc3RhdHVzIGJhciBpdGVtIGVsZW1lbnQuXG4gICAqL1xuICBhZGRTdGF0dXNCYXJJdGVtOiAoKSA9PiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBTdGF0dXMgYmFyIGl0ZW0gcmVnaXN0cmFyIGluIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpblN0YXR1c0Jhckl0ZW1SZWdpc3RyYXIgaW1wbGVtZW50cyBTdGF0dXNCYXJJdGVtUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5TdGF0dXNCYXJJdGVtUmVnaXN0cmFyfSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBzdGF0dXMgYmFyIGl0ZW0uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWdpc3RlcmVkIHN0YXR1cyBiYXIgaXRlbSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFkZFN0YXR1c0Jhckl0ZW0oKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbi5hZGRTdGF0dXNCYXJJdGVtKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHNCQUF1QjtBQWlCaEIsTUFBTSw2QkFBK0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbkUsWUFBK0IsUUFBZ0I7QUFBaEI7QUFBQSxFQUFpQjtBQUFBLEVBQWpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTy9CLG1CQUFnQztBQUNyQyxXQUFPLEtBQUssT0FBTyxpQkFBaUI7QUFBQSxFQUN0QztBQUNGOyIsIm5hbWVzIjpbXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTdGF0dXMgYmFyIGl0ZW0gcmVnaXN0cmFycy5cbiAqL1xuXG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogU3RhdHVzIGJhciBpdGVtIHJlZ2lzdHJhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0dXNCYXJJdGVtUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIHN0YXR1cyBiYXIgaXRlbS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlZ2lzdGVyZWQgc3RhdHVzIGJhciBpdGVtIGVsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBhZGRTdGF0dXNCYXJJdGVtOiAoKSA9PiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBTdGF0dXMgYmFyIGl0ZW0gcmVnaXN0cmFyIGluIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpblN0YXR1c0Jhckl0ZW1SZWdpc3RyYXIgaW1wbGVtZW50cyBTdGF0dXNCYXJJdGVtUmVnaXN0cmFyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBQbHVnaW5TdGF0dXNCYXJJdGVtUmVnaXN0cmFyfSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBPYnNpZGlhbiBwbHVnaW4gaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBzdGF0dXMgYmFyIGl0ZW0uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWdpc3RlcmVkIHN0YXR1cyBiYXIgaXRlbSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFkZFN0YXR1c0Jhckl0ZW0oKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbi5hZGRTdGF0dXNCYXJJdGVtKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHNCQUF1QjtBQWlCaEIsTUFBTSw2QkFBK0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbkUsWUFBK0IsUUFBZ0I7QUFBaEI7QUFBQSxFQUFpQjtBQUFBLEVBQWpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTy9CLG1CQUFnQztBQUNyQyxXQUFPLEtBQUssT0FBTyxpQkFBaUI7QUFBQSxFQUN0QztBQUNGOyIsIm5hbWVzIjpbXX0=
@@ -15,7 +15,7 @@ export interface StatusBarItemRegistrar {
15
15
  *
16
16
  * @returns The registered status bar item element.
17
17
  */
18
- addStatusBarItem: () => HTMLElement;
18
+ readonly addStatusBarItem: () => HTMLElement;
19
19
  }
20
20
  /**
21
21
  * Status bar item registrar in an Obsidian plugin.
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -231,4 +231,4 @@ function isTemplaterApi(value) {
231
231
  requireTemplaterApi,
232
232
  resolveTemplaterApi
233
233
  });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzbGljZSBvZiBgVGVtcGxhdGVyYCdzIElOVEVSTkFMIEFQSSB0aGlzIGxpYnJhcnkgdGFsa3MgdG8sIGFuZCB0aGUgcnVudGltZSBuYXJyb3dpbmcgdGhhdCBnZXRzIGhvbGRcbiAqIG9mIGl0LlxuICpcbiAqICoqYFRlbXBsYXRlcmAgcHVibGlzaGVzIG5vIEFQSS4qKiBSZW5kZXJpbmcgYSB0ZW1wbGF0ZSBhZ2FpbnN0IGEgZmlsZSBhbmQgZ2V0dGluZyB0aGUgcmVzdWx0aW5nIHN0cmluZ1xuICogYmFjayBpcyBvbmx5IHJlYWNoYWJsZSB0aHJvdWdoIHVuZG9jdW1lbnRlZCBpbnRlcm5hbHMgaGFuZ2luZyBvZmZcbiAqIGBhcHAucGx1Z2lucy5nZXRQbHVnaW4oJ3RlbXBsYXRlci1vYnNpZGlhbicpLnRlbXBsYXRlcmAg4oCUIGBjcmVhdGVfcnVubmluZ19jb25maWdgLFxuICogYGZ1bmN0aW9uc19nZW5lcmF0b3IuZ2VuZXJhdGVfb2JqZWN0YCwgYHJlYWRfYW5kX3BhcnNlX3RlbXBsYXRlYCwgYW5kIGEgYFJ1bk1vZGVgIGVudW0uIEV2ZXJ5IHBsdWdpblxuICogdGhhdCB3YW50cyBpdCByZS1kZXJpdmVzIHRoZSBzYW1lIHJldmVyc2UgZW5naW5lZXJpbmcsIHdoaWNoIGlzIHdoeSBpdCBsaXZlcyBoZXJlIGluc3RlYWQuXG4gKlxuICogKipUaGlzIG1vZHVsZSBpcyBleHBsaWNpdGx5IEJFU1QtRUZGT1JULioqIE5vdGhpbmcgaXQgYmluZHMgdG8gaXMgZG9jdW1lbnRlZCBvciBjb3ZlcmVkIGJ5IGBUZW1wbGF0ZXJgJ3NcbiAqIHNlbWFudGljIHZlcnNpb25pbmcsIHNvIGEgYFRlbXBsYXRlcmAgcmVsZWFzZSBtYXkgcmVuYW1lIG9yIHJlc2hhcGUgYW55IG9mIGl0IHdpdGhvdXQgd2FybmluZy4gVGhlIHNoYXBlc1xuICogYmVsb3cgd2VyZSByZWFkIGZyb20gYFRlbXBsYXRlcmAgYDIuMjQuM2AuIFR3byBkZWxpYmVyYXRlIGNvbnNlcXVlbmNlcyBmb2xsb3c6XG4gKlxuICogLSB7QGxpbmsgcmVzb2x2ZVRlbXBsYXRlckFwaX0gcmV0dXJucyBgbnVsbGAg4oCUIGEgYFRlbXBsYXRlcmAgdG9vIG9sZCwgdG9vIG5ldyBvciB0b28gYnJva2VuIHRvIHRhbGsgdG9cbiAqICAgcmVhZHMgYXMgXCJub3QgdGhlcmVcIiBhbmQgdGhlIGludGVncmF0aW9uIHN0YXlzIGRvcm1hbnQuXG4gKiAtIHtAbGluayByZXF1aXJlVGVtcGxhdGVyQXBpfSB0aHJvd3MgYSB7QGxpbmsgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvcn0gdGhhdCBOQU1FUyB0aGUgcGx1Z2luIGFuZCB0aGVcbiAqICAgcmVhc29uLCByYXRoZXIgdGhhbiBsZXR0aW5nIGEgYENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkYCBzdXJmYWNlIGZyb20gc29tZXdoZXJlIGluc2lkZVxuICogICBgVGVtcGxhdGVyYC5cbiAqXG4gKiBUaGUgdHlwZXMgYXJlIERFQ0xBUkVEIEhFUkUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQsIGFuZCBuYXJyb3dlZCB0byB0aGUgbWVtYmVycyBhY3R1YWxseSBjYWxsZWQ6IGBUZW1wbGF0ZXJgXG4gKiBzaGlwcyBubyBucG0gdHlwZXMgcGFja2FnZSwgYW5kIGRlcGVuZGluZyBvbiBpdCB3b3VsZCB0dXJuIGFuIG9wdGlvbmFsIGludGVncmF0aW9uIGludG8gYSBidWlsZC10aW1lXG4gKiBkZXBlbmRlbmN5LlxuICpcbiAqIFRoZSBzZWNvbmQgdGhpbmcgdGhpcyBtb2R1bGUgc3VwcGxpZXMgaXMgYW4gYWN0aXZlLWZpbGUgYW5zd2VyLiBXaGlsZSBhIHRlbXBsYXRlIHJlbmRlcnMsXG4gKiBgYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKClgIHN0aWxsIHBvaW50cyBhdCB3aGF0ZXZlciB0aGUgdXNlciBoYXBwZW5zIHRvIGhhdmUgb3BlbiDigJQgTk9UIGF0IHRoZSBmaWxlXG4gKiB0aGUgdGVtcGxhdGUgaXMgYmVpbmcgcmVuZGVyZWQgZm9yIOKAlCBzbyBhIHBsdWdpbidzIG93biBoZWxwZXIgY2FsbGVkIGZyb20gaW5zaWRlIGEgdGVtcGxhdGUgcmVzb2x2ZXNcbiAqIGxpbmtzIGFnYWluc3QgdGhlIHdyb25nIG5vdGUuIHtAbGluayBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXJ9IGFuc3dlcnMgd2l0aCB0aGUgcmVuZGVyIHRhcmdldCBmb3IgdGhlXG4gKiBkdXJhdGlvbiBvZiBhIHtAbGluayBwYXJzZVRlbXBsYXRlfSBjYWxsIGFuZCBmYWxscyBiYWNrIHRvIHRoZSB3b3Jrc3BhY2Ugb3RoZXJ3aXNlLiBOb3RlIHRoaXMgaXMgYWJvdXRcbiAqIHRoZSBDT05TVU1FUidzIGhlbHBlcnM6IGBUZW1wbGF0ZXJgJ3Mgb3duIGB0cC5maWxlLipgIGFscmVhZHkgcmVzb2x2ZXMgdGhyb3VnaCB0aGUgcnVubmluZyBjb25maWcnc1xuICogYHRhcmdldF9maWxlYCBhbmQgbmVlZHMgbm8gaGVscC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcblxuaW1wb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5pbXBvcnQgeyBnZXRGaWxlIH0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldFRlbXBsYXRlckZ1bmN0aW9uc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VGVtcGxhdGVyRnVuY3Rpb25zUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXR1cm4gYFRlbXBsYXRlcmAncyBgY3VycmVudF9mdW5jdGlvbnNfb2JqZWN0YCB3aGVuIGl0IGFscmVhZHkgaGFzIG9uZSwgaW5zdGVhZCBvZlxuICAgKiBnZW5lcmF0aW5nIGEgZnJlc2ggb2JqZWN0LiBSZXVzZSBpcyBjaGVhcGVyIGFuZCBnaXZlcyB0aGUgb2JqZWN0IG9mIHRoZSByZW5kZXIgY3VycmVudGx5IGluIGZsaWdodDtcbiAgICogcGFzcyBgZmFsc2VgIHRvIGZvcmNlIGEgbmV3IG9uZSBidWlsdCBmb3IgYHRhcmdldFBhdGhPckZpbGVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJldXNlQ3VycmVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIHRoZSBnZW5lcmF0ZWQgZnVuY3Rpb25zIHNob3VsZCByZXNvbHZlIGFnYWluc3Qg4oCUIHdoYXQgYHRwLmZpbGUuKmAgcmVwb3J0cy5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBhcnNlVGVtcGxhdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlVGVtcGxhdGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0aGUgdGVtcGxhdGUgaXMgcmVuZGVyZWQgRk9SLiBJdCBpcyB3aGF0IGB0cC5maWxlLipgIHJlc29sdmVzIHRvIGluc2lkZSB0aGUgdGVtcGxhdGUsIGFuZFxuICAgKiB3aGF0IHtAbGluayBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXJ9IHJlcG9ydHMgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FsbC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBmaWxlIHRvIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlUGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBgVGVtcGxhdGVyYCdzIGludGVybmFsIEFQSSBvYmplY3QsIG5hcnJvd2VkIHRvIHRoZSBtZW1iZXJzIHRoaXMgbGlicmFyeSBjYWxscy5cbiAqXG4gKiBJdHMgbWVtYmVycyBhcmUgYHNuYWtlX2Nhc2VgIGJlY2F1c2UgYFRlbXBsYXRlcmAncyBhcmU7IHRoZXkgYXJlIHRyYW5zY3JpYmVkIHJhdGhlciB0aGFuIHJlbmFtZWQgc28gdGhlXG4gKiBzaGFwZSBjYW4gYmUgY2hlY2tlZCBhZ2FpbnN0IGBUZW1wbGF0ZXJgJ3Mgc291cmNlIGF0IGEgZ2xhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlckFwaSB7XG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIHtAbGluayBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnfSB0aGF0IGRlc2NyaWJlcyBvbmUgcmVuZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGVGaWxlIC0gVGhlIHRlbXBsYXRlIGJlaW5nIHJlbmRlcmVkLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZXJlIGlzIG5vbmUgKGFzIHdoZW4gb25seVxuICAgKiB0aGUgZnVuY3Rpb25zIG9iamVjdCBpcyB3YW50ZWQpLlxuICAgKiBAcGFyYW0gdGFyZ2V0RmlsZSAtIFRoZSBmaWxlIHRoZSByZW5kZXIgaXMgZm9yLlxuICAgKiBAcGFyYW0gcnVuTW9kZSAtIFdoaWNoIHtAbGluayBUZW1wbGF0ZXJSdW5Nb2RlfSB0aGUgcmVuZGVyIGlzLlxuICAgKiBAcmV0dXJucyBUaGUgcnVubmluZyBjb25maWcuXG4gICAqL1xuICBjcmVhdGVfcnVubmluZ19jb25maWc6ICh0ZW1wbGF0ZUZpbGU6IFRGaWxlIHwgdW5kZWZpbmVkLCB0YXJnZXRGaWxlOiBURmlsZSwgcnVuTW9kZTogVGVtcGxhdGVyUnVuTW9kZSkgPT4gVGVtcGxhdGVyUnVubmluZ0NvbmZpZztcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9ucyBvYmplY3QgKGB0cGApIG9mIHRoZSByZW5kZXIgY3VycmVudGx5IGluIGZsaWdodCwgd2hlbiB0aGVyZSBpcyBvbmUuXG4gICAqL1xuICBjdXJyZW50X2Z1bmN0aW9uc19vYmplY3Q/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgZnVuY3Rpb25zIG9iamVjdCAoYHRwYCkgYSB0ZW1wbGF0ZSBpcyBldmFsdWF0ZWQgYWdhaW5zdC5cbiAgICovXG4gIGZ1bmN0aW9uc19nZW5lcmF0b3I6IFRlbXBsYXRlckZ1bmN0aW9uc0dlbmVyYXRvcjtcblxuICAvKipcbiAgICogUmVhZHMgdGhlIGNvbmZpZydzIGB0ZW1wbGF0ZV9maWxlYCBhbmQgcmVuZGVycyBpdCwgcmV0dXJuaW5nIHRoZSByZXN1bHRpbmcgdGV4dC5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSB7QGxpbmsgVGVtcGxhdGVyUnVubmluZ0NvbmZpZ30gZGVzY3JpYmluZyB0aGUgcmVuZGVyLiBgVGVtcGxhdGVyYCB0aHJvd3Mgd2hlbiBpdHNcbiAgICogYHRlbXBsYXRlX2ZpbGVgIGlzIG5vdCBhIGBURmlsZWAuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgcmVuZGVyZWQgdGV4dC5cbiAgICovXG4gIHJlYWRfYW5kX3BhcnNlX3RlbXBsYXRlOiAoY29uZmlnOiBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKlxuICogVGhlIGBmdW5jdGlvbnNfZ2VuZXJhdG9yYCBoYWxmIG9mIHtAbGluayBUZW1wbGF0ZXJBcGl9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlckZ1bmN0aW9uc0dlbmVyYXRvciB7XG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGZ1bmN0aW9ucyBvYmplY3QgKGB0cGApIGZvciBhIHJ1bm5pbmcgY29uZmlnLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIHtAbGluayBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnfSB0byBidWlsZCBmb3IuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgZnVuY3Rpb25zIG9iamVjdC5cbiAgICovXG4gIGdlbmVyYXRlX29iamVjdDogKGNvbmZpZzogVGVtcGxhdGVyUnVubmluZ0NvbmZpZykgPT4gUHJvbWlzZTxvYmplY3Q+O1xufVxuXG4vKipcbiAqIE9uZSBgVGVtcGxhdGVyYCByZW5kZXIsIGFzIGBUZW1wbGF0ZXJgJ3MgYGNyZWF0ZV9ydW5uaW5nX2NvbmZpZ2AgZGVzY3JpYmVzIGl0LlxuICpcbiAqIEl0cyBtZW1iZXJzIGFyZSBgc25ha2VfY2FzZWAgYmVjYXVzZSBgVGVtcGxhdGVyYCdzIGFyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIGBUZW1wbGF0ZXJgIGNvbnNpZGVycyBhY3RpdmUuIGBUZW1wbGF0ZXJgIGZpbGxzIHRoaXMgaW4gaXRzZWxmIGZyb21cbiAgICogYHdvcmtzcGFjZS5hY3RpdmVFZGl0b3I/LmZpbGUgPz8gd29ya3NwYWNlLmdldEFjdGl2ZUZpbGUoKWA7IGl0IGlzIG9wdGlvbmFsIGhlcmUgYmVjYXVzZSBhXG4gICAqIGhhbmQtYnVpbHQgY29uZmlnIG1heSBvbWl0IGl0LlxuICAgKi9cbiAgYWN0aXZlX2ZpbGU/OiBudWxsIHwgVEZpbGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoaWNoIHtAbGluayBUZW1wbGF0ZXJSdW5Nb2RlfSB0aGUgcmVuZGVyIGlzLlxuICAgKi9cbiAgcnVuX21vZGU6IFRlbXBsYXRlclJ1bk1vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIHRoZSByZW5kZXIgaXMgZm9yIOKAlCB3aGF0IGB0cC5maWxlLipgIHJlc29sdmVzIHRvLlxuICAgKi9cbiAgdGFyZ2V0X2ZpbGU6IFRGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgYmVpbmcgcmVuZGVyZWQsIHdoZW4gdGhlcmUgaXMgb25lLlxuICAgKi9cbiAgdGVtcGxhdGVfZmlsZT86IFRGaWxlIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIGBUZW1wbGF0ZXJgJ3MgcGx1Z2luIGlkLCBhcyBpdHMgbWFuaWZlc3QgZGVjbGFyZXMgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBURU1QTEFURVJfUExVR0lOX0lEID0gJ3RlbXBsYXRlci1vYnNpZGlhbic7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gVGhlc2UgYXJlIGBUZW1wbGF0ZXJgJ3Mgb3duIGBSdW5Nb2RlYCB2YWx1ZXMsIHRyYW5zY3JpYmVkLiAqL1xuLyoqXG4gKiBgVGVtcGxhdGVyYCdzIGBSdW5Nb2RlYCBlbnVtLCB3aGljaCBzYXlzIHdoYXQga2luZCBvZiByZW5kZXIgYSB7QGxpbmsgVGVtcGxhdGVyUnVubmluZ0NvbmZpZ30gZGVzY3JpYmVzLlxuICpcbiAqIFRoZSBudW1lcmljIHZhbHVlcyBBUkUgYFRlbXBsYXRlcmAncywgYW5kIHRoZSBtZW1iZXJzIGFyZSBsaXN0ZWQgaW4gaXRzIGRlY2xhcmF0aW9uIG9yZGVyIHNvIHRoZSB0d28gY2FuXG4gKiBiZSBjb21wYXJlZCBsaW5lIGZvciBsaW5lLiBUaGV5IGFyZSB3cml0dGVuIG91dCBleHBsaWNpdGx5IGFsbCB0aGUgc2FtZSwgYmVjYXVzZSB0aGV5IGNyb3NzIGludG9cbiAqIGBUZW1wbGF0ZXJgIGFzIGludGVnZXJzIOKAlCBuZXZlciByZW51bWJlciB0aGVtLlxuICovXG5leHBvcnQgZW51bSBUZW1wbGF0ZXJSdW5Nb2RlIHtcbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgdGVtcGxhdGUgaW50byBhIG5ld2x5IGNyZWF0ZWQgZmlsZS5cbiAgICovXG4gIENyZWF0ZU5ld0Zyb21UZW1wbGF0ZSA9IDAsXG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgdGVtcGxhdGUgYW5kIGFwcGVuZCB0aGUgcmVzdWx0IHRvIHRoZSBhY3RpdmUgZmlsZS5cbiAgICovXG4gIEFwcGVuZEFjdGl2ZUZpbGUgPSAxLFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHRlbXBsYXRlIGFuZCBvdmVyd3JpdGUgYSBnaXZlbiBmaWxlIHdpdGggdGhlIHJlc3VsdC5cbiAgICovXG4gIE92ZXJ3cml0ZUZpbGUgPSAyLFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHRlbXBsYXRlIGFuZCBvdmVyd3JpdGUgdGhlIGFjdGl2ZSBmaWxlIHdpdGggdGhlIHJlc3VsdC5cbiAgICovXG4gIE92ZXJ3cml0ZUFjdGl2ZUZpbGUgPSAzLFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHRlbXBsYXRlIG9uIGRlbWFuZCwgZm9yIGEgY2FsbGVyIHRoYXQgd2FudHMgdGhlIHJlc3VsdGluZyB0ZXh0IHJhdGhlciB0aGFuIGEgZmlsZVxuICAgKiB3cml0dGVuLiBUaGlzIGlzIHdoYXQge0BsaW5rIHBhcnNlVGVtcGxhdGV9IHVzZXMuXG4gICAqL1xuICBEeW5hbWljUHJvY2Vzc29yID0gNCxcblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0ZW1wbGF0ZSBhcyBhIHN0YXJ0dXAgdGVtcGxhdGUuIHtAbGluayBnZXRUZW1wbGF0ZXJGdW5jdGlvbnN9IHVzZXMgaXQgZm9yIHRoZSB0aHJvd2F3YXlcbiAgICogY29uZmlnIGl0IGJ1aWxkcywgYmVjYXVzZSB0aGF0IGNvbmZpZyByZW5kZXJzIG5vdGhpbmcuXG4gICAqL1xuICBTdGFydHVwVGVtcGxhdGUgPSA1XG59XG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gVGhlc2UgYXJlIGBUZW1wbGF0ZXJgJ3Mgb3duIGBSdW5Nb2RlYCB2YWx1ZXMsIHRyYW5zY3JpYmVkLiAqL1xuXG4vKipcbiAqIFdoeSBgVGVtcGxhdGVyYCdzIGludGVybmFsIEFQSSBjb3VsZCBub3QgYmUgaGFuZGVkIG92ZXIuXG4gKi9cbmV4cG9ydCBlbnVtIFRlbXBsYXRlclVuYXZhaWxhYmlsaXR5UmVhc29uIHtcbiAgLyoqXG4gICAqIGBUZW1wbGF0ZXJgIGlzIG5vdCBpbnN0YWxsZWQsIG9yIGlzIGluc3RhbGxlZCBidXQgZGlzYWJsZWQuIE9ic2lkaWFuJ3MgYGdldFBsdWdpbmAgY2Fubm90IHRlbGwgdGhlIHR3b1xuICAgKiBhcGFydCDigJQgaXQgcmV0dXJucyBub3RoaW5nIGVpdGhlciB3YXkuXG4gICAqL1xuICBOb3RMb2FkZWQgPSAnbm90TG9hZGVkJyxcblxuICAvKipcbiAgICogYFRlbXBsYXRlcmAgaXMgbG9hZGVkLCBidXQgZG9lcyBub3QgZXhwb3NlIHRoZSBpbnRlcm5hbHMgdGhpcyBsaWJyYXJ5IGNhbGxzIOKAlCBpdCBpcyB0b28gb2xkLCB0b28gbmV3LFxuICAgKiBvciBoYXMgYmVlbiByZXNoYXBlZC5cbiAgICovXG4gIFNoYXBlQ2hhbmdlZCA9ICdzaGFwZUNoYW5nZWQnXG59XG5cbi8qKlxuICogQWN0aXZlLWZpbGUgcHJvdmlkZXIgdGhhdCBhbnN3ZXJzIHdpdGggdGhlIGZpbGUgYSB7QGxpbmsgcGFyc2VUZW1wbGF0ZX0gcmVuZGVyIGlzIGN1cnJlbnRseSBmb3IsXG4gKiBmYWxsaW5nIGJhY2sgdG8gdGhlIHdvcmtzcGFjZSdzIGFjdGl2ZSBmaWxlIHdoZW4gbm8gcmVuZGVyIGlzIGluIGZsaWdodC5cbiAqXG4gKiBUaGlzIGlzIHRoZSBwaWVjZSB0aGF0IG1ha2VzIGEgY29uc3VtZXIncyBvd24gdGVtcGxhdGUgaGVscGVycyByZXNvbHZlIGFnYWluc3QgdGhlIHJpZ2h0IG5vdGU6IGR1cmluZyBhXG4gKiByZW5kZXIgdGhlIHdvcmtzcGFjZSBzdGlsbCBoYXMgd2hhdGV2ZXIgdGhlIHVzZXIgd2FzIGxvb2tpbmcgYXQgb3Blbiwgd2hpY2ggaXMgcmFyZWx5IHRoZSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXIgZXh0ZW5kcyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIge1xuICAvKipcbiAgICogR2V0cyB0aGUgZmlsZSB0aGUgaW5uZXJtb3N0IGluLWZsaWdodCB7QGxpbmsgcGFyc2VUZW1wbGF0ZX0gcmVuZGVyIGlzIGZvciwgb3IgdGhlIHdvcmtzcGFjZSdzIGFjdGl2ZVxuICAgKiBmaWxlIHdoZW4gdGhlcmUgaXMgbm8gcmVuZGVyIGluIGZsaWdodC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFjdGl2ZSBmaWxlLCBvciBgbnVsbGAgaWYgdGhlcmUgaXMgbm9uZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRBY3RpdmVGaWxlKCk6IG51bGwgfCBURmlsZSB7XG4gICAgcmV0dXJuIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUoKSA/PyBzdXBlci5nZXRBY3RpdmVGaWxlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBgVGVtcGxhdGVyYCdzIGludGVybmFsIEFQSSBjYW5ub3QgYmUgaGFuZGVkIG92ZXIsIGNhcnJ5aW5nIHRoZVxuICoge0BsaW5rIFRlbXBsYXRlclVuYXZhaWxhYmlsaXR5UmVhc29ufSB0aGF0IHNheXMgd2h5LlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIFdoaWNoIG9mIHRoZSB0d28gZmFpbHVyZXMgb2NjdXJyZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVhc29uOiBUZW1wbGF0ZXJVbmF2YWlsYWJpbGl0eVJlYXNvbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yfS5cbiAgICpcbiAgICogQHBhcmFtIHJlYXNvbiAtIFdoeSB0aGUgQVBJIGlzIHVuYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJlYXNvbjogVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24pIHtcbiAgICBzdXBlcihgVGhlIGludGVybmFsIEFQSSBvZiB0aGUgcGx1Z2luIFwiJHtURU1QTEFURVJfUExVR0lOX0lEfVwiIGlzIHVuYXZhaWxhYmxlOiAke3JlYXNvbn0uYCk7XG4gICAgdGhpcy5uYW1lID0gJ1RlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3InO1xuICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyBgVGVtcGxhdGVyYCdzIGZ1bmN0aW9ucyBvYmplY3Qg4oCUIHRoZSBgdHBgIGEgdGVtcGxhdGUgaXMgZXZhbHVhdGVkIGFnYWluc3Qg4oCUIHNvIGEgY2FsbGVyIGNhbiBpbnZva2VcbiAqIGB0cC5kYXRlLm5vdygpYCwgYHRwLmZpbGUudGl0bGVgIGFuZCB0aGUgcmVzdCBvdXRzaWRlIGEgdGVtcGxhdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgR2V0VGVtcGxhdGVyRnVuY3Rpb25zUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgZnVuY3Rpb25zIG9iamVjdC5cbiAqIEB0aHJvd3MgQSB7QGxpbmsgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvcn0gd2hlbiBgVGVtcGxhdGVyYCBpcyBub3QgbG9hZGVkIG9yIGl0cyBzaGFwZSBoYXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRlbXBsYXRlckZ1bmN0aW9ucyhwYXJhbXM6IEdldFRlbXBsYXRlckZ1bmN0aW9uc1BhcmFtcyk6IFByb21pc2U8b2JqZWN0PiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgc2hvdWxkUmV1c2VDdXJyZW50ID0gdHJ1ZSxcbiAgICB0YXJnZXRQYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGFwaSA9IHJlcXVpcmVUZW1wbGF0ZXJBcGkoYXBwKTtcblxuICBpZiAoc2hvdWxkUmV1c2VDdXJyZW50ICYmIGFwaS5jdXJyZW50X2Z1bmN0aW9uc19vYmplY3QpIHtcbiAgICByZXR1cm4gYXBpLmN1cnJlbnRfZnVuY3Rpb25zX29iamVjdDtcbiAgfVxuXG4gIGNvbnN0IHRhcmdldEZpbGUgPSBnZXRGaWxlKHtcbiAgICBhcHAsXG4gICAgcGF0aE9yRmlsZTogdGFyZ2V0UGF0aE9yRmlsZVxuICB9KTtcbiAgY29uc3QgY29uZmlnID0gYXBpLmNyZWF0ZV9ydW5uaW5nX2NvbmZpZyh1bmRlZmluZWQsIHRhcmdldEZpbGUsIFRlbXBsYXRlclJ1bk1vZGUuU3RhcnR1cFRlbXBsYXRlKTtcbiAgcmV0dXJuIGF3YWl0IGFwaS5mdW5jdGlvbnNfZ2VuZXJhdG9yLmdlbmVyYXRlX29iamVjdChjb25maWcpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZpbGUgdGhlIGlubmVybW9zdCBpbi1mbGlnaHQge0BsaW5rIHBhcnNlVGVtcGxhdGV9IHJlbmRlciBpcyBmb3IuXG4gKlxuICogUmVuZGVycyBuZXN0IOKAlCBhIHRlbXBsYXRlIG1heSByZW5kZXIgYW5vdGhlciDigJQgc28gdGhlIGNhbGxzIGZvcm0gYSBzdGFjayBhbmQgdGhpcyByZXBvcnRzIHRoZSB0b3Agb2ZcbiAqIGl0LiBPdXRzaWRlIGFueSByZW5kZXIgaXQgaXMgYG51bGxgLlxuICpcbiAqIEByZXR1cm5zIFRoZSByZW5kZXIgdGFyZ2V0LCBvciBgbnVsbGAgd2hlbiBubyByZW5kZXIgaXMgaW4gZmxpZ2h0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcGxhdGVyUmVuZGVyVGFyZ2V0RmlsZSgpOiBudWxsIHwgVEZpbGUge1xuICByZXR1cm4gcmVuZGVyVGFyZ2V0RmlsZXMuYXQoLTEpID8/IG51bGw7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGBUZW1wbGF0ZXJgIHRlbXBsYXRlIGFnYWluc3QgYSB0YXJnZXQgZmlsZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIHRleHQsIHdpdGhvdXQgd3JpdGluZ1xuICogYW55dGhpbmcuXG4gKlxuICogRm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FsbCB7QGxpbmsgZ2V0VGVtcGxhdGVyUmVuZGVyVGFyZ2V0RmlsZX0gYW5kXG4gKiB7QGxpbmsgVGVtcGxhdGVyQWN0aXZlRmlsZVByb3ZpZGVyfSByZXBvcnQgYHRhcmdldFBhdGhPckZpbGVgLCBzbyBhIGNvbnN1bWVyJ3Mgb3duIGhlbHBlcnMgaW52b2tlZCBmcm9tXG4gKiBpbnNpZGUgdGhlIHRlbXBsYXRlIHJlc29sdmUgYWdhaW5zdCBpdCByYXRoZXIgdGhhbiBhZ2FpbnN0IHdoYXRldmVyIHRoZSB1c2VyIGhhcyBvcGVuLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFBhcnNlVGVtcGxhdGVQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSByZW5kZXJlZCB0ZXh0LlxuICogQHRocm93cyBBIHtAbGluayBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yfSB3aGVuIGBUZW1wbGF0ZXJgIGlzIG5vdCBsb2FkZWQgb3IgaXRzIHNoYXBlIGhhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUZW1wbGF0ZShwYXJhbXM6IFBhcnNlVGVtcGxhdGVQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHRhcmdldFBhdGhPckZpbGUsXG4gICAgdGVtcGxhdGVQYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHRlbXBsYXRlRmlsZSA9IGdldEZpbGUoe1xuICAgIGFwcCxcbiAgICBwYXRoT3JGaWxlOiB0ZW1wbGF0ZVBhdGhPckZpbGVcbiAgfSk7XG4gIGNvbnN0IHRhcmdldEZpbGUgPSBnZXRGaWxlKHtcbiAgICBhcHAsXG4gICAgcGF0aE9yRmlsZTogdGFyZ2V0UGF0aE9yRmlsZVxuICB9KTtcbiAgY29uc3QgYXBpID0gcmVxdWlyZVRlbXBsYXRlckFwaShhcHApO1xuXG4gIHJlbmRlclRhcmdldEZpbGVzLnB1c2godGFyZ2V0RmlsZSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGFwaS5yZWFkX2FuZF9wYXJzZV90ZW1wbGF0ZSh7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIGBUZW1wbGF0ZXJgIEFQSS5cbiAgICAgIHJ1bl9tb2RlOiBUZW1wbGF0ZXJSdW5Nb2RlLkR5bmFtaWNQcm9jZXNzb3IsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIGBUZW1wbGF0ZXJgIEFQSS5cbiAgICAgIHRhcmdldF9maWxlOiB0YXJnZXRGaWxlLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAtLSBgVGVtcGxhdGVyYCBBUEkuXG4gICAgICB0ZW1wbGF0ZV9maWxlOiB0ZW1wbGF0ZUZpbGVcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICByZW5kZXJUYXJnZXRGaWxlcy5wb3AoKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgYFRlbXBsYXRlcmAncyBpbnRlcm5hbCBBUEksIHRocm93aW5nIHdoZW4gaXQgY2Fubm90IGJlIGhhZC5cbiAqXG4gKiBVc2UgdGhpcyB3aGVyZSB0aGUgY2FsbGVyIGNhbm5vdCBjYXJyeSBvbiB3aXRob3V0IGBUZW1wbGF0ZXJgIOKAlCB0aGUgZXJyb3IgbmFtZXMgdGhlIHBsdWdpbiBhbmQgc2F5cyB3aGljaFxuICogb2YgdGhlIHR3byBmYWlsdXJlcyBvY2N1cnJlZC4gVXNlIHtAbGluayByZXNvbHZlVGVtcGxhdGVyQXBpfSBpbnN0ZWFkIHdoZXJlIHRoZSBpbnRlZ3JhdGlvbiBpcyBvcHRpb25hbC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIGBUZW1wbGF0ZXJgJ3MgaW50ZXJuYWwgQVBJLlxuICogQHRocm93cyBBIHtAbGluayBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yfSB3aGVuIGBUZW1wbGF0ZXJgIGlzIG5vdCBsb2FkZWQgb3IgaXRzIHNoYXBlIGhhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVRlbXBsYXRlckFwaShhcHA6IEFwcCk6IFRlbXBsYXRlckFwaSB7XG4gIGlmICghYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFRFTVBMQVRFUl9QTFVHSU5fSUQpKSB7XG4gICAgdGhyb3cgbmV3IFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3IoVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24uTm90TG9hZGVkKTtcbiAgfVxuXG4gIGNvbnN0IGFwaSA9IHJlc29sdmVUZW1wbGF0ZXJBcGkoYXBwKTtcbiAgaWYgKCFhcGkpIHtcbiAgICB0aHJvdyBuZXcgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvcihUZW1wbGF0ZXJVbmF2YWlsYWJpbGl0eVJlYXNvbi5TaGFwZUNoYW5nZWQpO1xuICB9XG5cbiAgcmV0dXJuIGFwaTtcbn1cblxuLyoqXG4gKiBHZXRzIGBUZW1wbGF0ZXJgJ3MgaW50ZXJuYWwgQVBJLCB3aGVuIGBUZW1wbGF0ZXJgIGlzIGluc3RhbGxlZCwgZW5hYmxlZCBhbmQgc3RpbGwgdGhlIHNoYXBlIHRoaXMgbGlicmFyeVxuICogZXhwZWN0cy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFRoZSBpbnRlcm5hbCBBUEksIG9yIGBudWxsYCB3aGVuIGBUZW1wbGF0ZXJgIGlzIG5vdCB0aGVyZSB0byB0YWxrIHRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVRlbXBsYXRlckFwaShhcHA6IEFwcCk6IG51bGwgfCBUZW1wbGF0ZXJBcGkge1xuICBjb25zdCBwbHVnaW4gPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oVEVNUExBVEVSX1BMVUdJTl9JRCk7XG4gIGlmICghcGx1Z2luIHx8ICEoJ3RlbXBsYXRlcicgaW4gcGx1Z2luKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgdGVtcGxhdGVyOiB1bmtub3duID0gcGx1Z2luLnRlbXBsYXRlcjtcbiAgcmV0dXJuIGlzVGVtcGxhdGVyQXBpKHRlbXBsYXRlcikgPyB0ZW1wbGF0ZXIgOiBudWxsO1xufVxuXG4vKlxuICogVGhlIHN0YWNrIG9mIGZpbGVzIGluLWZsaWdodCBgcGFyc2VUZW1wbGF0ZWAgY2FsbHMgYXJlIHJlbmRlcmluZyBmb3IsIGlubmVybW9zdCBsYXN0LiBBIHN0YWNrIHJhdGhlclxuICogdGhhbiBhIHNpbmdsZSBzbG90IGJlY2F1c2UgYSB0ZW1wbGF0ZSBtYXkgcmVuZGVyIGFub3RoZXIsIGFuZCBhbiBhcnJheSByYXRoZXIgdGhhbiBhIHJlYXNzaWduZWRcbiAqIHZhcmlhYmxlIGJlY2F1c2UgcHVzaGluZyBhbmQgcG9wcGluZyBhIGBjb25zdGAgbmVlZHMgbm8gd3JpdGUgdG8gYW4gb3V0ZXIgYmluZGluZyBhY3Jvc3MgYW4gYGF3YWl0YC5cbiAqL1xuY29uc3QgcmVuZGVyVGFyZ2V0RmlsZXM6IFRGaWxlW10gPSBbXTtcblxuLyoqXG4gKiBDaGVja3MgdGhhdCBhIHZhbHVlIGlzIGBUZW1wbGF0ZXJgJ3MgaW50ZXJuYWwgQVBJLCBieSB0aGUgbWVtYmVycyB0aGlzIGxpYnJhcnkgYWN0dWFsbHkgY2FsbHMuXG4gKlxuICogQSBwcmVkaWNhdGUgcmF0aGVyIHRoYW4gYSBjYXN0IG9uIHB1cnBvc2U6IGB0ZW1wbGF0ZXJgIGlzIG5vdCBwYXJ0IG9mIE9ic2lkaWFuJ3MgYFBsdWdpbmAgdHlwZSwgc28gdGhlXG4gKiB2YWx1ZSBhcnJpdmVzIGFzIGB1bmtub3duYCBhbmQgdGhlIG9ubHkgaG9uZXN0IHdheSB0byB0eXBlIGl0IGlzIHRvIFZFUklGWSBpdC4gQSBgVGVtcGxhdGVyYCB0aGF0IHJlbmFtZXNcbiAqIG9uZSBvZiB0aGVzZSB0aGVyZWZvcmUgcmVhZHMgYXMgXCJub3QgdGhlcmVcIiwgaW5zdGVhZCBvZiB0aHJvd2luZyBmcm9tIGluc2lkZSBhIHJlbmRlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgY2FuZGlkYXRlIGB0ZW1wbGF0ZXJgIG9iamVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgaXQgY2FycmllcyBldmVyeSBtZW1iZXIgdGhpcyBsaWJyYXJ5IGNhbGxzLlxuICovXG5mdW5jdGlvbiBpc1RlbXBsYXRlckFwaSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFRlbXBsYXRlckFwaSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsIHx8ICEoJ2NyZWF0ZV9ydW5uaW5nX2NvbmZpZycgaW4gdmFsdWUpIHx8IHR5cGVvZiB2YWx1ZS5jcmVhdGVfcnVubmluZ19jb25maWcgIT09ICdmdW5jdGlvbicgfHwgISgncmVhZF9hbmRfcGFyc2VfdGVtcGxhdGUnIGluIHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUucmVhZF9hbmRfcGFyc2VfdGVtcGxhdGUgIT09ICdmdW5jdGlvbicgfHwgISgnZnVuY3Rpb25zX2dlbmVyYXRvcicgaW4gdmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZnVuY3Rpb25zR2VuZXJhdG9yOiB1bmtub3duID0gdmFsdWUuZnVuY3Rpb25zX2dlbmVyYXRvcjtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jdGlvbnNHZW5lcmF0b3IgPT09ICdvYmplY3QnICYmIGZ1bmN0aW9uc0dlbmVyYXRvciAhPT0gbnVsbCAmJiAnZ2VuZXJhdGVfb2JqZWN0JyBpbiBmdW5jdGlvbnNHZW5lcmF0b3IgJiYgdHlwZW9mIGZ1bmN0aW9uc0dlbmVyYXRvci5nZW5lcmF0ZV9vYmplY3QgPT09ICdmdW5jdGlvbic7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQ0Esa0NBQXNDO0FBQ3RDLHlCQUF3QjtBQWtJakIsTUFBTSxzQkFBc0I7QUFVNUIsSUFBSyxtQkFBTCxrQkFBS0Esc0JBQUw7QUFJTCxFQUFBQSxvQ0FBQSwyQkFBd0IsS0FBeEI7QUFLQSxFQUFBQSxvQ0FBQSxzQkFBbUIsS0FBbkI7QUFLQSxFQUFBQSxvQ0FBQSxtQkFBZ0IsS0FBaEI7QUFLQSxFQUFBQSxvQ0FBQSx5QkFBc0IsS0FBdEI7QUFNQSxFQUFBQSxvQ0FBQSxzQkFBbUIsS0FBbkI7QUFNQSxFQUFBQSxvQ0FBQSxxQkFBa0IsS0FBbEI7QUEvQlUsU0FBQUE7QUFBQSxHQUFBO0FBc0NMLElBQUssZ0NBQUwsa0JBQUtDLG1DQUFMO0FBS0wsRUFBQUEsK0JBQUEsZUFBWTtBQU1aLEVBQUFBLCtCQUFBLGtCQUFlO0FBWEwsU0FBQUE7QUFBQSxHQUFBO0FBcUJMLE1BQU0sb0NBQW9DLGtEQUFzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3JELGdCQUE4QjtBQUM1QyxXQUFPLDZCQUE2QixLQUFLLE1BQU0sY0FBYztBQUFBLEVBQy9EO0FBQ0Y7QUFNTyxNQUFNLGtDQUFrQyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVCxZQUFZLFFBQXVDO0FBQ3hELFVBQU0sbUNBQW1DLG1CQUFtQixxQkFBcUIsTUFBTSxHQUFHO0FBQzFGLFNBQUssT0FBTztBQUNaLFNBQUssU0FBUztBQUFBLEVBQ2hCO0FBQ0Y7QUFVQSxlQUFzQixzQkFBc0IsUUFBc0Q7QUFDaEcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBLHFCQUFxQjtBQUFBLElBQ3JCO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxNQUFNLG9CQUFvQixHQUFHO0FBRW5DLE1BQUksc0JBQXNCLElBQUksMEJBQTBCO0FBQ3RELFdBQU8sSUFBSTtBQUFBLEVBQ2I7QUFFQSxRQUFNLGlCQUFhLDRCQUFRO0FBQUEsSUFDekI7QUFBQSxJQUNBLFlBQVk7QUFBQSxFQUNkLENBQUM7QUFDRCxRQUFNLFNBQVMsSUFBSSxzQkFBc0IsUUFBVyxZQUFZLHVCQUFnQztBQUNoRyxTQUFPLE1BQU0sSUFBSSxvQkFBb0IsZ0JBQWdCLE1BQU07QUFDN0Q7QUFVTyxTQUFTLCtCQUE2QztBQUMzRCxTQUFPLGtCQUFrQixHQUFHLEVBQUUsS0FBSztBQUNyQztBQWNBLGVBQXNCLGNBQWMsUUFBOEM7QUFDaEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sbUJBQWUsNEJBQVE7QUFBQSxJQUMzQjtBQUFBLElBQ0EsWUFBWTtBQUFBLEVBQ2QsQ0FBQztBQUNELFFBQU0saUJBQWEsNEJBQVE7QUFBQSxJQUN6QjtBQUFBLElBQ0EsWUFBWTtBQUFBLEVBQ2QsQ0FBQztBQUNELFFBQU0sTUFBTSxvQkFBb0IsR0FBRztBQUVuQyxvQkFBa0IsS0FBSyxVQUFVO0FBQ2pDLE1BQUk7QUFDRixXQUFPLE1BQU0sSUFBSSx3QkFBd0I7QUFBQTtBQUFBLE1BRXZDLFVBQVU7QUFBQTtBQUFBLE1BRVYsYUFBYTtBQUFBO0FBQUEsTUFFYixlQUFlO0FBQUEsSUFDakIsQ0FBQztBQUFBLEVBQ0gsVUFBRTtBQUNBLHNCQUFrQixJQUFJO0FBQUEsRUFDeEI7QUFDRjtBQVlPLFNBQVMsb0JBQW9CLEtBQXdCO0FBQzFELE1BQUksQ0FBQyxJQUFJLFFBQVEsVUFBVSxtQkFBbUIsR0FBRztBQUMvQyxVQUFNLElBQUksMEJBQTBCLDJCQUF1QztBQUFBLEVBQzdFO0FBRUEsUUFBTSxNQUFNLG9CQUFvQixHQUFHO0FBQ25DLE1BQUksQ0FBQyxLQUFLO0FBQ1IsVUFBTSxJQUFJLDBCQUEwQixpQ0FBMEM7QUFBQSxFQUNoRjtBQUVBLFNBQU87QUFDVDtBQVNPLFNBQVMsb0JBQW9CLEtBQStCO0FBQ2pFLFFBQU0sU0FBUyxJQUFJLFFBQVEsVUFBVSxtQkFBbUI7QUFDeEQsTUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLFNBQVM7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFlBQXFCLE9BQU87QUFDbEMsU0FBTyxlQUFlLFNBQVMsSUFBSSxZQUFZO0FBQ2pEO0FBT0EsTUFBTSxvQkFBNkIsQ0FBQztBQVlwQyxTQUFTLGVBQWUsT0FBdUM7QUFDN0QsTUFBSSxPQUFPLFVBQVUsWUFBWSxVQUFVLFFBQVEsRUFBRSwyQkFBMkIsVUFBVSxPQUFPLE1BQU0sMEJBQTBCLGNBQWMsRUFBRSw2QkFBNkIsVUFBVSxPQUFPLE1BQU0sNEJBQTRCLGNBQWMsRUFBRSx5QkFBeUIsUUFBUTtBQUNoUixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0scUJBQThCLE1BQU07QUFDMUMsU0FBTyxPQUFPLHVCQUF1QixZQUFZLHVCQUF1QixRQUFRLHFCQUFxQixzQkFBc0IsT0FBTyxtQkFBbUIsb0JBQW9CO0FBQzNLOyIsIm5hbWVzIjpbIlRlbXBsYXRlclJ1bk1vZGUiLCJUZW1wbGF0ZXJVbmF2YWlsYWJpbGl0eVJlYXNvbiJdfQ==
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzbGljZSBvZiBgVGVtcGxhdGVyYCdzIElOVEVSTkFMIEFQSSB0aGlzIGxpYnJhcnkgdGFsa3MgdG8sIGFuZCB0aGUgcnVudGltZSBuYXJyb3dpbmcgdGhhdCBnZXRzIGhvbGRcbiAqIG9mIGl0LlxuICpcbiAqICoqYFRlbXBsYXRlcmAgcHVibGlzaGVzIG5vIEFQSS4qKiBSZW5kZXJpbmcgYSB0ZW1wbGF0ZSBhZ2FpbnN0IGEgZmlsZSBhbmQgZ2V0dGluZyB0aGUgcmVzdWx0aW5nIHN0cmluZ1xuICogYmFjayBpcyBvbmx5IHJlYWNoYWJsZSB0aHJvdWdoIHVuZG9jdW1lbnRlZCBpbnRlcm5hbHMgaGFuZ2luZyBvZmZcbiAqIGBhcHAucGx1Z2lucy5nZXRQbHVnaW4oJ3RlbXBsYXRlci1vYnNpZGlhbicpLnRlbXBsYXRlcmAg4oCUIGBjcmVhdGVfcnVubmluZ19jb25maWdgLFxuICogYGZ1bmN0aW9uc19nZW5lcmF0b3IuZ2VuZXJhdGVfb2JqZWN0YCwgYHJlYWRfYW5kX3BhcnNlX3RlbXBsYXRlYCwgYW5kIGEgYFJ1bk1vZGVgIGVudW0uIEV2ZXJ5IHBsdWdpblxuICogdGhhdCB3YW50cyBpdCByZS1kZXJpdmVzIHRoZSBzYW1lIHJldmVyc2UgZW5naW5lZXJpbmcsIHdoaWNoIGlzIHdoeSBpdCBsaXZlcyBoZXJlIGluc3RlYWQuXG4gKlxuICogKipUaGlzIG1vZHVsZSBpcyBleHBsaWNpdGx5IEJFU1QtRUZGT1JULioqIE5vdGhpbmcgaXQgYmluZHMgdG8gaXMgZG9jdW1lbnRlZCBvciBjb3ZlcmVkIGJ5IGBUZW1wbGF0ZXJgJ3NcbiAqIHNlbWFudGljIHZlcnNpb25pbmcsIHNvIGEgYFRlbXBsYXRlcmAgcmVsZWFzZSBtYXkgcmVuYW1lIG9yIHJlc2hhcGUgYW55IG9mIGl0IHdpdGhvdXQgd2FybmluZy4gVGhlIHNoYXBlc1xuICogYmVsb3cgd2VyZSByZWFkIGZyb20gYFRlbXBsYXRlcmAgYDIuMjQuM2AuIFR3byBkZWxpYmVyYXRlIGNvbnNlcXVlbmNlcyBmb2xsb3c6XG4gKlxuICogLSB7QGxpbmsgcmVzb2x2ZVRlbXBsYXRlckFwaX0gcmV0dXJucyBgbnVsbGAg4oCUIGEgYFRlbXBsYXRlcmAgdG9vIG9sZCwgdG9vIG5ldyBvciB0b28gYnJva2VuIHRvIHRhbGsgdG9cbiAqICAgcmVhZHMgYXMgXCJub3QgdGhlcmVcIiBhbmQgdGhlIGludGVncmF0aW9uIHN0YXlzIGRvcm1hbnQuXG4gKiAtIHtAbGluayByZXF1aXJlVGVtcGxhdGVyQXBpfSB0aHJvd3MgYSB7QGxpbmsgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvcn0gdGhhdCBOQU1FUyB0aGUgcGx1Z2luIGFuZCB0aGVcbiAqICAgcmVhc29uLCByYXRoZXIgdGhhbiBsZXR0aW5nIGEgYENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkYCBzdXJmYWNlIGZyb20gc29tZXdoZXJlIGluc2lkZVxuICogICBgVGVtcGxhdGVyYC5cbiAqXG4gKiBUaGUgdHlwZXMgYXJlIERFQ0xBUkVEIEhFUkUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQsIGFuZCBuYXJyb3dlZCB0byB0aGUgbWVtYmVycyBhY3R1YWxseSBjYWxsZWQ6IGBUZW1wbGF0ZXJgXG4gKiBzaGlwcyBubyBucG0gdHlwZXMgcGFja2FnZSwgYW5kIGRlcGVuZGluZyBvbiBpdCB3b3VsZCB0dXJuIGFuIG9wdGlvbmFsIGludGVncmF0aW9uIGludG8gYSBidWlsZC10aW1lXG4gKiBkZXBlbmRlbmN5LlxuICpcbiAqIFRoZSBzZWNvbmQgdGhpbmcgdGhpcyBtb2R1bGUgc3VwcGxpZXMgaXMgYW4gYWN0aXZlLWZpbGUgYW5zd2VyLiBXaGlsZSBhIHRlbXBsYXRlIHJlbmRlcnMsXG4gKiBgYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKClgIHN0aWxsIHBvaW50cyBhdCB3aGF0ZXZlciB0aGUgdXNlciBoYXBwZW5zIHRvIGhhdmUgb3BlbiDigJQgTk9UIGF0IHRoZSBmaWxlXG4gKiB0aGUgdGVtcGxhdGUgaXMgYmVpbmcgcmVuZGVyZWQgZm9yIOKAlCBzbyBhIHBsdWdpbidzIG93biBoZWxwZXIgY2FsbGVkIGZyb20gaW5zaWRlIGEgdGVtcGxhdGUgcmVzb2x2ZXNcbiAqIGxpbmtzIGFnYWluc3QgdGhlIHdyb25nIG5vdGUuIHtAbGluayBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXJ9IGFuc3dlcnMgd2l0aCB0aGUgcmVuZGVyIHRhcmdldCBmb3IgdGhlXG4gKiBkdXJhdGlvbiBvZiBhIHtAbGluayBwYXJzZVRlbXBsYXRlfSBjYWxsIGFuZCBmYWxscyBiYWNrIHRvIHRoZSB3b3Jrc3BhY2Ugb3RoZXJ3aXNlLiBOb3RlIHRoaXMgaXMgYWJvdXRcbiAqIHRoZSBDT05TVU1FUidzIGhlbHBlcnM6IGBUZW1wbGF0ZXJgJ3Mgb3duIGB0cC5maWxlLipgIGFscmVhZHkgcmVzb2x2ZXMgdGhyb3VnaCB0aGUgcnVubmluZyBjb25maWcnc1xuICogYHRhcmdldF9maWxlYCBhbmQgbmVlZHMgbm8gaGVscC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcblxuaW1wb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5pbXBvcnQgeyBnZXRGaWxlIH0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldFRlbXBsYXRlckZ1bmN0aW9uc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VGVtcGxhdGVyRnVuY3Rpb25zUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXR1cm4gYFRlbXBsYXRlcmAncyBgY3VycmVudF9mdW5jdGlvbnNfb2JqZWN0YCB3aGVuIGl0IGFscmVhZHkgaGFzIG9uZSwgaW5zdGVhZCBvZlxuICAgKiBnZW5lcmF0aW5nIGEgZnJlc2ggb2JqZWN0LiBSZXVzZSBpcyBjaGVhcGVyIGFuZCBnaXZlcyB0aGUgb2JqZWN0IG9mIHRoZSByZW5kZXIgY3VycmVudGx5IGluIGZsaWdodDtcbiAgICogcGFzcyBgZmFsc2VgIHRvIGZvcmNlIGEgbmV3IG9uZSBidWlsdCBmb3IgYHRhcmdldFBhdGhPckZpbGVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJldXNlQ3VycmVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIHRoZSBnZW5lcmF0ZWQgZnVuY3Rpb25zIHNob3VsZCByZXNvbHZlIGFnYWluc3Qg4oCUIHdoYXQgYHRwLmZpbGUuKmAgcmVwb3J0cy5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBhcnNlVGVtcGxhdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlVGVtcGxhdGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0aGUgdGVtcGxhdGUgaXMgcmVuZGVyZWQgRk9SLiBJdCBpcyB3aGF0IGB0cC5maWxlLipgIHJlc29sdmVzIHRvIGluc2lkZSB0aGUgdGVtcGxhdGUsIGFuZFxuICAgKiB3aGF0IHtAbGluayBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXJ9IHJlcG9ydHMgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FsbC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBmaWxlIHRvIHJlbmRlci5cbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlUGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcbn1cblxuLyoqXG4gKiBgVGVtcGxhdGVyYCdzIGludGVybmFsIEFQSSBvYmplY3QsIG5hcnJvd2VkIHRvIHRoZSBtZW1iZXJzIHRoaXMgbGlicmFyeSBjYWxscy5cbiAqXG4gKiBJdHMgbWVtYmVycyBhcmUgYHNuYWtlX2Nhc2VgIGJlY2F1c2UgYFRlbXBsYXRlcmAncyBhcmU7IHRoZXkgYXJlIHRyYW5zY3JpYmVkIHJhdGhlciB0aGFuIHJlbmFtZWQgc28gdGhlXG4gKiBzaGFwZSBjYW4gYmUgY2hlY2tlZCBhZ2FpbnN0IGBUZW1wbGF0ZXJgJ3Mgc291cmNlIGF0IGEgZ2xhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlckFwaSB7XG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIHtAbGluayBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnfSB0aGF0IGRlc2NyaWJlcyBvbmUgcmVuZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gdGVtcGxhdGVGaWxlIC0gVGhlIHRlbXBsYXRlIGJlaW5nIHJlbmRlcmVkLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZXJlIGlzIG5vbmUgKGFzIHdoZW4gb25seVxuICAgKiB0aGUgZnVuY3Rpb25zIG9iamVjdCBpcyB3YW50ZWQpLlxuICAgKiBAcGFyYW0gdGFyZ2V0RmlsZSAtIFRoZSBmaWxlIHRoZSByZW5kZXIgaXMgZm9yLlxuICAgKiBAcGFyYW0gcnVuTW9kZSAtIFdoaWNoIHtAbGluayBUZW1wbGF0ZXJSdW5Nb2RlfSB0aGUgcmVuZGVyIGlzLlxuICAgKiBAcmV0dXJucyBUaGUgcnVubmluZyBjb25maWcuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVfcnVubmluZ19jb25maWc6ICh0ZW1wbGF0ZUZpbGU6IFRGaWxlIHwgdW5kZWZpbmVkLCB0YXJnZXRGaWxlOiBURmlsZSwgcnVuTW9kZTogVGVtcGxhdGVyUnVuTW9kZSkgPT4gVGVtcGxhdGVyUnVubmluZ0NvbmZpZztcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9ucyBvYmplY3QgKGB0cGApIG9mIHRoZSByZW5kZXIgY3VycmVudGx5IGluIGZsaWdodCwgd2hlbiB0aGVyZSBpcyBvbmUuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50X2Z1bmN0aW9uc19vYmplY3Q/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgZnVuY3Rpb25zIG9iamVjdCAoYHRwYCkgYSB0ZW1wbGF0ZSBpcyBldmFsdWF0ZWQgYWdhaW5zdC5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uc19nZW5lcmF0b3I6IFRlbXBsYXRlckZ1bmN0aW9uc0dlbmVyYXRvcjtcblxuICAvKipcbiAgICogUmVhZHMgdGhlIGNvbmZpZydzIGB0ZW1wbGF0ZV9maWxlYCBhbmQgcmVuZGVycyBpdCwgcmV0dXJuaW5nIHRoZSByZXN1bHRpbmcgdGV4dC5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSB7QGxpbmsgVGVtcGxhdGVyUnVubmluZ0NvbmZpZ30gZGVzY3JpYmluZyB0aGUgcmVuZGVyLiBgVGVtcGxhdGVyYCB0aHJvd3Mgd2hlbiBpdHNcbiAgICogYHRlbXBsYXRlX2ZpbGVgIGlzIG5vdCBhIGBURmlsZWAuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgcmVuZGVyZWQgdGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRfYW5kX3BhcnNlX3RlbXBsYXRlOiAoY29uZmlnOiBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnKSA9PiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKlxuICogVGhlIGBmdW5jdGlvbnNfZ2VuZXJhdG9yYCBoYWxmIG9mIHtAbGluayBUZW1wbGF0ZXJBcGl9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlckZ1bmN0aW9uc0dlbmVyYXRvciB7XG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGZ1bmN0aW9ucyBvYmplY3QgKGB0cGApIGZvciBhIHJ1bm5pbmcgY29uZmlnLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIHtAbGluayBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnfSB0byBidWlsZCBmb3IuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgZnVuY3Rpb25zIG9iamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRlX29iamVjdDogKGNvbmZpZzogVGVtcGxhdGVyUnVubmluZ0NvbmZpZykgPT4gUHJvbWlzZTxvYmplY3Q+O1xufVxuXG4vKipcbiAqIE9uZSBgVGVtcGxhdGVyYCByZW5kZXIsIGFzIGBUZW1wbGF0ZXJgJ3MgYGNyZWF0ZV9ydW5uaW5nX2NvbmZpZ2AgZGVzY3JpYmVzIGl0LlxuICpcbiAqIEl0cyBtZW1iZXJzIGFyZSBgc25ha2VfY2FzZWAgYmVjYXVzZSBgVGVtcGxhdGVyYCdzIGFyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZXJSdW5uaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIGBUZW1wbGF0ZXJgIGNvbnNpZGVycyBhY3RpdmUuIGBUZW1wbGF0ZXJgIGZpbGxzIHRoaXMgaW4gaXRzZWxmIGZyb21cbiAgICogYHdvcmtzcGFjZS5hY3RpdmVFZGl0b3I/LmZpbGUgPz8gd29ya3NwYWNlLmdldEFjdGl2ZUZpbGUoKWA7IGl0IGlzIG9wdGlvbmFsIGhlcmUgYmVjYXVzZSBhXG4gICAqIGhhbmQtYnVpbHQgY29uZmlnIG1heSBvbWl0IGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlX2ZpbGU/OiBudWxsIHwgVEZpbGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoaWNoIHtAbGluayBUZW1wbGF0ZXJSdW5Nb2RlfSB0aGUgcmVuZGVyIGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVuX21vZGU6IFRlbXBsYXRlclJ1bk1vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIHRoZSByZW5kZXIgaXMgZm9yIOKAlCB3aGF0IGB0cC5maWxlLipgIHJlc29sdmVzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0X2ZpbGU6IFRGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgYmVpbmcgcmVuZGVyZWQsIHdoZW4gdGhlcmUgaXMgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGVfZmlsZT86IFRGaWxlIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIGBUZW1wbGF0ZXJgJ3MgcGx1Z2luIGlkLCBhcyBpdHMgbWFuaWZlc3QgZGVjbGFyZXMgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBURU1QTEFURVJfUExVR0lOX0lEID0gJ3RlbXBsYXRlci1vYnNpZGlhbic7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gVGhlc2UgYXJlIGBUZW1wbGF0ZXJgJ3Mgb3duIGBSdW5Nb2RlYCB2YWx1ZXMsIHRyYW5zY3JpYmVkLiAqL1xuLyoqXG4gKiBgVGVtcGxhdGVyYCdzIGBSdW5Nb2RlYCBlbnVtLCB3aGljaCBzYXlzIHdoYXQga2luZCBvZiByZW5kZXIgYSB7QGxpbmsgVGVtcGxhdGVyUnVubmluZ0NvbmZpZ30gZGVzY3JpYmVzLlxuICpcbiAqIFRoZSBudW1lcmljIHZhbHVlcyBBUkUgYFRlbXBsYXRlcmAncywgYW5kIHRoZSBtZW1iZXJzIGFyZSBsaXN0ZWQgaW4gaXRzIGRlY2xhcmF0aW9uIG9yZGVyIHNvIHRoZSB0d28gY2FuXG4gKiBiZSBjb21wYXJlZCBsaW5lIGZvciBsaW5lLiBUaGV5IGFyZSB3cml0dGVuIG91dCBleHBsaWNpdGx5IGFsbCB0aGUgc2FtZSwgYmVjYXVzZSB0aGV5IGNyb3NzIGludG9cbiAqIGBUZW1wbGF0ZXJgIGFzIGludGVnZXJzIOKAlCBuZXZlciByZW51bWJlciB0aGVtLlxuICovXG5leHBvcnQgZW51bSBUZW1wbGF0ZXJSdW5Nb2RlIHtcbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgdGVtcGxhdGUgaW50byBhIG5ld2x5IGNyZWF0ZWQgZmlsZS5cbiAgICovXG4gIENyZWF0ZU5ld0Zyb21UZW1wbGF0ZSA9IDAsXG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgdGVtcGxhdGUgYW5kIGFwcGVuZCB0aGUgcmVzdWx0IHRvIHRoZSBhY3RpdmUgZmlsZS5cbiAgICovXG4gIEFwcGVuZEFjdGl2ZUZpbGUgPSAxLFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHRlbXBsYXRlIGFuZCBvdmVyd3JpdGUgYSBnaXZlbiBmaWxlIHdpdGggdGhlIHJlc3VsdC5cbiAgICovXG4gIE92ZXJ3cml0ZUZpbGUgPSAyLFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHRlbXBsYXRlIGFuZCBvdmVyd3JpdGUgdGhlIGFjdGl2ZSBmaWxlIHdpdGggdGhlIHJlc3VsdC5cbiAgICovXG4gIE92ZXJ3cml0ZUFjdGl2ZUZpbGUgPSAzLFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHRlbXBsYXRlIG9uIGRlbWFuZCwgZm9yIGEgY2FsbGVyIHRoYXQgd2FudHMgdGhlIHJlc3VsdGluZyB0ZXh0IHJhdGhlciB0aGFuIGEgZmlsZVxuICAgKiB3cml0dGVuLiBUaGlzIGlzIHdoYXQge0BsaW5rIHBhcnNlVGVtcGxhdGV9IHVzZXMuXG4gICAqL1xuICBEeW5hbWljUHJvY2Vzc29yID0gNCxcblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0ZW1wbGF0ZSBhcyBhIHN0YXJ0dXAgdGVtcGxhdGUuIHtAbGluayBnZXRUZW1wbGF0ZXJGdW5jdGlvbnN9IHVzZXMgaXQgZm9yIHRoZSB0aHJvd2F3YXlcbiAgICogY29uZmlnIGl0IGJ1aWxkcywgYmVjYXVzZSB0aGF0IGNvbmZpZyByZW5kZXJzIG5vdGhpbmcuXG4gICAqL1xuICBTdGFydHVwVGVtcGxhdGUgPSA1XG59XG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gVGhlc2UgYXJlIGBUZW1wbGF0ZXJgJ3Mgb3duIGBSdW5Nb2RlYCB2YWx1ZXMsIHRyYW5zY3JpYmVkLiAqL1xuXG4vKipcbiAqIFdoeSBgVGVtcGxhdGVyYCdzIGludGVybmFsIEFQSSBjb3VsZCBub3QgYmUgaGFuZGVkIG92ZXIuXG4gKi9cbmV4cG9ydCBlbnVtIFRlbXBsYXRlclVuYXZhaWxhYmlsaXR5UmVhc29uIHtcbiAgLyoqXG4gICAqIGBUZW1wbGF0ZXJgIGlzIG5vdCBpbnN0YWxsZWQsIG9yIGlzIGluc3RhbGxlZCBidXQgZGlzYWJsZWQuIE9ic2lkaWFuJ3MgYGdldFBsdWdpbmAgY2Fubm90IHRlbGwgdGhlIHR3b1xuICAgKiBhcGFydCDigJQgaXQgcmV0dXJucyBub3RoaW5nIGVpdGhlciB3YXkuXG4gICAqL1xuICBOb3RMb2FkZWQgPSAnbm90TG9hZGVkJyxcblxuICAvKipcbiAgICogYFRlbXBsYXRlcmAgaXMgbG9hZGVkLCBidXQgZG9lcyBub3QgZXhwb3NlIHRoZSBpbnRlcm5hbHMgdGhpcyBsaWJyYXJ5IGNhbGxzIOKAlCBpdCBpcyB0b28gb2xkLCB0b28gbmV3LFxuICAgKiBvciBoYXMgYmVlbiByZXNoYXBlZC5cbiAgICovXG4gIFNoYXBlQ2hhbmdlZCA9ICdzaGFwZUNoYW5nZWQnXG59XG5cbi8qKlxuICogQWN0aXZlLWZpbGUgcHJvdmlkZXIgdGhhdCBhbnN3ZXJzIHdpdGggdGhlIGZpbGUgYSB7QGxpbmsgcGFyc2VUZW1wbGF0ZX0gcmVuZGVyIGlzIGN1cnJlbnRseSBmb3IsXG4gKiBmYWxsaW5nIGJhY2sgdG8gdGhlIHdvcmtzcGFjZSdzIGFjdGl2ZSBmaWxlIHdoZW4gbm8gcmVuZGVyIGlzIGluIGZsaWdodC5cbiAqXG4gKiBUaGlzIGlzIHRoZSBwaWVjZSB0aGF0IG1ha2VzIGEgY29uc3VtZXIncyBvd24gdGVtcGxhdGUgaGVscGVycyByZXNvbHZlIGFnYWluc3QgdGhlIHJpZ2h0IG5vdGU6IGR1cmluZyBhXG4gKiByZW5kZXIgdGhlIHdvcmtzcGFjZSBzdGlsbCBoYXMgd2hhdGV2ZXIgdGhlIHVzZXIgd2FzIGxvb2tpbmcgYXQgb3Blbiwgd2hpY2ggaXMgcmFyZWx5IHRoZSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXIgZXh0ZW5kcyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIge1xuICAvKipcbiAgICogR2V0cyB0aGUgZmlsZSB0aGUgaW5uZXJtb3N0IGluLWZsaWdodCB7QGxpbmsgcGFyc2VUZW1wbGF0ZX0gcmVuZGVyIGlzIGZvciwgb3IgdGhlIHdvcmtzcGFjZSdzIGFjdGl2ZVxuICAgKiBmaWxlIHdoZW4gdGhlcmUgaXMgbm8gcmVuZGVyIGluIGZsaWdodC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFjdGl2ZSBmaWxlLCBvciBgbnVsbGAgaWYgdGhlcmUgaXMgbm9uZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXRBY3RpdmVGaWxlKCk6IG51bGwgfCBURmlsZSB7XG4gICAgcmV0dXJuIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUoKSA/PyBzdXBlci5nZXRBY3RpdmVGaWxlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBgVGVtcGxhdGVyYCdzIGludGVybmFsIEFQSSBjYW5ub3QgYmUgaGFuZGVkIG92ZXIsIGNhcnJ5aW5nIHRoZVxuICoge0BsaW5rIFRlbXBsYXRlclVuYXZhaWxhYmlsaXR5UmVhc29ufSB0aGF0IHNheXMgd2h5LlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIFdoaWNoIG9mIHRoZSB0d28gZmFpbHVyZXMgb2NjdXJyZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVhc29uOiBUZW1wbGF0ZXJVbmF2YWlsYWJpbGl0eVJlYXNvbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yfS5cbiAgICpcbiAgICogQHBhcmFtIHJlYXNvbiAtIFdoeSB0aGUgQVBJIGlzIHVuYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJlYXNvbjogVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24pIHtcbiAgICBzdXBlcihgVGhlIGludGVybmFsIEFQSSBvZiB0aGUgcGx1Z2luIFwiJHtURU1QTEFURVJfUExVR0lOX0lEfVwiIGlzIHVuYXZhaWxhYmxlOiAke3JlYXNvbn0uYCk7XG4gICAgdGhpcy5uYW1lID0gJ1RlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3InO1xuICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICB9XG59XG5cbi8qKlxuICogR2V0cyBgVGVtcGxhdGVyYCdzIGZ1bmN0aW9ucyBvYmplY3Qg4oCUIHRoZSBgdHBgIGEgdGVtcGxhdGUgaXMgZXZhbHVhdGVkIGFnYWluc3Qg4oCUIHNvIGEgY2FsbGVyIGNhbiBpbnZva2VcbiAqIGB0cC5kYXRlLm5vdygpYCwgYHRwLmZpbGUudGl0bGVgIGFuZCB0aGUgcmVzdCBvdXRzaWRlIGEgdGVtcGxhdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgR2V0VGVtcGxhdGVyRnVuY3Rpb25zUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgZnVuY3Rpb25zIG9iamVjdC5cbiAqIEB0aHJvd3MgQSB7QGxpbmsgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvcn0gd2hlbiBgVGVtcGxhdGVyYCBpcyBub3QgbG9hZGVkIG9yIGl0cyBzaGFwZSBoYXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRlbXBsYXRlckZ1bmN0aW9ucyhwYXJhbXM6IEdldFRlbXBsYXRlckZ1bmN0aW9uc1BhcmFtcyk6IFByb21pc2U8b2JqZWN0PiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgc2hvdWxkUmV1c2VDdXJyZW50ID0gdHJ1ZSxcbiAgICB0YXJnZXRQYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGFwaSA9IHJlcXVpcmVUZW1wbGF0ZXJBcGkoYXBwKTtcblxuICBpZiAoc2hvdWxkUmV1c2VDdXJyZW50ICYmIGFwaS5jdXJyZW50X2Z1bmN0aW9uc19vYmplY3QpIHtcbiAgICByZXR1cm4gYXBpLmN1cnJlbnRfZnVuY3Rpb25zX29iamVjdDtcbiAgfVxuXG4gIGNvbnN0IHRhcmdldEZpbGUgPSBnZXRGaWxlKHtcbiAgICBhcHAsXG4gICAgcGF0aE9yRmlsZTogdGFyZ2V0UGF0aE9yRmlsZVxuICB9KTtcbiAgY29uc3QgY29uZmlnID0gYXBpLmNyZWF0ZV9ydW5uaW5nX2NvbmZpZyh1bmRlZmluZWQsIHRhcmdldEZpbGUsIFRlbXBsYXRlclJ1bk1vZGUuU3RhcnR1cFRlbXBsYXRlKTtcbiAgcmV0dXJuIGF3YWl0IGFwaS5mdW5jdGlvbnNfZ2VuZXJhdG9yLmdlbmVyYXRlX29iamVjdChjb25maWcpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGZpbGUgdGhlIGlubmVybW9zdCBpbi1mbGlnaHQge0BsaW5rIHBhcnNlVGVtcGxhdGV9IHJlbmRlciBpcyBmb3IuXG4gKlxuICogUmVuZGVycyBuZXN0IOKAlCBhIHRlbXBsYXRlIG1heSByZW5kZXIgYW5vdGhlciDigJQgc28gdGhlIGNhbGxzIGZvcm0gYSBzdGFjayBhbmQgdGhpcyByZXBvcnRzIHRoZSB0b3Agb2ZcbiAqIGl0LiBPdXRzaWRlIGFueSByZW5kZXIgaXQgaXMgYG51bGxgLlxuICpcbiAqIEByZXR1cm5zIFRoZSByZW5kZXIgdGFyZ2V0LCBvciBgbnVsbGAgd2hlbiBubyByZW5kZXIgaXMgaW4gZmxpZ2h0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcGxhdGVyUmVuZGVyVGFyZ2V0RmlsZSgpOiBudWxsIHwgVEZpbGUge1xuICByZXR1cm4gcmVuZGVyVGFyZ2V0RmlsZXMuYXQoLTEpID8/IG51bGw7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGBUZW1wbGF0ZXJgIHRlbXBsYXRlIGFnYWluc3QgYSB0YXJnZXQgZmlsZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIHRleHQsIHdpdGhvdXQgd3JpdGluZ1xuICogYW55dGhpbmcuXG4gKlxuICogRm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FsbCB7QGxpbmsgZ2V0VGVtcGxhdGVyUmVuZGVyVGFyZ2V0RmlsZX0gYW5kXG4gKiB7QGxpbmsgVGVtcGxhdGVyQWN0aXZlRmlsZVByb3ZpZGVyfSByZXBvcnQgYHRhcmdldFBhdGhPckZpbGVgLCBzbyBhIGNvbnN1bWVyJ3Mgb3duIGhlbHBlcnMgaW52b2tlZCBmcm9tXG4gKiBpbnNpZGUgdGhlIHRlbXBsYXRlIHJlc29sdmUgYWdhaW5zdCBpdCByYXRoZXIgdGhhbiBhZ2FpbnN0IHdoYXRldmVyIHRoZSB1c2VyIGhhcyBvcGVuLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFBhcnNlVGVtcGxhdGVQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSByZW5kZXJlZCB0ZXh0LlxuICogQHRocm93cyBBIHtAbGluayBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yfSB3aGVuIGBUZW1wbGF0ZXJgIGlzIG5vdCBsb2FkZWQgb3IgaXRzIHNoYXBlIGhhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUZW1wbGF0ZShwYXJhbXM6IFBhcnNlVGVtcGxhdGVQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHRhcmdldFBhdGhPckZpbGUsXG4gICAgdGVtcGxhdGVQYXRoT3JGaWxlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHRlbXBsYXRlRmlsZSA9IGdldEZpbGUoe1xuICAgIGFwcCxcbiAgICBwYXRoT3JGaWxlOiB0ZW1wbGF0ZVBhdGhPckZpbGVcbiAgfSk7XG4gIGNvbnN0IHRhcmdldEZpbGUgPSBnZXRGaWxlKHtcbiAgICBhcHAsXG4gICAgcGF0aE9yRmlsZTogdGFyZ2V0UGF0aE9yRmlsZVxuICB9KTtcbiAgY29uc3QgYXBpID0gcmVxdWlyZVRlbXBsYXRlckFwaShhcHApO1xuXG4gIHJlbmRlclRhcmdldEZpbGVzLnB1c2godGFyZ2V0RmlsZSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGFwaS5yZWFkX2FuZF9wYXJzZV90ZW1wbGF0ZSh7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIGBUZW1wbGF0ZXJgIEFQSS5cbiAgICAgIHJ1bl9tb2RlOiBUZW1wbGF0ZXJSdW5Nb2RlLkR5bmFtaWNQcm9jZXNzb3IsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIGBUZW1wbGF0ZXJgIEFQSS5cbiAgICAgIHRhcmdldF9maWxlOiB0YXJnZXRGaWxlLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAtLSBgVGVtcGxhdGVyYCBBUEkuXG4gICAgICB0ZW1wbGF0ZV9maWxlOiB0ZW1wbGF0ZUZpbGVcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICByZW5kZXJUYXJnZXRGaWxlcy5wb3AoKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgYFRlbXBsYXRlcmAncyBpbnRlcm5hbCBBUEksIHRocm93aW5nIHdoZW4gaXQgY2Fubm90IGJlIGhhZC5cbiAqXG4gKiBVc2UgdGhpcyB3aGVyZSB0aGUgY2FsbGVyIGNhbm5vdCBjYXJyeSBvbiB3aXRob3V0IGBUZW1wbGF0ZXJgIOKAlCB0aGUgZXJyb3IgbmFtZXMgdGhlIHBsdWdpbiBhbmQgc2F5cyB3aGljaFxuICogb2YgdGhlIHR3byBmYWlsdXJlcyBvY2N1cnJlZC4gVXNlIHtAbGluayByZXNvbHZlVGVtcGxhdGVyQXBpfSBpbnN0ZWFkIHdoZXJlIHRoZSBpbnRlZ3JhdGlvbiBpcyBvcHRpb25hbC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIGBUZW1wbGF0ZXJgJ3MgaW50ZXJuYWwgQVBJLlxuICogQHRocm93cyBBIHtAbGluayBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yfSB3aGVuIGBUZW1wbGF0ZXJgIGlzIG5vdCBsb2FkZWQgb3IgaXRzIHNoYXBlIGhhcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVRlbXBsYXRlckFwaShhcHA6IEFwcCk6IFRlbXBsYXRlckFwaSB7XG4gIGlmICghYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKFRFTVBMQVRFUl9QTFVHSU5fSUQpKSB7XG4gICAgdGhyb3cgbmV3IFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3IoVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24uTm90TG9hZGVkKTtcbiAgfVxuXG4gIGNvbnN0IGFwaSA9IHJlc29sdmVUZW1wbGF0ZXJBcGkoYXBwKTtcbiAgaWYgKCFhcGkpIHtcbiAgICB0aHJvdyBuZXcgVGVtcGxhdGVyVW5hdmFpbGFibGVFcnJvcihUZW1wbGF0ZXJVbmF2YWlsYWJpbGl0eVJlYXNvbi5TaGFwZUNoYW5nZWQpO1xuICB9XG5cbiAgcmV0dXJuIGFwaTtcbn1cblxuLyoqXG4gKiBHZXRzIGBUZW1wbGF0ZXJgJ3MgaW50ZXJuYWwgQVBJLCB3aGVuIGBUZW1wbGF0ZXJgIGlzIGluc3RhbGxlZCwgZW5hYmxlZCBhbmQgc3RpbGwgdGhlIHNoYXBlIHRoaXMgbGlicmFyeVxuICogZXhwZWN0cy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFRoZSBpbnRlcm5hbCBBUEksIG9yIGBudWxsYCB3aGVuIGBUZW1wbGF0ZXJgIGlzIG5vdCB0aGVyZSB0byB0YWxrIHRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVRlbXBsYXRlckFwaShhcHA6IEFwcCk6IG51bGwgfCBUZW1wbGF0ZXJBcGkge1xuICBjb25zdCBwbHVnaW4gPSBhcHAucGx1Z2lucy5nZXRQbHVnaW4oVEVNUExBVEVSX1BMVUdJTl9JRCk7XG4gIGlmICghcGx1Z2luIHx8ICEoJ3RlbXBsYXRlcicgaW4gcGx1Z2luKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgdGVtcGxhdGVyOiB1bmtub3duID0gcGx1Z2luLnRlbXBsYXRlcjtcbiAgcmV0dXJuIGlzVGVtcGxhdGVyQXBpKHRlbXBsYXRlcikgPyB0ZW1wbGF0ZXIgOiBudWxsO1xufVxuXG4vKlxuICogVGhlIHN0YWNrIG9mIGZpbGVzIGluLWZsaWdodCBgcGFyc2VUZW1wbGF0ZWAgY2FsbHMgYXJlIHJlbmRlcmluZyBmb3IsIGlubmVybW9zdCBsYXN0LiBBIHN0YWNrIHJhdGhlclxuICogdGhhbiBhIHNpbmdsZSBzbG90IGJlY2F1c2UgYSB0ZW1wbGF0ZSBtYXkgcmVuZGVyIGFub3RoZXIsIGFuZCBhbiBhcnJheSByYXRoZXIgdGhhbiBhIHJlYXNzaWduZWRcbiAqIHZhcmlhYmxlIGJlY2F1c2UgcHVzaGluZyBhbmQgcG9wcGluZyBhIGBjb25zdGAgbmVlZHMgbm8gd3JpdGUgdG8gYW4gb3V0ZXIgYmluZGluZyBhY3Jvc3MgYW4gYGF3YWl0YC5cbiAqL1xuY29uc3QgcmVuZGVyVGFyZ2V0RmlsZXM6IFRGaWxlW10gPSBbXTtcblxuLyoqXG4gKiBDaGVja3MgdGhhdCBhIHZhbHVlIGlzIGBUZW1wbGF0ZXJgJ3MgaW50ZXJuYWwgQVBJLCBieSB0aGUgbWVtYmVycyB0aGlzIGxpYnJhcnkgYWN0dWFsbHkgY2FsbHMuXG4gKlxuICogQSBwcmVkaWNhdGUgcmF0aGVyIHRoYW4gYSBjYXN0IG9uIHB1cnBvc2U6IGB0ZW1wbGF0ZXJgIGlzIG5vdCBwYXJ0IG9mIE9ic2lkaWFuJ3MgYFBsdWdpbmAgdHlwZSwgc28gdGhlXG4gKiB2YWx1ZSBhcnJpdmVzIGFzIGB1bmtub3duYCBhbmQgdGhlIG9ubHkgaG9uZXN0IHdheSB0byB0eXBlIGl0IGlzIHRvIFZFUklGWSBpdC4gQSBgVGVtcGxhdGVyYCB0aGF0IHJlbmFtZXNcbiAqIG9uZSBvZiB0aGVzZSB0aGVyZWZvcmUgcmVhZHMgYXMgXCJub3QgdGhlcmVcIiwgaW5zdGVhZCBvZiB0aHJvd2luZyBmcm9tIGluc2lkZSBhIHJlbmRlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgY2FuZGlkYXRlIGB0ZW1wbGF0ZXJgIG9iamVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgaXQgY2FycmllcyBldmVyeSBtZW1iZXIgdGhpcyBsaWJyYXJ5IGNhbGxzLlxuICovXG5mdW5jdGlvbiBpc1RlbXBsYXRlckFwaSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFRlbXBsYXRlckFwaSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsIHx8ICEoJ2NyZWF0ZV9ydW5uaW5nX2NvbmZpZycgaW4gdmFsdWUpIHx8IHR5cGVvZiB2YWx1ZS5jcmVhdGVfcnVubmluZ19jb25maWcgIT09ICdmdW5jdGlvbicgfHwgISgncmVhZF9hbmRfcGFyc2VfdGVtcGxhdGUnIGluIHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUucmVhZF9hbmRfcGFyc2VfdGVtcGxhdGUgIT09ICdmdW5jdGlvbicgfHwgISgnZnVuY3Rpb25zX2dlbmVyYXRvcicgaW4gdmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZnVuY3Rpb25zR2VuZXJhdG9yOiB1bmtub3duID0gdmFsdWUuZnVuY3Rpb25zX2dlbmVyYXRvcjtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jdGlvbnNHZW5lcmF0b3IgPT09ICdvYmplY3QnICYmIGZ1bmN0aW9uc0dlbmVyYXRvciAhPT0gbnVsbCAmJiAnZ2VuZXJhdGVfb2JqZWN0JyBpbiBmdW5jdGlvbnNHZW5lcmF0b3IgJiYgdHlwZW9mIGZ1bmN0aW9uc0dlbmVyYXRvci5nZW5lcmF0ZV9vYmplY3QgPT09ICdmdW5jdGlvbic7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQ0Esa0NBQXNDO0FBQ3RDLHlCQUF3QjtBQWtJakIsTUFBTSxzQkFBc0I7QUFVNUIsSUFBSyxtQkFBTCxrQkFBS0Esc0JBQUw7QUFJTCxFQUFBQSxvQ0FBQSwyQkFBd0IsS0FBeEI7QUFLQSxFQUFBQSxvQ0FBQSxzQkFBbUIsS0FBbkI7QUFLQSxFQUFBQSxvQ0FBQSxtQkFBZ0IsS0FBaEI7QUFLQSxFQUFBQSxvQ0FBQSx5QkFBc0IsS0FBdEI7QUFNQSxFQUFBQSxvQ0FBQSxzQkFBbUIsS0FBbkI7QUFNQSxFQUFBQSxvQ0FBQSxxQkFBa0IsS0FBbEI7QUEvQlUsU0FBQUE7QUFBQSxHQUFBO0FBc0NMLElBQUssZ0NBQUwsa0JBQUtDLG1DQUFMO0FBS0wsRUFBQUEsK0JBQUEsZUFBWTtBQU1aLEVBQUFBLCtCQUFBLGtCQUFlO0FBWEwsU0FBQUE7QUFBQSxHQUFBO0FBcUJMLE1BQU0sb0NBQW9DLGtEQUFzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3JELGdCQUE4QjtBQUM1QyxXQUFPLDZCQUE2QixLQUFLLE1BQU0sY0FBYztBQUFBLEVBQy9EO0FBQ0Y7QUFNTyxNQUFNLGtDQUFrQyxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVCxZQUFZLFFBQXVDO0FBQ3hELFVBQU0sbUNBQW1DLG1CQUFtQixxQkFBcUIsTUFBTSxHQUFHO0FBQzFGLFNBQUssT0FBTztBQUNaLFNBQUssU0FBUztBQUFBLEVBQ2hCO0FBQ0Y7QUFVQSxlQUFzQixzQkFBc0IsUUFBc0Q7QUFDaEcsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBLHFCQUFxQjtBQUFBLElBQ3JCO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxNQUFNLG9CQUFvQixHQUFHO0FBRW5DLE1BQUksc0JBQXNCLElBQUksMEJBQTBCO0FBQ3RELFdBQU8sSUFBSTtBQUFBLEVBQ2I7QUFFQSxRQUFNLGlCQUFhLDRCQUFRO0FBQUEsSUFDekI7QUFBQSxJQUNBLFlBQVk7QUFBQSxFQUNkLENBQUM7QUFDRCxRQUFNLFNBQVMsSUFBSSxzQkFBc0IsUUFBVyxZQUFZLHVCQUFnQztBQUNoRyxTQUFPLE1BQU0sSUFBSSxvQkFBb0IsZ0JBQWdCLE1BQU07QUFDN0Q7QUFVTyxTQUFTLCtCQUE2QztBQUMzRCxTQUFPLGtCQUFrQixHQUFHLEVBQUUsS0FBSztBQUNyQztBQWNBLGVBQXNCLGNBQWMsUUFBOEM7QUFDaEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sbUJBQWUsNEJBQVE7QUFBQSxJQUMzQjtBQUFBLElBQ0EsWUFBWTtBQUFBLEVBQ2QsQ0FBQztBQUNELFFBQU0saUJBQWEsNEJBQVE7QUFBQSxJQUN6QjtBQUFBLElBQ0EsWUFBWTtBQUFBLEVBQ2QsQ0FBQztBQUNELFFBQU0sTUFBTSxvQkFBb0IsR0FBRztBQUVuQyxvQkFBa0IsS0FBSyxVQUFVO0FBQ2pDLE1BQUk7QUFDRixXQUFPLE1BQU0sSUFBSSx3QkFBd0I7QUFBQTtBQUFBLE1BRXZDLFVBQVU7QUFBQTtBQUFBLE1BRVYsYUFBYTtBQUFBO0FBQUEsTUFFYixlQUFlO0FBQUEsSUFDakIsQ0FBQztBQUFBLEVBQ0gsVUFBRTtBQUNBLHNCQUFrQixJQUFJO0FBQUEsRUFDeEI7QUFDRjtBQVlPLFNBQVMsb0JBQW9CLEtBQXdCO0FBQzFELE1BQUksQ0FBQyxJQUFJLFFBQVEsVUFBVSxtQkFBbUIsR0FBRztBQUMvQyxVQUFNLElBQUksMEJBQTBCLDJCQUF1QztBQUFBLEVBQzdFO0FBRUEsUUFBTSxNQUFNLG9CQUFvQixHQUFHO0FBQ25DLE1BQUksQ0FBQyxLQUFLO0FBQ1IsVUFBTSxJQUFJLDBCQUEwQixpQ0FBMEM7QUFBQSxFQUNoRjtBQUVBLFNBQU87QUFDVDtBQVNPLFNBQVMsb0JBQW9CLEtBQStCO0FBQ2pFLFFBQU0sU0FBUyxJQUFJLFFBQVEsVUFBVSxtQkFBbUI7QUFDeEQsTUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLFNBQVM7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFlBQXFCLE9BQU87QUFDbEMsU0FBTyxlQUFlLFNBQVMsSUFBSSxZQUFZO0FBQ2pEO0FBT0EsTUFBTSxvQkFBNkIsQ0FBQztBQVlwQyxTQUFTLGVBQWUsT0FBdUM7QUFDN0QsTUFBSSxPQUFPLFVBQVUsWUFBWSxVQUFVLFFBQVEsRUFBRSwyQkFBMkIsVUFBVSxPQUFPLE1BQU0sMEJBQTBCLGNBQWMsRUFBRSw2QkFBNkIsVUFBVSxPQUFPLE1BQU0sNEJBQTRCLGNBQWMsRUFBRSx5QkFBeUIsUUFBUTtBQUNoUixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0scUJBQThCLE1BQU07QUFDMUMsU0FBTyxPQUFPLHVCQUF1QixZQUFZLHVCQUF1QixRQUFRLHFCQUFxQixzQkFBc0IsT0FBTyxtQkFBbUIsb0JBQW9CO0FBQzNLOyIsIm5hbWVzIjpbIlRlbXBsYXRlclJ1bk1vZGUiLCJUZW1wbGF0ZXJVbmF2YWlsYWJpbGl0eVJlYXNvbiJdfQ==
@@ -91,15 +91,15 @@ export interface TemplaterApi {
91
91
  * @param runMode - Which {@link TemplaterRunMode} the render is.
92
92
  * @returns The running config.
93
93
  */
94
- create_running_config: (templateFile: TFile | undefined, targetFile: TFile, runMode: TemplaterRunMode) => TemplaterRunningConfig;
94
+ readonly create_running_config: (templateFile: TFile | undefined, targetFile: TFile, runMode: TemplaterRunMode) => TemplaterRunningConfig;
95
95
  /**
96
96
  * The functions object (`tp`) of the render currently in flight, when there is one.
97
97
  */
98
- current_functions_object?: object | undefined;
98
+ readonly current_functions_object?: object | undefined;
99
99
  /**
100
100
  * Builds the functions object (`tp`) a template is evaluated against.
101
101
  */
102
- functions_generator: TemplaterFunctionsGenerator;
102
+ readonly functions_generator: TemplaterFunctionsGenerator;
103
103
  /**
104
104
  * Reads the config's `template_file` and renders it, returning the resulting text.
105
105
  *
@@ -107,7 +107,7 @@ export interface TemplaterApi {
107
107
  * `template_file` is not a `TFile`.
108
108
  * @returns A {@link Promise} resolving to the rendered text.
109
109
  */
110
- read_and_parse_template: (config: TemplaterRunningConfig) => Promise<string>;
110
+ readonly read_and_parse_template: (config: TemplaterRunningConfig) => Promise<string>;
111
111
  }
112
112
  /**
113
113
  * The `functions_generator` half of {@link TemplaterApi}.
@@ -119,7 +119,7 @@ export interface TemplaterFunctionsGenerator {
119
119
  * @param config - The {@link TemplaterRunningConfig} to build for.
120
120
  * @returns A {@link Promise} resolving to the functions object.
121
121
  */
122
- generate_object: (config: TemplaterRunningConfig) => Promise<object>;
122
+ readonly generate_object: (config: TemplaterRunningConfig) => Promise<object>;
123
123
  }
124
124
  /**
125
125
  * One `Templater` render, as `Templater`'s `create_running_config` describes it.
@@ -132,19 +132,19 @@ export interface TemplaterRunningConfig {
132
132
  * `workspace.activeEditor?.file ?? workspace.getActiveFile()`; it is optional here because a
133
133
  * hand-built config may omit it.
134
134
  */
135
- active_file?: null | TFile | undefined;
135
+ readonly active_file?: null | TFile | undefined;
136
136
  /**
137
137
  * Which {@link TemplaterRunMode} the render is.
138
138
  */
139
- run_mode: TemplaterRunMode;
139
+ readonly run_mode: TemplaterRunMode;
140
140
  /**
141
141
  * The file the render is for — what `tp.file.*` resolves to.
142
142
  */
143
- target_file: TFile;
143
+ readonly target_file: TFile;
144
144
  /**
145
145
  * The template being rendered, when there is one.
146
146
  */
147
- template_file?: TFile | undefined;
147
+ readonly template_file?: TFile | undefined;
148
148
  }
149
149
  /**
150
150
  * `Templater`'s plugin id, as its manifest declares it.
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -208,4 +208,4 @@ function hasControlChars(name) {
208
208
  isWindowsReservedName,
209
209
  trimWindowsTrailingChars
210
210
  });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIFdpbmRvd3MuXG4gKlxuICogUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLCB3aG9zZSBuYW1lIGNoZWNrIHRocm93cyBvbiB0aGlzIHNldCBmcm9tIGBhcHAudmF1bHQuY3JlYXRlYCwgYVxuICogcmVuYW1lIGFuZCBTeW5jIGFsaWtlLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIG1hY09TLCBMaW51eCBhbmQgaU9TLCBwbHVzIHRoZSBOVUwgbm8gZmlsZSBzeXN0ZW0gc3RvcmVzLlxuICpcbiAqIFRoaXMgaXMgT2JzaWRpYW4ncyByZWZ1c2FsIHNldCwgbm90IHRoZSBmaWxlIHN5c3RlbSdzOiBtYWNPUyBhbmQgTGludXggc3RvcmUgYFxcYCBhbmQgYDpgLCBidXQgT2JzaWRpYW5cbiAqIHJlZnVzZXMgYm90aCwgc28gYSBuYW1lIGhvbGRpbmcgZWl0aGVyIGNhbm5vdCBiZSBjcmVhdGVkIHRocm91Z2ggdGhlIHZhdWx0IHRoZXJlLiBSZWFkIGZyb20gT2JzaWRpYW5cbiAqIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwXFxcXC86XS9nO1xuXG4vKipcbiAqIFRoZSBjaGFyYWN0ZXJzIE9ic2lkaWFuIHJlZnVzZXMgaW4gYSBmaWxlIG5hbWUgb24gQW5kcm9pZCwgcGx1cyB0aGUgTlVMIG5vIGZpbGUgc3lzdGVtIHN0b3Jlcy5cbiAqXG4gKiBPYnNpZGlhbiBhZGRzIGAqID8gPCA+IFwiYCB0byB0aGUge0BsaW5rIFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlN9IHNldCB0aGVyZSwgYmVjYXVzZSBBbmRyb2lkJ3Mgc2hhcmVkXG4gKiBzdG9yYWdlIHJlZnVzZXMgdGhlbS4gUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwKlxcXFwvPD46P1wiXS9nO1xuXG4vKipcbiAqIFRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3Mgc3RpbGwgcmVmdXNlcyBhcyBhIGZpbGUgbmFtZSwgd2l0aCBvciB3aXRob3V0IGFuIGV4dGVuc2lvbi5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBhYnNlbnQ6IHRoZXkgYXJlIGFjY2VwdGVkIGJ5XG4gKiBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIFVubGlrZSB0aGUgZXhwb3J0ZWQgY2hhcmFjdGVyIHNldHMgYWJvdmUsIHRoaXMgY2FycmllcyBubyBgZ2AgZmxhZywgc28gYHRlc3RgIG1heSBiZSBjYWxsZWQgb24gaXRcbiAqIHJlcGVhdGVkbHkg4oCUIGEgYGdgLWZsYWdnZWQgcmVnZXhwIGFkdmFuY2VzIGBsYXN0SW5kZXhgIGFuZCBhbnN3ZXJzIGRpZmZlcmVudGx5IG9uIGNvbnNlY3V0aXZlIGNhbGxzLlxuICovXG5jb25zdCBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUCA9IC9eKD86QVVYfENPTVsxLTldfENPTnxMUFRbMS05XXxOVUx8UFJOKSQvaTtcblxuLyoqXG4gKiBUaGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3Mgc3RyaXBzIGZyb20gYSBuYW1lIGJlZm9yZSBpdCBkb2VzIGFueXRoaW5nIGVsc2Ugd2l0aCBpdC5cbiAqL1xuY29uc3QgV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQID0gL1sgLl0rJC87XG5cbi8qKlxuICogVGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgQzAgY29udHJvbCByYW5nZSwgVSswMDAwIHRvIFUrMDAxRiwgd2hpY2ggV2luZG93cyByZWZ1c2VzIGluIGEgbmFtZS5cbiAqL1xuY29uc3QgRklSU1RfTk9OX0NPTlRST0xfQ0hBUiA9ICcgJztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBzaW5nbGUgZmlsZSBvciBmb2xkZXIgbmFtZSBhZ2FpbnN0IGV2ZXJ5IG5hbWluZyBydWxlIHRoaXMgbW9kdWxlIG93bnMuXG4gKlxuICogVGhlIHJ1bGVzLCBjaGVja2VkIGluIHRoaXMgb3JkZXIsIGFuZCB0aGUgZmlyc3Qgb25lIGJyb2tlbiBuYW1lcyB0aGUgbWVzc2FnZTpcbiAqXG4gKiAxLiBUaGUgbmFtZSBpcyBub3QgZW1wdHkuXG4gKiAyLiBJdCBob2xkcyBubyBjb250cm9sIGNoYXJhY3RlciAoVSswMDAwIHRvIFUrMDAxRikuXG4gKiAzLiBJdCBob2xkcyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIHtAbGluayBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwfSBtYXRjaGVzLlxuICogNC4gSXQgZG9lcyBub3QgZW5kIHdpdGggYSBkb3Qgb3IgYSBzcGFjZSAoe0BsaW5rIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzfSkuXG4gKiA1LiBJdCBpcyBub3QgYW4gTVMtRE9TIGRldmljZSBuYW1lICh7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSksIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogT25seSBydWxlIDMgZGVwZW5kcyBvbiB0aGUgcGxhdGZvcm0uIFJ1bGVzIDIsIDQgYW5kIDUgYXBwbHkgb24gZXZlcnkgcGxhdGZvcm0sIGJlY2F1c2UgYSB2YXVsdCBpcyBzeW5jZWQsXG4gKiBhbmQgYSBuYW1lIGNyZWF0ZWQgb24gbWFjT1Mgb3IgTGludXggdGhhdCBXaW5kb3dzIHJlZnVzZXMgYnJlYWtzIHRoZSB2YXVsdCB0aGVyZS4gVGhlIGNoYXJhY3RlciBzZXQgZm9sbG93c1xuICogdGhlIHBsYXRmb3JtIGJlY2F1c2UgaXQgaXMgT2JzaWRpYW4ncyBvd24gcmVmdXNhbCBzZXQsIHdoaWNoIGRpZmZlcnMgcGVyIHBsYXRmb3JtOiBhIG5hbWUgc3VjaCBhcyBgYT9iYCBpc1xuICogYWNjZXB0ZWQgb24gbWFjT1MsIHdoZXJlIE9ic2lkaWFuIGNyZWF0ZXMgaXQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCB3aXRoIG9yIHdpdGhvdXQgaXRzIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSBtZXNzYWdlIGRlc2NyaWJpbmcgdGhlIGZpcnN0IGJyb2tlbiBydWxlLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIG5hbWUgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlKG5hbWU6IHN0cmluZywgaXNXaW5kb3dzPzogYm9vbGVhbiwgaXNBbmRyb2lkPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChuYW1lID09PSAnJykge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24uZW1wdHlOYW1lKTtcbiAgfVxuXG4gIGlmIChoYXNDb250cm9sQ2hhcnMobmFtZSkpIHtcbiAgICByZXR1cm4gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLmNvbnRyb2xDaGFyYWN0ZXIsIHsgbmFtZSB9KTtcbiAgfVxuXG4gIGNvbnN0IHVuc2FmZUNoYXJzID0gbmV3IFNldChuYW1lLm1hdGNoKGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAoaXNXaW5kb3dzLCBpc0FuZHJvaWQpKSk7XG4gIGlmICh1bnNhZmVDaGFycy5zaXplID4gMCkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udW5zYWZlQ2hhcmFjdGVycywgeyBjaGFyYWN0ZXJzOiBbLi4udW5zYWZlQ2hhcnNdLmpvaW4oJyAnKSwgbmFtZSB9KTtcbiAgfVxuXG4gIGlmIChoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKSkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udHJhaWxpbmdDaGFyYWN0ZXJzLCB7IG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWUpID8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLndpbmRvd3NSZXNlcnZlZE5hbWUsIHsgbmFtZSB9KSA6ICcnO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCB0aGUgcGxhdGZvcm0ncyByZWZ1c2VkIGNoYXJhY3RlcnMgKHtAbGluayBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cH0pIGFuZCB0aGUgb25lcyB0aGF0IGJyZWFrXG4gKiBsaW5rcyAoe0BsaW5rIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU30pLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICByZXR1cm4gb25lT2YoW1xuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cywgaXNBbmRyb2lkKSxcbiAgICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlNcbiAgXSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqXG4gKiBUaGF0IGlzIHtAbGluayBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTfSBvbiBXaW5kb3dzLCB7QGxpbmsgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSU30gb24gQW5kcm9pZCBhbmRcbiAqIHtAbGluayBVTklYX1VOU0FGRV9QQVRIX0NIQVJTfSBldmVyeXdoZXJlIGVsc2UuIEl0IGlzIE9ic2lkaWFuJ3Mgc2V0IHJhdGhlciB0aGFuIHRoZSBmaWxlIHN5c3RlbSdzLCBzbyBhXG4gKiBuYW1lIGl0IGFjY2VwdHMgY2FuIGJlIGNyZWF0ZWQgdGhyb3VnaCB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICBpZiAoaXNXaW5kb3dzKSB7XG4gICAgcmV0dXJuIFdJTkRPV1NfVU5TQUZFX1BBVEhfQ0hBUlM7XG4gIH1cblxuICBpc0FuZHJvaWQgPz89IFBsYXRmb3JtLmlzQW5kcm9pZEFwcDtcbiAgcmV0dXJuIGlzQW5kcm9pZCA/IEFORFJPSURfVU5TQUZFX1BBVEhfQ0hBUlMgOiBVTklYX1VOU0FGRV9QQVRIX0NIQVJTO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBldmVyeSBzZWdtZW50IG9mIGEgdmF1bHQgcGF0aCB3aXRoIHtAbGluayBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlfS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRoIHRvIHZhbGlkYXRlLCB3aXRoIGAvYCBhcyB0aGUgc2VwYXJhdG9yLlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSBmb3IgdGhlIGZpcnN0IGludmFsaWQgc2VnbWVudCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIGV2ZXJ5IHNlZ21lbnQgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoVmFsaWRhdGlvbk1lc3NhZ2UocGF0aDogc3RyaW5nLCBpc1dpbmRvd3M/OiBib29sZWFuLCBpc0FuZHJvaWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5tYXAoKHNlZ21lbnQpID0+IGdldEZpbGVOYW1lVmFsaWRhdGlvbk1lc3NhZ2Uoc2VnbWVudCwgaXNXaW5kb3dzLCBpc0FuZHJvaWQpKS5maW5kKEJvb2xlYW4pID8/ICcnO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbmFtZSBlbmRzIHdpdGggdGhlIGRvdHMgb3Igc3BhY2VzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBBbnN3ZXJzIGZvciBXaW5kb3dzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIGluIHVzZTogYSB2YXVsdCBpcyBzeW5jZWQsIHNvIHRoZSBydWxlcyB0aGF0IG1hdHRlciBhcmVcbiAqIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgbWFjaGluZSBhc2tpbmcuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBjaGVjay4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQLnRlc3QobmFtZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGlzIG9uZSBvZiB0aGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHJlZnVzZXMuXG4gKlxuICogVHdvIHN0ZXBzIHRoZSBjYWxsZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8ga25vdyBhYm91dCBoYXBwZW4gaGVyZTogdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZVxuICogdHJpbW1lZCBCRUZPUkUgdGhlIHRlc3QsIGJlY2F1c2UgV2luZG93cyBzdHJpcHMgdGhlbSBiZWZvcmUgZGVjaWRpbmcgYW5kIGBDT04gYCBpcyB0aGVyZWZvcmUgYXNcbiAqIHJlc2VydmVkIGFzIGBDT05gOyBhbmQgdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLCBiZWNhdXNlIGBDT04ubWRgIGlzIHJlc2VydmVkIHRvby5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBOT1QgcmVzZXJ2ZWQ6IHRoZXkgYXJlIGFjY2VwdGVkXG4gKiBieSBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIHdpdGggb3Igd2l0aG91dCBpdHMgZXh0ZW5zaW9uLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGlzIHJlc2VydmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93c1Jlc2VydmVkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZE5hbWUgPSB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSk7XG4gIHJldHVybiBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUC50ZXN0KGJhc2VuYW1lKHRyaW1tZWROYW1lLCBleHRuYW1lKHRyaW1tZWROYW1lKSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHJlZnVzZXMgZnJvbSB0aGUgZW5kIG9mIGEgbmFtZS5cbiAqXG4gKiBUcmltIGJlZm9yZSB0ZXN0aW5nIGZvciBhIHJlc2VydmVkIG5hbWUsIG5ldmVyIGFmdGVyOiB0cmltbWluZyBhZnRlcndhcmRzIHR1cm5zIGFuIGFjY2VwdGVkIGBDT04gYCBpbnRvXG4gKiBhIHJlamVjdGVkIGBDT05gLiB7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSBhbHJlYWR5IGRvZXMgdGhpcyBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdHJpbS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWUgd2l0aG91dCBpdHMgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzLCB3aGljaCBtYXkgYmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAsICcnKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaG9sZHMgYSBjb250cm9sIGNoYXJhY3RlciwgVSswMDAwIHRvIFUrMDAxRi5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGhvbGRzIGEgY29udHJvbCBjaGFyYWN0ZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBoYXNDb250cm9sQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgY2hhciBvZiBuYW1lKSB7XG4gICAgaWYgKGNoYXIgPCBGSVJTVF9OT05fQ09OVFJPTF9DSEFSKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsa0JBR087QUFDUCxxQkFBc0I7QUFDdEIsc0JBQXlCO0FBRXpCLGtCQUFrQjtBQWtCWCxTQUFTLDBCQUEwQixPQUFrRDtBQUMxRixTQUFRLE1BQTJDLHNCQUFzQjtBQUMzRTtBQUtPLE1BQU0saUNBQWlDO0FBUXZDLE1BQU0sNEJBQTRCO0FBU2xDLE1BQU0seUJBQXlCO0FBUS9CLE1BQU0sNEJBQTRCO0FBV3pDLE1BQU0sZ0NBQWdDO0FBS3RDLE1BQU0saUNBQWlDO0FBS3ZDLE1BQU0seUJBQXlCO0FBd0J4QixTQUFTLDZCQUE2QixNQUFjLFdBQXFCLFdBQTZCO0FBQzNHLE1BQUksU0FBUyxJQUFJO0FBQ2YsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxTQUFTO0FBQUEsRUFDcEQ7QUFFQSxNQUFJLGdCQUFnQixJQUFJLEdBQUc7QUFDekIsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUNyRTtBQUVBLFFBQU0sY0FBYyxJQUFJLElBQUksS0FBSyxNQUFNLHNDQUFzQyxXQUFXLFNBQVMsQ0FBQyxDQUFDO0FBQ25HLE1BQUksWUFBWSxPQUFPLEdBQUc7QUFDeEIsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQUEsRUFDN0c7QUFFQSxNQUFJLHdCQUF3QixJQUFJLEdBQUc7QUFDakMsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxvQkFBb0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUN2RTtBQUVBLFNBQU8sc0JBQXNCLElBQUksUUFBSSxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsSUFBSTtBQUMxRztBQWFPLFNBQVMsc0NBQXNDLFdBQXFCLFdBQTZCO0FBQ3RHLGFBQU8sc0JBQU07QUFBQSxJQUNYLDJCQUEyQixXQUFXLFNBQVM7QUFBQSxJQUMvQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBY08sU0FBUywyQkFBMkIsV0FBcUIsV0FBNkI7QUFDM0YsZ0JBQWMseUJBQVM7QUFDdkIsTUFBSSxXQUFXO0FBQ2IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxnQkFBYyx5QkFBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBV08sU0FBUyx5QkFBeUIsTUFBYyxXQUFxQixXQUE2QjtBQUN2RyxTQUFPLEtBQUssTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksNkJBQTZCLFNBQVMsV0FBVyxTQUFTLENBQUMsRUFBRSxLQUFLLE9BQU8sS0FBSztBQUN4SDtBQVdPLFNBQVMsd0JBQXdCLE1BQXVCO0FBQzdELFNBQU8sK0JBQStCLEtBQUssSUFBSTtBQUNqRDtBQWtCTyxTQUFTLHNCQUFzQixNQUF1QjtBQUMzRCxRQUFNLGNBQWMseUJBQXlCLElBQUk7QUFDakQsU0FBTyw4QkFBOEIsU0FBSyxzQkFBUyxpQkFBYSxxQkFBUSxXQUFXLENBQUMsQ0FBQztBQUN2RjtBQVdPLFNBQVMseUJBQXlCLE1BQXNCO0FBQzdELFNBQU8sS0FBSyxRQUFRLGdDQUFnQyxFQUFFO0FBQ3hEO0FBUUEsU0FBUyxnQkFBZ0IsTUFBdUI7QUFDOUMsYUFBVyxRQUFRLE1BQU07QUFDdkIsUUFBSSxPQUFPLHdCQUF3QjtBQUNqQyxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7IiwibmFtZXMiOltdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIFdpbmRvd3MuXG4gKlxuICogUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLCB3aG9zZSBuYW1lIGNoZWNrIHRocm93cyBvbiB0aGlzIHNldCBmcm9tIGBhcHAudmF1bHQuY3JlYXRlYCwgYVxuICogcmVuYW1lIGFuZCBTeW5jIGFsaWtlLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIG1hY09TLCBMaW51eCBhbmQgaU9TLCBwbHVzIHRoZSBOVUwgbm8gZmlsZSBzeXN0ZW0gc3RvcmVzLlxuICpcbiAqIFRoaXMgaXMgT2JzaWRpYW4ncyByZWZ1c2FsIHNldCwgbm90IHRoZSBmaWxlIHN5c3RlbSdzOiBtYWNPUyBhbmQgTGludXggc3RvcmUgYFxcYCBhbmQgYDpgLCBidXQgT2JzaWRpYW5cbiAqIHJlZnVzZXMgYm90aCwgc28gYSBuYW1lIGhvbGRpbmcgZWl0aGVyIGNhbm5vdCBiZSBjcmVhdGVkIHRocm91Z2ggdGhlIHZhdWx0IHRoZXJlLiBSZWFkIGZyb20gT2JzaWRpYW5cbiAqIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwXFxcXC86XS9nO1xuXG4vKipcbiAqIFRoZSBjaGFyYWN0ZXJzIE9ic2lkaWFuIHJlZnVzZXMgaW4gYSBmaWxlIG5hbWUgb24gQW5kcm9pZCwgcGx1cyB0aGUgTlVMIG5vIGZpbGUgc3lzdGVtIHN0b3Jlcy5cbiAqXG4gKiBPYnNpZGlhbiBhZGRzIGAqID8gPCA+IFwiYCB0byB0aGUge0BsaW5rIFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlN9IHNldCB0aGVyZSwgYmVjYXVzZSBBbmRyb2lkJ3Mgc2hhcmVkXG4gKiBzdG9yYWdlIHJlZnVzZXMgdGhlbS4gUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwKlxcXFwvPD46P1wiXS9nO1xuXG4vKipcbiAqIFRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3Mgc3RpbGwgcmVmdXNlcyBhcyBhIGZpbGUgbmFtZSwgd2l0aCBvciB3aXRob3V0IGFuIGV4dGVuc2lvbi5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBhYnNlbnQ6IHRoZXkgYXJlIGFjY2VwdGVkIGJ5XG4gKiBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIFVubGlrZSB0aGUgZXhwb3J0ZWQgY2hhcmFjdGVyIHNldHMgYWJvdmUsIHRoaXMgY2FycmllcyBubyBgZ2AgZmxhZywgc28gYHRlc3RgIG1heSBiZSBjYWxsZWQgb24gaXRcbiAqIHJlcGVhdGVkbHkg4oCUIGEgYGdgLWZsYWdnZWQgcmVnZXhwIGFkdmFuY2VzIGBsYXN0SW5kZXhgIGFuZCBhbnN3ZXJzIGRpZmZlcmVudGx5IG9uIGNvbnNlY3V0aXZlIGNhbGxzLlxuICovXG5jb25zdCBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUCA9IC9eKD86QVVYfENPTVsxLTldfENPTnxMUFRbMS05XXxOVUx8UFJOKSQvaTtcblxuLyoqXG4gKiBUaGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3Mgc3RyaXBzIGZyb20gYSBuYW1lIGJlZm9yZSBpdCBkb2VzIGFueXRoaW5nIGVsc2Ugd2l0aCBpdC5cbiAqL1xuY29uc3QgV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQID0gL1sgLl0rJC87XG5cbi8qKlxuICogVGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgQzAgY29udHJvbCByYW5nZSwgVSswMDAwIHRvIFUrMDAxRiwgd2hpY2ggV2luZG93cyByZWZ1c2VzIGluIGEgbmFtZS5cbiAqL1xuY29uc3QgRklSU1RfTk9OX0NPTlRST0xfQ0hBUiA9ICcgJztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBzaW5nbGUgZmlsZSBvciBmb2xkZXIgbmFtZSBhZ2FpbnN0IGV2ZXJ5IG5hbWluZyBydWxlIHRoaXMgbW9kdWxlIG93bnMuXG4gKlxuICogVGhlIHJ1bGVzLCBjaGVja2VkIGluIHRoaXMgb3JkZXIsIGFuZCB0aGUgZmlyc3Qgb25lIGJyb2tlbiBuYW1lcyB0aGUgbWVzc2FnZTpcbiAqXG4gKiAxLiBUaGUgbmFtZSBpcyBub3QgZW1wdHkuXG4gKiAyLiBJdCBob2xkcyBubyBjb250cm9sIGNoYXJhY3RlciAoVSswMDAwIHRvIFUrMDAxRikuXG4gKiAzLiBJdCBob2xkcyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIHtAbGluayBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwfSBtYXRjaGVzLlxuICogNC4gSXQgZG9lcyBub3QgZW5kIHdpdGggYSBkb3Qgb3IgYSBzcGFjZSAoe0BsaW5rIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzfSkuXG4gKiA1LiBJdCBpcyBub3QgYW4gTVMtRE9TIGRldmljZSBuYW1lICh7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSksIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogT25seSBydWxlIDMgZGVwZW5kcyBvbiB0aGUgcGxhdGZvcm0uIFJ1bGVzIDIsIDQgYW5kIDUgYXBwbHkgb24gZXZlcnkgcGxhdGZvcm0sIGJlY2F1c2UgYSB2YXVsdCBpcyBzeW5jZWQsXG4gKiBhbmQgYSBuYW1lIGNyZWF0ZWQgb24gbWFjT1Mgb3IgTGludXggdGhhdCBXaW5kb3dzIHJlZnVzZXMgYnJlYWtzIHRoZSB2YXVsdCB0aGVyZS4gVGhlIGNoYXJhY3RlciBzZXQgZm9sbG93c1xuICogdGhlIHBsYXRmb3JtIGJlY2F1c2UgaXQgaXMgT2JzaWRpYW4ncyBvd24gcmVmdXNhbCBzZXQsIHdoaWNoIGRpZmZlcnMgcGVyIHBsYXRmb3JtOiBhIG5hbWUgc3VjaCBhcyBgYT9iYCBpc1xuICogYWNjZXB0ZWQgb24gbWFjT1MsIHdoZXJlIE9ic2lkaWFuIGNyZWF0ZXMgaXQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCB3aXRoIG9yIHdpdGhvdXQgaXRzIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSBtZXNzYWdlIGRlc2NyaWJpbmcgdGhlIGZpcnN0IGJyb2tlbiBydWxlLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIG5hbWUgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlKG5hbWU6IHN0cmluZywgaXNXaW5kb3dzPzogYm9vbGVhbiwgaXNBbmRyb2lkPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChuYW1lID09PSAnJykge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24uZW1wdHlOYW1lKTtcbiAgfVxuXG4gIGlmIChoYXNDb250cm9sQ2hhcnMobmFtZSkpIHtcbiAgICByZXR1cm4gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLmNvbnRyb2xDaGFyYWN0ZXIsIHsgbmFtZSB9KTtcbiAgfVxuXG4gIGNvbnN0IHVuc2FmZUNoYXJzID0gbmV3IFNldChuYW1lLm1hdGNoKGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAoaXNXaW5kb3dzLCBpc0FuZHJvaWQpKSk7XG4gIGlmICh1bnNhZmVDaGFycy5zaXplID4gMCkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udW5zYWZlQ2hhcmFjdGVycywgeyBjaGFyYWN0ZXJzOiBbLi4udW5zYWZlQ2hhcnNdLmpvaW4oJyAnKSwgbmFtZSB9KTtcbiAgfVxuXG4gIGlmIChoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKSkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udHJhaWxpbmdDaGFyYWN0ZXJzLCB7IG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWUpID8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLndpbmRvd3NSZXNlcnZlZE5hbWUsIHsgbmFtZSB9KSA6ICcnO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCB0aGUgcGxhdGZvcm0ncyByZWZ1c2VkIGNoYXJhY3RlcnMgKHtAbGluayBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cH0pIGFuZCB0aGUgb25lcyB0aGF0IGJyZWFrXG4gKiBsaW5rcyAoe0BsaW5rIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU30pLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICByZXR1cm4gb25lT2YoW1xuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cywgaXNBbmRyb2lkKSxcbiAgICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlNcbiAgXSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqXG4gKiBUaGF0IGlzIHtAbGluayBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTfSBvbiBXaW5kb3dzLCB7QGxpbmsgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSU30gb24gQW5kcm9pZCBhbmRcbiAqIHtAbGluayBVTklYX1VOU0FGRV9QQVRIX0NIQVJTfSBldmVyeXdoZXJlIGVsc2UuIEl0IGlzIE9ic2lkaWFuJ3Mgc2V0IHJhdGhlciB0aGFuIHRoZSBmaWxlIHN5c3RlbSdzLCBzbyBhXG4gKiBuYW1lIGl0IGFjY2VwdHMgY2FuIGJlIGNyZWF0ZWQgdGhyb3VnaCB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICBpZiAoaXNXaW5kb3dzKSB7XG4gICAgcmV0dXJuIFdJTkRPV1NfVU5TQUZFX1BBVEhfQ0hBUlM7XG4gIH1cblxuICBpc0FuZHJvaWQgPz89IFBsYXRmb3JtLmlzQW5kcm9pZEFwcDtcbiAgcmV0dXJuIGlzQW5kcm9pZCA/IEFORFJPSURfVU5TQUZFX1BBVEhfQ0hBUlMgOiBVTklYX1VOU0FGRV9QQVRIX0NIQVJTO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBldmVyeSBzZWdtZW50IG9mIGEgdmF1bHQgcGF0aCB3aXRoIHtAbGluayBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlfS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRoIHRvIHZhbGlkYXRlLCB3aXRoIGAvYCBhcyB0aGUgc2VwYXJhdG9yLlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSBmb3IgdGhlIGZpcnN0IGludmFsaWQgc2VnbWVudCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIGV2ZXJ5IHNlZ21lbnQgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoVmFsaWRhdGlvbk1lc3NhZ2UocGF0aDogc3RyaW5nLCBpc1dpbmRvd3M/OiBib29sZWFuLCBpc0FuZHJvaWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5tYXAoKHNlZ21lbnQpID0+IGdldEZpbGVOYW1lVmFsaWRhdGlvbk1lc3NhZ2Uoc2VnbWVudCwgaXNXaW5kb3dzLCBpc0FuZHJvaWQpKS5maW5kKEJvb2xlYW4pID8/ICcnO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbmFtZSBlbmRzIHdpdGggdGhlIGRvdHMgb3Igc3BhY2VzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBBbnN3ZXJzIGZvciBXaW5kb3dzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIGluIHVzZTogYSB2YXVsdCBpcyBzeW5jZWQsIHNvIHRoZSBydWxlcyB0aGF0IG1hdHRlciBhcmVcbiAqIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgbWFjaGluZSBhc2tpbmcuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBjaGVjay4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQLnRlc3QobmFtZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGlzIG9uZSBvZiB0aGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHJlZnVzZXMuXG4gKlxuICogVHdvIHN0ZXBzIHRoZSBjYWxsZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8ga25vdyBhYm91dCBoYXBwZW4gaGVyZTogdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZVxuICogdHJpbW1lZCBCRUZPUkUgdGhlIHRlc3QsIGJlY2F1c2UgV2luZG93cyBzdHJpcHMgdGhlbSBiZWZvcmUgZGVjaWRpbmcgYW5kIGBDT04gYCBpcyB0aGVyZWZvcmUgYXNcbiAqIHJlc2VydmVkIGFzIGBDT05gOyBhbmQgdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLCBiZWNhdXNlIGBDT04ubWRgIGlzIHJlc2VydmVkIHRvby5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBOT1QgcmVzZXJ2ZWQ6IHRoZXkgYXJlIGFjY2VwdGVkXG4gKiBieSBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIHdpdGggb3Igd2l0aG91dCBpdHMgZXh0ZW5zaW9uLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGlzIHJlc2VydmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93c1Jlc2VydmVkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZE5hbWUgPSB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSk7XG4gIHJldHVybiBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUC50ZXN0KGJhc2VuYW1lKHRyaW1tZWROYW1lLCBleHRuYW1lKHRyaW1tZWROYW1lKSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHJlZnVzZXMgZnJvbSB0aGUgZW5kIG9mIGEgbmFtZS5cbiAqXG4gKiBUcmltIGJlZm9yZSB0ZXN0aW5nIGZvciBhIHJlc2VydmVkIG5hbWUsIG5ldmVyIGFmdGVyOiB0cmltbWluZyBhZnRlcndhcmRzIHR1cm5zIGFuIGFjY2VwdGVkIGBDT04gYCBpbnRvXG4gKiBhIHJlamVjdGVkIGBDT05gLiB7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSBhbHJlYWR5IGRvZXMgdGhpcyBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdHJpbS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWUgd2l0aG91dCBpdHMgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzLCB3aGljaCBtYXkgYmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAsICcnKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaG9sZHMgYSBjb250cm9sIGNoYXJhY3RlciwgVSswMDAwIHRvIFUrMDAxRi5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGhvbGRzIGEgY29udHJvbCBjaGFyYWN0ZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBoYXNDb250cm9sQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgY2hhciBvZiBuYW1lKSB7XG4gICAgaWYgKGNoYXIgPCBGSVJTVF9OT05fQ09OVFJPTF9DSEFSKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsa0JBR087QUFDUCxxQkFBc0I7QUFDdEIsc0JBQXlCO0FBRXpCLGtCQUFrQjtBQWtCWCxTQUFTLDBCQUEwQixPQUFrRDtBQUMxRixTQUFRLE1BQTJDLHNCQUFzQjtBQUMzRTtBQUtPLE1BQU0saUNBQWlDO0FBUXZDLE1BQU0sNEJBQTRCO0FBU2xDLE1BQU0seUJBQXlCO0FBUS9CLE1BQU0sNEJBQTRCO0FBV3pDLE1BQU0sZ0NBQWdDO0FBS3RDLE1BQU0saUNBQWlDO0FBS3ZDLE1BQU0seUJBQXlCO0FBd0J4QixTQUFTLDZCQUE2QixNQUFjLFdBQXFCLFdBQTZCO0FBQzNHLE1BQUksU0FBUyxJQUFJO0FBQ2YsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxTQUFTO0FBQUEsRUFDcEQ7QUFFQSxNQUFJLGdCQUFnQixJQUFJLEdBQUc7QUFDekIsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUNyRTtBQUVBLFFBQU0sY0FBYyxJQUFJLElBQUksS0FBSyxNQUFNLHNDQUFzQyxXQUFXLFNBQVMsQ0FBQyxDQUFDO0FBQ25HLE1BQUksWUFBWSxPQUFPLEdBQUc7QUFDeEIsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQUEsRUFDN0c7QUFFQSxNQUFJLHdCQUF3QixJQUFJLEdBQUc7QUFDakMsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxvQkFBb0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUN2RTtBQUVBLFNBQU8sc0JBQXNCLElBQUksUUFBSSxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsSUFBSTtBQUMxRztBQWFPLFNBQVMsc0NBQXNDLFdBQXFCLFdBQTZCO0FBQ3RHLGFBQU8sc0JBQU07QUFBQSxJQUNYLDJCQUEyQixXQUFXLFNBQVM7QUFBQSxJQUMvQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBY08sU0FBUywyQkFBMkIsV0FBcUIsV0FBNkI7QUFDM0YsZ0JBQWMseUJBQVM7QUFDdkIsTUFBSSxXQUFXO0FBQ2IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxnQkFBYyx5QkFBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBV08sU0FBUyx5QkFBeUIsTUFBYyxXQUFxQixXQUE2QjtBQUN2RyxTQUFPLEtBQUssTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksNkJBQTZCLFNBQVMsV0FBVyxTQUFTLENBQUMsRUFBRSxLQUFLLE9BQU8sS0FBSztBQUN4SDtBQVdPLFNBQVMsd0JBQXdCLE1BQXVCO0FBQzdELFNBQU8sK0JBQStCLEtBQUssSUFBSTtBQUNqRDtBQWtCTyxTQUFTLHNCQUFzQixNQUF1QjtBQUMzRCxRQUFNLGNBQWMseUJBQXlCLElBQUk7QUFDakQsU0FBTyw4QkFBOEIsU0FBSyxzQkFBUyxpQkFBYSxxQkFBUSxXQUFXLENBQUMsQ0FBQztBQUN2RjtBQVdPLFNBQVMseUJBQXlCLE1BQXNCO0FBQzdELFNBQU8sS0FBSyxRQUFRLGdDQUFnQyxFQUFFO0FBQ3hEO0FBUUEsU0FBUyxnQkFBZ0IsTUFBdUI7QUFDOUMsYUFBVyxRQUFRLE1BQU07QUFDdkIsUUFBSSxPQUFPLHdCQUF3QjtBQUNqQyxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7IiwibmFtZXMiOltdfQ==