@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
@@ -113,11 +113,11 @@ class ReleaseNotesComponent extends ComponentEx {
113
113
  await alert({
114
114
  app: this.app,
115
115
  message,
116
- title: createFragmentWithCodeBlocks(t(($) => $.obsidianDevUtils.releaseNotes.title, { pluginName: asCodeBlock(this.pluginName) }))
116
+ title: createFragmentWithCodeBlocks(t(($) => $.obsidianLib.releaseNotes.title, { pluginName: asCodeBlock(this.pluginName) }))
117
117
  });
118
118
  }
119
119
  }
120
120
  export {
121
121
  ReleaseNotesComponent
122
122
  };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlbGVhc2Utbm90ZXMtY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21wb25lbnQgdGhhdCBzaG93cyBhIHBsdWdpbidzIHJlbGVhc2Ugbm90ZXMgb25jZSwgd2hlbiB0aGUgd29ya3NwYWNlIGxheW91dCBpcyByZWFkeS5cbiAqXG4gKiBTZXZlcmFsIHBsdWdpbnMgaGFuZC1yb2xsZWQgdGhpcyBwb3B1cCwgYW5kIGV2ZXJ5IGNvcHkgaGFkIHRoZSBzYW1lIGRlZmVjdDogaXQgd2FzIHRpdGxlZCBvbmx5XG4gKiBgUmVsZWFzZSBub3Rlc2AsIG92ZXIgaGVhZGluZ3MgdGhhdCBhcmUgYmFyZSB2ZXJzaW9uIG51bWJlcnMsIHNvIG5vdGhpbmcgaW4gaXQgbmFtZWQgdGhlIHBsdWdpbi4gQSB1c2VyXG4gKiB3aXRoIGRvemVucyBvZiBwbHVnaW5zIGluc3RhbGxlZCBjb3VsZCBub3QgdGVsbCB3aG9zZSBwb3B1cCBpdCB3YXMuIFRoaXMgY29tcG9uZW50IGFsd2F5cyBuYW1lcyB0aGVcbiAqIHBsdWdpbiBpbiB0aGUgdGl0bGUuXG4gKlxuICogSXQgYWxzbyBvd25zIHRoZSB3YWl0IGV2ZXJ5IGNvcHkgbmVlZGVkLiBUaGUgbm90ZXMgYWxyZWFkeSBzaG93biBhcmUgc3RvcmVkIGluIHRoZSBob3N0J3Mgc2V0dGluZ3MsIGFuZFxuICogdGhlIGhvc3QncyBzZXR0aW5ncyBjb21wb25lbnQgaXMgYSBTSUJMSU5HIHdob3NlIG93biBhc3luYyBsb2FkIGlzIHN0aWxsIGluIGZsaWdodCB3aGVuIHRoZSBwbHVnaW4gaXNcbiAqIGVuYWJsZWQgYWZ0ZXIgdGhlIGxheW91dCBpcyByZWFkeS4gUmVhZGluZyB0aGUgbGlzdCB0aGVuIHNlZXMgdGhlIGRlZmF1bHQgZW1wdHkgb25lIGFuZCBzaG93cyBldmVyeSBub3RlXG4gKiBhZ2Fpbiwgb24gZXZlcnkgc3RhcnQuIFNlZSB7QGxpbmsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlLndoZW5Mb2FkZWRGcm9tRmlsZX0uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuXG5pbXBvcnQge1xuICBhc0NvZGVCbG9jayxcbiAgY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrc1xufSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBhbGVydCB9IGZyb20gJy4uL21vZGFscy9hbGVydC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcbmltcG9ydCB7IENhbGxiYWNrTGF5b3V0UmVhZHlDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC1yZWFkeS1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFJlbGVhc2Ugbm90ZXMsIGtleWVkIGJ5IHRoZSBzZW1hbnRpYyB2ZXJzaW9uIHRoYXQgaW50cm9kdWNlZCBlYWNoIG9uZS5cbiAqL1xuZXhwb3J0IHR5cGUgUmVsZWFzZU5vdGVzID0gUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgRG9jdW1lbnRGcmFnbWVudD4+O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgUmVsZWFzZU5vdGVzQ29tcG9uZW50fSBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlTm90ZXNDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZlcnNpb25zIHdob3NlIG5vdGVzIHRoZSB1c2VyIGhhcyBhbHJlYWR5IHNlZW4uXG4gICAqXG4gICAqIFN0b3JhZ2UgYmVsb25ncyB0byB0aGUgaG9zdCBwbHVnaW4sIHR5cGljYWxseSBhcyBvbmUgb2YgaXRzIHNldHRpbmdzLCBiZWNhdXNlIHRoaXMgY29tcG9uZW50IGhhcyBub1xuICAgKiBgZGF0YS5qc29uYCBvZiBpdHMgb3duIGFuZCB0aGUgbGlzdCBoYXMgdG8gb3V0bGl2ZSBhIHJlbG9hZC5cbiAgICpcbiAgICogT25seSBldmVyIGNhbGxlZCBvbmNlIHtAbGluayBwbHVnaW5TZXR0aW5nc0NvbXBvbmVudH0gcmVwb3J0cyBpdHMgc2V0dGluZ3MgbG9hZGVkLCBzbyBhbiBpbXBsZW1lbnRhdGlvblxuICAgKiB0aGF0IHJlYWRzIGEgc2V0dGluZyByZWFkcyB0aGUgc3RvcmVkIHZhbHVlIHJhdGhlciB0aGFuIGl0cyBkZWZhdWx0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmVyc2lvbnMgYWxyZWFkeSBzaG93bi5cbiAgICovXG4gIHJlYWRvbmx5IGdldFNob3duUmVsZWFzZU5vdGVWZXJzaW9uczogKCkgPT4gcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBsdWdpbiwgc2hvd24gaW4gdGhlIHBvcHVwIHRpdGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGluZ3MgY29tcG9uZW50IGhvbGRpbmcgd2hhdGV2ZXIge0BsaW5rIGdldFNob3duUmVsZWFzZU5vdGVWZXJzaW9uc30gcmVhZHMuXG4gICAqXG4gICAqIFRha2VuIGFzIGEgd2hvbGUgY29tcG9uZW50IHJhdGhlciB0aGFuIGFzIGEgYmFyZSBcInJlYWR5XCIgZmxhZywgc28gdGhlIGhvc3QgY2Fubm90IGZvcmdldCB0byB3aXJlIHRoZVxuICAgKiB3YWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQ6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+O1xuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIHJlbGVhc2Ugbm90ZXMuXG4gICAqXG4gICAqIENhbGxlZCBhdCBsYXlvdXQgcmVhZHkgcmF0aGVyIHRoYW4gYXQgY29uc3RydWN0aW9uLCBzbyB0aGUgZnJhZ21lbnRzIGFyZSBidWlsdCBvbmx5IHdoZW4gdGhleSBtYXkgYmVcbiAgICogc2hvd24sIGFuZCBhIGxvY2FsaXplZCBzdHJpbmcgaXMgcmVhZCBhZnRlciB0aGUgaG9zdCdzIHRyYW5zbGF0aW9ucyBhcmUgc2V0IHVwLlxuICAgKlxuICAgKiBFdmVyeSBrZXkgbXVzdCBiZSBhIHZhbGlkIHNlbWFudGljIHZlcnNpb24uIFRoZSBub3RlcyBhcmUgc2hvd24gaW4gYXNjZW5kaW5nIHZlcnNpb24gb3JkZXIsIHdoYXRldmVyXG4gICAqIG9yZGVyIHRoZSBrZXlzIHdlcmUgd3JpdHRlbiBpbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlbGVhc2Ugbm90ZXMuXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlTm90ZXNQcm92aWRlcjogKCkgPT4gUmVsZWFzZU5vdGVzO1xuXG4gIC8qKlxuICAgKiBSZWNvcmRzIHRoZSB2ZXJzaW9ucyB3aG9zZSBub3RlcyB0aGUgdXNlciBoYXMgbm93IHNlZW4uXG4gICAqXG4gICAqIENhbGxlZCBiZWZvcmUgdGhlIHBvcHVwIGlzIHNob3duLCB3aXRoIHRoZSBmdWxsIGxpc3Q6IHRoZSB2ZXJzaW9ucyBhbHJlYWR5IHNob3duIGZvbGxvd2VkIGJ5IHRoZSBvbmVzXG4gICAqIGFib3V0IHRvIGJlLlxuICAgKlxuICAgKiBAcGFyYW0gdmVyc2lvbnMgLSBUaGUgdmVyc2lvbnMgc2hvd24uXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgbGlzdCBpcyBwZXJzaXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBzZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnM6ICh2ZXJzaW9uczogcmVhZG9ubHkgc3RyaW5nW10pID0+IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGUgcmVsZWFzZSBub3RlcyBtYXkgYmUgc2hvd24gbm93LlxuICAgKlxuICAgKiBXaGVuIGl0IHJldHVybnMgYGZhbHNlYCwgbm90aGluZyBpcyBzaG93biBhbmQgbm90aGluZyBpcyByZWNvcmRlZCwgc28gdGhlIG5vdGVzIGFyZSBzaG93biBhdCBhIGxhdGVyXG4gICAqIHN0YXJ0IG9uY2UgaXQgcmV0dXJucyBgdHJ1ZWAuIFVzZSBpdCB3aGVuIHRoZSBub3RlcyBvbmx5IG1ha2Ugc2Vuc2Ugd2hpbGUgc29tZSBmZWF0dXJlIGlzIG9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgbm90ZXMgbWF5IGJlIHNob3duLlxuICAgKiBAZGVmYXVsdCBBbHdheXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1JlbGVhc2VOb3Rlcz86ICgpID0+IFByb21pc2FibGU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogU2hvd3MgYSBwbHVnaW4ncyByZWxlYXNlIG5vdGVzIHRoYXQgdGhlIHVzZXIgaGFzIG5vdCBzZWVuIHlldCwgb25jZSB0aGUgd29ya3NwYWNlIGxheW91dCBpcyByZWFkeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2VOb3Rlc0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBsdWdpbiwgc2hvd24gaW4gdGhlIHBvcHVwIHRpdGxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNldHRpbmdzIGNvbXBvbmVudCB3aG9zZSBsb2FkIGlzIGF3YWl0ZWQgYmVmb3JlIHRoZSBzaG93biB2ZXJzaW9ucyBhcmUgcmVhZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW5TZXR0aW5nc0NvbXBvbmVudDogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnM6ICgpID0+IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbGVhc2VOb3Rlc1Byb3ZpZGVyOiAoKSA9PiBSZWxlYXNlTm90ZXM7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0U2hvd25SZWxlYXNlTm90ZVZlcnNpb25zOiAodmVyc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNob3VsZFNob3dSZWxlYXNlTm90ZXM6ICgpID0+IFByb21pc2FibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIFJlbGVhc2VOb3Rlc0NvbXBvbmVudH0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgY29uc3RydWN0b3IgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFJlbGVhc2VOb3Rlc0NvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5nZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnMgPSBwYXJhbXMuZ2V0U2hvd25SZWxlYXNlTm90ZVZlcnNpb25zO1xuICAgIHRoaXMucGx1Z2luTmFtZSA9IHBhcmFtcy5wbHVnaW5OYW1lO1xuICAgIHRoaXMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQgPSBwYXJhbXMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQ7XG4gICAgdGhpcy5yZWxlYXNlTm90ZXNQcm92aWRlciA9IHBhcmFtcy5yZWxlYXNlTm90ZXNQcm92aWRlcjtcbiAgICB0aGlzLnNldFNob3duUmVsZWFzZU5vdGVWZXJzaW9ucyA9IHBhcmFtcy5zZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnM7XG4gICAgdGhpcy5zaG91bGRTaG93UmVsZWFzZU5vdGVzID0gcGFyYW1zLnNob3VsZFNob3dSZWxlYXNlTm90ZXMgPz8gKCgpOiBib29sZWFuID0+IHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb21wb25lbnQsIHNob3dpbmcgdGhlIHVuc2VlbiByZWxlYXNlIG5vdGVzIG9uY2UgdGhlIGxheW91dCBpcyByZWFkeSBBTkQgdGhlIGhvc3QncyBzZXR0aW5nc1xuICAgKiBoYXZlIGJlZW4gcmVhZCBmcm9tIGRpc2suXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2hpbGQoXG4gICAgICBuZXcgQ2FsbGJhY2tMYXlvdXRSZWFkeUNvbXBvbmVudCh0aGlzLmFwcCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50LndoZW5Mb2FkZWRGcm9tRmlsZSgpO1xuICAgICAgICBpZiAodGhpcy5pc1VubG9hZGVkKCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLnNob3dVbnNlZW5SZWxlYXNlTm90ZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcmVsZWFzZSBub3RlcyB0aGUgdXNlciBoYXMgbm90IHNlZW4geWV0LCBhbmQgcmVjb3JkcyB0aGVtIGFzIHNlZW4uXG4gICAqXG4gICAqIERvZXMgbm90aGluZyB3aGVuIHtAbGluayBSZWxlYXNlTm90ZXNDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcy5zaG91bGRTaG93UmVsZWFzZU5vdGVzfSBkZWNsaW5lcywgb3Igd2hlblxuICAgKiBldmVyeSBub3RlIGhhcyBiZWVuIHNob3duIGFscmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgcG9wdXAgaXMgY2xvc2VkLCBvciBhdCBvbmNlIHdoZW4gbm90aGluZyBpcyBzaG93bi5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBzaG93VW5zZWVuUmVsZWFzZU5vdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghYXdhaXQgdGhpcy5zaG91bGRTaG93UmVsZWFzZU5vdGVzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaG93blZlcnNpb25zID0gdGhpcy5nZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnMoKTtcbiAgICBjb25zdCBzaG93blZlcnNpb25TZXQgPSBuZXcgU2V0KHNob3duVmVyc2lvbnMpO1xuICAgIGNvbnN0IHVuc2VlblJlbGVhc2VOb3RlcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMucmVsZWFzZU5vdGVzUHJvdmlkZXIoKSlcbiAgICAgIC5maWx0ZXIoKFt2ZXJzaW9uXSkgPT4gIXNob3duVmVyc2lvblNldC5oYXModmVyc2lvbikpXG4gICAgICAuc29ydCgoW3ZlcnNpb24xXSwgW3ZlcnNpb24yXSkgPT4gY29tcGFyZVZlcnNpb25zKHZlcnNpb24xLCB2ZXJzaW9uMikpO1xuXG4gICAgaWYgKHVuc2VlblJlbGVhc2VOb3Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlRnJhZ21lbnQoKTtcbiAgICBmb3IgKGNvbnN0IFt2ZXJzaW9uLCByZWxlYXNlTm90ZV0gb2YgdW5zZWVuUmVsZWFzZU5vdGVzKSB7XG4gICAgICBtZXNzYWdlLmNyZWF0ZUVsKCdoMycsIHsgdGV4dDogdmVyc2lvbiB9KTtcbiAgICAgIG1lc3NhZ2UuYXBwZW5kKHJlbGVhc2VOb3RlKTtcbiAgICB9XG5cbiAgICAvLyBSZWNvcmRlZCBiZWZvcmUgdGhlIHBvcHVwIGlzIHNob3duLCBzbyBhIHVzZXIgd2hvIHJlbG9hZHMgd2l0aG91dCBjbG9zaW5nIGl0IGlzIG5vdCBzaG93biBpdCBhZ2Fpbi5cbiAgICBhd2FpdCB0aGlzLnNldFNob3duUmVsZWFzZU5vdGVWZXJzaW9ucyhbLi4uc2hvd25WZXJzaW9ucywgLi4udW5zZWVuUmVsZWFzZU5vdGVzLm1hcCgoW3ZlcnNpb25dKSA9PiB2ZXJzaW9uKV0pO1xuXG4gICAgYXdhaXQgYWxlcnQoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZTogY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrcyh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMucmVsZWFzZU5vdGVzLnRpdGxlLCB7IHBsdWdpbk5hbWU6IGFzQ29kZUJsb2NrKHRoaXMucGx1Z2luTmFtZSkgfSkpXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsU0FBUyx1QkFBdUI7QUFJaEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLFNBQVM7QUFDbEIsU0FBUyxhQUFhO0FBQ3RCLFNBQVMsbUJBQW1CO0FBQzVCLFNBQVMsb0NBQW9DO0FBaUZ0QyxNQUFNLDhCQUE4QixZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBLEVBRUY7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVixZQUFZLFFBQWdEO0FBQ2pFLFVBQU07QUFDTixTQUFLLE1BQU0sT0FBTztBQUNsQixTQUFLLDhCQUE4QixPQUFPO0FBQzFDLFNBQUssYUFBYSxPQUFPO0FBQ3pCLFNBQUssMEJBQTBCLE9BQU87QUFDdEMsU0FBSyx1QkFBdUIsT0FBTztBQUNuQyxTQUFLLDhCQUE4QixPQUFPO0FBQzFDLFNBQUsseUJBQXlCLE9BQU8sMkJBQTJCLE1BQWU7QUFBQSxFQUNqRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNZ0IsU0FBZTtBQUM3QixTQUFLO0FBQUEsTUFDSCxJQUFJLDZCQUE2QixLQUFLLEtBQUssWUFBWTtBQUNyRCxjQUFNLEtBQUssd0JBQXdCLG1CQUFtQjtBQUN0RCxZQUFJLEtBQUssV0FBVyxHQUFHO0FBQ3JCO0FBQUEsUUFDRjtBQUVBLGNBQU0sS0FBSyx1QkFBdUI7QUFBQSxNQUNwQyxDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVQSxNQUFnQix5QkFBd0M7QUFDdEQsUUFBSSxDQUFDLE1BQU0sS0FBSyx1QkFBdUIsR0FBRztBQUN4QztBQUFBLElBQ0Y7QUFFQSxVQUFNLGdCQUFnQixLQUFLLDRCQUE0QjtBQUN2RCxVQUFNLGtCQUFrQixJQUFJLElBQUksYUFBYTtBQUM3QyxVQUFNLHFCQUFxQixPQUFPLFFBQVEsS0FBSyxxQkFBcUIsQ0FBQyxFQUNsRSxPQUFPLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsRUFDbkQsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxNQUFNLGdCQUFnQixVQUFVLFFBQVEsQ0FBQztBQUV2RSxRQUFJLG1CQUFtQixXQUFXLEdBQUc7QUFDbkM7QUFBQSxJQUNGO0FBRUEsVUFBTSxVQUFVLGVBQWU7QUFDL0IsZUFBVyxDQUFDLFNBQVMsV0FBVyxLQUFLLG9CQUFvQjtBQUN2RCxjQUFRLFNBQVMsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLGNBQVEsT0FBTyxXQUFXO0FBQUEsSUFDNUI7QUFHQSxVQUFNLEtBQUssNEJBQTRCLENBQUMsR0FBRyxlQUFlLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxDQUFDLE9BQU8sTUFBTSxPQUFPLENBQUMsQ0FBQztBQUU1RyxVQUFNLE1BQU07QUFBQSxNQUNWLEtBQUssS0FBSztBQUFBLE1BQ1Y7QUFBQSxNQUNBLE9BQU8sNkJBQTZCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLGFBQWEsT0FBTyxFQUFFLFlBQVksWUFBWSxLQUFLLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFBQSxJQUNuSSxDQUFDO0FBQUEsRUFDSDtBQUNGOyIsIm5hbWVzIjpbXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlbGVhc2Utbm90ZXMtY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb21wb25lbnQgdGhhdCBzaG93cyBhIHBsdWdpbidzIHJlbGVhc2Ugbm90ZXMgb25jZSwgd2hlbiB0aGUgd29ya3NwYWNlIGxheW91dCBpcyByZWFkeS5cbiAqXG4gKiBTZXZlcmFsIHBsdWdpbnMgaGFuZC1yb2xsZWQgdGhpcyBwb3B1cCwgYW5kIGV2ZXJ5IGNvcHkgaGFkIHRoZSBzYW1lIGRlZmVjdDogaXQgd2FzIHRpdGxlZCBvbmx5XG4gKiBgUmVsZWFzZSBub3Rlc2AsIG92ZXIgaGVhZGluZ3MgdGhhdCBhcmUgYmFyZSB2ZXJzaW9uIG51bWJlcnMsIHNvIG5vdGhpbmcgaW4gaXQgbmFtZWQgdGhlIHBsdWdpbi4gQSB1c2VyXG4gKiB3aXRoIGRvemVucyBvZiBwbHVnaW5zIGluc3RhbGxlZCBjb3VsZCBub3QgdGVsbCB3aG9zZSBwb3B1cCBpdCB3YXMuIFRoaXMgY29tcG9uZW50IGFsd2F5cyBuYW1lcyB0aGVcbiAqIHBsdWdpbiBpbiB0aGUgdGl0bGUuXG4gKlxuICogSXQgYWxzbyBvd25zIHRoZSB3YWl0IGV2ZXJ5IGNvcHkgbmVlZGVkLiBUaGUgbm90ZXMgYWxyZWFkeSBzaG93biBhcmUgc3RvcmVkIGluIHRoZSBob3N0J3Mgc2V0dGluZ3MsIGFuZFxuICogdGhlIGhvc3QncyBzZXR0aW5ncyBjb21wb25lbnQgaXMgYSBTSUJMSU5HIHdob3NlIG93biBhc3luYyBsb2FkIGlzIHN0aWxsIGluIGZsaWdodCB3aGVuIHRoZSBwbHVnaW4gaXNcbiAqIGVuYWJsZWQgYWZ0ZXIgdGhlIGxheW91dCBpcyByZWFkeS4gUmVhZGluZyB0aGUgbGlzdCB0aGVuIHNlZXMgdGhlIGRlZmF1bHQgZW1wdHkgb25lIGFuZCBzaG93cyBldmVyeSBub3RlXG4gKiBhZ2Fpbiwgb24gZXZlcnkgc3RhcnQuIFNlZSB7QGxpbmsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlLndoZW5Mb2FkZWRGcm9tRmlsZX0uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuXG5pbXBvcnQge1xuICBhc0NvZGVCbG9jayxcbiAgY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrc1xufSBmcm9tICcuLi9odG1sLWVsZW1lbnQudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBhbGVydCB9IGZyb20gJy4uL21vZGFscy9hbGVydC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcbmltcG9ydCB7IENhbGxiYWNrTGF5b3V0UmVhZHlDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC1yZWFkeS1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFJlbGVhc2Ugbm90ZXMsIGtleWVkIGJ5IHRoZSBzZW1hbnRpYyB2ZXJzaW9uIHRoYXQgaW50cm9kdWNlZCBlYWNoIG9uZS5cbiAqL1xuZXhwb3J0IHR5cGUgUmVsZWFzZU5vdGVzID0gUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgRG9jdW1lbnRGcmFnbWVudD4+O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgUmVsZWFzZU5vdGVzQ29tcG9uZW50fSBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlTm90ZXNDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZlcnNpb25zIHdob3NlIG5vdGVzIHRoZSB1c2VyIGhhcyBhbHJlYWR5IHNlZW4uXG4gICAqXG4gICAqIFN0b3JhZ2UgYmVsb25ncyB0byB0aGUgaG9zdCBwbHVnaW4sIHR5cGljYWxseSBhcyBvbmUgb2YgaXRzIHNldHRpbmdzLCBiZWNhdXNlIHRoaXMgY29tcG9uZW50IGhhcyBub1xuICAgKiBgZGF0YS5qc29uYCBvZiBpdHMgb3duIGFuZCB0aGUgbGlzdCBoYXMgdG8gb3V0bGl2ZSBhIHJlbG9hZC5cbiAgICpcbiAgICogT25seSBldmVyIGNhbGxlZCBvbmNlIHtAbGluayBwbHVnaW5TZXR0aW5nc0NvbXBvbmVudH0gcmVwb3J0cyBpdHMgc2V0dGluZ3MgbG9hZGVkLCBzbyBhbiBpbXBsZW1lbnRhdGlvblxuICAgKiB0aGF0IHJlYWRzIGEgc2V0dGluZyByZWFkcyB0aGUgc3RvcmVkIHZhbHVlIHJhdGhlciB0aGFuIGl0cyBkZWZhdWx0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmVyc2lvbnMgYWxyZWFkeSBzaG93bi5cbiAgICovXG4gIHJlYWRvbmx5IGdldFNob3duUmVsZWFzZU5vdGVWZXJzaW9uczogKCkgPT4gcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBsdWdpbiwgc2hvd24gaW4gdGhlIHBvcHVwIHRpdGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGluZ3MgY29tcG9uZW50IGhvbGRpbmcgd2hhdGV2ZXIge0BsaW5rIGdldFNob3duUmVsZWFzZU5vdGVWZXJzaW9uc30gcmVhZHMuXG4gICAqXG4gICAqIFRha2VuIGFzIGEgd2hvbGUgY29tcG9uZW50IHJhdGhlciB0aGFuIGFzIGEgYmFyZSBcInJlYWR5XCIgZmxhZywgc28gdGhlIGhvc3QgY2Fubm90IGZvcmdldCB0byB3aXJlIHRoZVxuICAgKiB3YWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQ6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+O1xuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIHJlbGVhc2Ugbm90ZXMuXG4gICAqXG4gICAqIENhbGxlZCBhdCBsYXlvdXQgcmVhZHkgcmF0aGVyIHRoYW4gYXQgY29uc3RydWN0aW9uLCBzbyB0aGUgZnJhZ21lbnRzIGFyZSBidWlsdCBvbmx5IHdoZW4gdGhleSBtYXkgYmVcbiAgICogc2hvd24sIGFuZCBhIGxvY2FsaXplZCBzdHJpbmcgaXMgcmVhZCBhZnRlciB0aGUgaG9zdCdzIHRyYW5zbGF0aW9ucyBhcmUgc2V0IHVwLlxuICAgKlxuICAgKiBFdmVyeSBrZXkgbXVzdCBiZSBhIHZhbGlkIHNlbWFudGljIHZlcnNpb24uIFRoZSBub3RlcyBhcmUgc2hvd24gaW4gYXNjZW5kaW5nIHZlcnNpb24gb3JkZXIsIHdoYXRldmVyXG4gICAqIG9yZGVyIHRoZSBrZXlzIHdlcmUgd3JpdHRlbiBpbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlbGVhc2Ugbm90ZXMuXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlTm90ZXNQcm92aWRlcjogKCkgPT4gUmVsZWFzZU5vdGVzO1xuXG4gIC8qKlxuICAgKiBSZWNvcmRzIHRoZSB2ZXJzaW9ucyB3aG9zZSBub3RlcyB0aGUgdXNlciBoYXMgbm93IHNlZW4uXG4gICAqXG4gICAqIENhbGxlZCBiZWZvcmUgdGhlIHBvcHVwIGlzIHNob3duLCB3aXRoIHRoZSBmdWxsIGxpc3Q6IHRoZSB2ZXJzaW9ucyBhbHJlYWR5IHNob3duIGZvbGxvd2VkIGJ5IHRoZSBvbmVzXG4gICAqIGFib3V0IHRvIGJlLlxuICAgKlxuICAgKiBAcGFyYW0gdmVyc2lvbnMgLSBUaGUgdmVyc2lvbnMgc2hvd24uXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgbGlzdCBpcyBwZXJzaXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBzZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnM6ICh2ZXJzaW9uczogcmVhZG9ubHkgc3RyaW5nW10pID0+IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGUgcmVsZWFzZSBub3RlcyBtYXkgYmUgc2hvd24gbm93LlxuICAgKlxuICAgKiBXaGVuIGl0IHJldHVybnMgYGZhbHNlYCwgbm90aGluZyBpcyBzaG93biBhbmQgbm90aGluZyBpcyByZWNvcmRlZCwgc28gdGhlIG5vdGVzIGFyZSBzaG93biBhdCBhIGxhdGVyXG4gICAqIHN0YXJ0IG9uY2UgaXQgcmV0dXJucyBgdHJ1ZWAuIFVzZSBpdCB3aGVuIHRoZSBub3RlcyBvbmx5IG1ha2Ugc2Vuc2Ugd2hpbGUgc29tZSBmZWF0dXJlIGlzIG9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgbm90ZXMgbWF5IGJlIHNob3duLlxuICAgKiBAZGVmYXVsdCBBbHdheXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1JlbGVhc2VOb3Rlcz86ICgpID0+IFByb21pc2FibGU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogU2hvd3MgYSBwbHVnaW4ncyByZWxlYXNlIG5vdGVzIHRoYXQgdGhlIHVzZXIgaGFzIG5vdCBzZWVuIHlldCwgb25jZSB0aGUgd29ya3NwYWNlIGxheW91dCBpcyByZWFkeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2VOb3Rlc0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBsdWdpbiwgc2hvd24gaW4gdGhlIHBvcHVwIHRpdGxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNldHRpbmdzIGNvbXBvbmVudCB3aG9zZSBsb2FkIGlzIGF3YWl0ZWQgYmVmb3JlIHRoZSBzaG93biB2ZXJzaW9ucyBhcmUgcmVhZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBwbHVnaW5TZXR0aW5nc0NvbXBvbmVudDogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnM6ICgpID0+IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbGVhc2VOb3Rlc1Byb3ZpZGVyOiAoKSA9PiBSZWxlYXNlTm90ZXM7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0U2hvd25SZWxlYXNlTm90ZVZlcnNpb25zOiAodmVyc2lvbnM6IHJlYWRvbmx5IHN0cmluZ1tdKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNob3VsZFNob3dSZWxlYXNlTm90ZXM6ICgpID0+IFByb21pc2FibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIFJlbGVhc2VOb3Rlc0NvbXBvbmVudH0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgY29uc3RydWN0b3IgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFJlbGVhc2VOb3Rlc0NvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5nZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnMgPSBwYXJhbXMuZ2V0U2hvd25SZWxlYXNlTm90ZVZlcnNpb25zO1xuICAgIHRoaXMucGx1Z2luTmFtZSA9IHBhcmFtcy5wbHVnaW5OYW1lO1xuICAgIHRoaXMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQgPSBwYXJhbXMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQ7XG4gICAgdGhpcy5yZWxlYXNlTm90ZXNQcm92aWRlciA9IHBhcmFtcy5yZWxlYXNlTm90ZXNQcm92aWRlcjtcbiAgICB0aGlzLnNldFNob3duUmVsZWFzZU5vdGVWZXJzaW9ucyA9IHBhcmFtcy5zZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnM7XG4gICAgdGhpcy5zaG91bGRTaG93UmVsZWFzZU5vdGVzID0gcGFyYW1zLnNob3VsZFNob3dSZWxlYXNlTm90ZXMgPz8gKCgpOiBib29sZWFuID0+IHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb21wb25lbnQsIHNob3dpbmcgdGhlIHVuc2VlbiByZWxlYXNlIG5vdGVzIG9uY2UgdGhlIGxheW91dCBpcyByZWFkeSBBTkQgdGhlIGhvc3QncyBzZXR0aW5nc1xuICAgKiBoYXZlIGJlZW4gcmVhZCBmcm9tIGRpc2suXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2hpbGQoXG4gICAgICBuZXcgQ2FsbGJhY2tMYXlvdXRSZWFkeUNvbXBvbmVudCh0aGlzLmFwcCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50LndoZW5Mb2FkZWRGcm9tRmlsZSgpO1xuICAgICAgICBpZiAodGhpcy5pc1VubG9hZGVkKCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLnNob3dVbnNlZW5SZWxlYXNlTm90ZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcmVsZWFzZSBub3RlcyB0aGUgdXNlciBoYXMgbm90IHNlZW4geWV0LCBhbmQgcmVjb3JkcyB0aGVtIGFzIHNlZW4uXG4gICAqXG4gICAqIERvZXMgbm90aGluZyB3aGVuIHtAbGluayBSZWxlYXNlTm90ZXNDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcy5zaG91bGRTaG93UmVsZWFzZU5vdGVzfSBkZWNsaW5lcywgb3Igd2hlblxuICAgKiBldmVyeSBub3RlIGhhcyBiZWVuIHNob3duIGFscmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgcG9wdXAgaXMgY2xvc2VkLCBvciBhdCBvbmNlIHdoZW4gbm90aGluZyBpcyBzaG93bi5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBzaG93VW5zZWVuUmVsZWFzZU5vdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghYXdhaXQgdGhpcy5zaG91bGRTaG93UmVsZWFzZU5vdGVzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaG93blZlcnNpb25zID0gdGhpcy5nZXRTaG93blJlbGVhc2VOb3RlVmVyc2lvbnMoKTtcbiAgICBjb25zdCBzaG93blZlcnNpb25TZXQgPSBuZXcgU2V0KHNob3duVmVyc2lvbnMpO1xuICAgIGNvbnN0IHVuc2VlblJlbGVhc2VOb3RlcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMucmVsZWFzZU5vdGVzUHJvdmlkZXIoKSlcbiAgICAgIC5maWx0ZXIoKFt2ZXJzaW9uXSkgPT4gIXNob3duVmVyc2lvblNldC5oYXModmVyc2lvbikpXG4gICAgICAuc29ydCgoW3ZlcnNpb24xXSwgW3ZlcnNpb24yXSkgPT4gY29tcGFyZVZlcnNpb25zKHZlcnNpb24xLCB2ZXJzaW9uMikpO1xuXG4gICAgaWYgKHVuc2VlblJlbGVhc2VOb3Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlRnJhZ21lbnQoKTtcbiAgICBmb3IgKGNvbnN0IFt2ZXJzaW9uLCByZWxlYXNlTm90ZV0gb2YgdW5zZWVuUmVsZWFzZU5vdGVzKSB7XG4gICAgICBtZXNzYWdlLmNyZWF0ZUVsKCdoMycsIHsgdGV4dDogdmVyc2lvbiB9KTtcbiAgICAgIG1lc3NhZ2UuYXBwZW5kKHJlbGVhc2VOb3RlKTtcbiAgICB9XG5cbiAgICAvLyBSZWNvcmRlZCBiZWZvcmUgdGhlIHBvcHVwIGlzIHNob3duLCBzbyBhIHVzZXIgd2hvIHJlbG9hZHMgd2l0aG91dCBjbG9zaW5nIGl0IGlzIG5vdCBzaG93biBpdCBhZ2Fpbi5cbiAgICBhd2FpdCB0aGlzLnNldFNob3duUmVsZWFzZU5vdGVWZXJzaW9ucyhbLi4uc2hvd25WZXJzaW9ucywgLi4udW5zZWVuUmVsZWFzZU5vdGVzLm1hcCgoW3ZlcnNpb25dKSA9PiB2ZXJzaW9uKV0pO1xuXG4gICAgYXdhaXQgYWxlcnQoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICB0aXRsZTogY3JlYXRlRnJhZ21lbnRXaXRoQ29kZUJsb2Nrcyh0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnJlbGVhc2VOb3Rlcy50aXRsZSwgeyBwbHVnaW5OYW1lOiBhc0NvZGVCbG9jayh0aGlzLnBsdWdpbk5hbWUpIH0pKVxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLFNBQVMsdUJBQXVCO0FBSWhDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxTQUFTO0FBQ2xCLFNBQVMsYUFBYTtBQUN0QixTQUFTLG1CQUFtQjtBQUM1QixTQUFTLG9DQUFvQztBQWlGdEMsTUFBTSw4QkFBOEIsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWxDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQSxFQUVGO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT1YsWUFBWSxRQUFnRDtBQUNqRSxVQUFNO0FBQ04sU0FBSyxNQUFNLE9BQU87QUFDbEIsU0FBSyw4QkFBOEIsT0FBTztBQUMxQyxTQUFLLGFBQWEsT0FBTztBQUN6QixTQUFLLDBCQUEwQixPQUFPO0FBQ3RDLFNBQUssdUJBQXVCLE9BQU87QUFDbkMsU0FBSyw4QkFBOEIsT0FBTztBQUMxQyxTQUFLLHlCQUF5QixPQUFPLDJCQUEyQixNQUFlO0FBQUEsRUFDakY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTWdCLFNBQWU7QUFDN0IsU0FBSztBQUFBLE1BQ0gsSUFBSSw2QkFBNkIsS0FBSyxLQUFLLFlBQVk7QUFDckQsY0FBTSxLQUFLLHdCQUF3QixtQkFBbUI7QUFDdEQsWUFBSSxLQUFLLFdBQVcsR0FBRztBQUNyQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLEtBQUssdUJBQXVCO0FBQUEsTUFDcEMsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVUEsTUFBZ0IseUJBQXdDO0FBQ3RELFFBQUksQ0FBQyxNQUFNLEtBQUssdUJBQXVCLEdBQUc7QUFDeEM7QUFBQSxJQUNGO0FBRUEsVUFBTSxnQkFBZ0IsS0FBSyw0QkFBNEI7QUFDdkQsVUFBTSxrQkFBa0IsSUFBSSxJQUFJLGFBQWE7QUFDN0MsVUFBTSxxQkFBcUIsT0FBTyxRQUFRLEtBQUsscUJBQXFCLENBQUMsRUFDbEUsT0FBTyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLEVBQ25ELEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsTUFBTSxnQkFBZ0IsVUFBVSxRQUFRLENBQUM7QUFFdkUsUUFBSSxtQkFBbUIsV0FBVyxHQUFHO0FBQ25DO0FBQUEsSUFDRjtBQUVBLFVBQU0sVUFBVSxlQUFlO0FBQy9CLGVBQVcsQ0FBQyxTQUFTLFdBQVcsS0FBSyxvQkFBb0I7QUFDdkQsY0FBUSxTQUFTLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN4QyxjQUFRLE9BQU8sV0FBVztBQUFBLElBQzVCO0FBR0EsVUFBTSxLQUFLLDRCQUE0QixDQUFDLEdBQUcsZUFBZSxHQUFHLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxPQUFPLE1BQU0sT0FBTyxDQUFDLENBQUM7QUFFNUcsVUFBTSxNQUFNO0FBQUEsTUFDVixLQUFLLEtBQUs7QUFBQSxNQUNWO0FBQUEsTUFDQSxPQUFPLDZCQUE2QixFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksYUFBYSxPQUFPLEVBQUUsWUFBWSxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUMsQ0FBQztBQUFBLElBQzlILENBQUM7QUFBQSxFQUNIO0FBQ0Y7IiwibmFtZXMiOltdfQ==