@mnaoumov/obsidian-lib 5.2.0 → 6.0.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 (141) hide show
  1. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +1 -1
  2. package/dist/lib/cjs/__merged.cjs +8 -24
  3. package/dist/lib/cjs/__merged.d.cts +4 -4
  4. package/dist/lib/cjs/async-with-notice.cjs +7 -7
  5. package/dist/lib/cjs/backlink-index.cjs +3 -3
  6. package/dist/lib/cjs/callout.cjs +2 -2
  7. package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
  8. package/dist/lib/cjs/community-plugins.cjs +3 -3
  9. package/dist/lib/cjs/components/async-error-handler-component.cjs +2 -2
  10. package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
  11. package/dist/lib/cjs/components/plugin-context-component.cjs +1 -3
  12. package/dist/lib/cjs/components/plugin-context-component.d.cts +1 -2
  13. package/dist/lib/cjs/components/plugin-gate-component.cjs +15 -15
  14. package/dist/lib/cjs/components/plugin-notice-component.cjs +75 -7
  15. package/dist/lib/cjs/components/plugin-notice-component.d.cts +24 -1
  16. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +7 -5
  17. package/dist/lib/cjs/components/release-notes-component.cjs +2 -2
  18. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +10 -10
  19. package/dist/lib/cjs/css-class.cjs +2 -2
  20. package/dist/lib/cjs/css-class.d.cts +8 -11
  21. package/dist/lib/cjs/dataview.cjs +4 -4
  22. package/dist/lib/cjs/debug.cjs +2 -22
  23. package/dist/lib/cjs/debug.d.cts +0 -5
  24. package/dist/lib/cjs/frontmatter.cjs +3 -3
  25. package/dist/lib/cjs/frontmatter.d.cts +1 -1
  26. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  27. package/dist/lib/cjs/html-element.cjs +1 -1
  28. package/dist/lib/cjs/html-element.d.cts +1 -1
  29. package/dist/lib/cjs/i18n/i18n.cjs +1 -1
  30. package/dist/lib/cjs/i18n/i18n.d.cts +1 -1
  31. package/dist/lib/cjs/i18n/locales/en.cjs +2 -2
  32. package/dist/lib/cjs/i18n/locales/en.d.cts +1 -1
  33. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +1 -1
  34. package/dist/lib/cjs/index.cjs +4 -4
  35. package/dist/lib/cjs/index.d.cts +1 -1
  36. package/dist/lib/cjs/library-styles.cjs +7 -14
  37. package/dist/lib/cjs/library-styles.d.cts +9 -23
  38. package/dist/lib/cjs/library.cjs +1 -4
  39. package/dist/lib/cjs/library.d.cts +3 -11
  40. package/dist/lib/cjs/link.cjs +3 -3
  41. package/dist/lib/cjs/markdown.cjs +3 -3
  42. package/dist/lib/cjs/metadata-cache.cjs +4 -4
  43. package/dist/lib/cjs/modals/alert.cjs +2 -2
  44. package/dist/lib/cjs/modals/confirm.cjs +3 -3
  45. package/dist/lib/cjs/modals/prompt.cjs +3 -3
  46. package/dist/lib/cjs/obsidian-lib-state.cjs +148 -0
  47. package/dist/lib/cjs/obsidian-lib-state.d.cts +30 -0
  48. package/dist/lib/cjs/path-settings.cjs +6 -6
  49. package/dist/lib/cjs/plugin/index.cjs +1 -4
  50. package/dist/lib/cjs/plugin/index.d.cts +0 -1
  51. package/dist/lib/cjs/plugin/plugin-api.cjs +3 -3
  52. package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -41
  53. package/dist/lib/cjs/plugin/plugin-context.cjs +1 -6
  54. package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
  55. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -40
  56. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +8 -62
  57. package/dist/lib/cjs/plugin/plugin.cjs +2 -2
  58. package/dist/lib/cjs/plugin/plugin.d.cts +1 -1
  59. package/dist/lib/cjs/popovers/popover.cjs +3 -3
  60. package/dist/lib/cjs/queue.cjs +4 -4
  61. package/dist/lib/cjs/resource-lock.cjs +9 -9
  62. package/dist/lib/cjs/vault-delete.cjs +2 -2
  63. package/dist/lib/cjs/vault-transaction.cjs +17 -2
  64. package/dist/lib/cjs/vault-transaction.d.cts +2 -1
  65. package/dist/lib/cjs/vault.cjs +2 -2
  66. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +1 -1
  67. package/dist/lib/esm/__merged.d.mts +4 -4
  68. package/dist/lib/esm/__merged.mjs +8 -24
  69. package/dist/lib/esm/async-with-notice.mjs +7 -7
  70. package/dist/lib/esm/backlink-index.mjs +3 -3
  71. package/dist/lib/esm/callout.mjs +2 -2
  72. package/dist/lib/esm/case-insensitive-file-index.mjs +5 -5
  73. package/dist/lib/esm/community-plugins.mjs +3 -3
  74. package/dist/lib/esm/components/async-error-handler-component.mjs +2 -2
  75. package/dist/lib/esm/components/monkey-around-component.mjs +3 -3
  76. package/dist/lib/esm/components/plugin-context-component.d.mts +1 -2
  77. package/dist/lib/esm/components/plugin-context-component.mjs +1 -3
  78. package/dist/lib/esm/components/plugin-gate-component.mjs +15 -15
  79. package/dist/lib/esm/components/plugin-notice-component.d.mts +24 -1
  80. package/dist/lib/esm/components/plugin-notice-component.mjs +75 -7
  81. package/dist/lib/esm/components/plugin-suggestion-component.mjs +7 -5
  82. package/dist/lib/esm/components/release-notes-component.mjs +2 -2
  83. package/dist/lib/esm/components/rename-delete-handler-component.mjs +10 -10
  84. package/dist/lib/esm/css-class.d.mts +8 -11
  85. package/dist/lib/esm/css-class.mjs +2 -2
  86. package/dist/lib/esm/dataview.mjs +4 -4
  87. package/dist/lib/esm/debug.d.mts +0 -5
  88. package/dist/lib/esm/debug.mjs +3 -26
  89. package/dist/lib/esm/frontmatter.d.mts +1 -1
  90. package/dist/lib/esm/frontmatter.mjs +3 -3
  91. package/dist/lib/esm/generated-during-build.mjs +2 -2
  92. package/dist/lib/esm/html-element.d.mts +1 -1
  93. package/dist/lib/esm/html-element.mjs +1 -1
  94. package/dist/lib/esm/i18n/i18n.d.mts +1 -1
  95. package/dist/lib/esm/i18n/i18n.mjs +1 -1
  96. package/dist/lib/esm/i18n/locales/en.d.mts +1 -1
  97. package/dist/lib/esm/i18n/locales/en.mjs +2 -2
  98. package/dist/lib/esm/i18n/locales/translations-map.d.mts +1 -1
  99. package/dist/lib/esm/index.d.mts +1 -1
  100. package/dist/lib/esm/index.mjs +3 -3
  101. package/dist/lib/esm/library-styles.d.mts +9 -23
  102. package/dist/lib/esm/library-styles.mjs +7 -12
  103. package/dist/lib/esm/library.d.mts +3 -11
  104. package/dist/lib/esm/library.mjs +1 -3
  105. package/dist/lib/esm/link.mjs +3 -3
  106. package/dist/lib/esm/markdown.mjs +3 -3
  107. package/dist/lib/esm/metadata-cache.mjs +4 -4
  108. package/dist/lib/esm/modals/alert.mjs +2 -2
  109. package/dist/lib/esm/modals/confirm.mjs +3 -3
  110. package/dist/lib/esm/modals/prompt.mjs +3 -3
  111. package/dist/lib/esm/obsidian-lib-state.d.mts +30 -0
  112. package/dist/lib/esm/obsidian-lib-state.mjs +59 -0
  113. package/dist/lib/esm/path-settings.mjs +6 -6
  114. package/dist/lib/esm/plugin/index.d.mts +0 -1
  115. package/dist/lib/esm/plugin/index.mjs +1 -3
  116. package/dist/lib/esm/plugin/plugin-api.d.mts +5 -41
  117. package/dist/lib/esm/plugin/plugin-api.mjs +3 -3
  118. package/dist/lib/esm/plugin/plugin-context.mjs +1 -7
  119. package/dist/lib/esm/plugin/plugin-install-state.mjs +5 -5
  120. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +8 -62
  121. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -37
  122. package/dist/lib/esm/plugin/plugin.d.mts +1 -1
  123. package/dist/lib/esm/plugin/plugin.mjs +2 -2
  124. package/dist/lib/esm/popovers/popover.mjs +3 -3
  125. package/dist/lib/esm/queue.mjs +4 -4
  126. package/dist/lib/esm/resource-lock.mjs +9 -9
  127. package/dist/lib/esm/vault-delete.mjs +2 -2
  128. package/dist/lib/esm/vault-transaction.d.mts +2 -1
  129. package/dist/lib/esm/vault-transaction.mjs +17 -2
  130. package/dist/lib/esm/vault.mjs +2 -2
  131. package/dist/styles.css +174 -168
  132. package/package.json +1 -1
  133. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +0 -177
  134. package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +0 -50
  135. package/dist/lib/cjs/plugin/plugin-api-schema.cjs +0 -127
  136. package/dist/lib/cjs/plugin/plugin-api-schema.d.cts +0 -37
  137. package/dist/lib/esm/obsidian-dev-utils-state.d.mts +0 -50
  138. package/dist/lib/esm/obsidian-dev-utils-state.mjs +0 -86
  139. package/dist/lib/esm/plugin/plugin-api-schema.d.mts +0 -37
  140. package/dist/lib/esm/plugin/plugin-api-schema.mjs +0 -41
  141. package/plugin/plugin-api-schema/package.json +0 -6
@@ -63,10 +63,10 @@ class PromptModal extends ModalBase {
63
63
  constructor(params) {
64
64
  super(params);
65
65
  this.addCssClasses(CssClass.PromptModal);
66
- this.cancelButtonText = params.cancelButtonText ?? t(($) => $.obsidianDevUtils.buttons.cancel);
66
+ this.cancelButtonText = params.cancelButtonText ?? t(($) => $.obsidianLib.buttons.cancel);
67
67
  this.commandBuilder = params.commandBuilder ?? null;
68
68
  this.commandsRenderMode = params.commandsRenderMode;
69
- this.okButtonText = params.okButtonText ?? t(($) => $.obsidianDevUtils.buttons.ok);
69
+ this.okButtonText = params.okButtonText ?? t(($) => $.obsidianLib.buttons.ok);
70
70
  this.placeholder = params.placeholder ?? "";
71
71
  this.spellcheckMode = params.spellcheckMode ?? SpellcheckMode.FollowObsidianSetting;
72
72
  this.title = params.title ?? "";
@@ -156,4 +156,4 @@ async function prompt(params) {
156
156
  export {
157
157
  prompt
158
158
  };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvcHJvbXB0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0byBkaXNwbGF5IGEgbW9kYWwgdGhhdCBwcm9tcHRzIHRoZSB1c2VyIGZvciBpbnB1dC4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Z1bmN0aW9uJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBUZXh0Q29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBNb2RhbFBhcmFtc0Jhc2Vcbn0gZnJvbSAnLi9tb2RhbC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFwcGx5U3BlbGxjaGVja01vZGUgfSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBTcGVsbGNoZWNrTW9kZSB9IGZyb20gJy4uL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmltcG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9tcHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb21wdFBhcmFtcyBleHRlbmRzIE1vZGFsUGFyYW1zQmFzZSB7XG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGNvbnRyb2xzIOKAlCBjaGVja2JveGVzLCBkcm9wZG93bnMgYW5kIGtleWJvYXJkIHNob3J0Y3V0cyDigJQgcmVuZGVyZWQgYXMgYSBzdHJpcCBhbG9uZyB0aGUgYm90dG9tXG4gICAqIG9mIHRoZSBtb2RhbCwgc28gYSBjYWxsZXIgZ2V0cyBhIHRleHQgaW5wdXQgcGx1cyBvcHRpb25zIHdpdGggbm8gYmVzcG9rZSBtb2RhbCBvZiBpdHMgb3duLlxuICAgKlxuICAgKiBIYW5kIGl0IGEgY29uZmlndXJlZCB7QGxpbmsgTW9kYWxDb21tYW5kQnVpbGRlcn07IHRoZSBtb2RhbCBidWlsZHMgaXQuIFRoZSBzdHJpcCBpcyByZW5kZXJlZCBhZnRlclxuICAgKiB0aGUgYnV0dG9ucywgc28gaXQgc2l0cyBhbG9uZyB0aGUgYm90dG9tIGVkZ2Ugd2hlcmUgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhciBzaXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZEJ1aWxkZXI/OiBNb2RhbENvbW1hbmRCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd2F5IHtAbGluayBQcm9tcHRQYXJhbXMuY29tbWFuZEJ1aWxkZXJ9J3MgY29udHJvbHMgYXJlIHJlbmRlcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgTW9kYWxDb21tYW5kc1JlbmRlck1vZGUuSW5zdHJ1Y3Rpb25zYFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlPzogTW9kYWxDb21tYW5kc1JlbmRlck1vZGU7XG5cbiAgLyoqXG4gICAqIEEgZGVmYXVsdCB2YWx1ZSB0byBwcmUtZmlsbCB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSBkZWNpZGluZyB3aGV0aGVyIHRoZSBpbnB1dCBpcyBzcGVsbC1jaGVja2VkLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBpcyB3aGF0IHRoaXMgbW9kYWwgaGFzIGFsd2F5cyBkb25lLCBzbyBwYXNzaW5nIG5vdGhpbmcgY2hhbmdlcyBub3RoaW5nOiB0aGUgaW5wdXQgZm9sbG93c1xuICAgKiBgRWRpdG9yID4gU3BlbGxjaGVja2AsIGxpa2UgT2JzaWRpYW4ncyBvd24gbmFtZS1lbnRyeSBzdXJmYWNlcy4gUGFzcyB7QGxpbmsgU3BlbGxjaGVja01vZGUuT2ZmfSBmb3IgYVxuICAgKiBib3ggdGhhdCBpcyByZWFsbHkgYSBzZWFyY2ggZmllbGQsIG9yIHtAbGluayBTcGVsbGNoZWNrTW9kZS5BbHdheXNPbn0gdG8gc3BlbGwtY2hlY2sgaXQgd2hhdGV2ZXIgdGhlXG4gICAqIHZhdWx0IHNldHRpbmcgc2F5cy5cbiAgICpcbiAgICogQGRlZmF1bHQgYFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZ2BcbiAgICovXG4gIHJlYWRvbmx5IHNwZWxsY2hlY2tNb2RlPzogU3BlbGxjaGVja01vZGU7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIGlucHV0IHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5wdXQgdmFsdWUgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGludmFsaWQsIG9yIGBudWxsYCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZVZhbGlkYXRvcj86ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xufVxuXG50eXBlIFByb21wdE1vZGFsQ29uc3RydWN0b3JQYXJhbXMgPSBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtczxudWxsIHwgc3RyaW5nPiAmIFByb21wdFBhcmFtcztcblxuY2xhc3MgUHJvbXB0TW9kYWwgZXh0ZW5kcyBNb2RhbEJhc2U8bnVsbCB8IHN0cmluZz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kQnVpbGRlcjogTW9kYWxDb21tYW5kQnVpbGRlciB8IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlOiBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpc09rQ2xpY2tlZCA9IGZhbHNlO1xuICBwcml2YXRlIGlzVG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9rQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU6IFNwZWxsY2hlY2tNb2RlO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlOiBEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nO1xuICBwcml2YXRlIHZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVWYWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFByb21wdE1vZGFsQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcihwYXJhbXMpO1xuICAgIHRoaXMuYWRkQ3NzQ2xhc3NlcyhDc3NDbGFzcy5Qcm9tcHRNb2RhbCk7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0gcGFyYW1zLmNhbmNlbEJ1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMuY2FuY2VsKTtcbiAgICB0aGlzLmNvbW1hbmRCdWlsZGVyID0gcGFyYW1zLmNvbW1hbmRCdWlsZGVyID8/IG51bGw7XG4gICAgdGhpcy5jb21tYW5kc1JlbmRlck1vZGUgPSBwYXJhbXMuY29tbWFuZHNSZW5kZXJNb2RlO1xuICAgIHRoaXMub2tCdXR0b25UZXh0ID0gcGFyYW1zLm9rQnV0dG9uVGV4dCA/PyB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYnV0dG9ucy5vayk7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHBhcmFtcy5wbGFjZWhvbGRlciA/PyAnJztcbiAgICB0aGlzLnNwZWxsY2hlY2tNb2RlID0gcGFyYW1zLnNwZWxsY2hlY2tNb2RlID8/IFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZztcbiAgICB0aGlzLnRpdGxlID0gcGFyYW1zLnRpdGxlID8/ICcnO1xuICAgIHRoaXMudmFsdWVWYWxpZGF0b3IgPSBwYXJhbXMudmFsdWVWYWxpZGF0b3IgPz8gbm9vcDtcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLmRlZmF1bHRWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMucHJvbWlzZVJlc29sdmUodGhpcy5pc09rQ2xpY2tlZCA/IHRoaXMudmFsdWUgOiBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbk9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUVsLnNldFRleHQodGhpcy50aXRsZSk7XG4gICAgY29uc3QgdGV4dENvbXBvbmVudCA9IG5ldyBUZXh0Q29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBjb25zdCBpbnB1dEVsID0gdGV4dENvbXBvbmVudC5pbnB1dEVsO1xuICAgIC8vIGBBYnN0cmFjdFRleHRDb21wb25lbnRgIGZvcmNlcyBgc3BlbGxjaGVjaz1cImZhbHNlXCJgIG9uIGV2ZXJ5IHRleHQgY29tcG9uZW50LCBzbyB0aGUgbW9kZSBoYXMgdG8gYmUgYXBwbGllZCBoZXJlLlxuICAgIC8vIE9ic2lkaWFuJ3Mgb3duIGZpbGUgZXhwbG9yZXIgcmVhZHMgdGhlIHNhbWUgY29uZmlnIHdoZW4gaXQgc3RhcnRzIGFuIGlubGluZSByZW5hbWUuXG4gICAgYXBwbHlTcGVsbGNoZWNrTW9kZSh7XG4gICAgICBhcHA6IHRoaXMuYXBwLFxuICAgICAgZWxlbWVudDogaW5wdXRFbCxcbiAgICAgIHNwZWxsY2hlY2tNb2RlOiB0aGlzLnNwZWxsY2hlY2tNb2RlXG4gICAgfSk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9IGFzeW5jIChzaG91bGRSZXBvcnQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHRoaXMudmFsdWVWYWxpZGF0b3IoaW5wdXRFbC52YWx1ZSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaW5wdXRFbC5zZXRDdXN0b21WYWxpZGl0eShlcnJvck1lc3NhZ2UgPz8gJycpO1xuICAgICAgaWYgKHNob3VsZFJlcG9ydCkge1xuICAgICAgICBpbnB1dEVsLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgdGhpcy5tYXJrVG91Y2hlZChpbnB1dEVsKTtcbiAgICAgIGF3YWl0IHZhbGlkYXRlKHRydWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlKHRoaXMuaXNUb3VjaGVkKTtcbiAgICB9O1xuXG4gICAgdGV4dENvbXBvbmVudC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0ZXh0Q29tcG9uZW50LmlucHV0RWwuc2VsZWN0KCk7XG4gICAgdGV4dENvbXBvbmVudC5zZXRQbGFjZWhvbGRlcih0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICBpbnB1dEVsLmFkZENsYXNzKENzc0NsYXNzLlRleHRCb3gpO1xuICAgIC8vIFRoZSBtb2RhbCBvcGVucyBpbnZhbGlkIGJ5IGRlc2lnbiAoc2VlIGJlbG93KSwgc28gdGhlIGludmFsaWQgc3R5bGluZyBpcyBkZWZlcnJlZCB1bnRpbCB0b3VjaGVkLlxuICAgIGlucHV0RWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuVW50b3VjaGVkKTtcbiAgICB0ZXh0Q29tcG9uZW50Lm9uQ2hhbmdlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH0pO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmhhbmRsZU9rKGV2ZW50LCB0ZXh0Q29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGNvbnZlcnRBc3luY1RvU3luYyhoYW5kbGVJbnB1dCkpO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjb252ZXJ0QXN5bmNUb1N5bmMoaGFuZGxlRm9jdXMpKTtcbiAgICAvLyBUaGUgbW9kYWwgbXVzdCBzdGFydCBvdXQgaW52YWxpZCBzbyBPSyByZWZ1c2VzLCBidXQgdGhlIHZhbGlkaXR5IGlzIG5vdCByZXBvcnRlZCB1bnRpbCB0aGUgdXNlciB0eXBlcyBvciBzdWJtaXRzLlxuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHZhbGlkYXRlKGZhbHNlKSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBva0J1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMub2tCdXR0b25UZXh0KTtcbiAgICBva0J1dHRvbi5zZXRDdGEoKTtcbiAgICBva0J1dHRvbi5vbkNsaWNrKChldmVudCkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVPayhldmVudCwgdGV4dENvbXBvbmVudCk7XG4gICAgfSk7XG4gICAgb2tCdXR0b24uc2V0Q2xhc3MoQ3NzQ2xhc3MuT2tCdXR0b24pO1xuICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IG5ldyBCdXR0b25Db21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMuY2FuY2VsQnV0dG9uVGV4dCk7XG4gICAgY2FuY2VsQnV0dG9uLm9uQ2xpY2sodGhpcy5jbG9zZS5iaW5kKHRoaXMpKTtcbiAgICBjYW5jZWxCdXR0b24uc2V0Q2xhc3MoQ3NzQ2xhc3MuQ2FuY2VsQnV0dG9uKTtcblxuICAgIC8vIEJ1aWx0IGxhc3Qgc28gdGhlIHN0cmlwIGxhbmRzIGFsb25nIHRoZSBtb2RhbCdzIGJvdHRvbSBlZGdlLCB3aGVyZSBhIGBTdWdnZXN0TW9kYWxgJ3MgaW5zdHJ1Y3Rpb25cbiAgICAvLyBiYXIgc2l0cy5cbiAgICB0aGlzLmNvbW1hbmRCdWlsZGVyPy5idWlsZCh0aGlzLCBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8TW9kYWxDb21tYW5kQnVpbGRlckJ1aWxkT3B0aW9ucz4oeyByZW5kZXJNb2RlOiB0aGlzLmNvbW1hbmRzUmVuZGVyTW9kZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9rKGV2ZW50OiBFdmVudCwgdGV4dENvbXBvbmVudDogVGV4dENvbXBvbmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0ZXh0Q29tcG9uZW50LmlucHV0RWwuY2hlY2tWYWxpZGl0eSgpKSB7XG4gICAgICB0aGlzLm1hcmtUb3VjaGVkKHRleHRDb21wb25lbnQuaW5wdXRFbCk7XG4gICAgICB0ZXh0Q29tcG9uZW50LmlucHV0RWwucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzT2tDbGlja2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtUb3VjaGVkKGlucHV0RWw6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgaW5wdXRFbC5yZW1vdmVDbGFzcyhDc3NDbGFzcy5VbnRvdWNoZWQpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGxheXMgYSBwcm9tcHQgbW9kYWwgaW4gT2JzaWRpYW4gdG8gZ2V0IHVzZXIgaW5wdXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcHJvbXB0IG1vZGFsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB1c2VyIGlucHV0IG9yIGBudWxsYCBpZiB0aGUgcHJvbXB0IHdhcyBjYW5jZWxsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9tcHQocGFyYW1zOiBQcm9tcHRQYXJhbXMpOiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHtcbiAgcmV0dXJuIGF3YWl0IHNob3dNb2RhbDxudWxsIHwgc3RyaW5nPigocHJvbWlzZVJlc29sdmUpID0+XG4gICAgbmV3IFByb21wdE1vZGFsKHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByb21pc2VSZXNvbHZlXG4gICAgfSlcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsWUFBWTtBQUNyQixTQUFTLG1DQUFtQztBQUM1QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQVlQLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsMkJBQTJCO0FBQ3BDLFNBQVMsU0FBUztBQUNsQixTQUFTLHNCQUFzQjtBQUMvQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQTRFUCxNQUFNLG9CQUFvQixVQUF5QjtBQUFBLEVBQ2hDO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNULGNBQWM7QUFBQSxFQUNkLFlBQVk7QUFBQSxFQUNIO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDVDtB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
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RhbHMvcHJvbXB0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0byBkaXNwbGF5IGEgbW9kYWwgdGhhdCBwcm9tcHRzIHRoZSB1c2VyIGZvciBpbnB1dC4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Z1bmN0aW9uJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBUZXh0Q29tcG9uZW50XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL21vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBNb2RhbFBhcmFtc0Jhc2Vcbn0gZnJvbSAnLi9tb2RhbC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7IGFwcGx5U3BlbGxjaGVja01vZGUgfSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBTcGVsbGNoZWNrTW9kZSB9IGZyb20gJy4uL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmltcG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBwcm9tcHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb21wdFBhcmFtcyBleHRlbmRzIE1vZGFsUGFyYW1zQmFzZSB7XG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIkNhbmNlbFwiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGNvbnRyb2xzIOKAlCBjaGVja2JveGVzLCBkcm9wZG93bnMgYW5kIGtleWJvYXJkIHNob3J0Y3V0cyDigJQgcmVuZGVyZWQgYXMgYSBzdHJpcCBhbG9uZyB0aGUgYm90dG9tXG4gICAqIG9mIHRoZSBtb2RhbCwgc28gYSBjYWxsZXIgZ2V0cyBhIHRleHQgaW5wdXQgcGx1cyBvcHRpb25zIHdpdGggbm8gYmVzcG9rZSBtb2RhbCBvZiBpdHMgb3duLlxuICAgKlxuICAgKiBIYW5kIGl0IGEgY29uZmlndXJlZCB7QGxpbmsgTW9kYWxDb21tYW5kQnVpbGRlcn07IHRoZSBtb2RhbCBidWlsZHMgaXQuIFRoZSBzdHJpcCBpcyByZW5kZXJlZCBhZnRlclxuICAgKiB0aGUgYnV0dG9ucywgc28gaXQgc2l0cyBhbG9uZyB0aGUgYm90dG9tIGVkZ2Ugd2hlcmUgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uIGJhciBzaXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZEJ1aWxkZXI/OiBNb2RhbENvbW1hbmRCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd2F5IHtAbGluayBQcm9tcHRQYXJhbXMuY29tbWFuZEJ1aWxkZXJ9J3MgY29udHJvbHMgYXJlIHJlbmRlcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgTW9kYWxDb21tYW5kc1JlbmRlck1vZGUuSW5zdHJ1Y3Rpb25zYFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlPzogTW9kYWxDb21tYW5kc1JlbmRlck1vZGU7XG5cbiAgLyoqXG4gICAqIEEgZGVmYXVsdCB2YWx1ZSB0byBwcmUtZmlsbCB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSBkZWNpZGluZyB3aGV0aGVyIHRoZSBpbnB1dCBpcyBzcGVsbC1jaGVja2VkLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBpcyB3aGF0IHRoaXMgbW9kYWwgaGFzIGFsd2F5cyBkb25lLCBzbyBwYXNzaW5nIG5vdGhpbmcgY2hhbmdlcyBub3RoaW5nOiB0aGUgaW5wdXQgZm9sbG93c1xuICAgKiBgRWRpdG9yID4gU3BlbGxjaGVja2AsIGxpa2UgT2JzaWRpYW4ncyBvd24gbmFtZS1lbnRyeSBzdXJmYWNlcy4gUGFzcyB7QGxpbmsgU3BlbGxjaGVja01vZGUuT2ZmfSBmb3IgYVxuICAgKiBib3ggdGhhdCBpcyByZWFsbHkgYSBzZWFyY2ggZmllbGQsIG9yIHtAbGluayBTcGVsbGNoZWNrTW9kZS5BbHdheXNPbn0gdG8gc3BlbGwtY2hlY2sgaXQgd2hhdGV2ZXIgdGhlXG4gICAqIHZhdWx0IHNldHRpbmcgc2F5cy5cbiAgICpcbiAgICogQGRlZmF1bHQgYFNwZWxsY2hlY2tNb2RlLkZvbGxvd09ic2lkaWFuU2V0dGluZ2BcbiAgICovXG4gIHJlYWRvbmx5IHNwZWxsY2hlY2tNb2RlPzogU3BlbGxjaGVja01vZGU7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIGlucHV0IHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5wdXQgdmFsdWUgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGludmFsaWQsIG9yIGBudWxsYCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZVZhbGlkYXRvcj86ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xufVxuXG50eXBlIFByb21wdE1vZGFsQ29uc3RydWN0b3JQYXJhbXMgPSBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtczxudWxsIHwgc3RyaW5nPiAmIFByb21wdFBhcmFtcztcblxuY2xhc3MgUHJvbXB0TW9kYWwgZXh0ZW5kcyBNb2RhbEJhc2U8bnVsbCB8IHN0cmluZz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kQnVpbGRlcjogTW9kYWxDb21tYW5kQnVpbGRlciB8IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZHNSZW5kZXJNb2RlOiBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpc09rQ2xpY2tlZCA9IGZhbHNlO1xuICBwcml2YXRlIGlzVG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9rQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU6IFNwZWxsY2hlY2tNb2RlO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlOiBEb2N1bWVudEZyYWdtZW50IHwgc3RyaW5nO1xuICBwcml2YXRlIHZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVWYWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFByb21wdE1vZGFsQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcihwYXJhbXMpO1xuICAgIHRoaXMuYWRkQ3NzQ2xhc3NlcyhDc3NDbGFzcy5Qcm9tcHRNb2RhbCk7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0gcGFyYW1zLmNhbmNlbEJ1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLmNhbmNlbCk7XG4gICAgdGhpcy5jb21tYW5kQnVpbGRlciA9IHBhcmFtcy5jb21tYW5kQnVpbGRlciA/PyBudWxsO1xuICAgIHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlID0gcGFyYW1zLmNvbW1hbmRzUmVuZGVyTW9kZTtcbiAgICB0aGlzLm9rQnV0dG9uVGV4dCA9IHBhcmFtcy5va0J1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLm9rKTtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gcGFyYW1zLnBsYWNlaG9sZGVyID8/ICcnO1xuICAgIHRoaXMuc3BlbGxjaGVja01vZGUgPSBwYXJhbXMuc3BlbGxjaGVja01vZGUgPz8gU3BlbGxjaGVja01vZGUuRm9sbG93T2JzaWRpYW5TZXR0aW5nO1xuICAgIHRoaXMudGl0bGUgPSBwYXJhbXMudGl0bGUgPz8gJyc7XG4gICAgdGhpcy52YWx1ZVZhbGlkYXRvciA9IHBhcmFtcy52YWx1ZVZhbGlkYXRvciA/PyBub29wO1xuICAgIHRoaXMudmFsdWUgPSBwYXJhbXMuZGVmYXVsdFZhbHVlID8/ICcnO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9taXNlUmVzb2x2ZSh0aGlzLmlzT2tDbGlja2VkID8gdGhpcy52YWx1ZSA6IG51bGwpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLnRpdGxlRWwuc2V0VGV4dCh0aGlzLnRpdGxlKTtcbiAgICBjb25zdCB0ZXh0Q29tcG9uZW50ID0gbmV3IFRleHRDb21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIGNvbnN0IGlucHV0RWwgPSB0ZXh0Q29tcG9uZW50LmlucHV0RWw7XG4gICAgLy8gYEFic3RyYWN0VGV4dENvbXBvbmVudGAgZm9yY2VzIGBzcGVsbGNoZWNrPVwiZmFsc2VcImAgb24gZXZlcnkgdGV4dCBjb21wb25lbnQsIHNvIHRoZSBtb2RlIGhhcyB0byBiZSBhcHBsaWVkIGhlcmUuXG4gICAgLy8gT2JzaWRpYW4ncyBvd24gZmlsZSBleHBsb3JlciByZWFkcyB0aGUgc2FtZSBjb25maWcgd2hlbiBpdCBzdGFydHMgYW4gaW5saW5lIHJlbmFtZS5cbiAgICBhcHBseVNwZWxsY2hlY2tNb2RlKHtcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBlbGVtZW50OiBpbnB1dEVsLFxuICAgICAgc3BlbGxjaGVja01vZGU6IHRoaXMuc3BlbGxjaGVja01vZGVcbiAgICB9KTtcblxuICAgIGNvbnN0IHZhbGlkYXRlID0gYXN5bmMgKHNob3VsZFJlcG9ydDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXdhaXQgdGhpcy52YWx1ZVZhbGlkYXRvcihpbnB1dEVsLnZhbHVlKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpbnB1dEVsLnNldEN1c3RvbVZhbGlkaXR5KGVycm9yTWVzc2FnZSA/PyAnJyk7XG4gICAgICBpZiAoc2hvdWxkUmVwb3J0KSB7XG4gICAgICAgIGlucHV0RWwucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlSW5wdXQgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICB0aGlzLm1hcmtUb3VjaGVkKGlucHV0RWwpO1xuICAgICAgYXdhaXQgdmFsaWRhdGUodHJ1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgdmFsaWRhdGUodGhpcy5pc1RvdWNoZWQpO1xuICAgIH07XG5cbiAgICB0ZXh0Q29tcG9uZW50LnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRleHRDb21wb25lbnQuaW5wdXRFbC5zZWxlY3QoKTtcbiAgICB0ZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIGlucHV0RWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuVGV4dEJveCk7XG4gICAgLy8gVGhlIG1vZGFsIG9wZW5zIGludmFsaWQgYnkgZGVzaWduIChzZWUgYmVsb3cpLCBzbyB0aGUgaW52YWxpZCBzdHlsaW5nIGlzIGRlZmVycmVkIHVudGlsIHRvdWNoZWQuXG4gICAgaW5wdXRFbC5hZGRDbGFzcyhDc3NDbGFzcy5VbnRvdWNoZWQpO1xuICAgIHRleHRDb21wb25lbnQub25DaGFuZ2UoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlT2soZXZlbnQsIHRleHRDb21wb25lbnQpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgY29udmVydEFzeW5jVG9TeW5jKGhhbmRsZUlucHV0KSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGNvbnZlcnRBc3luY1RvU3luYyhoYW5kbGVGb2N1cykpO1xuICAgIC8vIFRoZSBtb2RhbCBtdXN0IHN0YXJ0IG91dCBpbnZhbGlkIHNvIE9LIHJlZnVzZXMsIGJ1dCB0aGUgdmFsaWRpdHkgaXMgbm90IHJlcG9ydGVkIHVudGlsIHRoZSB1c2VyIHR5cGVzIG9yIHN1Ym1pdHMuXG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gdmFsaWRhdGUoZmFsc2UpKTtcbiAgICBjb25zdCBva0J1dHRvbiA9IG5ldyBCdXR0b25Db21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIG9rQnV0dG9uLnNldEJ1dHRvblRleHQodGhpcy5va0J1dHRvblRleHQpO1xuICAgIG9rQnV0dG9uLnNldEN0YSgpO1xuICAgIG9rQnV0dG9uLm9uQ2xpY2soKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU9rKGV2ZW50LCB0ZXh0Q29tcG9uZW50KTtcbiAgICB9KTtcbiAgICBva0J1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbik7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbkNvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgY2FuY2VsQnV0dG9uLnNldEJ1dHRvblRleHQodGhpcy5jYW5jZWxCdXR0b25UZXh0KTtcbiAgICBjYW5jZWxCdXR0b24ub25DbGljayh0aGlzLmNsb3NlLmJpbmQodGhpcykpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pO1xuXG4gICAgLy8gQnVpbHQgbGFzdCBzbyB0aGUgc3RyaXAgbGFuZHMgYWxvbmcgdGhlIG1vZGFsJ3MgYm90dG9tIGVkZ2UsIHdoZXJlIGEgYFN1Z2dlc3RNb2RhbGAncyBpbnN0cnVjdGlvblxuICAgIC8vIGJhciBzaXRzLlxuICAgIHRoaXMuY29tbWFuZEJ1aWxkZXI/LmJ1aWxkKHRoaXMsIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxNb2RhbENvbW1hbmRCdWlsZGVyQnVpbGRPcHRpb25zPih7IHJlbmRlck1vZGU6IHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT2soZXZlbnQ6IEV2ZW50LCB0ZXh0Q29tcG9uZW50OiBUZXh0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIXRleHRDb21wb25lbnQuaW5wdXRFbC5jaGVja1ZhbGlkaXR5KCkpIHtcbiAgICAgIHRoaXMubWFya1RvdWNoZWQodGV4dENvbXBvbmVudC5pbnB1dEVsKTtcbiAgICAgIHRleHRDb21wb25lbnQuaW5wdXRFbC5yZXBvcnRWYWxpZGl0eSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNPa0NsaWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya1RvdWNoZWQoaW5wdXRFbDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNUb3VjaGVkID0gdHJ1ZTtcbiAgICBpbnB1dEVsLnJlbW92ZUNsYXNzKENzc0NsYXNzLlVudG91Y2hlZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIHByb21wdCBtb2RhbCBpbiBPYnNpZGlhbiB0byBnZXQgdXNlciBpbnB1dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBwcm9tcHQgbW9kYWwuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHVzZXIgaW5wdXQgb3IgYG51bGxgIGlmIHRoZSBwcm9tcHQgd2FzIGNhbmNlbGxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb21wdChwYXJhbXM6IFByb21wdFBhcmFtcyk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4ge1xuICByZXR1cm4gYXdhaXQgc2hvd01vZGFsPG51bGwgfCBzdHJpbmc+KChwcm9taXNlUmVzb2x2ZSkgPT5cbiAgICBuZXcgUHJvbXB0TW9kYWwoe1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcHJvbWlzZVJlc29sdmVcbiAgICB9KVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsbUNBQW1DO0FBQzVDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBWVAsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyxTQUFTO0FBQ2xCLFNBQVMsc0JBQXNCO0FBQy9CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBNEVQLE1BQU0sb0JBQW9CLFVBQXlCO0FBQUEsRUFDaEM7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ1QsY0FBYztBQUFBLEVBQ2QsWUFBWTtBQUFBLEVBQ0g7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNUO0FBQUEsRUFDUztB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
@@ -0,0 +1,30 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Provides access to the process-wide shared-state bag on the `__obsidianLib` global. New generic state belongs in
6
+ * `@mnaoumov/typescript-lib/typescript-lib-state` (the `Symbol.for('@mnaoumov/typescript-lib/state')` slot).
7
+ *
8
+ * The bag is stored on `globalThis.__obsidianLib`, i.e. on the global object of the realm in
9
+ * which this library is loaded. Because a function's `globalThis` resolves to its defining
10
+ * realm (not the caller's), every consumer that bundles the library in the main Obsidian renderer
11
+ * shares the same bag, regardless of which window is currently active, so callers never need to pass an `App`
12
+ * instance.
13
+ */
14
+ import { ValueWrapper } from '@mnaoumov/typescript-lib/value-wrapper';
15
+ /**
16
+ * Retrieves or creates a shared-state {@link ValueWrapper} for a given key on `globalThis.__obsidianLib`.
17
+ *
18
+ * @typeParam T - The type of the shared state value.
19
+ * @param key - The key to store or retrieve the shared state under.
20
+ * @param defaultValue - The default value to use if the shared state does not exist yet.
21
+ * @returns The {@link ValueWrapper} that stores the shared state.
22
+ */
23
+ export declare function getObsidianLibState<T>(key: string, defaultValue: T): ValueWrapper<T>;
24
+ /**
25
+ * Clears the shared-state bag on `globalThis.__obsidianLib`.
26
+ *
27
+ * Intended for test isolation: call it before each test so accumulated state (queues,
28
+ * registered handlers, etc.) does not leak between tests.
29
+ */
30
+ export declare function resetObsidianLibState(): void;
@@ -0,0 +1,59 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return "/";
11
+ },
12
+ env: {},
13
+ platform: "android"
14
+ };
15
+ const existingProcess = globalThis.process;
16
+ if (!existingProcess) {
17
+ globalThis.process = browserProcess;
18
+ return;
19
+ }
20
+ if (existingProcess.versions?.node) {
21
+ return;
22
+ }
23
+ const existingProcessRecord = existingProcess;
24
+ for (const [key, value] of Object.entries(browserProcess)) {
25
+ existingProcessRecord[key] ??= value;
26
+ }
27
+ existingProcessRecord["browser"] = true;
28
+ }
29
+
30
+ ensureBrowserProcess();
31
+ })();
32
+
33
+ import { ValueWrapper } from "@mnaoumov/typescript-lib/value-wrapper";
34
+ const OBSIDIAN_LIB_GLOBAL_NAME = "__obsidianLib";
35
+ function getObsidianLibState(key, defaultValue) {
36
+ return getObsidianLibBag()[key] ??= ValueWrapper.of(defaultValue);
37
+ }
38
+ function resetObsidianLibState() {
39
+ globalThis.__obsidianLib = {};
40
+ }
41
+ function getObsidianLibBag() {
42
+ const wrapper = globalThis;
43
+ const descriptor = Object.getOwnPropertyDescriptor(wrapper, OBSIDIAN_LIB_GLOBAL_NAME);
44
+ if (descriptor && !("value" in descriptor)) {
45
+ Object.defineProperty(wrapper, OBSIDIAN_LIB_GLOBAL_NAME, {
46
+ configurable: true,
47
+ enumerable: true,
48
+ value: {},
49
+ writable: true
50
+ });
51
+ }
52
+ wrapper.__obsidianLib ??= {};
53
+ return wrapper.__obsidianLib;
54
+ }
55
+ export {
56
+ getObsidianLibState,
57
+ resetObsidianLibState
58
+ };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNpZGlhbi1saWItc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgcHJvY2Vzcy13aWRlIHNoYXJlZC1zdGF0ZSBiYWcgb24gdGhlIGBfX29ic2lkaWFuTGliYCBnbG9iYWwuIE5ldyBnZW5lcmljIHN0YXRlIGJlbG9uZ3MgaW5cbiAqIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZXNjcmlwdC1saWItc3RhdGVgICh0aGUgYFN5bWJvbC5mb3IoJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdGF0ZScpYCBzbG90KS5cbiAqXG4gKiBUaGUgYmFnIGlzIHN0b3JlZCBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuTGliYCwgaS5lLiBvbiB0aGUgZ2xvYmFsIG9iamVjdCBvZiB0aGUgcmVhbG0gaW5cbiAqIHdoaWNoIHRoaXMgbGlicmFyeSBpcyBsb2FkZWQuIEJlY2F1c2UgYSBmdW5jdGlvbidzIGBnbG9iYWxUaGlzYCByZXNvbHZlcyB0byBpdHMgZGVmaW5pbmdcbiAqIHJlYWxtIChub3QgdGhlIGNhbGxlcidzKSwgZXZlcnkgY29uc3VtZXIgdGhhdCBidW5kbGVzIHRoZSBsaWJyYXJ5IGluIHRoZSBtYWluIE9ic2lkaWFuIHJlbmRlcmVyXG4gKiBzaGFyZXMgdGhlIHNhbWUgYmFnLCByZWdhcmRsZXNzIG9mIHdoaWNoIHdpbmRvdyBpcyBjdXJyZW50bHkgYWN0aXZlLCBzbyBjYWxsZXJzIG5ldmVyIG5lZWQgdG8gcGFzcyBhbiBgQXBwYFxuICogaW5zdGFuY2UuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljT2JqZWN0IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcblxuaW1wb3J0IHsgVmFsdWVXcmFwcGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3ZhbHVlLXdyYXBwZXInO1xuXG5pbnRlcmZhY2UgT2JzaWRpYW5MaWJXcmFwcGVyIHtcbiAgX19vYnNpZGlhbkxpYjogR2VuZXJpY09iamVjdDtcbn1cblxuY29uc3QgT0JTSURJQU5fTElCX0dMT0JBTF9OQU1FID0gJ19fb2JzaWRpYW5MaWInO1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBjcmVhdGVzIGEgc2hhcmVkLXN0YXRlIHtAbGluayBWYWx1ZVdyYXBwZXJ9IGZvciBhIGdpdmVuIGtleSBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuTGliYC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgc2hhcmVkIHN0YXRlIHZhbHVlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gc3RvcmUgb3IgcmV0cmlldmUgdGhlIHNoYXJlZCBzdGF0ZSB1bmRlci5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgLSBUaGUgZGVmYXVsdCB2YWx1ZSB0byB1c2UgaWYgdGhlIHNoYXJlZCBzdGF0ZSBkb2VzIG5vdCBleGlzdCB5ZXQuXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIFZhbHVlV3JhcHBlcn0gdGhhdCBzdG9yZXMgdGhlIHNoYXJlZCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9ic2lkaWFuTGliU3RhdGU8VD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCk6IFZhbHVlV3JhcHBlcjxUPiB7XG4gIHJldHVybiAoZ2V0T2JzaWRpYW5MaWJCYWcoKVtrZXldID8/PSBWYWx1ZVdyYXBwZXIub2YoZGVmYXVsdFZhbHVlKSkgYXMgVmFsdWVXcmFwcGVyPFQ+O1xufVxuXG4vKipcbiAqIENsZWFycyB0aGUgc2hhcmVkLXN0YXRlIGJhZyBvbiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuTGliYC5cbiAqXG4gKiBJbnRlbmRlZCBmb3IgdGVzdCBpc29sYXRpb246IGNhbGwgaXQgYmVmb3JlIGVhY2ggdGVzdCBzbyBhY2N1bXVsYXRlZCBzdGF0ZSAocXVldWVzLFxuICogcmVnaXN0ZXJlZCBoYW5kbGVycywgZXRjLikgZG9lcyBub3QgbGVhayBiZXR3ZWVuIHRlc3RzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRPYnNpZGlhbkxpYlN0YXRlKCk6IHZvaWQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgc2hhcmVkIHN0YXRlIGludGVudGlvbmFsbHkgbGl2ZXMgb24gdGhlIHJlYWxtIGdsb2JhbC5cbiAgKGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkxpYldyYXBwZXI+KS5fX29ic2lkaWFuTGliID0ge307XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYmFnLCBjcmVhdGluZyBpdCBhcyBhIHBsYWluIGRhdGEgcHJvcGVydHkgd2hlbiB0aGlzIHJlYWxtIGhhcyBub25lLlxuICpcbiAqIEEgY29weSBvbGRlciB0aGFuIGA2LjAuMGAga2VwdCBpdHMgc3RhdGUgdW5kZXIgYW5vdGhlciBnbG9iYWwgYW5kIGluc3RhbGxlZCBgX19vYnNpZGlhbkxpYmAgYXMgYW4gYWNjZXNzb3Igb250b1xuICogaXQuIEFkb3B0aW5nIHRoYXQgYWNjZXNzb3Igd291bGQgbWFrZSB3aGV0aGVyIHRoaXMgY29weSBzaGFyZXMgc3RhdGUgd2l0aCBvbGRlciBvbmVzIGRlcGVuZCBvbiB3aGljaCBwbHVnaW4gbG9hZGVkXG4gKiBmaXJzdCwgc28gaXQgaXMgcmVwbGFjZWQgYnkgdGhpcyBjb3B5J3Mgb3duIGJhZy4gVGhlIG9sZGVyIGNvcGllcyBrZWVwIHJlYWRpbmcgdGhlaXIgb3duIGdsb2JhbCwgdW50b3VjaGVkLlxuICpcbiAqIEByZXR1cm5zIFRoZSBzaGFyZWQtc3RhdGUgYmFnLlxuICovXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpYkJhZygpOiBHZW5lcmljT2JqZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgLS0gVGhlIHNoYXJlZCBzdGF0ZSBpbnRlbnRpb25hbGx5IGxpdmVzIG9uIHRoZSByZWFsbSBnbG9iYWwuXG4gIGNvbnN0IHdyYXBwZXIgPSBnbG9iYWxUaGlzIGFzIFBhcnRpYWw8T2JzaWRpYW5MaWJXcmFwcGVyPjtcbiAgY29uc3QgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod3JhcHBlciwgT0JTSURJQU5fTElCX0dMT0JBTF9OQU1FKTtcbiAgaWYgKGRlc2NyaXB0b3IgJiYgISgndmFsdWUnIGluIGRlc2NyaXB0b3IpKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdyYXBwZXIsIE9CU0lESUFOX0xJQl9HTE9CQUxfTkFNRSwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiB7fSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICB3cmFwcGVyLl9fb2JzaWRpYW5MaWIgPz89IHt9O1xuICByZXR1cm4gd3JhcHBlci5fX29ic2lkaWFuTGliO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLFNBQVMsb0JBQW9CO0FBTTdCLE1BQU0sMkJBQTJCO0FBVTFCLFNBQVMsb0JBQXVCLEtBQWEsY0FBa0M7QUFDcEYsU0FBUSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sYUFBYSxHQUFHLFlBQVk7QUFDbkU7QUFRTyxTQUFTLHdCQUE4QjtBQUU1QyxFQUFDLFdBQTJDLGdCQUFnQixDQUFDO0FBQy9EO0FBV0EsU0FBUyxvQkFBbUM7QUFFMUMsUUFBTSxVQUFVO0FBQ2hCLFFBQU0sYUFBYSxPQUFPLHlCQUF5QixTQUFTLHdCQUF3QjtBQUNwRixNQUFJLGNBQWMsRUFBRSxXQUFXLGFBQWE7QUFDMUMsV0FBTyxlQUFlLFNBQVMsMEJBQTBCO0FBQUEsTUFDdkQsY0FBYztBQUFBLE1BQ2QsWUFBWTtBQUFBLE1BQ1osT0FBTyxDQUFDO0FBQUEsTUFDUixVQUFVO0FBQUEsSUFDWixDQUFDO0FBQUEsRUFDSDtBQUVBLFVBQVEsa0JBQWtCLENBQUM7QUFDM0IsU0FBTyxRQUFRO0FBQ2pCOyIsIm5hbWVzIjpbXX0=
@@ -149,7 +149,7 @@ function compileGlobEntry(glob) {
149
149
  const globSource = getGlobSource(body);
150
150
  if (!globSource.isValid) {
151
151
  return {
152
- error: t(($) => $.obsidianDevUtils.pathSettings.invalidGlob, { glob, reason: globSource.error })
152
+ error: t(($) => $.obsidianLib.pathSettings.invalidGlob, { glob, reason: globSource.error })
153
153
  };
154
154
  }
155
155
  const { source } = globSource;
@@ -161,7 +161,7 @@ function compileGlobEntry(glob) {
161
161
  contentsRegExp = new RegExp(`${prefix}${source}/`, CASE_INSENSITIVE_FLAG);
162
162
  } catch (error_) {
163
163
  return {
164
- error: t(($) => $.obsidianDevUtils.pathSettings.invalidGlob, { glob, reason: getRegExpErrorReason(error_) })
164
+ error: t(($) => $.obsidianLib.pathSettings.invalidGlob, { glob, reason: getRegExpErrorReason(error_) })
165
165
  };
166
166
  }
167
167
  return {
@@ -187,7 +187,7 @@ function compileRegExpEntry(entry, source, flags) {
187
187
  regExp = new RegExp(source, effectiveFlags.includes(CASE_INSENSITIVE_FLAG) ? effectiveFlags : `${effectiveFlags}${CASE_INSENSITIVE_FLAG}`);
188
188
  } catch (error) {
189
189
  return {
190
- error: t(($) => $.obsidianDevUtils.pathSettings.invalidRegularExpression, { reason: getRegExpErrorReason(error), regExp: entry })
190
+ error: t(($) => $.obsidianLib.pathSettings.invalidRegularExpression, { reason: getRegExpErrorReason(error), regExp: entry })
191
191
  };
192
192
  }
193
193
  return {
@@ -231,7 +231,7 @@ function getCharacterClassSource(glob, openIndex) {
231
231
  }
232
232
  index++;
233
233
  }
234
- return { error: t(($) => $.obsidianDevUtils.pathSettings.unclosedCharacterClass), isValid: false };
234
+ return { error: t(($) => $.obsidianLib.pathSettings.unclosedCharacterClass), isValid: false };
235
235
  }
236
236
  function getDefaultMatcher(type) {
237
237
  switch (type) {
@@ -289,7 +289,7 @@ function getGlobSource(glob) {
289
289
  case "\\": {
290
290
  index++;
291
291
  if (index >= glob.length) {
292
- return { error: t(($) => $.obsidianDevUtils.pathSettings.trailingEscape), isValid: false };
292
+ return { error: t(($) => $.obsidianLib.pathSettings.trailingEscape), isValid: false };
293
293
  }
294
294
  source += escapeRegExp(glob.charAt(index));
295
295
  index++;
@@ -338,4 +338,4 @@ export {
338
338
  PathSettings,
339
339
  pathsValidator
340
340
  };
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXRoLXNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCB2YWxpZGF0b3JzIGZvciBtYW5hZ2luZyBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAqXG4gKiBBbiBlbnRyeSB0YWtlcyBvbmUgb2YgdGhyZWUgZm9ybXMsIGFuZCBldmVyeSBmb3JtIG1hdGNoZXMgY2FzZS1pbnNlbnNpdGl2ZWx5OlxuICpcbiAqIC0gQSByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCwgYC9wYXR0ZXJuL2ZsYWdzYC4gSXRzIG93biBmbGFncyBhcmUgaG9ub3VyZWQgYW5kIGBpYCBpcyBhbHdheXMgYWRkZWQuIGBnYCBhbmQgYHlgIGFyZVxuICogICBhY2NlcHRlZCBhbmQgZHJvcHBlZCwgc2luY2UgdGhleSBtYWtlIGBSZWdFeHAudGVzdGAgc3RhdGVmdWwgYW5kIHNheSBub3RoaW5nIGFib3V0IHdoaWNoIHBhdGhzIG1hdGNoLlxuICogLSBBIGdsb2IsIGFuIGVudHJ5IGhvbGRpbmcgYW4gdW5lc2NhcGVkIGAqYCwgYD9gIG9yIGBbYC4gYCpgIG1hdGNoZXMgd2l0aGluIG9uZSBwYXRoIHNlZ21lbnQsIGAqKmAgYWNyb3NzIHNlZ21lbnRzLFxuICogICBgP2Agb25lIGNoYXJhY3RlciBhbmQgYFthYmNdYCAvIGBbIWFiY11gIGEgY2hhcmFjdGVyIGNsYXNzLiBBIGdsb2Igd2l0aCBubyBgL2AgbWF0Y2hlcyBhIGZpbGUgb3IgZm9sZGVyIE5BTUUgYXQgYW55XG4gKiAgIGRlcHRoLCBhcyBpbiBgLmdpdGlnbm9yZWAgKGAqLnBkZmAgbWF0Y2hlcyBgYS9iL2MucGRmYCk7IG9uZSB3aXRoIGEgYC9gIGlzIGFuY2hvcmVkIHRvIHRoZSB2YXVsdCByb290XG4gKiAgIChgQXR0YWNobWVudHMvKi5wZGZgKS4gQSB0cmFpbGluZyBgL2AgbWFrZXMgaXQgbWF0Y2ggZm9sZGVycyBvbmx5LlxuICogLSBBIHBsYWluIHBhdGgsIGV2ZXJ5IG90aGVyIGVudHJ5LCB3aGljaCBtYXRjaGVzIHRoYXQgcGF0aCBhbmQgZXZlcnl0aGluZyBpbnNpZGUgaXQuIEEgbGl0ZXJhbCBgKmAsIGA/YCwgYFtgIG9yIGBcXGAgaW5cbiAqICAgYSBwbGFpbiBwYXRoIG9yIGEgZ2xvYiBpcyB3cml0dGVuIGVzY2FwZWQgKGBcXCpgKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUnO1xuXG5pbXBvcnQgeyBlc2NhcGVSZWdFeHAgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcmVnLWV4cCc7XG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5cbmVudW0gUGF0aFNldHRpbmdUeXBlIHtcbiAgRXhjbHVkZSA9ICdFeGNsdWRlJyxcbiAgSW5jbHVkZSA9ICdJbmNsdWRlJ1xufVxuXG50eXBlIENoYXJhY3RlckNsYXNzU291cmNlUmVzdWx0ID0gSW52YWxpZFNvdXJjZVJlc3VsdCB8IFZhbGlkQ2hhcmFjdGVyQ2xhc3NTb3VyY2VSZXN1bHQ7XG5cbmludGVyZmFjZSBDb21waWxlUmVzdWx0IHtcbiAgcmVhZG9ubHkgZXJyb3I/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hdGNoZXI/OiBQYXRoTWF0Y2hlcjtcbn1cblxudHlwZSBHbG9iU291cmNlUmVzdWx0ID0gSW52YWxpZFNvdXJjZVJlc3VsdCB8IFZhbGlkR2xvYlNvdXJjZVJlc3VsdDtcblxuaW50ZXJmYWNlIEludmFsaWRTb3VyY2VSZXN1bHQge1xuICByZWFkb25seSBlcnJvcjogc3RyaW5nO1xuICByZWFkb25seSBpc1ZhbGlkOiBmYWxzZTtcbn1cblxuaW50ZXJmYWNlIFBhdGhNYXRjaGVyIHtcbiAgaXNNYXRjaDogKHBhdGg6IHN0cmluZywgaXNGb2xkZXI6IGJvb2xlYW4pID0+IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBWYWxpZENoYXJhY3RlckNsYXNzU291cmNlUmVzdWx0IGV4dGVuZHMgVmFsaWRHbG9iU291cmNlUmVzdWx0IHtcbiAgcmVhZG9ubHkgZW5kSW5kZXg6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFZhbGlkR2xvYlNvdXJjZVJlc3VsdCB7XG4gIHJlYWRvbmx5IGlzVmFsaWQ6IHRydWU7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xufVxuXG5jb25zdCBSRUdfRVhQX0VOVFJZX1JFR19FWFAgPSAvXlxcLy4qXFwvW2Etel0qJC9zO1xuY29uc3QgQ0FTRV9JTlNFTlNJVElWRV9GTEFHID0gJ2knO1xuY29uc3QgU1RBVEVGVUxfRkxBR1NfUkVHX0VYUCA9IC9bZ3ldL2c7XG5jb25zdCBHTE9CX0NIQVJBQ1RFUlMgPSBuZXcgU2V0KFsnPycsICdbJywgJyonXSk7XG5jb25zdCBHTE9CU1RBUiA9ICcqKic7XG5jb25zdCBHTE9CU1RBUl9GT0xERVJTID0gJyoqLyc7XG5cbmNvbnN0IEFMV0FZU19NQVRDSEVSOiBQYXRoTWF0Y2hlciA9IHtcbiAgaXNNYXRjaDogKCkgPT4gdHJ1ZVxufTtcblxuY29uc3QgTkVWRVJfTUFUQ0hFUjogUGF0aE1hdGNoZXIgPSB7XG4gIGlzTWF0Y2g6ICgpID0+IGZhbHNlXG59O1xuXG5jbGFzcyBQYXRoU2V0dGluZyB7XG4gIHB1YmxpYyBnZXQgYXJyYXkoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9hcnJheTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYXJyYXkodmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fYXJyYXkgPSB2YWx1ZS5maWx0ZXIoQm9vbGVhbik7XG4gICAgdGhpcy5tYXRjaGVycyA9IG1ha2VNYXRjaGVycyh0aGlzLl9hcnJheSwgdGhpcy5kZWZhdWx0TWF0Y2hlcikgPz8gW3RoaXMuZGVmYXVsdE1hdGNoZXJdO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1hdGNoZXI6IFBhdGhNYXRjaGVyO1xuICBwcml2YXRlIG1hdGNoZXJzOiBQYXRoTWF0Y2hlcltdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFBhdGhTZXR0aW5nVHlwZSkge1xuICAgIHRoaXMuZGVmYXVsdE1hdGNoZXIgPSBnZXREZWZhdWx0TWF0Y2hlcih0eXBlKTtcbiAgICB0aGlzLm1hdGNoZXJzID0gW3RoaXMuZGVmYXVsdE1hdGNoZXJdO1xuICB9XG5cbiAgcHVibGljIGlzUGF0aElnbm9yZWQocGF0aDogc3RyaW5nLCBpc0ZvbGRlcjogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzTWF0Y2ggPSB0aGlzLm1hdGNoZXJzLnNvbWUoKG1hdGNoZXIpID0+IG1hdGNoZXIuaXNNYXRjaChwYXRoLCBpc0ZvbGRlcikpO1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBBbGwgYnJhbmNoZXMgY292ZXJlZCBidXQgdjggcmVwb3J0cyBzd2l0Y2ggYXMgcGFydGlhbC4gKi9cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICAgIGNhc2UgUGF0aFNldHRpbmdUeXBlLkV4Y2x1ZGU6IHtcbiAgICAgICAgcmV0dXJuIGlzTWF0Y2g7XG4gICAgICB9XG4gICAgICBjYXNlIFBhdGhTZXR0aW5nVHlwZS5JbmNsdWRlOiB7XG4gICAgICAgIHJldHVybiAhaXNNYXRjaDtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgICBhc3NlcnROZXZlcih0aGlzLnR5cGUpO1xuICAgICAgfVxuICAgICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgY2xhc3MgZm9yIG1hbmFnaW5nIGluY2x1ZGUvZXhjbHVkZSBwYXRoIHNldHRpbmdzLlxuICpcbiAqIFNlZSB0aGUgbW9kdWxlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBlbnRyeSBzeW50YXg6IHBsYWluIHBhdGhzLCBnbG9icyBhbmQgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWxzLCBhbGwgbWF0Y2hlZFxuICogY2FzZS1pbnNlbnNpdGl2ZWx5LlxuICovXG5leHBvcnQgY2xhc3MgUGF0aFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGV4Y2x1ZGUgcGF0aHMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBleGNsdWRlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIGdldCBleGNsdWRlUGF0aHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9leGNsdWRlUGF0aHMuYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZXhjbHVkZSBwYXRocy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGV4Y2x1ZGUgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgc2V0IGV4Y2x1ZGVQYXRocyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9leGNsdWRlUGF0aHMuYXJyYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpbmNsdWRlIHBhdGhzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaW5jbHVkZSBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5jbHVkZVBhdGhzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5faW5jbHVkZVBhdGhzLmFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluY2x1ZGUgcGF0aHMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbmNsdWRlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIHNldCBpbmNsdWRlUGF0aHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5faW5jbHVkZVBhdGhzLmFycmF5ID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9leGNsdWRlUGF0aHMgPSBuZXcgUGF0aFNldHRpbmcoUGF0aFNldHRpbmdUeXBlLkV4Y2x1ZGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmNsdWRlUGF0aHMgPSBuZXcgUGF0aFNldHRpbmcoUGF0aFNldHRpbmdUeXBlLkluY2x1ZGUpO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBwYXRoIGlzIGlnbm9yZWQgYnkgdGhlIGluY2x1ZGUvZXhjbHVkZSBwYXRoIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gaXNGb2xkZXIgLSBXaGV0aGVyIHRoZSBwYXRoIGlzIGEgZm9sZGVyLiBPbmx5IGEgZm9sZGVyLW9ubHkgZ2xvYiAob25lIGVuZGluZyBpbiBgL2ApIHJlYWRzIGl0OiBzdWNoIGEgZ2xvYlxuICAgKiBhbHdheXMgbWF0Y2hlcyB0aGUgY29udGVudHMgb2YgYSBtYXRjaGluZyBmb2xkZXIsIGFuZCBtYXRjaGVzIHRoZSBmb2xkZXIgaXRzZWxmIG9ubHkgd2hlbiB0aGlzIGlzIGB0cnVlYC5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBwYXRoIGlzIGlnbm9yZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzUGF0aElnbm9yZWQocGF0aDogc3RyaW5nLCBpc0ZvbGRlciA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVQYXRocy5pc1BhdGhJZ25vcmVkKHBhdGgsIGlzRm9sZGVyKSB8fCB0aGlzLl9leGNsdWRlUGF0aHMuaXNQYXRoSWdub3JlZChwYXRoLCBpc0ZvbGRlcik7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgaW5jbHVkZS9leGNsdWRlIHBhdGggZW50cmllcywgcmVwb3J0aW5nIHRoZSBmaXJzdCBlbnRyeSB0aGF0IGlzIG5vdCBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBnbG9iLlxuICpcbiAqIEFuIGludmFsaWQgZW50cnkgZG9lcyBub3QgdGhyb3cgd2hlbiBhc3NpZ25lZCB0byB7QGxpbmsgUGF0aFNldHRpbmdzfSDigJQgdGhlIHdob2xlIGxpc3QgZmFsbHMgYmFjayB0byBpdHMgZGVmYXVsdFxuICogcGF0dGVybiBpbnN0ZWFkIOKAlCBzbyB0aGlzIHZhbGlkYXRvciBpcyB3aGF0IHN1cmZhY2VzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLiBUaGUgbWVzc2FnZSBuYW1lcyB0aGUgZW50cnkgYW5kIHRoZVxuICogcmVhc29uIGl0IGlzIGludmFsaWQuXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggZW50cmllcyB0byB2YWxpZGF0ZS5cbiAqIEByZXR1cm5zIEEgbWVzc2FnZSBuYW1pbmcgdGhlIGZpcnN0IGludmFsaWQgZW50cnksIG9yIG5vdGhpbmcgd2hlbiBldmVyeSBlbnRyeSBpcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhzVmFsaWRhdG9yKHBhdGhzOiBzdHJpbmdbXSk6IE1heWJlUmV0dXJuPHN0cmluZz4ge1xuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBjb25zdCB7IGVycm9yIH0gPSBjb21waWxlRW50cnkocGF0aCwgTkVWRVJfTUFUQ0hFUik7XG4gICAgaWYgKGVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcGlsZUVudHJ5KGVudHJ5OiBzdHJpbmcsIGRlZmF1bHRNYXRjaGVyOiBQYXRoTWF0Y2hlcik6IENvbXBpbGVSZXN1bHQge1xuICBpZiAoZW50cnkgPT09ICcvJykge1xuICAgIHJldHVybiB7IG1hdGNoZXI6IGRlZmF1bHRNYXRjaGVyIH07XG4gIH1cblxuICBpZiAoUkVHX0VYUF9FTlRSWV9SRUdfRVhQLnRlc3QoZW50cnkpKSB7XG4gICAgY29uc3QgZmxhZ3NTZXBhcmF0b3JJbmRleCA9IGVudHJ5Lmxhc3RJbmRleE9mKCcvJyk7XG4gICAgcmV0dXJuIGNvbXBpbGVSZWdFeHBFbnRyeShlbnRyeSwgZW50cnkuc2xpY2UoMSwgZmxhZ3NTZXBhcmF0b3JJbmRleCksIGVudHJ5LnNsaWNlKGZsYWdzU2VwYXJhdG9ySW5kZXggKyAxKSk7XG4gIH1cblxuICByZXR1cm4gaGFzVW5lc2NhcGVkR2xvYkNoYXJhY3RlcihlbnRyeSkgPyBjb21waWxlR2xvYkVudHJ5KGVudHJ5KSA6IGNvbXBpbGVQbGFpblBhdGhFbnRyeShlbnRyeSk7XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGVHbG9iRW50cnkoZ2xvYjogc3RyaW5nKTogQ29tcGlsZVJlc3VsdCB7XG4gIGNvbnN0IGlzRm9sZGVyT25seSA9IGdsb2IuZW5kc1dpdGgoJy8nKTtcbiAgY29uc3QgYm9keSA9IGdsb2IucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gIGNvbnN0IGdsb2JTb3VyY2UgPSBnZXRHbG9iU291cmNlKGJvZHkpO1xuICBpZiAoIWdsb2JTb3VyY2UuaXNWYWxpZCkge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnBhdGhTZXR0aW5ncy5pbnZhbGlkR2xvYiwgeyBnbG9iLCByZWFzb246IGdsb2JTb3VyY2UuZXJyb3IgfSlcbiAgICB9O1xuICB9XG4gIGNvbnN0IHsgc291cmNlIH0gPSBnbG9iU291cmNlO1xuXG4gIGNvbnN0IHByZWZpeCA9IGJvZHkuaW5jbHVkZXMoJy8nKSA/ICdeJyA6ICcoPzpefC8pJztcblxuICBsZXQgc2VsZlJlZ0V4cDogUmVnRXhwO1xuICBsZXQgY29udGVudHNSZWdFeHA6IFJlZ0V4cDtcbiAgdHJ5IHtcbiAgICBzZWxmUmVnRXhwID0gbmV3IFJlZ0V4cChgJHtwcmVmaXh9JHtzb3VyY2V9JGAsIENBU0VfSU5TRU5TSVRJVkVfRkxBRyk7XG4gICAgY29udGVudHNSZWdFeHAgPSBuZXcgUmVnRXhwKGAke3ByZWZpeH0ke3NvdXJjZX0vYCwgQ0FTRV9JTlNFTlNJVElWRV9GTEFHKTtcbiAgfSBjYXRjaCAoZXJyb3JfKSB7XG4gICAgLy8gQW4gb3V0LW9mLW9yZGVyIGNoYXJhY3RlciBjbGFzcyByYW5nZSAoYFt6LWFdYCkgaXMgdGhlIG9uZSBpbnZhbGlkIGdsb2Igb25seSB0aGUgZW5naW5lIGNhbiB0ZWxsLlxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnBhdGhTZXR0aW5ncy5pbnZhbGlkR2xvYiwgeyBnbG9iLCByZWFzb246IGdldFJlZ0V4cEVycm9yUmVhc29uKGVycm9yXykgfSlcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaGVyOiB7XG4gICAgICBpc01hdGNoOiAocGF0aCwgaXNGb2xkZXIpID0+IGNvbnRlbnRzUmVnRXhwLnRlc3QocGF0aCkgfHwgKChpc0ZvbGRlciB8fCAhaXNGb2xkZXJPbmx5KSAmJiBzZWxmUmVnRXhwLnRlc3QocGF0aCkpXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjb21waWxlUGxhaW5QYXRoRW50cnkocGF0aDogc3RyaW5nKTogQ29tcGlsZVJlc3VsdCB7XG4gIGNvbnN0IHVuZXNjYXBlZFBhdGggPSBwYXRoLnJlcGxhY2VBbGwoL1xcXFwoPzxjaGFyYWN0ZXI+LikvZ3MsICckPGNoYXJhY3Rlcj4nKS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cChgXiR7ZXNjYXBlUmVnRXhwKHVuZXNjYXBlZFBhdGgpfSg/Oi98JClgLCBDQVNFX0lOU0VOU0lUSVZFX0ZMQUcpO1xuICByZXR1cm4ge1xuICAgIG1hdGNoZXI6IHtcbiAgICAgIGlzTWF0Y2g6IChwYXRoVG9DaGVjaykgPT4gcmVnRXhwLnRlc3QocGF0aFRvQ2hlY2spXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjb21waWxlUmVnRXhwRW50cnkoZW50cnk6IHN0cmluZywgc291cmNlOiBzdHJpbmcsIGZsYWdzOiBzdHJpbmcpOiBDb21waWxlUmVzdWx0IHtcbiAgbGV0IHJlZ0V4cDogUmVnRXhwO1xuICB0cnkge1xuICAgIC8vIENvbXBpbGVkIHdpdGggdGhlIGZsYWdzIGFzIHdyaXR0ZW4gZmlyc3QsIHNvIGFuIHVua25vd24gb3IgcmVwZWF0ZWQgZmxhZyBpcyByZXBvcnRlZCByYXRoZXIgdGhhbiBpZ25vcmVkLlxuICAgIG5ldyBSZWdFeHAoc291cmNlLCBmbGFncyk7XG4gICAgY29uc3QgZWZmZWN0aXZlRmxhZ3MgPSBmbGFncy5yZXBsYWNlQWxsKFNUQVRFRlVMX0ZMQUdTX1JFR19FWFAsICcnKTtcbiAgICByZWdFeHAgPSBuZXcgUmVnRXhwKHNvdXJjZSwgZWZmZWN0aXZlRmxhZ3MuaW5jbHVkZXMoQ0FTRV9JTlNFTlNJVElWRV9GTEFHKSA/IGVmZmVjdGl2ZUZsYWdzIDogYCR7ZWZmZWN0aXZlRmxhZ3N9JHtDQVNFX0lOU0VOU0lUSVZFX0ZMQUd9YCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gQSBwYXJ0aWFsbHkgdHlwZWQgcmVnZXggbGl0ZXJhbCAoYC9eSW5ib3hcXC9gKSBpcyBub3QgcGFyc2VhYmxlLlxuICAgIC8vIFJlcG9ydCBpdCBpbnN0ZWFkIG9mIHRocm93aW5nIGZyb20gYSBzZXR0aW5ncyBzZXR0ZXIsIHdoaWNoIHdvdWxkIGJyZWFrIGJvdGggdGhlIHNldHRpbmdzIFVJIGFuZCB0aGUgc2F2ZSBwYXRoLlxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnBhdGhTZXR0aW5ncy5pbnZhbGlkUmVndWxhckV4cHJlc3Npb24sIHsgcmVhc29uOiBnZXRSZWdFeHBFcnJvclJlYXNvbihlcnJvciksIHJlZ0V4cDogZW50cnkgfSlcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaGVyOiB7XG4gICAgICBpc01hdGNoOiAocGF0aCkgPT4gcmVnRXhwLnRlc3QocGF0aClcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUNoYXJhY3RlckNsYXNzQ2hhcmFjdGVyKGNoYXJhY3Rlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIC9bLVxcXFxcXF1eW10vLnRlc3QoY2hhcmFjdGVyKSA/IGBcXFxcJHtjaGFyYWN0ZXJ9YCA6IGNoYXJhY3Rlcjtcbn1cblxuZnVuY3Rpb24gZ2V0Q2hhcmFjdGVyQ2xhc3NTb3VyY2UoZ2xvYjogc3RyaW5nLCBvcGVuSW5kZXg6IG51bWJlcik6IENoYXJhY3RlckNsYXNzU291cmNlUmVzdWx0IHtcbiAgbGV0IGluZGV4ID0gb3BlbkluZGV4ICsgMTtcbiAgbGV0IGlzTmVnYXRlZCA9IGZhbHNlO1xuICBpZiAoZ2xvYltpbmRleF0gPT09ICchJyB8fCBnbG9iW2luZGV4XSA9PT0gJ14nKSB7XG4gICAgaXNOZWdhdGVkID0gdHJ1ZTtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgbGV0IGNvbnRlbnQgPSAnJztcbiAgaWYgKGdsb2JbaW5kZXhdID09PSAnXScpIHtcbiAgICBjb250ZW50ICs9IFN0cmluZy5yYXdgXFxdYDtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgd2hpbGUgKGluZGV4IDwgZ2xvYi5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGFyYWN0ZXIgPSBnbG9iLmNoYXJBdChpbmRleCk7XG4gICAgaWYgKGNoYXJhY3RlciA9PT0gJ10nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbmRJbmRleDogaW5kZXggKyAxLFxuICAgICAgICBpc1ZhbGlkOiB0cnVlLFxuICAgICAgICBzb3VyY2U6IGBbJHtpc05lZ2F0ZWQgPyAnXi8nIDogJyd9JHtjb250ZW50fV1gXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjaGFyYWN0ZXIgPT09ICdcXFxcJykge1xuICAgICAgaW5kZXgrKztcbiAgICAgIGlmIChpbmRleCA+PSBnbG9iLmxlbmd0aCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gZXNjYXBlQ2hhcmFjdGVyQ2xhc3NDaGFyYWN0ZXIoZ2xvYi5jaGFyQXQoaW5kZXgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCArPSBjaGFyYWN0ZXIgPT09ICctJyA/IGNoYXJhY3RlciA6IGVzY2FwZUNoYXJhY3RlckNsYXNzQ2hhcmFjdGVyKGNoYXJhY3Rlcik7XG4gICAgfVxuICAgIGluZGV4Kys7XG4gIH1cblxuICByZXR1cm4geyBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLnBhdGhTZXR0aW5ncy51bmNsb3NlZENoYXJhY3RlckNsYXNzKSwgaXNWYWxpZDogZmFsc2UgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdE1hdGNoZXIodHlwZTogUGF0aFNldHRpbmdUeXBlKTogUGF0aE1hdGNoZXIge1xuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWxsIGJyYW5jaGVzIGNvdmVyZWQgYnV0IHY4IHJlcG9ydHMgc3dpdGNoIGFzIHBhcnRpYWwuICovXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY2FzZSBQYXRoU2V0dGluZ1R5cGUuRXhjbHVkZToge1xuICAgICAgcmV0dXJuIE5FVkVSX01BVENIRVI7XG4gICAgfVxuICAgIGNhc2UgUGF0aFNldHRpbmdUeXBlLkluY2x1ZGU6IHtcbiAgICAgIHJldHVybiBBTFdBWVNfTUFUQ0hFUjtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRHbG9iU291cmNlKGdsb2I6IHN0cmluZyk6IEdsb2JTb3VyY2VSZXN1bHQge1xuICBsZXQgc291cmNlID0gJyc7XG4gIGxldCBpbmRleCA9IDA7XG5cbiAgd2hpbGUgKGluZGV4IDwgZ2xvYi5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGFyYWN0ZXIgPSBnbG9iLmNoYXJBdChpbmRleCk7XG4gICAgc3dpdGNoIChjaGFyYWN0ZXIpIHtcbiAgICAgIGNhc2UgJz8nOiB7XG4gICAgICAgIHNvdXJjZSArPSAnW14vXSc7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnWyc6IHtcbiAgICAgICAgY29uc3QgY2hhcmFjdGVyQ2xhc3MgPSBnZXRDaGFyYWN0ZXJDbGFzc1NvdXJjZShnbG9iLCBpbmRleCk7XG4gICAgICAgIGlmICghY2hhcmFjdGVyQ2xhc3MuaXNWYWxpZCkge1xuICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJDbGFzcztcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2UgKz0gY2hhcmFjdGVyQ2xhc3Muc291cmNlO1xuICAgICAgICBpbmRleCA9IGNoYXJhY3RlckNsYXNzLmVuZEluZGV4O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJyonOiB7XG4gICAgICAgIGlmICghZ2xvYi5zdGFydHNXaXRoKEdMT0JTVEFSLCBpbmRleCkpIHtcbiAgICAgICAgICBzb3VyY2UgKz0gJ1teL10qJztcbiAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNTZWdtZW50U3RhcnQgPSBpbmRleCA9PT0gMCB8fCBnbG9iW2luZGV4IC0gMV0gPT09ICcvJztcbiAgICAgICAgaWYgKGlzU2VnbWVudFN0YXJ0ICYmIGdsb2Iuc3RhcnRzV2l0aChHTE9CU1RBUl9GT0xERVJTLCBpbmRleCkpIHtcbiAgICAgICAgICAvLyBgKiovYCBpcyB6ZXJvIG9yIG1vcmUgd2hvbGUgZm9sZGVycy5cbiAgICAgICAgICBzb3VyY2UgKz0gJyg/OlteL10qLykqJztcbiAgICAgICAgICBpbmRleCArPSBHTE9CU1RBUl9GT0xERVJTLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIGlmIChpc1NlZ21lbnRTdGFydCAmJiBpbmRleCArIEdMT0JTVEFSLmxlbmd0aCA9PT0gZ2xvYi5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBBIHRyYWlsaW5nIGAvKipgIGlzIGV2ZXJ5dGhpbmcgaW5zaWRlIHRoZSBmb2xkZXIuXG4gICAgICAgICAgc291cmNlICs9ICcuKic7XG4gICAgICAgICAgaW5kZXggKz0gR0xPQlNUQVIubGVuZ3RoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFueSBvdGhlciBgKipgIGlzIGFuIG9yZGluYXJ5IGAqYCwgYXMgaW4gYC5naXRpZ25vcmVgLlxuICAgICAgICAgIHNvdXJjZSArPSAnW14vXSonO1xuICAgICAgICAgIGluZGV4ICs9IEdMT0JTVEFSLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1xcXFwnOiB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGlmIChpbmRleCA+PSBnbG9iLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7IGVycm9yOiB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMucGF0aFNldHRpbmdzLnRyYWlsaW5nRXNjYXBlKSwgaXNWYWxpZDogZmFsc2UgfTtcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2UgKz0gZXNjYXBlUmVnRXhwKGdsb2IuY2hhckF0KGluZGV4KSk7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBzb3VyY2UgKz0gZXNjYXBlUmVnRXhwKGNoYXJhY3Rlcik7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIHNvdXJjZSB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWdFeHBFcnJvclJlYXNvbihlcnJvcjogdW5rbm93bik6IHN0cmluZyB7XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGUgUmVnRXhwIGNvbnN0cnVjdG9yIG9ubHkgZXZlciB0aHJvd3MgYSBTeW50YXhFcnJvci4gKi9cbiAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgLy8gVjggcGhyYXNlcyBpdCBgSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IC88c291cmNlPi88ZmxhZ3M+OiA8cmVhc29uPmA7IHRoZSBlbnRyeSBpcyBhbHJlYWR5IG5hbWVkLlxuICBjb25zdCBtYXRjaCA9IC9eSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IFxcLy4qXFwvW2Etel0qOiAoPzxyZWFzb24+LiopJC9zLmV4ZWMobWVzc2FnZSk7XG4gIHJldHVybiBtYXRjaD8uZ3JvdXBzPy5bJ3JlYXNvbiddID8/IG1lc3NhZ2U7XG59XG5cbmZ1bmN0aW9uIGhhc1VuZXNjYXBlZEdsb2JDaGFyYWN0ZXIoZW50cnk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZW50cnkubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gZW50cnkuY2hhckF0KGluZGV4KTtcbiAgICBpZiAoY2hhcmFjdGVyID09PSAnXFxcXCcpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfSBlbHNlIGlmIChHTE9CX0NIQVJBQ1RFUlMuaGFzKGNoYXJhY3RlcikpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG1ha2VNYXRjaGVycyhwYXRoczogc3RyaW5nW10sIGRlZmF1bHRNYXRjaGVyOiBQYXRoTWF0Y2hlcik6IG51bGwgfCBQYXRoTWF0Y2hlcltdIHtcbiAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbZGVmYXVsdE1hdGNoZXJdO1xuICB9XG5cbiAgY29uc3QgbWF0Y2hlcnM6IFBhdGhNYXRjaGVyW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXRoIG9mIHBhdGhzKSB7XG4gICAgY29uc3QgeyBtYXRjaGVyIH0gPSBjb21waWxlRW50cnkocGF0aCwgZGVmYXVsdE1hdGNoZXIpO1xuICAgIGlmICghbWF0Y2hlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIG1hdGNoZXJzLnB1c2gobWF0Y2hlcik7XG4gIH1cbiAgcmV0dXJuIG1hdGNoZXJzO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLG1CQUFtQjtBQUU1QixTQUFTLFNBQVM7QUFrQ2xCLE1BQU0sd0JBQXdCO0FBQzlCLE1BQU0sd0JBQXdCO0FBQzlCLE1BQU0seUJBQXlCO0FBQy9CLE1BQU0sa0JBQWtCLG9CQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO0FBQy9DLE1BQU0sV0FBVztBQUNqQixNQUFNLG1CQUFtQjtBQUV6QixNQUFNLGlCQUE4QjtBQUFBLEVBQ2xDLFNBQVMsTUFBTTtBQUNqQjtBQUVBLE1BQU0sZ0JBQTZCO0FBQUEsRUFDakMsU0FBUyxNQUFNO0FBQ2pCO0FBRUEsTUFBTSxZQUFZO0FBQUEsRUFjVCxZQUE2QixNQUF1QjtBQUF2QjtBQUNsQyxTQUFLLGlCQUFpQixrQkFBa0IsSUFBSTtBQUM1QyxTQUFLLFdBQVcsQ0FBQyxLQUFLLGNBQWM7QUFBQSxFQUN0QztBQUFBLEVBSG9DO0FBQUEsRUFicEMsSUFBVyxRQUFrQjtBQUMzQixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFQSxJQUFXLE1BQU0sT0FBaUI7QUFDaEMsU0FBSyxTQUFTLE1BQU0sT0FBTyxPQUFPO0FBQ2xDLFNBQUssV0FBVyxhQUFhLEtBQUssUUFBUSxLQUFLLGNBQWMsS0FBSyxDQUFDLEtBQUssY0FBYztBQUFBLEVBQ3hGO0FBQUEsRUFFUSxTQUFtQixDQUFD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
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXRoLXNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCB2YWxpZGF0b3JzIGZvciBtYW5hZ2luZyBpbmNsdWRlL2V4Y2x1ZGUgcGF0aCBzZXR0aW5ncy5cbiAqXG4gKiBBbiBlbnRyeSB0YWtlcyBvbmUgb2YgdGhyZWUgZm9ybXMsIGFuZCBldmVyeSBmb3JtIG1hdGNoZXMgY2FzZS1pbnNlbnNpdGl2ZWx5OlxuICpcbiAqIC0gQSByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCwgYC9wYXR0ZXJuL2ZsYWdzYC4gSXRzIG93biBmbGFncyBhcmUgaG9ub3VyZWQgYW5kIGBpYCBpcyBhbHdheXMgYWRkZWQuIGBnYCBhbmQgYHlgIGFyZVxuICogICBhY2NlcHRlZCBhbmQgZHJvcHBlZCwgc2luY2UgdGhleSBtYWtlIGBSZWdFeHAudGVzdGAgc3RhdGVmdWwgYW5kIHNheSBub3RoaW5nIGFib3V0IHdoaWNoIHBhdGhzIG1hdGNoLlxuICogLSBBIGdsb2IsIGFuIGVudHJ5IGhvbGRpbmcgYW4gdW5lc2NhcGVkIGAqYCwgYD9gIG9yIGBbYC4gYCpgIG1hdGNoZXMgd2l0aGluIG9uZSBwYXRoIHNlZ21lbnQsIGAqKmAgYWNyb3NzIHNlZ21lbnRzLFxuICogICBgP2Agb25lIGNoYXJhY3RlciBhbmQgYFthYmNdYCAvIGBbIWFiY11gIGEgY2hhcmFjdGVyIGNsYXNzLiBBIGdsb2Igd2l0aCBubyBgL2AgbWF0Y2hlcyBhIGZpbGUgb3IgZm9sZGVyIE5BTUUgYXQgYW55XG4gKiAgIGRlcHRoLCBhcyBpbiBgLmdpdGlnbm9yZWAgKGAqLnBkZmAgbWF0Y2hlcyBgYS9iL2MucGRmYCk7IG9uZSB3aXRoIGEgYC9gIGlzIGFuY2hvcmVkIHRvIHRoZSB2YXVsdCByb290XG4gKiAgIChgQXR0YWNobWVudHMvKi5wZGZgKS4gQSB0cmFpbGluZyBgL2AgbWFrZXMgaXQgbWF0Y2ggZm9sZGVycyBvbmx5LlxuICogLSBBIHBsYWluIHBhdGgsIGV2ZXJ5IG90aGVyIGVudHJ5LCB3aGljaCBtYXRjaGVzIHRoYXQgcGF0aCBhbmQgZXZlcnl0aGluZyBpbnNpZGUgaXQuIEEgbGl0ZXJhbCBgKmAsIGA/YCwgYFtgIG9yIGBcXGAgaW5cbiAqICAgYSBwbGFpbiBwYXRoIG9yIGEgZ2xvYiBpcyB3cml0dGVuIGVzY2FwZWQgKGBcXCpgKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUnO1xuXG5pbXBvcnQgeyBlc2NhcGVSZWdFeHAgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcmVnLWV4cCc7XG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5cbmVudW0gUGF0aFNldHRpbmdUeXBlIHtcbiAgRXhjbHVkZSA9ICdFeGNsdWRlJyxcbiAgSW5jbHVkZSA9ICdJbmNsdWRlJ1xufVxuXG50eXBlIENoYXJhY3RlckNsYXNzU291cmNlUmVzdWx0ID0gSW52YWxpZFNvdXJjZVJlc3VsdCB8IFZhbGlkQ2hhcmFjdGVyQ2xhc3NTb3VyY2VSZXN1bHQ7XG5cbmludGVyZmFjZSBDb21waWxlUmVzdWx0IHtcbiAgcmVhZG9ubHkgZXJyb3I/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hdGNoZXI/OiBQYXRoTWF0Y2hlcjtcbn1cblxudHlwZSBHbG9iU291cmNlUmVzdWx0ID0gSW52YWxpZFNvdXJjZVJlc3VsdCB8IFZhbGlkR2xvYlNvdXJjZVJlc3VsdDtcblxuaW50ZXJmYWNlIEludmFsaWRTb3VyY2VSZXN1bHQge1xuICByZWFkb25seSBlcnJvcjogc3RyaW5nO1xuICByZWFkb25seSBpc1ZhbGlkOiBmYWxzZTtcbn1cblxuaW50ZXJmYWNlIFBhdGhNYXRjaGVyIHtcbiAgaXNNYXRjaDogKHBhdGg6IHN0cmluZywgaXNGb2xkZXI6IGJvb2xlYW4pID0+IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBWYWxpZENoYXJhY3RlckNsYXNzU291cmNlUmVzdWx0IGV4dGVuZHMgVmFsaWRHbG9iU291cmNlUmVzdWx0IHtcbiAgcmVhZG9ubHkgZW5kSW5kZXg6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFZhbGlkR2xvYlNvdXJjZVJlc3VsdCB7XG4gIHJlYWRvbmx5IGlzVmFsaWQ6IHRydWU7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xufVxuXG5jb25zdCBSRUdfRVhQX0VOVFJZX1JFR19FWFAgPSAvXlxcLy4qXFwvW2Etel0qJC9zO1xuY29uc3QgQ0FTRV9JTlNFTlNJVElWRV9GTEFHID0gJ2knO1xuY29uc3QgU1RBVEVGVUxfRkxBR1NfUkVHX0VYUCA9IC9bZ3ldL2c7XG5jb25zdCBHTE9CX0NIQVJBQ1RFUlMgPSBuZXcgU2V0KFsnPycsICdbJywgJyonXSk7XG5jb25zdCBHTE9CU1RBUiA9ICcqKic7XG5jb25zdCBHTE9CU1RBUl9GT0xERVJTID0gJyoqLyc7XG5cbmNvbnN0IEFMV0FZU19NQVRDSEVSOiBQYXRoTWF0Y2hlciA9IHtcbiAgaXNNYXRjaDogKCkgPT4gdHJ1ZVxufTtcblxuY29uc3QgTkVWRVJfTUFUQ0hFUjogUGF0aE1hdGNoZXIgPSB7XG4gIGlzTWF0Y2g6ICgpID0+IGZhbHNlXG59O1xuXG5jbGFzcyBQYXRoU2V0dGluZyB7XG4gIHB1YmxpYyBnZXQgYXJyYXkoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9hcnJheTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYXJyYXkodmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fYXJyYXkgPSB2YWx1ZS5maWx0ZXIoQm9vbGVhbik7XG4gICAgdGhpcy5tYXRjaGVycyA9IG1ha2VNYXRjaGVycyh0aGlzLl9hcnJheSwgdGhpcy5kZWZhdWx0TWF0Y2hlcikgPz8gW3RoaXMuZGVmYXVsdE1hdGNoZXJdO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXJyYXk6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1hdGNoZXI6IFBhdGhNYXRjaGVyO1xuICBwcml2YXRlIG1hdGNoZXJzOiBQYXRoTWF0Y2hlcltdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFBhdGhTZXR0aW5nVHlwZSkge1xuICAgIHRoaXMuZGVmYXVsdE1hdGNoZXIgPSBnZXREZWZhdWx0TWF0Y2hlcih0eXBlKTtcbiAgICB0aGlzLm1hdGNoZXJzID0gW3RoaXMuZGVmYXVsdE1hdGNoZXJdO1xuICB9XG5cbiAgcHVibGljIGlzUGF0aElnbm9yZWQocGF0aDogc3RyaW5nLCBpc0ZvbGRlcjogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzTWF0Y2ggPSB0aGlzLm1hdGNoZXJzLnNvbWUoKG1hdGNoZXIpID0+IG1hdGNoZXIuaXNNYXRjaChwYXRoLCBpc0ZvbGRlcikpO1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBBbGwgYnJhbmNoZXMgY292ZXJlZCBidXQgdjggcmVwb3J0cyBzd2l0Y2ggYXMgcGFydGlhbC4gKi9cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICAgIGNhc2UgUGF0aFNldHRpbmdUeXBlLkV4Y2x1ZGU6IHtcbiAgICAgICAgcmV0dXJuIGlzTWF0Y2g7XG4gICAgICB9XG4gICAgICBjYXNlIFBhdGhTZXR0aW5nVHlwZS5JbmNsdWRlOiB7XG4gICAgICAgIHJldHVybiAhaXNNYXRjaDtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkLiAqL1xuICAgICAgICBhc3NlcnROZXZlcih0aGlzLnR5cGUpO1xuICAgICAgfVxuICAgICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgY2xhc3MgZm9yIG1hbmFnaW5nIGluY2x1ZGUvZXhjbHVkZSBwYXRoIHNldHRpbmdzLlxuICpcbiAqIFNlZSB0aGUgbW9kdWxlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBlbnRyeSBzeW50YXg6IHBsYWluIHBhdGhzLCBnbG9icyBhbmQgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWxzLCBhbGwgbWF0Y2hlZFxuICogY2FzZS1pbnNlbnNpdGl2ZWx5LlxuICovXG5leHBvcnQgY2xhc3MgUGF0aFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGV4Y2x1ZGUgcGF0aHMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBleGNsdWRlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIGdldCBleGNsdWRlUGF0aHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9leGNsdWRlUGF0aHMuYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZXhjbHVkZSBwYXRocy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGV4Y2x1ZGUgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgc2V0IGV4Y2x1ZGVQYXRocyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9leGNsdWRlUGF0aHMuYXJyYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpbmNsdWRlIHBhdGhzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaW5jbHVkZSBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5jbHVkZVBhdGhzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5faW5jbHVkZVBhdGhzLmFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGluY2x1ZGUgcGF0aHMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbmNsdWRlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIHNldCBpbmNsdWRlUGF0aHModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5faW5jbHVkZVBhdGhzLmFycmF5ID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9leGNsdWRlUGF0aHMgPSBuZXcgUGF0aFNldHRpbmcoUGF0aFNldHRpbmdUeXBlLkV4Y2x1ZGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmNsdWRlUGF0aHMgPSBuZXcgUGF0aFNldHRpbmcoUGF0aFNldHRpbmdUeXBlLkluY2x1ZGUpO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBwYXRoIGlzIGlnbm9yZWQgYnkgdGhlIGluY2x1ZGUvZXhjbHVkZSBwYXRoIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gaXNGb2xkZXIgLSBXaGV0aGVyIHRoZSBwYXRoIGlzIGEgZm9sZGVyLiBPbmx5IGEgZm9sZGVyLW9ubHkgZ2xvYiAob25lIGVuZGluZyBpbiBgL2ApIHJlYWRzIGl0OiBzdWNoIGEgZ2xvYlxuICAgKiBhbHdheXMgbWF0Y2hlcyB0aGUgY29udGVudHMgb2YgYSBtYXRjaGluZyBmb2xkZXIsIGFuZCBtYXRjaGVzIHRoZSBmb2xkZXIgaXRzZWxmIG9ubHkgd2hlbiB0aGlzIGlzIGB0cnVlYC5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBwYXRoIGlzIGlnbm9yZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzUGF0aElnbm9yZWQocGF0aDogc3RyaW5nLCBpc0ZvbGRlciA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVQYXRocy5pc1BhdGhJZ25vcmVkKHBhdGgsIGlzRm9sZGVyKSB8fCB0aGlzLl9leGNsdWRlUGF0aHMuaXNQYXRoSWdub3JlZChwYXRoLCBpc0ZvbGRlcik7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgaW5jbHVkZS9leGNsdWRlIHBhdGggZW50cmllcywgcmVwb3J0aW5nIHRoZSBmaXJzdCBlbnRyeSB0aGF0IGlzIG5vdCBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBnbG9iLlxuICpcbiAqIEFuIGludmFsaWQgZW50cnkgZG9lcyBub3QgdGhyb3cgd2hlbiBhc3NpZ25lZCB0byB7QGxpbmsgUGF0aFNldHRpbmdzfSDigJQgdGhlIHdob2xlIGxpc3QgZmFsbHMgYmFjayB0byBpdHMgZGVmYXVsdFxuICogcGF0dGVybiBpbnN0ZWFkIOKAlCBzbyB0aGlzIHZhbGlkYXRvciBpcyB3aGF0IHN1cmZhY2VzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLiBUaGUgbWVzc2FnZSBuYW1lcyB0aGUgZW50cnkgYW5kIHRoZVxuICogcmVhc29uIGl0IGlzIGludmFsaWQuXG4gKlxuICogQHBhcmFtIHBhdGhzIC0gVGhlIHBhdGggZW50cmllcyB0byB2YWxpZGF0ZS5cbiAqIEByZXR1cm5zIEEgbWVzc2FnZSBuYW1pbmcgdGhlIGZpcnN0IGludmFsaWQgZW50cnksIG9yIG5vdGhpbmcgd2hlbiBldmVyeSBlbnRyeSBpcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhzVmFsaWRhdG9yKHBhdGhzOiBzdHJpbmdbXSk6IE1heWJlUmV0dXJuPHN0cmluZz4ge1xuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBjb25zdCB7IGVycm9yIH0gPSBjb21waWxlRW50cnkocGF0aCwgTkVWRVJfTUFUQ0hFUik7XG4gICAgaWYgKGVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcGlsZUVudHJ5KGVudHJ5OiBzdHJpbmcsIGRlZmF1bHRNYXRjaGVyOiBQYXRoTWF0Y2hlcik6IENvbXBpbGVSZXN1bHQge1xuICBpZiAoZW50cnkgPT09ICcvJykge1xuICAgIHJldHVybiB7IG1hdGNoZXI6IGRlZmF1bHRNYXRjaGVyIH07XG4gIH1cblxuICBpZiAoUkVHX0VYUF9FTlRSWV9SRUdfRVhQLnRlc3QoZW50cnkpKSB7XG4gICAgY29uc3QgZmxhZ3NTZXBhcmF0b3JJbmRleCA9IGVudHJ5Lmxhc3RJbmRleE9mKCcvJyk7XG4gICAgcmV0dXJuIGNvbXBpbGVSZWdFeHBFbnRyeShlbnRyeSwgZW50cnkuc2xpY2UoMSwgZmxhZ3NTZXBhcmF0b3JJbmRleCksIGVudHJ5LnNsaWNlKGZsYWdzU2VwYXJhdG9ySW5kZXggKyAxKSk7XG4gIH1cblxuICByZXR1cm4gaGFzVW5lc2NhcGVkR2xvYkNoYXJhY3RlcihlbnRyeSkgPyBjb21waWxlR2xvYkVudHJ5KGVudHJ5KSA6IGNvbXBpbGVQbGFpblBhdGhFbnRyeShlbnRyeSk7XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGVHbG9iRW50cnkoZ2xvYjogc3RyaW5nKTogQ29tcGlsZVJlc3VsdCB7XG4gIGNvbnN0IGlzRm9sZGVyT25seSA9IGdsb2IuZW5kc1dpdGgoJy8nKTtcbiAgY29uc3QgYm9keSA9IGdsb2IucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gIGNvbnN0IGdsb2JTb3VyY2UgPSBnZXRHbG9iU291cmNlKGJvZHkpO1xuICBpZiAoIWdsb2JTb3VyY2UuaXNWYWxpZCkge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5wYXRoU2V0dGluZ3MuaW52YWxpZEdsb2IsIHsgZ2xvYiwgcmVhc29uOiBnbG9iU291cmNlLmVycm9yIH0pXG4gICAgfTtcbiAgfVxuICBjb25zdCB7IHNvdXJjZSB9ID0gZ2xvYlNvdXJjZTtcblxuICBjb25zdCBwcmVmaXggPSBib2R5LmluY2x1ZGVzKCcvJykgPyAnXicgOiAnKD86XnwvKSc7XG5cbiAgbGV0IHNlbGZSZWdFeHA6IFJlZ0V4cDtcbiAgbGV0IGNvbnRlbnRzUmVnRXhwOiBSZWdFeHA7XG4gIHRyeSB7XG4gICAgc2VsZlJlZ0V4cCA9IG5ldyBSZWdFeHAoYCR7cHJlZml4fSR7c291cmNlfSRgLCBDQVNFX0lOU0VOU0lUSVZFX0ZMQUcpO1xuICAgIGNvbnRlbnRzUmVnRXhwID0gbmV3IFJlZ0V4cChgJHtwcmVmaXh9JHtzb3VyY2V9L2AsIENBU0VfSU5TRU5TSVRJVkVfRkxBRyk7XG4gIH0gY2F0Y2ggKGVycm9yXykge1xuICAgIC8vIEFuIG91dC1vZi1vcmRlciBjaGFyYWN0ZXIgY2xhc3MgcmFuZ2UgKGBbei1hXWApIGlzIHRoZSBvbmUgaW52YWxpZCBnbG9iIG9ubHkgdGhlIGVuZ2luZSBjYW4gdGVsbC5cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucGF0aFNldHRpbmdzLmludmFsaWRHbG9iLCB7IGdsb2IsIHJlYXNvbjogZ2V0UmVnRXhwRXJyb3JSZWFzb24oZXJyb3JfKSB9KVxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1hdGNoZXI6IHtcbiAgICAgIGlzTWF0Y2g6IChwYXRoLCBpc0ZvbGRlcikgPT4gY29udGVudHNSZWdFeHAudGVzdChwYXRoKSB8fCAoKGlzRm9sZGVyIHx8ICFpc0ZvbGRlck9ubHkpICYmIHNlbGZSZWdFeHAudGVzdChwYXRoKSlcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGVQbGFpblBhdGhFbnRyeShwYXRoOiBzdHJpbmcpOiBDb21waWxlUmVzdWx0IHtcbiAgY29uc3QgdW5lc2NhcGVkUGF0aCA9IHBhdGgucmVwbGFjZUFsbCgvXFxcXCg/PGNoYXJhY3Rlcj4uKS9ncywgJyQ8Y2hhcmFjdGVyPicpLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKGBeJHtlc2NhcGVSZWdFeHAodW5lc2NhcGVkUGF0aCl9KD86L3wkKWAsIENBU0VfSU5TRU5TSVRJVkVfRkxBRyk7XG4gIHJldHVybiB7XG4gICAgbWF0Y2hlcjoge1xuICAgICAgaXNNYXRjaDogKHBhdGhUb0NoZWNrKSA9PiByZWdFeHAudGVzdChwYXRoVG9DaGVjaylcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGVSZWdFeHBFbnRyeShlbnRyeTogc3RyaW5nLCBzb3VyY2U6IHN0cmluZywgZmxhZ3M6IHN0cmluZyk6IENvbXBpbGVSZXN1bHQge1xuICBsZXQgcmVnRXhwOiBSZWdFeHA7XG4gIHRyeSB7XG4gICAgLy8gQ29tcGlsZWQgd2l0aCB0aGUgZmxhZ3MgYXMgd3JpdHRlbiBmaXJzdCwgc28gYW4gdW5rbm93biBvciByZXBlYXRlZCBmbGFnIGlzIHJlcG9ydGVkIHJhdGhlciB0aGFuIGlnbm9yZWQuXG4gICAgbmV3IFJlZ0V4cChzb3VyY2UsIGZsYWdzKTtcbiAgICBjb25zdCBlZmZlY3RpdmVGbGFncyA9IGZsYWdzLnJlcGxhY2VBbGwoU1RBVEVGVUxfRkxBR1NfUkVHX0VYUCwgJycpO1xuICAgIHJlZ0V4cCA9IG5ldyBSZWdFeHAoc291cmNlLCBlZmZlY3RpdmVGbGFncy5pbmNsdWRlcyhDQVNFX0lOU0VOU0lUSVZFX0ZMQUcpID8gZWZmZWN0aXZlRmxhZ3MgOiBgJHtlZmZlY3RpdmVGbGFnc30ke0NBU0VfSU5TRU5TSVRJVkVfRkxBR31gKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBBIHBhcnRpYWxseSB0eXBlZCByZWdleCBsaXRlcmFsIChgL15JbmJveFxcL2ApIGlzIG5vdCBwYXJzZWFibGUuXG4gICAgLy8gUmVwb3J0IGl0IGluc3RlYWQgb2YgdGhyb3dpbmcgZnJvbSBhIHNldHRpbmdzIHNldHRlciwgd2hpY2ggd291bGQgYnJlYWsgYm90aCB0aGUgc2V0dGluZ3MgVUkgYW5kIHRoZSBzYXZlIHBhdGguXG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnBhdGhTZXR0aW5ncy5pbnZhbGlkUmVndWxhckV4cHJlc3Npb24sIHsgcmVhc29uOiBnZXRSZWdFeHBFcnJvclJlYXNvbihlcnJvciksIHJlZ0V4cDogZW50cnkgfSlcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtYXRjaGVyOiB7XG4gICAgICBpc01hdGNoOiAocGF0aCkgPT4gcmVnRXhwLnRlc3QocGF0aClcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUNoYXJhY3RlckNsYXNzQ2hhcmFjdGVyKGNoYXJhY3Rlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIC9bLVxcXFxcXF1eW10vLnRlc3QoY2hhcmFjdGVyKSA/IGBcXFxcJHtjaGFyYWN0ZXJ9YCA6IGNoYXJhY3Rlcjtcbn1cblxuZnVuY3Rpb24gZ2V0Q2hhcmFjdGVyQ2xhc3NTb3VyY2UoZ2xvYjogc3RyaW5nLCBvcGVuSW5kZXg6IG51bWJlcik6IENoYXJhY3RlckNsYXNzU291cmNlUmVzdWx0IHtcbiAgbGV0IGluZGV4ID0gb3BlbkluZGV4ICsgMTtcbiAgbGV0IGlzTmVnYXRlZCA9IGZhbHNlO1xuICBpZiAoZ2xvYltpbmRleF0gPT09ICchJyB8fCBnbG9iW2luZGV4XSA9PT0gJ14nKSB7XG4gICAgaXNOZWdhdGVkID0gdHJ1ZTtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgbGV0IGNvbnRlbnQgPSAnJztcbiAgaWYgKGdsb2JbaW5kZXhdID09PSAnXScpIHtcbiAgICBjb250ZW50ICs9IFN0cmluZy5yYXdgXFxdYDtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgd2hpbGUgKGluZGV4IDwgZ2xvYi5sZW5ndGgpIHtcbiAgICBjb25zdCBjaGFyYWN0ZXIgPSBnbG9iLmNoYXJBdChpbmRleCk7XG4gICAgaWYgKGNoYXJhY3RlciA9PT0gJ10nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbmRJbmRleDogaW5kZXggKyAxLFxuICAgICAgICBpc1ZhbGlkOiB0cnVlLFxuICAgICAgICBzb3VyY2U6IGBbJHtpc05lZ2F0ZWQgPyAnXi8nIDogJyd9JHtjb250ZW50fV1gXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjaGFyYWN0ZXIgPT09ICdcXFxcJykge1xuICAgICAgaW5kZXgrKztcbiAgICAgIGlmIChpbmRleCA+PSBnbG9iLmxlbmd0aCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gZXNjYXBlQ2hhcmFjdGVyQ2xhc3NDaGFyYWN0ZXIoZ2xvYi5jaGFyQXQoaW5kZXgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCArPSBjaGFyYWN0ZXIgPT09ICctJyA/IGNoYXJhY3RlciA6IGVzY2FwZUNoYXJhY3RlckNsYXNzQ2hhcmFjdGVyKGNoYXJhY3Rlcik7XG4gICAgfVxuICAgIGluZGV4Kys7XG4gIH1cblxuICByZXR1cm4geyBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5wYXRoU2V0dGluZ3MudW5jbG9zZWRDaGFyYWN0ZXJDbGFzcyksIGlzVmFsaWQ6IGZhbHNlIH07XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRNYXRjaGVyKHR5cGU6IFBhdGhTZXR0aW5nVHlwZSk6IFBhdGhNYXRjaGVyIHtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEFsbCBicmFuY2hlcyBjb3ZlcmVkIGJ1dCB2OCByZXBvcnRzIHN3aXRjaCBhcyBwYXJ0aWFsLiAqL1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGNhc2UgUGF0aFNldHRpbmdUeXBlLkV4Y2x1ZGU6IHtcbiAgICAgIHJldHVybiBORVZFUl9NQVRDSEVSO1xuICAgIH1cbiAgICBjYXNlIFBhdGhTZXR0aW5nVHlwZS5JbmNsdWRlOiB7XG4gICAgICByZXR1cm4gQUxXQVlTX01BVENIRVI7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBFeGhhdXN0aXZlIHN3aXRjaCBndWFyZC4gKi9cbiAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xuICAgIH1cbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0R2xvYlNvdXJjZShnbG9iOiBzdHJpbmcpOiBHbG9iU291cmNlUmVzdWx0IHtcbiAgbGV0IHNvdXJjZSA9ICcnO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIHdoaWxlIChpbmRleCA8IGdsb2IubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gZ2xvYi5jaGFyQXQoaW5kZXgpO1xuICAgIHN3aXRjaCAoY2hhcmFjdGVyKSB7XG4gICAgICBjYXNlICc/Jzoge1xuICAgICAgICBzb3VyY2UgKz0gJ1teL10nO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1snOiB7XG4gICAgICAgIGNvbnN0IGNoYXJhY3RlckNsYXNzID0gZ2V0Q2hhcmFjdGVyQ2xhc3NTb3VyY2UoZ2xvYiwgaW5kZXgpO1xuICAgICAgICBpZiAoIWNoYXJhY3RlckNsYXNzLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyQ2xhc3M7XG4gICAgICAgIH1cbiAgICAgICAgc291cmNlICs9IGNoYXJhY3RlckNsYXNzLnNvdXJjZTtcbiAgICAgICAgaW5kZXggPSBjaGFyYWN0ZXJDbGFzcy5lbmRJbmRleDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICcqJzoge1xuICAgICAgICBpZiAoIWdsb2Iuc3RhcnRzV2l0aChHTE9CU1RBUiwgaW5kZXgpKSB7XG4gICAgICAgICAgc291cmNlICs9ICdbXi9dKic7XG4gICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzU2VnbWVudFN0YXJ0ID0gaW5kZXggPT09IDAgfHwgZ2xvYltpbmRleCAtIDFdID09PSAnLyc7XG4gICAgICAgIGlmIChpc1NlZ21lbnRTdGFydCAmJiBnbG9iLnN0YXJ0c1dpdGgoR0xPQlNUQVJfRk9MREVSUywgaW5kZXgpKSB7XG4gICAgICAgICAgLy8gYCoqL2AgaXMgemVybyBvciBtb3JlIHdob2xlIGZvbGRlcnMuXG4gICAgICAgICAgc291cmNlICs9ICcoPzpbXi9dKi8pKic7XG4gICAgICAgICAgaW5kZXggKz0gR0xPQlNUQVJfRk9MREVSUy5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNTZWdtZW50U3RhcnQgJiYgaW5kZXggKyBHTE9CU1RBUi5sZW5ndGggPT09IGdsb2IubGVuZ3RoKSB7XG4gICAgICAgICAgLy8gQSB0cmFpbGluZyBgLyoqYCBpcyBldmVyeXRoaW5nIGluc2lkZSB0aGUgZm9sZGVyLlxuICAgICAgICAgIHNvdXJjZSArPSAnLionO1xuICAgICAgICAgIGluZGV4ICs9IEdMT0JTVEFSLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBbnkgb3RoZXIgYCoqYCBpcyBhbiBvcmRpbmFyeSBgKmAsIGFzIGluIGAuZ2l0aWdub3JlYC5cbiAgICAgICAgICBzb3VyY2UgKz0gJ1teL10qJztcbiAgICAgICAgICBpbmRleCArPSBHTE9CU1RBUi5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdcXFxcJzoge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgICBpZiAoaW5kZXggPj0gZ2xvYi5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4geyBlcnJvcjogdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5wYXRoU2V0dGluZ3MudHJhaWxpbmdFc2NhcGUpLCBpc1ZhbGlkOiBmYWxzZSB9O1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSArPSBlc2NhcGVSZWdFeHAoZ2xvYi5jaGFyQXQoaW5kZXgpKTtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHNvdXJjZSArPSBlc2NhcGVSZWdFeHAoY2hhcmFjdGVyKTtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSwgc291cmNlIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlZ0V4cEVycm9yUmVhc29uKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBSZWdFeHAgY29uc3RydWN0b3Igb25seSBldmVyIHRocm93cyBhIFN5bnRheEVycm9yLiAqL1xuICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAvLyBWOCBwaHJhc2VzIGl0IGBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogLzxzb3VyY2U+LzxmbGFncz46IDxyZWFzb24+YDsgdGhlIGVudHJ5IGlzIGFscmVhZHkgbmFtZWQuXG4gIGNvbnN0IG1hdGNoID0gL15JbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogXFwvLipcXC9bYS16XSo6ICg/PHJlYXNvbj4uKikkL3MuZXhlYyhtZXNzYWdlKTtcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/LlsncmVhc29uJ10gPz8gbWVzc2FnZTtcbn1cblxuZnVuY3Rpb24gaGFzVW5lc2NhcGVkR2xvYkNoYXJhY3RlcihlbnRyeTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbnRyeS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBjaGFyYWN0ZXIgPSBlbnRyeS5jaGFyQXQoaW5kZXgpO1xuICAgIGlmIChjaGFyYWN0ZXIgPT09ICdcXFxcJykge1xuICAgICAgaW5kZXgrKztcbiAgICB9IGVsc2UgaWYgKEdMT0JfQ0hBUkFDVEVSUy5oYXMoY2hhcmFjdGVyKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hdGNoZXJzKHBhdGhzOiBzdHJpbmdbXSwgZGVmYXVsdE1hdGNoZXI6IFBhdGhNYXRjaGVyKTogbnVsbCB8IFBhdGhNYXRjaGVyW10ge1xuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtkZWZhdWx0TWF0Y2hlcl07XG4gIH1cblxuICBjb25zdCBtYXRjaGVyczogUGF0aE1hdGNoZXJbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBjb25zdCB7IG1hdGNoZXIgfSA9IGNvbXBpbGVFbnRyeShwYXRoLCBkZWZhdWx0TWF0Y2hlcik7XG4gICAgaWYgKCFtYXRjaGVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgbWF0Y2hlcnMucHVzaChtYXRjaGVyKTtcbiAgfVxuICByZXR1cm4gbWF0Y2hlcnM7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsbUJBQW1CO0FBRTVCLFNBQVMsU0FBUztBQWtDbEIsTUFBTSx3QkFBd0I7QUFDOUIsTUFBTSx3QkFBd0I7QUFDOUIsTUFBTSx5QkFBeUI7QUFDL0IsTUFBTSxrQkFBa0Isb0JBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUM7QUFDL0MsTUFBTSxXQUFXO0FBQ2pCLE1BQU0sbUJBQW1CO0FBRXpCLE1BQU0saUJBQThCO0FBQUEsRUFDbEMsU0FBUyxNQUFNO0FBQ2pCO0FBRUEsTUFBTSxnQkFBNkI7QUFBQSxFQUNqQyxTQUFTLE1BQU07QUFDakI7QUFFQSxNQUFNLFlBQVk7QUFBQSxFQWNULFlBQTZCLE1BQXVCO0FBQXZCO0FBQ2xDLFNBQUssaUJBQWlCLGtCQUFrQixJQUFJO0FBQzVDLFNBQUssV0FBVyxDQUFDLEtBQUssY0FBYztBQUFBLEVBQ3RDO0FBQUEsRUFIb0M7QUFBQSxFQWJwQyxJQUFXLFFBQWtCO0FBQzNCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVBLElBQVcsTUFBTSxPQUFpQjtBQUNoQyxTQUFLLFNBQVMsTUFBTSxPQUFPLE9BQU87QUFDbEMsU0FBSyxXQUFXLGFBQWEsS0FBSyxRQUFRLEtBQUssY0FBYyxLQUFLLENBQUMsS0FBSyxjQUFjO0FBQUEsRUFDeEY7QUFBQSxFQUVRLFNBQW1CLENBQUM7QUFBQSxFQUNYO0FBQUEsRUFDVDtBQUFB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
@@ -1,5 +1,4 @@
1
1
  /// <reference path="../library-references.d.mts" />
2
- export * as 'plugin-api-schema' from './plugin-api-schema.mjs';
3
2
  export * as 'plugin-api' from './plugin-api.mjs';
4
3
  export * as 'plugin-context' from './plugin-context.mjs';
5
4
  export * as 'plugin-event-source' from './plugin-event-source.mjs';
@@ -3,7 +3,6 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
5
 
6
- import * as plugin_api_schema from "./plugin-api-schema.mjs";
7
6
  import * as plugin_api from "./plugin-api.mjs";
8
7
  import * as plugin_context from "./plugin-context.mjs";
9
8
  import * as plugin_event_source from "./plugin-event-source.mjs";
@@ -15,7 +14,6 @@ import * as settings_migration_api from "./settings-migration-api.mjs";
15
14
  export {
16
15
  plugin,
17
16
  plugin_api as "plugin-api",
18
- plugin_api_schema as "plugin-api-schema",
19
17
  plugin_context as "plugin-context",
20
18
  plugin_event_source as "plugin-event-source",
21
19
  plugin_install_state as "plugin-install-state",
@@ -23,4 +21,4 @@ export {
23
21
  plugin_settings_tab as "plugin-settings-tab",
24
22
  settings_migration_api as "settings-migration-api"
25
23
  };
26
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbi9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdwbHVnaW4tYXBpLXNjaGVtYScgZnJvbSAnLi9wbHVnaW4tYXBpLXNjaGVtYS50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWFwaScgZnJvbSAnLi9wbHVnaW4tYXBpLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY29udGV4dCcgZnJvbSAnLi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWV2ZW50LXNvdXJjZScgZnJvbSAnLi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4taW5zdGFsbC1zdGF0ZScgZnJvbSAnLi9wbHVnaW4taW5zdGFsbC1zdGF0ZS50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWxpZmVjeWNsZS1ldmVudHMnIGZyb20gJy4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy10YWInIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWFwaScgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tYXBpLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWUEsdUJBQXlCO0FBQ3JDLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMseUJBQTJCO0FBQ3ZDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMseUJBQTJCO0FBQ3ZDLFlBQVksWUFBYztBQUMxQixZQUFZQyw0QkFBOEI7IiwKICAibmFtZXMiOiBbInBsdWdpbi1hcGktc2NoZW1hIiwgInBsdWdpbi1hcGkiLCAicGx1Z2luLWNvbnRleHQiLCAicGx1Z2luLWV2ZW50LXNvdXJjZSIsICJwbHVnaW4taW5zdGFsbC1zdGF0ZSIsICJwbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cyIsICJwbHVnaW4tc2V0dGluZ3MtdGFiIiwgInNldHRpbmdzLW1pZ3JhdGlvbi1hcGkiXQp9Cg==
24
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbi9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdwbHVnaW4tYXBpJyBmcm9tICcuL3BsdWdpbi1hcGkudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1jb250ZXh0JyBmcm9tICcuL3BsdWdpbi1jb250ZXh0LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tZXZlbnQtc291cmNlJyBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1pbnN0YWxsLXN0YXRlJyBmcm9tICcuL3BsdWdpbi1pbnN0YWxsLXN0YXRlLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cycgZnJvbSAnLi9wbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cy50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLXRhYicgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtdGFiLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4nIGZyb20gJy4vcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5ncy1taWdyYXRpb24tYXBpJyBmcm9tICcuL3NldHRpbmdzLW1pZ3JhdGlvbi1hcGkudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZQSxnQkFBa0I7QUFDOUIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLHlCQUEyQjtBQUN2QyxZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLHlCQUEyQjtBQUN2QyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsNEJBQThCOyIsCiAgIm5hbWVzIjogWyJwbHVnaW4tYXBpIiwgInBsdWdpbi1jb250ZXh0IiwgInBsdWdpbi1ldmVudC1zb3VyY2UiLCAicGx1Z2luLWluc3RhbGwtc3RhdGUiLCAicGx1Z2luLWxpZmVjeWNsZS1ldmVudHMiLCAicGx1Z2luLXNldHRpbmdzLXRhYiIsICJzZXR0aW5ncy1taWdyYXRpb24tYXBpIl0KfQo=
@@ -49,7 +49,7 @@
49
49
  * Payload validation is opt-in per method through {@link https://standardschema.dev | Standard Schema}, so
50
50
  * zod / valibot / arktype / a hand-written validator all plug in and none of them is a dependency here. It
51
51
  * runs only while the `obsidian-lib:validate-plugin-api-payloads` debug switch is on (off by default, see
52
- * {@link getValidatePluginApiPayloadsDebugSwitch}), so production pays nothing. The `obsidian-dev-utils:PluginApi`
52
+ * {@link getValidatePluginApiPayloadsDebugSwitch}), so production pays nothing. The `obsidian-lib:PluginApi`
53
53
  * debugger controls logging only: turning it on changes no behavior.
54
54
  *
55
55
  * The contract itself — its types and the schema builders — is not Obsidian-specific and lives in
@@ -69,19 +69,19 @@
69
69
  * declared method names are checked with `typeof`, and the payloads are validated per method instead.
70
70
  *
71
71
  * @remarks
72
- * Every plugin bundles its OWN copy of this library (or of the older `obsidian-dev-utils`), so a registry record is a wire format between
72
+ * Every plugin bundles its OWN copy of this library, so a registry record is a wire format between
73
73
  * different library versions and must stay backward-compatible forever. Nothing crossing it may be
74
74
  * `instanceof`-checked — reads are structural, and only plain data objects and plain functions are stored.
75
75
  *
76
76
  * That wire format is also PUBLISHED, as of the `Plugin API protocol` guide: a plugin that does not use
77
77
  * this library reaches an API by reading
78
- * `globalThis.__obsidianDevUtils.pluginApiRegistry.value.records[pluginId]` and applying the selection rule
78
+ * `globalThis.__obsidianLib.pluginApiRegistry.value.records[pluginId]` and applying the selection rule
79
79
  * {@link selectRecord} implements. So {@link PublishedPluginApiRecord}'s field names, the state key, and
80
80
  * "highest live record satisfying the range wins" are a documented contract with an audience outside this
81
81
  * repository, and the guide has to be updated in the same change as any of them. Only `pluginApiRegistry`
82
82
  * is public within the shared-state bag; the rest of it stays internal.
83
83
  */
84
- import type { ApiContract, ApiMethodContract, ApiMethodName, ApiMethods, TypedApiContract } from '@mnaoumov/typescript-lib/api-contract';
84
+ import type { ApiContract } from '@mnaoumov/typescript-lib/api-contract';
85
85
  import type { AsyncEventSource } from '@mnaoumov/typescript-lib/async-events';
86
86
  import type { DebugSwitch } from '@mnaoumov/typescript-lib/debug-switches';
87
87
  import type { StandardSchemaV1 } from '@standard-schema/spec';
@@ -161,13 +161,6 @@ export interface FindPluginApiParams<TApi extends object = object> {
161
161
  */
162
162
  readonly pluginId: string;
163
163
  }
164
- /**
165
- * The contract a provider declares for its API.
166
- *
167
- * @typeParam TApi - The API the contract describes. `object`, the default, means "not typed".
168
- * @deprecated Use `ApiContract` from `@mnaoumov/typescript-lib/api-contract`.
169
- */
170
- export type PluginApiContract<TApi extends object = object> = ApiContract<TApi>;
171
164
  /**
172
165
  * One API a plugin exposes: the object, the contract version it satisfies, and optionally the contract
173
166
  * itself. This is {@link PublishPluginApiParams} without the publishing plugin, so a plugin can DECLARE what
@@ -194,28 +187,6 @@ export interface PluginApiDeclaration<TApi extends object = object> {
194
187
  */
195
188
  readonly contract?: ApiContract<TApi>;
196
189
  }
197
- /**
198
- * The payload schemas for a single API method.
199
- *
200
- * @typeParam TParameters - The method's parameters, as a tuple, which the input schema must produce.
201
- * @typeParam TReturnValue - The method's return value, awaited, which the output schema must produce.
202
- * @deprecated Use `ApiMethodContract` from `@mnaoumov/typescript-lib/api-contract`.
203
- */
204
- export type PluginApiMethodContract<TParameters = unknown, TReturnValue = unknown> = ApiMethodContract<TParameters, TReturnValue>;
205
- /**
206
- * The names of the function members of an API.
207
- *
208
- * @typeParam TApi - The API.
209
- * @deprecated Use `ApiMethodName` from `@mnaoumov/typescript-lib/api-contract`.
210
- */
211
- export type PluginApiMethodName<TApi extends object> = ApiMethodName<TApi>;
212
- /**
213
- * The function members of an API.
214
- *
215
- * @typeParam TApi - The API.
216
- * @deprecated Use `ApiMethods` from `@mnaoumov/typescript-lib/api-contract`.
217
- */
218
- export type PluginApiMethods<TApi extends object> = ApiMethods<TApi>;
219
190
  /**
220
191
  * A live reference to another plugin's API.
221
192
  *
@@ -326,13 +297,6 @@ export interface PublishPluginApiParams<TApi extends object> extends PluginApiDe
326
297
  */
327
298
  readonly plugin: Plugin;
328
299
  }
329
- /**
330
- * The contract of a named API, with both schemas required on every entry.
331
- *
332
- * @typeParam TApi - The API the contract describes.
333
- * @deprecated Use `TypedApiContract` from `@mnaoumov/typescript-lib/api-contract`.
334
- */
335
- export type TypedPluginApiContract<TApi extends object> = TypedApiContract<TApi>;
336
300
  /**
337
301
  * Parameters for {@link watchPluginApi}.
338
302
  *
@@ -460,7 +424,7 @@ export declare function findPluginApi<TApi extends object>(params: FindPluginApi
460
424
  * Its id is `obsidian-lib:validate-plugin-api-payloads` and it is off by default. While it is on, every call
461
425
  * through a handle from {@link watchPluginApi} or {@link findPluginApi} checks its arguments and its return value
462
426
  * against the method's declared schemas and throws a {@link PluginApiValidationError} on a mismatch. The
463
- * `obsidian-dev-utils:PluginApi` debugger does not affect it: that only logs.
427
+ * `obsidian-lib:PluginApi` debugger does not affect it: that only logs.
464
428
  *
465
429
  * The switch is registered on every read, which is idempotent, and whenever an API is published, watched or looked
466
430
  * up, so a debug-settings UI lists it as soon as any plugin API is in play.