@mnaoumov/obsidian-lib 10.10.0 → 10.12.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 (133) hide show
  1. package/README.md +26 -0
  2. package/components/all-windows-status-bar-item-component/package.json +6 -0
  3. package/components/shared-component-pool-component/package.json +6 -0
  4. package/components/workspace-layout-state-component/package.json +6 -0
  5. package/dist/lib/cjs/__merged.cjs +90 -1
  6. package/dist/lib/cjs/__merged.d.cts +13 -4
  7. package/dist/lib/cjs/bug-report-diagnostics.cjs +222 -0
  8. package/dist/lib/cjs/bug-report-diagnostics.d.cts +186 -0
  9. package/dist/lib/cjs/bug-report.cjs +36 -10
  10. package/dist/lib/cjs/bug-report.d.cts +65 -0
  11. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +93 -2
  12. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +34 -2
  13. package/dist/lib/cjs/components/all-windows-status-bar-item-component.cjs +245 -0
  14. package/dist/lib/cjs/components/all-windows-status-bar-item-component.d.cts +146 -0
  15. package/dist/lib/cjs/components/embed-extensions-component.cjs +20 -3
  16. package/dist/lib/cjs/components/embed-extensions-component.d.cts +8 -0
  17. package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +16 -2
  18. package/dist/lib/cjs/components/embeddable-markdown-editor-component.d.cts +9 -0
  19. package/dist/lib/cjs/components/index.cjs +12 -3
  20. package/dist/lib/cjs/components/index.d.cts +3 -0
  21. package/dist/lib/cjs/components/plugin-gate-component.cjs +2 -9
  22. package/dist/lib/cjs/components/plugin-settings-component.cjs +7 -2
  23. package/dist/lib/cjs/components/shared-component-pool-component.cjs +368 -0
  24. package/dist/lib/cjs/components/shared-component-pool-component.d.cts +129 -0
  25. package/dist/lib/cjs/components/workspace-layout-state-component.cjs +495 -0
  26. package/dist/lib/cjs/components/workspace-layout-state-component.d.cts +239 -0
  27. package/dist/lib/cjs/css-class.cjs +5 -1
  28. package/dist/lib/cjs/css-class.d.cts +16 -0
  29. package/dist/lib/cjs/data-handler.cjs +156 -5
  30. package/dist/lib/cjs/data-handler.d.cts +128 -2
  31. package/dist/lib/cjs/desktop-git-runner.cjs +4 -14
  32. package/dist/lib/cjs/desktop-git-runner.d.cts +8 -2
  33. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  34. package/dist/lib/cjs/git-rename-history.cjs +1 -1
  35. package/dist/lib/cjs/git-rename-history.d.cts +2 -2
  36. package/dist/lib/cjs/i18n/locales/en.cjs +29 -1
  37. package/dist/lib/cjs/i18n/locales/en.d.cts +28 -0
  38. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +28 -0
  39. package/dist/lib/cjs/index.cjs +10 -1
  40. package/dist/lib/cjs/index.d.cts +3 -0
  41. package/dist/lib/cjs/link.cjs +40 -1
  42. package/dist/lib/cjs/link.d.cts +37 -1
  43. package/dist/lib/cjs/markdown-view.cjs +191 -3
  44. package/dist/lib/cjs/markdown-view.d.cts +48 -1
  45. package/dist/lib/cjs/modals/copy-text-manually.cjs +181 -0
  46. package/dist/lib/cjs/modals/copy-text-manually.d.cts +38 -0
  47. package/dist/lib/cjs/modals/index.cjs +7 -1
  48. package/dist/lib/cjs/modals/index.d.cts +2 -0
  49. package/dist/lib/cjs/modals/review-bug-report-diagnostics.cjs +202 -0
  50. package/dist/lib/cjs/modals/review-bug-report-diagnostics.d.cts +30 -0
  51. package/dist/lib/cjs/plugin/index.cjs +4 -1
  52. package/dist/lib/cjs/plugin/index.d.cts +1 -0
  53. package/dist/lib/cjs/plugin/plugin-api.cjs +13 -4
  54. package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -1
  55. package/dist/lib/cjs/plugin/plugin-install-state.cjs +46 -1
  56. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +30 -0
  57. package/dist/lib/cjs/plugin/plugin-instance.cjs +448 -0
  58. package/dist/lib/cjs/plugin/plugin-instance.d.cts +251 -0
  59. package/dist/lib/cjs/plugin/plugin.cjs +16 -1
  60. package/dist/lib/cjs/plugin/plugin.d.cts +7 -0
  61. package/dist/lib/cjs/reference-definition.cjs +234 -0
  62. package/dist/lib/cjs/reference-definition.d.cts +47 -0
  63. package/dist/lib/cjs/release-asset.cjs +279 -0
  64. package/dist/lib/cjs/release-asset.d.cts +190 -0
  65. package/dist/lib/cjs/workspace.cjs +3 -2
  66. package/dist/lib/cjs/workspace.d.cts +6 -0
  67. package/dist/lib/esm/__merged.d.mts +13 -4
  68. package/dist/lib/esm/__merged.mjs +97 -3
  69. package/dist/lib/esm/bug-report-diagnostics.d.mts +186 -0
  70. package/dist/lib/esm/bug-report-diagnostics.mjs +127 -0
  71. package/dist/lib/esm/bug-report.d.mts +65 -0
  72. package/dist/lib/esm/bug-report.mjs +33 -10
  73. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +34 -2
  74. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +99 -3
  75. package/dist/lib/esm/components/all-windows-status-bar-item-component.d.mts +146 -0
  76. package/dist/lib/esm/components/all-windows-status-bar-item-component.mjs +154 -0
  77. package/dist/lib/esm/components/embed-extensions-component.d.mts +8 -0
  78. package/dist/lib/esm/components/embed-extensions-component.mjs +20 -3
  79. package/dist/lib/esm/components/embeddable-markdown-editor-component.d.mts +9 -0
  80. package/dist/lib/esm/components/embeddable-markdown-editor-component.mjs +16 -2
  81. package/dist/lib/esm/components/index.d.mts +3 -0
  82. package/dist/lib/esm/components/index.mjs +8 -2
  83. package/dist/lib/esm/components/plugin-gate-component.mjs +5 -13
  84. package/dist/lib/esm/components/plugin-settings-component.mjs +7 -2
  85. package/dist/lib/esm/components/shared-component-pool-component.d.mts +129 -0
  86. package/dist/lib/esm/components/shared-component-pool-component.mjs +280 -0
  87. package/dist/lib/esm/components/workspace-layout-state-component.d.mts +239 -0
  88. package/dist/lib/esm/components/workspace-layout-state-component.mjs +404 -0
  89. package/dist/lib/esm/css-class.d.mts +16 -0
  90. package/dist/lib/esm/css-class.mjs +5 -1
  91. package/dist/lib/esm/data-handler.d.mts +128 -2
  92. package/dist/lib/esm/data-handler.mjs +152 -4
  93. package/dist/lib/esm/desktop-git-runner.d.mts +8 -2
  94. package/dist/lib/esm/desktop-git-runner.mjs +3 -3
  95. package/dist/lib/esm/generated-during-build.mjs +2 -2
  96. package/dist/lib/esm/git-rename-history.d.mts +2 -2
  97. package/dist/lib/esm/git-rename-history.mjs +1 -1
  98. package/dist/lib/esm/i18n/locales/en.d.mts +28 -0
  99. package/dist/lib/esm/i18n/locales/en.mjs +29 -1
  100. package/dist/lib/esm/i18n/locales/translations-map.d.mts +28 -0
  101. package/dist/lib/esm/index.d.mts +3 -0
  102. package/dist/lib/esm/index.mjs +7 -1
  103. package/dist/lib/esm/link.d.mts +37 -1
  104. package/dist/lib/esm/link.mjs +40 -1
  105. package/dist/lib/esm/markdown-view.d.mts +48 -1
  106. package/dist/lib/esm/markdown-view.mjs +192 -2
  107. package/dist/lib/esm/modals/copy-text-manually.d.mts +38 -0
  108. package/dist/lib/esm/modals/copy-text-manually.mjs +99 -0
  109. package/dist/lib/esm/modals/index.d.mts +2 -0
  110. package/dist/lib/esm/modals/index.mjs +5 -1
  111. package/dist/lib/esm/modals/review-bug-report-diagnostics.d.mts +30 -0
  112. package/dist/lib/esm/modals/review-bug-report-diagnostics.mjs +120 -0
  113. package/dist/lib/esm/plugin/index.d.mts +1 -0
  114. package/dist/lib/esm/plugin/index.mjs +3 -1
  115. package/dist/lib/esm/plugin/plugin-api.d.mts +5 -1
  116. package/dist/lib/esm/plugin/plugin-api.mjs +13 -4
  117. package/dist/lib/esm/plugin/plugin-install-state.d.mts +30 -0
  118. package/dist/lib/esm/plugin/plugin-install-state.mjs +44 -1
  119. package/dist/lib/esm/plugin/plugin-instance.d.mts +251 -0
  120. package/dist/lib/esm/plugin/plugin-instance.mjs +366 -0
  121. package/dist/lib/esm/plugin/plugin.d.mts +7 -0
  122. package/dist/lib/esm/plugin/plugin.mjs +16 -1
  123. package/dist/lib/esm/reference-definition.d.mts +47 -0
  124. package/dist/lib/esm/reference-definition.mjs +146 -0
  125. package/dist/lib/esm/release-asset.d.mts +190 -0
  126. package/dist/lib/esm/release-asset.mjs +187 -0
  127. package/dist/lib/esm/workspace.d.mts +6 -0
  128. package/dist/lib/esm/workspace.mjs +3 -2
  129. package/dist/styles.css +16 -1
  130. package/modals/copy-text-manually/package.json +6 -0
  131. package/modals/review-bug-report-diagnostics/package.json +6 -0
  132. package/package.json +2 -1
  133. package/plugin/plugin-instance/package.json +6 -0
@@ -143,6 +143,17 @@ class EmbeddableMarkdownEditorComponent extends import_component_ex.ComponentEx
143
143
  get editorView() {
144
144
  return this.getScrollableEditor().cm;
145
145
  }
146
+ /**
147
+ * Whether the editor holds the focus within its window.
148
+ *
149
+ * Unlike CodeMirror's `EditorView.hasFocus`, this does not also require the window to have the operating system's
150
+ * focus, so it stays `true` while the user is in another application or another Obsidian window is in front.
151
+ *
152
+ * @returns `true` when the editor's content element is its document's active element.
153
+ */
154
+ get hasFocus() {
155
+ return isEditorViewFocusedInItsWindow(this.getScrollableEditor().activeCM);
156
+ }
146
157
  /**
147
158
  * The current document.
148
159
  *
@@ -241,7 +252,7 @@ class EmbeddableMarkdownEditorComponent extends import_component_ex.ComponentEx
241
252
  $object: this.app.workspace,
242
253
  methodName: "setActiveLeaf",
243
254
  patchHandler: ({ fallback }) => {
244
- if (scrollableEditor.activeCM.hasFocus) {
255
+ if (isEditorViewFocusedInItsWindow(scrollableEditor.activeCM)) {
245
256
  return;
246
257
  }
247
258
  fallback();
@@ -367,8 +378,11 @@ function getScrollableMarkdownEditorConstructor(app) {
367
378
  widgetEditorView.unload();
368
379
  }
369
380
  }
381
+ function isEditorViewFocusedInItsWindow(editorView) {
382
+ return editorView.root.activeElement === editorView.contentDOM;
383
+ }
370
384
  // Annotate the CommonJS export names for ESM import in node:
371
385
  0 && (module.exports = {
372
386
  EmbeddableMarkdownEditorComponent
373
387
  });
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2VtYmVkZGFibGUtbWFya2Rvd24tZWRpdG9yLWNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgY2xhc3Mge0BsaW5rIEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudH06IGEgZnVsbCBPYnNpZGlhbiBNYXJrZG93biBlZGl0b3IgKExpdmUgUHJldmlldywgZWRpdG9yXG4gKiBjb21tYW5kcywgaG90a2V5cykgbW91bnRlZCBpbiBhbnkgZWxlbWVudCBhbmQgb3duZWQgYXMgYSBjb21wb25lbnQuXG4gKlxuICogT2JzaWRpYW4gZG9lcyBub3QgZXhwb3J0IGl0cyBlZGl0b3IgY2xhc3MsIHNvIHRoZSBjb21wb25lbnQgYm9ycm93cyBpdCBmcm9tIGEgdGhyb3dhd2F5IE1hcmtkb3duIGVtYmVkOiBhbiBlZGl0YWJsZVxuICogZW1iZWQgYnVpbGRzIGFuIGlmcmFtZWQgZWRpdG9yIHdob3NlIGdyYW5kcGFyZW50IHByb3RvdHlwZSBpcyB0aGUgc2Nyb2xsYWJsZSBNYXJrZG93biBlZGl0b3IgZXZlcnkgZW1iZWQgYW5kIHRhYmxlXG4gKiBjZWxsIGVkaXRvciB1c2VzLiBUaGUgcHJvYmUgb3BlbnMgbm8gbGVhZiBhbmQgZmlyZXMgbm8gd29ya3NwYWNlIGV2ZW50IChgZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50XG4gKiAub2JzaWRpYW4uaW50ZWdyYXRpb24udGVzdC50c2AgbWVhc3VyZXMgdGhhdCksIGFuZCBpdCBydW5zIG9uY2UgcGVyIGNvcHkgb2YgdGhpcyBsaWJyYXJ5LCBvbiBmaXJzdCB1c2UgcmF0aGVyIHRoYW4gYXRcbiAqIG1vZHVsZSBsb2FkLiBUaGUgY2xhc3MgaXMgY2FjaGVkIHBlciBjb3B5IGFuZCBuZXZlciBpbiB0aGUgc2hhcmVkLXN0YXRlIGJhZywgYmVjYXVzZSBhIGNvbnN0cnVjdG9yIGlzIG5vdCBwbGFpbiBkYXRhLlxuICpcbiAqIEFkYXB0ZWQgZnJvbSB0aGUgXCJFbWJlZGRhYmxlIENNIE1hcmtkb3duIEVkaXRvclwiIGdpc3RcbiAqIChodHRwczovL2dpc3QuZ2l0aHViLmNvbS9GZXZvbC9jYWE0NzhjZTMwM2U2OWVhYmVkZTdiMTJiMjMyMzgzOCksIGl0c2VsZiBhIHJld29yayBvZiB0aGUgYEthbmJhbmAgcGx1Z2luJ3NcbiAqIGBzcmMvY29tcG9uZW50cy9FZGl0b3IvTWFya2Rvd25FZGl0b3IudHN4YCwgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGJlbG93LlxuICpcbiAqIENvcHlyaWdodCAyMDI0IE1hdHRoZXcgTWV5ZXJzLCBGZXZvbFxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZFxuICogZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIOKAnFNvZnR3YXJl4oCdKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbiAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xuICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZVxuICogU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIOKAnEFTIElT4oCdLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1JcbiAqIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1JcbiAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4vLyBjc3BlbGw6d29yZHMgRmV2b2wgLS0gVGhlIGdpc3QgYXV0aG9yJ3MgaGFuZGxlLCBhcyB0aGUgbGljZW5zZSBub3RpY2UgYWJvdmUgbmFtZXMgaXQuXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBCdWlsZHMgb24gT2JzaWRpYW4ncyB1bmV4cG9ydGVkIGVkaXRvciBjbGFzcywgd2hpY2ggb25seSBhIHJ1bm5pbmcgT2JzaWRpYW4gaGFzOyBjb3ZlcmVkIGJ5IGl0cyBpbnRlZ3JhdGlvbiB0ZXN0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IEV4dGVuc2lvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB0eXBlIHsgVmlld1VwZGF0ZSB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0Q29uc3RydWN0b3IsXG4gIE1hcmtkb3duU2Nyb2xsYWJsZUVkaXRWaWV3LFxuICBNYXJrZG93blNjcm9sbGFibGVFZGl0Vmlld093bmVyLFxuICBXaWRnZXRFZGl0b3JWaWV3XG59IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QnO1xuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEVkaXRvcixcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBFZGl0b3JTZWxlY3Rpb24sXG4gIFByZWNcbn0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHtcbiAgRWRpdG9yVmlldyxcbiAga2V5bWFwLFxuICBwbGFjZWhvbGRlclxufSBmcm9tICdAY29kZW1pcnJvci92aWV3JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuaW1wb3J0IHsgY2FzdFRvIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBTY29wZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBNb25rZXlBcm91bmRDb21wb25lbnQgfSBmcm9tICcuL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVycyBvZiB0aGUge0BsaW5rIEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudH0gY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBhZGRlZCB0byB0aGUgZWRpdG9yIGVsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBjbHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoZSBlZGl0b3IgaXMgbW91bnRlZCBpbi4gVGhlIGVkaXRvciBhcHBlbmRzIGl0cyBvd24gZWxlbWVudCB0byBpdCBhbmQgcmVtb3ZlcyBvbmx5IHRoYXQgZWxlbWVudCB3aGVuXG4gICAqIGl0IHVubG9hZHMuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJFbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHNlbGVjdGlvbiwgYXMgZG9jdW1lbnQgb2Zmc2V0cy4gVGhlIGN1cnNvciBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY3Vyc29yTG9jYXRpb24/OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgbG9zZXMgZm9jdXMsIHdoaWxlIHRoZSBjb21wb25lbnQgaXMgc3RpbGwgbG9hZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgb25CbHVyPzogKGNvbXBvbmVudDogRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgZXZlcnkgY2hhbmdlIHRvIHRoZSBkb2N1bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG9uQ2hhbmdlPzogKHVwZGF0ZTogVmlld1VwZGF0ZSwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbiBgRW50ZXJgLCBgU2hpZnQrRW50ZXJgLCBgTW9kK0VudGVyYCBhbmQgYE1vZCtTaGlmdCtFbnRlcmAuXG4gICAqXG4gICAqIFdoZW4gZ2l2ZW4sIGBNb2QrRW50ZXJgIG5vIGxvbmdlciBydW5zIHRoZSBPYnNpZGlhbiBob3RrZXkgYm91bmQgdG8gaXQgKGJ5IGRlZmF1bHQsIG9wZW5pbmcgdGhlIGxpbmsgdW5kZXIgdGhlXG4gICAqIGN1cnNvciBpbiBhIG5ldyB0YWIpIHdoaWxlIHRoZSBlZGl0b3IgaGFzIHRoZSBmb2N1cywgc28gYSBmb3JtIGNhbiB1c2UgaXQgdG8gc3VibWl0LlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUga2V5IHdhcyBoYW5kbGVkLCB3aGljaCBzdG9wcyB0aGUgZWRpdG9yIGluc2VydGluZyBhIGxpbmUgYnJlYWs7IGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgb25FbnRlcj86IChwYXJhbXM6IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudEVudGVyUGFyYW1zKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gYEVzY2FwZWAuIFdoZW4gZ2l2ZW4sIHRoZSBrZXkgZ29lcyBubyBmdXJ0aGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb25Fc2NhcGU/OiAoY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbiBhIHBhc3RlIGludG8gdGhlIGVkaXRvciwgYmVmb3JlIHRoZSBlZGl0b3IgaGFuZGxlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IG9uUGFzdGU/OiAoJGV2ZW50OiBDbGlwYm9hcmRFdmVudCwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHNob3duIHdoaWxlIHRoZSBkb2N1bWVudCBpcyBlbXB0eS5cbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBkb2N1bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBwYXJhbWV0ZXJzIG9mIHtAbGluayBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcy5vbkVudGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRFbnRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZWRpdG9yIGNvbXBvbmVudCB0aGUga2V5IHdhcyBwcmVzc2VkIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBsYXRmb3JtIG1vZGlmaWVyIChgQ3RybGAsIG9yIGBDbWRgIG9uIG1hY09TKSB3YXMgaGVsZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTW9kaWZpZXJQcmVzc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBTaGlmdGAgd2FzIGhlbGQuXG4gICAqL1xuICByZWFkb25seSBpc1NoaWZ0UHJlc3NlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHNlbGVjdGlvbiBpbiBhbiB7QGxpbmsgRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50fSwgYXMgZG9jdW1lbnQgb2Zmc2V0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRTZWxlY3Rpb24ge1xuICAvKipcbiAgICogVGhlIG9mZnNldCB0aGUgc2VsZWN0aW9uIHN0YXJ0cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBvZmZzZXQgdGhlIHNlbGVjdGlvbiBleHRlbmRzIHRvLCB3aGVyZSB0aGUgY3Vyc29yIGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRWRpdG9ySG9va3Mge1xuICByZWFkb25seSBidWlsZEV4dGVuc2lvbnM6ICgpID0+IEV4dGVuc2lvbltdO1xuICByZWFkb25seSBoYW5kbGVVcGRhdGU6ICh1cGRhdGU6IFZpZXdVcGRhdGUsIGlzQ2hhbmdlZDogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxudHlwZSBFbWJlZGRlZFNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yID0gbmV3IChcbiAgYXBwOiBBcHAsXG4gIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCxcbiAgb3duZXI6IE1hcmtkb3duU2Nyb2xsYWJsZUVkaXRWaWV3T3duZXIsXG4gIGhvb2tzOiBFZGl0b3JIb29rc1xuKSA9PiBNYXJrZG93blNjcm9sbGFibGVFZGl0VmlldztcblxudHlwZSBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvciA9IEV4dHJhY3RDb25zdHJ1Y3RvcjxNYXJrZG93blNjcm9sbGFibGVFZGl0Vmlldz47XG5cbmludGVyZmFjZSBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvckNhY2hlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gRmlsbGVkIG9uIGZpcnN0IHVzZS5cbiAgdmFsdWU6IG51bGwgfCBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3Rvcjtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyAtLSBUaGUgb3duZXIgbGVhcm5zIGl0cyBlZGl0b3IgYWZ0ZXIgdGhlIGVkaXRvciwgd2hpY2ggbmVlZHMgdGhlIG93bmVyLCBpcyBidWlsdC4gKi9cbmludGVyZmFjZSBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JPd25lciBleHRlbmRzIE1hcmtkb3duU2Nyb2xsYWJsZUVkaXRWaWV3T3duZXIge1xuICBlZGl0TW9kZTogTWFya2Rvd25TY3JvbGxhYmxlRWRpdFZpZXcgfCBudWxsO1xuICByZWFkb25seSBnZXRNb2RlOiAoKSA9PiAnc291cmNlJztcbn1cbi8qIGVzbGludC1lbmFibGUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyAtLSBSZXN0b3JlIHRoZSBydWxlIGFmdGVyIHRoZSBvd25lci4gKi9cblxuaW50ZXJmYWNlIFNjcm9sbGFibGVNYXJrZG93bkVkaXRvclByb3RvdHlwZSB7XG4gIHJlYWRvbmx5IGNvbnN0cnVjdG9yOiBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3Rvcjtcbn1cblxuY29uc3Qgc2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3JDYWNoZTogU2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3JDYWNoZSA9IHsgdmFsdWU6IG51bGwgfTtcblxuLyoqXG4gKiBBIGZ1bGwgT2JzaWRpYW4gTWFya2Rvd24gZWRpdG9yIG1vdW50ZWQgaW4gYW55IGVsZW1lbnQ6IExpdmUgUHJldmlldywgZWRpdG9yIGNvbW1hbmRzLCBob3RrZXlzIGFuZCB0aGUgZWRpdG9yXG4gKiBzdWdnZXN0ZXJzIGFsbCB3b3JrIGluIGl0IGFzIHRoZXkgZG8gaW4gYSBub3RlLlxuICpcbiAqIEFkZCBpdCBhcyBhIGNoaWxkIG9mIHRoZSBjb21wb25lbnQgdGhhdCBvd25zIGl0cyBlbGVtZW50OyB1bmxvYWRpbmcgaXQgZGVzdHJveXMgdGhlIGVkaXRvciBhbmQgcmVtb3ZlcyB0aGUgZWRpdG9yJ3NcbiAqIGVsZW1lbnQuIEl0IHdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGVkaXRvckNvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCh7XG4gKiAgIGFwcDogdGhpcy5hcHAsXG4gKiAgIGNvbnRhaW5lckVsLFxuICogICBvbkVudGVyOiAoeyBjb21wb25lbnQsIGlzTW9kaWZpZXJQcmVzc2VkIH0pID0+IHtcbiAqICAgICBpZiAoIWlzTW9kaWZpZXJQcmVzc2VkKSB7XG4gKiAgICAgICByZXR1cm4gZmFsc2U7XG4gKiAgICAgfVxuICogICAgIHNhdmUoY29tcG9uZW50LnZhbHVlKTtcbiAqICAgICByZXR1cm4gdHJ1ZTtcbiAqICAgfSxcbiAqICAgdmFsdWU6ICdJbml0aWFsIHRleHQnXG4gKiB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBlZGl0b3IsIGFzIGluIGEgbm90ZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGVkaXRvci5cbiAgICovXG4gIHB1YmxpYyBnZXQgZWRpdG9yKCk6IEVkaXRvciB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuZ2V0U2Nyb2xsYWJsZUVkaXRvcigpLmVkaXRvcik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIENvZGVNaXJyb3IgdmlldyBiZWhpbmQgdGhlIGVkaXRvci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIENvZGVNaXJyb3Igdmlldy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZWRpdG9yVmlldygpOiBFZGl0b3JWaWV3IHtcbiAgICByZXR1cm4gdGhpcy5nZXRTY3JvbGxhYmxlRWRpdG9yKCkuY207XG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgZG9jdW1lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBkb2N1bWVudCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFNjcm9sbGFibGVFZGl0b3IoKS5jbS5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGUgZWRpdG9yIGlzIG1vdW50ZWQgaW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2xzOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3Vyc29yTG9jYXRpb246IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudFNlbGVjdGlvbiB8IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkga2V5bWFwU2NvcGU6IFNjb3BlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQmx1cjogKChjb21wb25lbnQ6IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCkgPT4gdm9pZCkgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQ2hhbmdlOiAoKHVwZGF0ZTogVmlld1VwZGF0ZSwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQpIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkVudGVyOiAoKHBhcmFtczogRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50RW50ZXJQYXJhbXMpID0+IGJvb2xlYW4pIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkVzY2FwZTogKChjb21wb25lbnQ6IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCkgPT4gdm9pZCkgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uUGFzdGU6ICgoJGV2ZW50OiBDbGlwYm9hcmRFdmVudCwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQpIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvd25lcjogU2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yT3duZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgc2Nyb2xsYWJsZUVkaXRvcjogTWFya2Rvd25TY3JvbGxhYmxlRWRpdFZpZXcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgY29tcG9uZW50LiBUaGUgZWRpdG9yIGlzIGJ1aWx0IHdoZW4gdGhlIGNvbXBvbmVudCBsb2Fkcy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXBwID0gcGFyYW1zLmFwcDtcbiAgICB0aGlzLmNvbnRhaW5lckVsID0gcGFyYW1zLmNvbnRhaW5lckVsO1xuICAgIHRoaXMuY2xzID0gcGFyYW1zLmNscyA/PyAnJztcbiAgICB0aGlzLmN1cnNvckxvY2F0aW9uID0gcGFyYW1zLmN1cnNvckxvY2F0aW9uID8/IG51bGw7XG4gICAgdGhpcy5pbml0aWFsVmFsdWUgPSBwYXJhbXMudmFsdWUgPz8gJyc7XG4gICAgdGhpcy5vbkJsdXIgPSBwYXJhbXMub25CbHVyID8/IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZSA9IHBhcmFtcy5vbkNoYW5nZSA/PyBudWxsO1xuICAgIHRoaXMub25FbnRlciA9IHBhcmFtcy5vbkVudGVyID8/IG51bGw7XG4gICAgdGhpcy5vbkVzY2FwZSA9IHBhcmFtcy5vbkVzY2FwZSA/PyBudWxsO1xuICAgIHRoaXMub25QYXN0ZSA9IHBhcmFtcy5vblBhc3RlID8/IG51bGw7XG4gICAgdGhpcy5wbGFjZWhvbGRlclRleHQgPSBwYXJhbXMucGxhY2Vob2xkZXIgPz8gJyc7XG4gICAgdGhpcy5rZXltYXBTY29wZSA9IG5ldyBTY29wZShwYXJhbXMuYXBwLnNjb3BlKTtcbiAgICAvLyBUaGUgZWRpdG9yJ3Mgb3duZXIgc3RhbmRzIGluIGZvciBhIGBNYXJrZG93blZpZXdgLiBUaGUgZWRpdG9yIGNvbW1hbmRzIHJlYWNoIHRoZSBlZGl0b3IgdGhyb3VnaFxuICAgIC8vIGBhY3RpdmVFZGl0b3IuZWRpdE1vZGVgIGFuZCBgYWN0aXZlRWRpdG9yLmVkaXRvcmAsIGFuZCBzY3JvbGxpbmcgY2FsbHMgYmFjayBpbnRvIHRoZSBvd25lci5cbiAgICB0aGlzLm93bmVyID0ge1xuICAgICAgYXBwOiBwYXJhbXMuYXBwLFxuICAgICAgZWRpdE1vZGU6IG51bGwsXG4gICAgICBmaWxlOiBudWxsLFxuICAgICAgZ2V0TW9kZTogKCk6ICdzb3VyY2UnID0+ICdzb3VyY2UnLFxuICAgICAgaG92ZXJQb3BvdmVyOiBudWxsLFxuICAgICAgc3luY1Njcm9sbDogbm9vcFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZWRpdG9yLlxuICAgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U2Nyb2xsYWJsZUVkaXRvcigpLmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBlZGl0b3IgYW5kIG1vdW50cyBpdCBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9ubG9hZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbmxvYWQoKTtcbiAgICBjb25zdCBFZGl0b3JDb25zdHJ1Y3RvciA9IGNyZWF0ZUVkaXRvckNsYXNzKGdldFNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yKHRoaXMuYXBwKSk7XG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVkaXRvciA9IG5ldyBFZGl0b3JDb25zdHJ1Y3Rvcih0aGlzLmFwcCwgdGhpcy5jb250YWluZXJFbCwgdGhpcy5vd25lciwge1xuICAgICAgYnVpbGRFeHRlbnNpb25zOiAoKTogRXh0ZW5zaW9uW10gPT4gdGhpcy5idWlsZEV4dGVuc2lvbnMoKSxcbiAgICAgIGhhbmRsZVVwZGF0ZTogKHVwZGF0ZTogVmlld1VwZGF0ZSwgaXNDaGFuZ2VkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlVXBkYXRlKHVwZGF0ZSwgaXNDaGFuZ2VkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNjcm9sbGFibGVFZGl0b3IgPSBzY3JvbGxhYmxlRWRpdG9yO1xuICAgIHRoaXMub3duZXIuZWRpdE1vZGUgPSBzY3JvbGxhYmxlRWRpdG9yO1xuICAgIHRoaXMub3duZXIuZWRpdG9yID0gZW5zdXJlTm9uTnVsbGFibGUoc2Nyb2xsYWJsZUVkaXRvci5lZGl0b3IpO1xuICAgIHRoaXMuYWRkQ2hpbGQoc2Nyb2xsYWJsZUVkaXRvcik7XG5cbiAgICBpZiAodGhpcy5vbkVudGVyKSB7XG4gICAgICAvLyBPYnNpZGlhbidzIGhvdGtleXMgcnVuIGJlZm9yZSBDb2RlTWlycm9yJ3Mga2V5bWFwLCBhbmQgYE1vZCtFbnRlcmAgb3BlbnMgdGhlIGxpbmsgdW5kZXIgdGhlIGN1cnNvci4gQSBoYW5kbGVyXG4gICAgICAvLyByZXR1cm5pbmcgYHRydWVgIHN0b3BzIHRoYXQgaG90a2V5IHdpdGhvdXQgc3RvcHBpbmcgdGhlIGV2ZW50LCBzbyB0aGUgZWRpdG9yIGtleW1hcCBzdGlsbCBzZWVzIHRoZSBrZXkuXG4gICAgICBjb25zdCBzdWJtaXRIb3RrZXlIYW5kbGVyID0gdGhpcy5rZXltYXBTY29wZS5yZWdpc3RlcihbJ01vZCddLCAnRW50ZXInLCAoKSA9PiB0cnVlKTtcbiAgICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmtleW1hcFNjb3BlLnVucmVnaXN0ZXIoc3VibWl0SG90a2V5SGFuZGxlcik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbHMpIHtcbiAgICAgIHNjcm9sbGFibGVFZGl0b3IuZWRpdG9yRWwuYWRkQ2xhc3ModGhpcy5jbHMpO1xuICAgIH1cblxuICAgIHNjcm9sbGFibGVFZGl0b3Iuc2V0KHRoaXMuaW5pdGlhbFZhbHVlLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5jdXJzb3JMb2NhdGlvbikge1xuICAgICAgc2Nyb2xsYWJsZUVkaXRvci5jbS5kaXNwYXRjaCh7XG4gICAgICAgIHNlbGVjdGlvbjogRWRpdG9yU2VsZWN0aW9uLnJhbmdlKHRoaXMuY3Vyc29yTG9jYXRpb24uYW5jaG9yLCB0aGlzLmN1cnNvckxvY2F0aW9uLmhlYWQpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmb2N1c0d1YXJkUGF0Y2hDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBNb25rZXlBcm91bmRDb21wb25lbnQoKSk7XG4gICAgZm9jdXNHdWFyZFBhdGNoQ29tcG9uZW50LnJlZ2lzdGVyTWV0aG9kUGF0Y2goe1xuICAgICAgJG9iamVjdDogdGhpcy5hcHAud29ya3NwYWNlLFxuICAgICAgbWV0aG9kTmFtZTogJ3NldEFjdGl2ZUxlYWYnLFxuICAgICAgcGF0Y2hIYW5kbGVyOiAoeyBmYWxsYmFjayB9KSA9PiB7XG4gICAgICAgIC8vIEEgZm9jdXNlZCBlZGl0b3IgdGhhdCBiZWxvbmdzIHRvIG5vIGxlYWYgd291bGQgb3RoZXJ3aXNlIGxvc2UgaXRzIGZvY3VzIHRvIHRoZSBsZWFmIHRoZSB3b3Jrc3BhY2UgYWN0aXZhdGVzLlxuICAgICAgICBpZiAoc2Nyb2xsYWJsZUVkaXRvci5hY3RpdmVDTS5oYXNGb2N1cykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmYWxsYmFjaygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICB0aGlzLmFwcC5rZXltYXAucG9wU2NvcGUodGhpcy5rZXltYXBTY29wZSk7XG4gICAgICBpZiAodGhpcy5hcHAud29ya3NwYWNlLmFjdGl2ZUVkaXRvciA9PT0gdGhpcy5vd25lcikge1xuICAgICAgICB0aGlzLmFwcC53b3Jrc3BhY2UuYWN0aXZlRWRpdG9yID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHNjcm9sbGFibGVFZGl0b3IuZGVzdHJveSgpO1xuICAgICAgc2Nyb2xsYWJsZUVkaXRvci5lZGl0b3JFbC5yZW1vdmUoKTtcbiAgICAgIHRoaXMub3duZXIuZWRpdE1vZGUgPSBudWxsO1xuICAgICAgZGVsZXRlIHRoaXMub3duZXIuZWRpdG9yO1xuICAgICAgdGhpcy5zY3JvbGxhYmxlRWRpdG9yID0gbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgZG9jdW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBuZXcgZG9jdW1lbnQuXG4gICAqL1xuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U2Nyb2xsYWJsZUVkaXRvcigpLnNldCh2YWx1ZSwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgZWRpdG9yJ3Mgb3duIGV4dGVuc2lvbnM6IHRoZSBwbGFjZWhvbGRlciwgdGhlIGZvY3VzIGFuZCBwYXN0ZSBoYW5kbGVycywgYW5kIHRoZSBrZXkgaGFuZGxlcnMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBleHRlbnNpb25zLlxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgY29uc3QgZXh0ZW5zaW9uczogRXh0ZW5zaW9uW10gPSBbXG4gICAgICBFZGl0b3JWaWV3LmRvbUV2ZW50SGFuZGxlcnMoe1xuICAgICAgICBibHVyOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5hcHAua2V5bWFwLnBvcFNjb3BlKHRoaXMua2V5bWFwU2NvcGUpO1xuICAgICAgICAgIGlmICh0aGlzLl9sb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyPy4odGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmb2N1czogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuYXBwLmtleW1hcC5wdXNoU2NvcGUodGhpcy5rZXltYXBTY29wZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBhc3RlOiAoJGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMub25QYXN0ZT8uKCRldmVudCwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgUHJlYy5oaWdoZXN0KGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdFbnRlcicsXG4gICAgICAgICAgcnVuOiAoKTogYm9vbGVhbiA9PiB0aGlzLmlzRW50ZXJIYW5kbGVkKGZhbHNlLCBmYWxzZSksXG4gICAgICAgICAgc2hpZnQ6ICgpOiBib29sZWFuID0+IHRoaXMuaXNFbnRlckhhbmRsZWQoZmFsc2UsIHRydWUpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdNb2QtRW50ZXInLFxuICAgICAgICAgIHJ1bjogKCk6IGJvb2xlYW4gPT4gdGhpcy5pc0VudGVySGFuZGxlZCh0cnVlLCBmYWxzZSksXG4gICAgICAgICAgc2hpZnQ6ICgpOiBib29sZWFuID0+IHRoaXMuaXNFbnRlckhhbmRsZWQodHJ1ZSwgdHJ1ZSlcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ0VzY2FwZScsXG4gICAgICAgICAgcHJldmVudERlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgcnVuOiAoKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMub25Fc2NhcGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbkVzY2FwZSh0aGlzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSkpXG4gICAgXTtcblxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyVGV4dCkge1xuICAgICAgZXh0ZW5zaW9ucy5wdXNoKHBsYWNlaG9sZGVyKHRoaXMucGxhY2Vob2xkZXJUZXh0KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IHVwZGF0ZSBvZiB0aGUgZWRpdG9yLCB3aXRoIHdoZXRoZXIgdGhlIGRvY3VtZW50IGNoYW5nZWQuXG4gICAqXG4gICAqIEBwYXJhbSB1cGRhdGUgLSBUaGUgQ29kZU1pcnJvciB1cGRhdGUuXG4gICAqIEBwYXJhbSBpc0NoYW5nZWQgLSBXaGV0aGVyIHRoZSBkb2N1bWVudCBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVVwZGF0ZSh1cGRhdGU6IFZpZXdVcGRhdGUsIGlzQ2hhbmdlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0NoYW5nZWQpIHtcbiAgICAgIHRoaXMub25DaGFuZ2U/Lih1cGRhdGUsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2Nyb2xsYWJsZUVkaXRvcigpOiBNYXJrZG93blNjcm9sbGFibGVFZGl0VmlldyB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuc2Nyb2xsYWJsZUVkaXRvciwgJ1RoZSBlZGl0b3IgaXMgYnVpbHQgd2hlbiB0aGUgY29tcG9uZW50IGxvYWRzLicpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VudGVySGFuZGxlZChpc01vZGlmaWVyUHJlc3NlZDogYm9vbGVhbiwgaXNTaGlmdFByZXNzZWQ6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vbkVudGVyPy4oeyBjb21wb25lbnQ6IHRoaXMsIGlzTW9kaWZpZXJQcmVzc2VkLCBpc1NoaWZ0UHJlc3NlZCB9KSA/PyBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFZGl0b3JDbGFzcyhCYXNlQ29uc3RydWN0b3I6IFNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yKTogRW1iZWRkZWRTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvciB7XG4gIHJldHVybiBjbGFzcyBFbWJlZGRlZFNjcm9sbGFibGVNYXJrZG93bkVkaXRvciBleHRlbmRzIEJhc2VDb25zdHJ1Y3RvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIG93bmVyOiBNYXJrZG93blNjcm9sbGFibGVFZGl0Vmlld093bmVyLCBwcml2YXRlIHJlYWRvbmx5IGhvb2tzOiBFZGl0b3JIb29rcykge1xuICAgICAgLy8gVGhlIGJhc2UgYnVpbGRzIGl0cyBleHRlbnNpb25zIGxhemlseSwgb24gdGhlIGZpcnN0IGBzZXQoKWAsIHNvIHRoZSBob29rcyBhcmUgbm90IG5lZWRlZCBkdXJpbmcgYHN1cGVyKClgLlxuICAgICAgc3VwZXIoYXBwLCBjb250YWluZXJFbCwgb3duZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBidWlsZExvY2FsRXh0ZW5zaW9ucygpOiBFeHRlbnNpb25bXSB7XG4gICAgICByZXR1cm4gWy4uLnN1cGVyLmJ1aWxkTG9jYWxFeHRlbnNpb25zKCksIC4uLnRoaXMuaG9va3MuYnVpbGRFeHRlbnNpb25zKCldO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBvblVwZGF0ZSh1cGRhdGU6IFZpZXdVcGRhdGUsIGlzQ2hhbmdlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgc3VwZXIub25VcGRhdGUodXBkYXRlLCBpc0NoYW5nZWQpO1xuICAgICAgdGhpcy5ob29rcy5oYW5kbGVVcGRhdGUodXBkYXRlLCBpc0NoYW5nZWQpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3IoYXBwOiBBcHApOiBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvciB7XG4gIGlmIChzY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvckNhY2hlLnZhbHVlKSB7XG4gICAgcmV0dXJuIHNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yQ2FjaGUudmFsdWU7XG4gIH1cblxuICAvLyBBbiBlZGl0YWJsZSBNYXJrZG93biBlbWJlZCBidWlsZHMgYW4gaWZyYW1lZCBlZGl0b3Igd2hvc2UgYmFzZSBjbGFzcyBpcyB0aGUgc2Nyb2xsYWJsZSBlZGl0b3IuIFRoZSBlbWJlZCBpcyBnaXZlblxuICAvLyBubyBmaWxlLCB3aGljaCBpcyB3aGF0IGtlZXBzIGl0IGZyb20gcmVhZGluZyBvciB3YXRjaGluZyBvbmUuXG4gIGNvbnN0IHdpZGdldEVkaXRvclZpZXcgPSBjYXN0VG88V2lkZ2V0RWRpdG9yVmlldz4oYXBwLmVtYmVkUmVnaXN0cnkuZW1iZWRCeUV4dGVuc2lvbi5tZCh7IGFwcCwgY29udGFpbmVyRWw6IGNyZWF0ZURpdigpIH0sIGNhc3RUbzxURmlsZT4obnVsbCksICcnKSk7XG5cbiAgdHJ5IHtcbiAgICB3aWRnZXRFZGl0b3JWaWV3LmVkaXRhYmxlID0gdHJ1ZTtcbiAgICB3aWRnZXRFZGl0b3JWaWV3LnNob3dFZGl0b3IoKTtcbiAgICBjb25zdCBpZnJhbWVkRWRpdG9yID0gZW5zdXJlTm9uTnVsbGFibGUod2lkZ2V0RWRpdG9yVmlldy5lZGl0TW9kZSwgJ1RoZSBNYXJrZG93biBlbWJlZCBidWlsdCBubyBlZGl0b3IuJyk7XG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVkaXRvclByb3RvdHlwZSA9IGNhc3RUbzxTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JQcm90b3R5cGU+KE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoaWZyYW1lZEVkaXRvcikgYXMgb2JqZWN0KSk7XG4gICAgc2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3JDYWNoZS52YWx1ZSA9IHNjcm9sbGFibGVFZGl0b3JQcm90b3R5cGUuY29uc3RydWN0b3I7XG4gICAgcmV0dXJuIHNjcm9sbGFibGVFZGl0b3JQcm90b3R5cGUuY29uc3RydWN0b3I7XG4gIH0gZmluYWxseSB7XG4gICAgd2lkZ2V0RWRpdG9yVmlldy51bmxvYWQoKTtcbiAgfVxufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBa0RBLG1CQUdPO0FBQ1Asa0JBSU87QUFDUCxzQkFBcUI7QUFDckIsMEJBQXVCO0FBQ3ZCLHlCQUFrQztBQUNsQyxzQkFBc0I7QUFFdEIsMEJBQTRCO0FBQzVCLHFDQUFzQztBQXFJdEMsTUFBTSwyQ0FBcUYsRUFBRSxPQUFPLEtBQUs7QUF5QmxHLE1BQU0sMENBQTBDLGdDQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTWpFLElBQVcsU0FBaUI7QUFDMUIsZUFBTyxzQ0FBa0IsS0FBSyxvQkFBb0IsRUFBRSxNQUFNO0FBQUEsRUFDNUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLGFBQXlCO0FBQ2xDLFdBQU8sS0FBSyxvQkFBb0IsRUFBRTtBQUFBLEVBQ3BDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxRQUFnQjtBQUN6QixXQUFPLEtBQUssb0JBQW9CLEVBQUUsR0FBRyxNQUFNLElBQUksU0FBUztBQUFBLEVBQzFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLbUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUEsRUFFRjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtB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
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2VtYmVkZGFibGUtbWFya2Rvd24tZWRpdG9yLWNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgY2xhc3Mge0BsaW5rIEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudH06IGEgZnVsbCBPYnNpZGlhbiBNYXJrZG93biBlZGl0b3IgKExpdmUgUHJldmlldywgZWRpdG9yXG4gKiBjb21tYW5kcywgaG90a2V5cykgbW91bnRlZCBpbiBhbnkgZWxlbWVudCBhbmQgb3duZWQgYXMgYSBjb21wb25lbnQuXG4gKlxuICogT2JzaWRpYW4gZG9lcyBub3QgZXhwb3J0IGl0cyBlZGl0b3IgY2xhc3MsIHNvIHRoZSBjb21wb25lbnQgYm9ycm93cyBpdCBmcm9tIGEgdGhyb3dhd2F5IE1hcmtkb3duIGVtYmVkOiBhbiBlZGl0YWJsZVxuICogZW1iZWQgYnVpbGRzIGFuIGlmcmFtZWQgZWRpdG9yIHdob3NlIGdyYW5kcGFyZW50IHByb3RvdHlwZSBpcyB0aGUgc2Nyb2xsYWJsZSBNYXJrZG93biBlZGl0b3IgZXZlcnkgZW1iZWQgYW5kIHRhYmxlXG4gKiBjZWxsIGVkaXRvciB1c2VzLiBUaGUgcHJvYmUgb3BlbnMgbm8gbGVhZiBhbmQgZmlyZXMgbm8gd29ya3NwYWNlIGV2ZW50IChgZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50XG4gKiAub2JzaWRpYW4uaW50ZWdyYXRpb24udGVzdC50c2AgbWVhc3VyZXMgdGhhdCksIGFuZCBpdCBydW5zIG9uY2UgcGVyIGNvcHkgb2YgdGhpcyBsaWJyYXJ5LCBvbiBmaXJzdCB1c2UgcmF0aGVyIHRoYW4gYXRcbiAqIG1vZHVsZSBsb2FkLiBUaGUgY2xhc3MgaXMgY2FjaGVkIHBlciBjb3B5IGFuZCBuZXZlciBpbiB0aGUgc2hhcmVkLXN0YXRlIGJhZywgYmVjYXVzZSBhIGNvbnN0cnVjdG9yIGlzIG5vdCBwbGFpbiBkYXRhLlxuICpcbiAqIEFkYXB0ZWQgZnJvbSB0aGUgXCJFbWJlZGRhYmxlIENNIE1hcmtkb3duIEVkaXRvclwiIGdpc3RcbiAqIChodHRwczovL2dpc3QuZ2l0aHViLmNvbS9GZXZvbC9jYWE0NzhjZTMwM2U2OWVhYmVkZTdiMTJiMjMyMzgzOCksIGl0c2VsZiBhIHJld29yayBvZiB0aGUgYEthbmJhbmAgcGx1Z2luJ3NcbiAqIGBzcmMvY29tcG9uZW50cy9FZGl0b3IvTWFya2Rvd25FZGl0b3IudHN4YCwgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGJlbG93LlxuICpcbiAqIENvcHlyaWdodCAyMDI0IE1hdHRoZXcgTWV5ZXJzLCBGZXZvbFxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZFxuICogZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIOKAnFNvZnR3YXJl4oCdKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbiAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xuICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZVxuICogU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIOKAnEFTIElT4oCdLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1JcbiAqIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1JcbiAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4vLyBjc3BlbGw6d29yZHMgRmV2b2wgLS0gVGhlIGdpc3QgYXV0aG9yJ3MgaGFuZGxlLCBhcyB0aGUgbGljZW5zZSBub3RpY2UgYWJvdmUgbmFtZXMgaXQuXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBCdWlsZHMgb24gT2JzaWRpYW4ncyB1bmV4cG9ydGVkIGVkaXRvciBjbGFzcywgd2hpY2ggb25seSBhIHJ1bm5pbmcgT2JzaWRpYW4gaGFzOyBjb3ZlcmVkIGJ5IGl0cyBpbnRlZ3JhdGlvbiB0ZXN0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IEV4dGVuc2lvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB0eXBlIHsgVmlld1VwZGF0ZSB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0Q29uc3RydWN0b3IsXG4gIE1hcmtkb3duU2Nyb2xsYWJsZUVkaXRWaWV3LFxuICBNYXJrZG93blNjcm9sbGFibGVFZGl0Vmlld093bmVyLFxuICBXaWRnZXRFZGl0b3JWaWV3XG59IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QnO1xuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEVkaXRvcixcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBFZGl0b3JTZWxlY3Rpb24sXG4gIFByZWNcbn0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHtcbiAgRWRpdG9yVmlldyxcbiAga2V5bWFwLFxuICBwbGFjZWhvbGRlclxufSBmcm9tICdAY29kZW1pcnJvci92aWV3JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuaW1wb3J0IHsgY2FzdFRvIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBTY29wZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBNb25rZXlBcm91bmRDb21wb25lbnQgfSBmcm9tICcuL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVycyBvZiB0aGUge0BsaW5rIEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudH0gY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBhZGRlZCB0byB0aGUgZWRpdG9yIGVsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBjbHM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoZSBlZGl0b3IgaXMgbW91bnRlZCBpbi4gVGhlIGVkaXRvciBhcHBlbmRzIGl0cyBvd24gZWxlbWVudCB0byBpdCBhbmQgcmVtb3ZlcyBvbmx5IHRoYXQgZWxlbWVudCB3aGVuXG4gICAqIGl0IHVubG9hZHMuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJFbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHNlbGVjdGlvbiwgYXMgZG9jdW1lbnQgb2Zmc2V0cy4gVGhlIGN1cnNvciBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY3Vyc29yTG9jYXRpb24/OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgbG9zZXMgZm9jdXMsIHdoaWxlIHRoZSBjb21wb25lbnQgaXMgc3RpbGwgbG9hZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgb25CbHVyPzogKGNvbXBvbmVudDogRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgZXZlcnkgY2hhbmdlIHRvIHRoZSBkb2N1bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG9uQ2hhbmdlPzogKHVwZGF0ZTogVmlld1VwZGF0ZSwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbiBgRW50ZXJgLCBgU2hpZnQrRW50ZXJgLCBgTW9kK0VudGVyYCBhbmQgYE1vZCtTaGlmdCtFbnRlcmAuXG4gICAqXG4gICAqIFdoZW4gZ2l2ZW4sIGBNb2QrRW50ZXJgIG5vIGxvbmdlciBydW5zIHRoZSBPYnNpZGlhbiBob3RrZXkgYm91bmQgdG8gaXQgKGJ5IGRlZmF1bHQsIG9wZW5pbmcgdGhlIGxpbmsgdW5kZXIgdGhlXG4gICAqIGN1cnNvciBpbiBhIG5ldyB0YWIpIHdoaWxlIHRoZSBlZGl0b3IgaGFzIHRoZSBmb2N1cywgc28gYSBmb3JtIGNhbiB1c2UgaXQgdG8gc3VibWl0LlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUga2V5IHdhcyBoYW5kbGVkLCB3aGljaCBzdG9wcyB0aGUgZWRpdG9yIGluc2VydGluZyBhIGxpbmUgYnJlYWs7IGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgb25FbnRlcj86IChwYXJhbXM6IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudEVudGVyUGFyYW1zKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gYEVzY2FwZWAuIFdoZW4gZ2l2ZW4sIHRoZSBrZXkgZ29lcyBubyBmdXJ0aGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb25Fc2NhcGU/OiAoY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbiBhIHBhc3RlIGludG8gdGhlIGVkaXRvciwgYmVmb3JlIHRoZSBlZGl0b3IgaGFuZGxlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IG9uUGFzdGU/OiAoJGV2ZW50OiBDbGlwYm9hcmRFdmVudCwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHNob3duIHdoaWxlIHRoZSBkb2N1bWVudCBpcyBlbXB0eS5cbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBkb2N1bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBwYXJhbWV0ZXJzIG9mIHtAbGluayBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcy5vbkVudGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRFbnRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZWRpdG9yIGNvbXBvbmVudCB0aGUga2V5IHdhcyBwcmVzc2VkIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBsYXRmb3JtIG1vZGlmaWVyIChgQ3RybGAsIG9yIGBDbWRgIG9uIG1hY09TKSB3YXMgaGVsZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTW9kaWZpZXJQcmVzc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBTaGlmdGAgd2FzIGhlbGQuXG4gICAqL1xuICByZWFkb25seSBpc1NoaWZ0UHJlc3NlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHNlbGVjdGlvbiBpbiBhbiB7QGxpbmsgRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50fSwgYXMgZG9jdW1lbnQgb2Zmc2V0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnRTZWxlY3Rpb24ge1xuICAvKipcbiAgICogVGhlIG9mZnNldCB0aGUgc2VsZWN0aW9uIHN0YXJ0cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBvZmZzZXQgdGhlIHNlbGVjdGlvbiBleHRlbmRzIHRvLCB3aGVyZSB0aGUgY3Vyc29yIGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRWRpdG9ySG9va3Mge1xuICByZWFkb25seSBidWlsZEV4dGVuc2lvbnM6ICgpID0+IEV4dGVuc2lvbltdO1xuICByZWFkb25seSBoYW5kbGVVcGRhdGU6ICh1cGRhdGU6IFZpZXdVcGRhdGUsIGlzQ2hhbmdlZDogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxudHlwZSBFbWJlZGRlZFNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yID0gbmV3IChcbiAgYXBwOiBBcHAsXG4gIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCxcbiAgb3duZXI6IE1hcmtkb3duU2Nyb2xsYWJsZUVkaXRWaWV3T3duZXIsXG4gIGhvb2tzOiBFZGl0b3JIb29rc1xuKSA9PiBNYXJrZG93blNjcm9sbGFibGVFZGl0VmlldztcblxudHlwZSBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvciA9IEV4dHJhY3RDb25zdHJ1Y3RvcjxNYXJrZG93blNjcm9sbGFibGVFZGl0Vmlldz47XG5cbmludGVyZmFjZSBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvckNhY2hlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gRmlsbGVkIG9uIGZpcnN0IHVzZS5cbiAgdmFsdWU6IG51bGwgfCBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3Rvcjtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyAtLSBUaGUgb3duZXIgbGVhcm5zIGl0cyBlZGl0b3IgYWZ0ZXIgdGhlIGVkaXRvciwgd2hpY2ggbmVlZHMgdGhlIG93bmVyLCBpcyBidWlsdC4gKi9cbmludGVyZmFjZSBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JPd25lciBleHRlbmRzIE1hcmtkb3duU2Nyb2xsYWJsZUVkaXRWaWV3T3duZXIge1xuICBlZGl0TW9kZTogTWFya2Rvd25TY3JvbGxhYmxlRWRpdFZpZXcgfCBudWxsO1xuICByZWFkb25seSBnZXRNb2RlOiAoKSA9PiAnc291cmNlJztcbn1cbi8qIGVzbGludC1lbmFibGUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyAtLSBSZXN0b3JlIHRoZSBydWxlIGFmdGVyIHRoZSBvd25lci4gKi9cblxuaW50ZXJmYWNlIFNjcm9sbGFibGVNYXJrZG93bkVkaXRvclByb3RvdHlwZSB7XG4gIHJlYWRvbmx5IGNvbnN0cnVjdG9yOiBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3Rvcjtcbn1cblxuY29uc3Qgc2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3JDYWNoZTogU2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3JDYWNoZSA9IHsgdmFsdWU6IG51bGwgfTtcblxuLyoqXG4gKiBBIGZ1bGwgT2JzaWRpYW4gTWFya2Rvd24gZWRpdG9yIG1vdW50ZWQgaW4gYW55IGVsZW1lbnQ6IExpdmUgUHJldmlldywgZWRpdG9yIGNvbW1hbmRzLCBob3RrZXlzIGFuZCB0aGUgZWRpdG9yXG4gKiBzdWdnZXN0ZXJzIGFsbCB3b3JrIGluIGl0IGFzIHRoZXkgZG8gaW4gYSBub3RlLlxuICpcbiAqIEFkZCBpdCBhcyBhIGNoaWxkIG9mIHRoZSBjb21wb25lbnQgdGhhdCBvd25zIGl0cyBlbGVtZW50OyB1bmxvYWRpbmcgaXQgZGVzdHJveXMgdGhlIGVkaXRvciBhbmQgcmVtb3ZlcyB0aGUgZWRpdG9yJ3NcbiAqIGVsZW1lbnQuIEl0IHdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGVkaXRvckNvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCh7XG4gKiAgIGFwcDogdGhpcy5hcHAsXG4gKiAgIGNvbnRhaW5lckVsLFxuICogICBvbkVudGVyOiAoeyBjb21wb25lbnQsIGlzTW9kaWZpZXJQcmVzc2VkIH0pID0+IHtcbiAqICAgICBpZiAoIWlzTW9kaWZpZXJQcmVzc2VkKSB7XG4gKiAgICAgICByZXR1cm4gZmFsc2U7XG4gKiAgICAgfVxuICogICAgIHNhdmUoY29tcG9uZW50LnZhbHVlKTtcbiAqICAgICByZXR1cm4gdHJ1ZTtcbiAqICAgfSxcbiAqICAgdmFsdWU6ICdJbml0aWFsIHRleHQnXG4gKiB9KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBlZGl0b3IsIGFzIGluIGEgbm90ZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGVkaXRvci5cbiAgICovXG4gIHB1YmxpYyBnZXQgZWRpdG9yKCk6IEVkaXRvciB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuZ2V0U2Nyb2xsYWJsZUVkaXRvcigpLmVkaXRvcik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIENvZGVNaXJyb3IgdmlldyBiZWhpbmQgdGhlIGVkaXRvci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIENvZGVNaXJyb3Igdmlldy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZWRpdG9yVmlldygpOiBFZGl0b3JWaWV3IHtcbiAgICByZXR1cm4gdGhpcy5nZXRTY3JvbGxhYmxlRWRpdG9yKCkuY207XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZWRpdG9yIGhvbGRzIHRoZSBmb2N1cyB3aXRoaW4gaXRzIHdpbmRvdy5cbiAgICpcbiAgICogVW5saWtlIENvZGVNaXJyb3IncyBgRWRpdG9yVmlldy5oYXNGb2N1c2AsIHRoaXMgZG9lcyBub3QgYWxzbyByZXF1aXJlIHRoZSB3aW5kb3cgdG8gaGF2ZSB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzXG4gICAqIGZvY3VzLCBzbyBpdCBzdGF5cyBgdHJ1ZWAgd2hpbGUgdGhlIHVzZXIgaXMgaW4gYW5vdGhlciBhcHBsaWNhdGlvbiBvciBhbm90aGVyIE9ic2lkaWFuIHdpbmRvdyBpcyBpbiBmcm9udC5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGVkaXRvcidzIGNvbnRlbnQgZWxlbWVudCBpcyBpdHMgZG9jdW1lbnQncyBhY3RpdmUgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRWRpdG9yVmlld0ZvY3VzZWRJbkl0c1dpbmRvdyh0aGlzLmdldFNjcm9sbGFibGVFZGl0b3IoKS5hY3RpdmVDTSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgZG9jdW1lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBkb2N1bWVudCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFNjcm9sbGFibGVFZGl0b3IoKS5jbS5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGUgZWRpdG9yIGlzIG1vdW50ZWQgaW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2xzOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3Vyc29yTG9jYXRpb246IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudFNlbGVjdGlvbiB8IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkga2V5bWFwU2NvcGU6IFNjb3BlO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQmx1cjogKChjb21wb25lbnQ6IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCkgPT4gdm9pZCkgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQ2hhbmdlOiAoKHVwZGF0ZTogVmlld1VwZGF0ZSwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQpIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkVudGVyOiAoKHBhcmFtczogRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50RW50ZXJQYXJhbXMpID0+IGJvb2xlYW4pIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkVzY2FwZTogKChjb21wb25lbnQ6IEVtYmVkZGFibGVNYXJrZG93bkVkaXRvckNvbXBvbmVudCkgPT4gdm9pZCkgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uUGFzdGU6ICgoJGV2ZW50OiBDbGlwYm9hcmRFdmVudCwgY29tcG9uZW50OiBFbWJlZGRhYmxlTWFya2Rvd25FZGl0b3JDb21wb25lbnQpID0+IHZvaWQpIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvd25lcjogU2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yT3duZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgc2Nyb2xsYWJsZUVkaXRvcjogTWFya2Rvd25TY3JvbGxhYmxlRWRpdFZpZXcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgY29tcG9uZW50LiBUaGUgZWRpdG9yIGlzIGJ1aWx0IHdoZW4gdGhlIGNvbXBvbmVudCBsb2Fkcy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogRW1iZWRkYWJsZU1hcmtkb3duRWRpdG9yQ29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXBwID0gcGFyYW1zLmFwcDtcbiAgICB0aGlzLmNvbnRhaW5lckVsID0gcGFyYW1zLmNvbnRhaW5lckVsO1xuICAgIHRoaXMuY2xzID0gcGFyYW1zLmNscyA/PyAnJztcbiAgICB0aGlzLmN1cnNvckxvY2F0aW9uID0gcGFyYW1zLmN1cnNvckxvY2F0aW9uID8/IG51bGw7XG4gICAgdGhpcy5pbml0aWFsVmFsdWUgPSBwYXJhbXMudmFsdWUgPz8gJyc7XG4gICAgdGhpcy5vbkJsdXIgPSBwYXJhbXMub25CbHVyID8/IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZSA9IHBhcmFtcy5vbkNoYW5nZSA/PyBudWxsO1xuICAgIHRoaXMub25FbnRlciA9IHBhcmFtcy5vbkVudGVyID8/IG51bGw7XG4gICAgdGhpcy5vbkVzY2FwZSA9IHBhcmFtcy5vbkVzY2FwZSA/PyBudWxsO1xuICAgIHRoaXMub25QYXN0ZSA9IHBhcmFtcy5vblBhc3RlID8/IG51bGw7XG4gICAgdGhpcy5wbGFjZWhvbGRlclRleHQgPSBwYXJhbXMucGxhY2Vob2xkZXIgPz8gJyc7XG4gICAgdGhpcy5rZXltYXBTY29wZSA9IG5ldyBTY29wZShwYXJhbXMuYXBwLnNjb3BlKTtcbiAgICAvLyBUaGUgZWRpdG9yJ3Mgb3duZXIgc3RhbmRzIGluIGZvciBhIGBNYXJrZG93blZpZXdgLiBUaGUgZWRpdG9yIGNvbW1hbmRzIHJlYWNoIHRoZSBlZGl0b3IgdGhyb3VnaFxuICAgIC8vIGBhY3RpdmVFZGl0b3IuZWRpdE1vZGVgIGFuZCBgYWN0aXZlRWRpdG9yLmVkaXRvcmAsIGFuZCBzY3JvbGxpbmcgY2FsbHMgYmFjayBpbnRvIHRoZSBvd25lci5cbiAgICB0aGlzLm93bmVyID0ge1xuICAgICAgYXBwOiBwYXJhbXMuYXBwLFxuICAgICAgZWRpdE1vZGU6IG51bGwsXG4gICAgICBmaWxlOiBudWxsLFxuICAgICAgZ2V0TW9kZTogKCk6ICdzb3VyY2UnID0+ICdzb3VyY2UnLFxuICAgICAgaG92ZXJQb3BvdmVyOiBudWxsLFxuICAgICAgc3luY1Njcm9sbDogbm9vcFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZWRpdG9yLlxuICAgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U2Nyb2xsYWJsZUVkaXRvcigpLmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBlZGl0b3IgYW5kIG1vdW50cyBpdCBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9ubG9hZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbmxvYWQoKTtcbiAgICBjb25zdCBFZGl0b3JDb25zdHJ1Y3RvciA9IGNyZWF0ZUVkaXRvckNsYXNzKGdldFNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yKHRoaXMuYXBwKSk7XG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVkaXRvciA9IG5ldyBFZGl0b3JDb25zdHJ1Y3Rvcih0aGlzLmFwcCwgdGhpcy5jb250YWluZXJFbCwgdGhpcy5vd25lciwge1xuICAgICAgYnVpbGRFeHRlbnNpb25zOiAoKTogRXh0ZW5zaW9uW10gPT4gdGhpcy5idWlsZEV4dGVuc2lvbnMoKSxcbiAgICAgIGhhbmRsZVVwZGF0ZTogKHVwZGF0ZTogVmlld1VwZGF0ZSwgaXNDaGFuZ2VkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlVXBkYXRlKHVwZGF0ZSwgaXNDaGFuZ2VkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNjcm9sbGFibGVFZGl0b3IgPSBzY3JvbGxhYmxlRWRpdG9yO1xuICAgIHRoaXMub3duZXIuZWRpdE1vZGUgPSBzY3JvbGxhYmxlRWRpdG9yO1xuICAgIHRoaXMub3duZXIuZWRpdG9yID0gZW5zdXJlTm9uTnVsbGFibGUoc2Nyb2xsYWJsZUVkaXRvci5lZGl0b3IpO1xuICAgIHRoaXMuYWRkQ2hpbGQoc2Nyb2xsYWJsZUVkaXRvcik7XG5cbiAgICBpZiAodGhpcy5vbkVudGVyKSB7XG4gICAgICAvLyBPYnNpZGlhbidzIGhvdGtleXMgcnVuIGJlZm9yZSBDb2RlTWlycm9yJ3Mga2V5bWFwLCBhbmQgYE1vZCtFbnRlcmAgb3BlbnMgdGhlIGxpbmsgdW5kZXIgdGhlIGN1cnNvci4gQSBoYW5kbGVyXG4gICAgICAvLyByZXR1cm5pbmcgYHRydWVgIHN0b3BzIHRoYXQgaG90a2V5IHdpdGhvdXQgc3RvcHBpbmcgdGhlIGV2ZW50LCBzbyB0aGUgZWRpdG9yIGtleW1hcCBzdGlsbCBzZWVzIHRoZSBrZXkuXG4gICAgICBjb25zdCBzdWJtaXRIb3RrZXlIYW5kbGVyID0gdGhpcy5rZXltYXBTY29wZS5yZWdpc3RlcihbJ01vZCddLCAnRW50ZXInLCAoKSA9PiB0cnVlKTtcbiAgICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmtleW1hcFNjb3BlLnVucmVnaXN0ZXIoc3VibWl0SG90a2V5SGFuZGxlcik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbHMpIHtcbiAgICAgIHNjcm9sbGFibGVFZGl0b3IuZWRpdG9yRWwuYWRkQ2xhc3ModGhpcy5jbHMpO1xuICAgIH1cblxuICAgIHNjcm9sbGFibGVFZGl0b3Iuc2V0KHRoaXMuaW5pdGlhbFZhbHVlLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5jdXJzb3JMb2NhdGlvbikge1xuICAgICAgc2Nyb2xsYWJsZUVkaXRvci5jbS5kaXNwYXRjaCh7XG4gICAgICAgIHNlbGVjdGlvbjogRWRpdG9yU2VsZWN0aW9uLnJhbmdlKHRoaXMuY3Vyc29yTG9jYXRpb24uYW5jaG9yLCB0aGlzLmN1cnNvckxvY2F0aW9uLmhlYWQpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmb2N1c0d1YXJkUGF0Y2hDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBNb25rZXlBcm91bmRDb21wb25lbnQoKSk7XG4gICAgZm9jdXNHdWFyZFBhdGNoQ29tcG9uZW50LnJlZ2lzdGVyTWV0aG9kUGF0Y2goe1xuICAgICAgJG9iamVjdDogdGhpcy5hcHAud29ya3NwYWNlLFxuICAgICAgbWV0aG9kTmFtZTogJ3NldEFjdGl2ZUxlYWYnLFxuICAgICAgcGF0Y2hIYW5kbGVyOiAoeyBmYWxsYmFjayB9KSA9PiB7XG4gICAgICAgIC8vIEEgZm9jdXNlZCBlZGl0b3IgdGhhdCBiZWxvbmdzIHRvIG5vIGxlYWYgd291bGQgb3RoZXJ3aXNlIGxvc2UgaXRzIGZvY3VzIHRvIHRoZSBsZWFmIHRoZSB3b3Jrc3BhY2UgYWN0aXZhdGVzLlxuICAgICAgICAvLyBDb2RlTWlycm9yJ3Mgb3duIGBoYXNGb2N1c2AgaXMgYGZhbHNlYCB3aGVuZXZlciB0aGUgd2luZG93IGxhY2tzIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgZm9jdXMsIHdoaWNoIHdvdWxkIGxldFxuICAgICAgICAvLyB0aGUgd29ya3NwYWNlIHRha2UgdGhlIGZvY3VzIGF3YXkgd2hpbGUgYW5vdGhlciB3aW5kb3cgaXMgaW4gZnJvbnQsIHNvIHRoZSBndWFyZCByZWFkcyB0aGUgRE9NIGZvY3VzIGluc3RlYWQuXG4gICAgICAgIGlmIChpc0VkaXRvclZpZXdGb2N1c2VkSW5JdHNXaW5kb3coc2Nyb2xsYWJsZUVkaXRvci5hY3RpdmVDTSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5hcHAua2V5bWFwLnBvcFNjb3BlKHRoaXMua2V5bWFwU2NvcGUpO1xuICAgICAgaWYgKHRoaXMuYXBwLndvcmtzcGFjZS5hY3RpdmVFZGl0b3IgPT09IHRoaXMub3duZXIpIHtcbiAgICAgICAgdGhpcy5hcHAud29ya3NwYWNlLmFjdGl2ZUVkaXRvciA9IG51bGw7XG4gICAgICB9XG4gICAgICBzY3JvbGxhYmxlRWRpdG9yLmRlc3Ryb3koKTtcbiAgICAgIHNjcm9sbGFibGVFZGl0b3IuZWRpdG9yRWwucmVtb3ZlKCk7XG4gICAgICB0aGlzLm93bmVyLmVkaXRNb2RlID0gbnVsbDtcbiAgICAgIGRlbGV0ZSB0aGlzLm93bmVyLmVkaXRvcjtcbiAgICAgIHRoaXMuc2Nyb2xsYWJsZUVkaXRvciA9IG51bGw7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgbmV3IGRvY3VtZW50LlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldFNjcm9sbGFibGVFZGl0b3IoKS5zZXQodmFsdWUsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGVkaXRvcidzIG93biBleHRlbnNpb25zOiB0aGUgcGxhY2Vob2xkZXIsIHRoZSBmb2N1cyBhbmQgcGFzdGUgaGFuZGxlcnMsIGFuZCB0aGUga2V5IGhhbmRsZXJzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZXh0ZW5zaW9ucy5cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEV4dGVuc2lvbnMoKTogRXh0ZW5zaW9uW10ge1xuICAgIGNvbnN0IGV4dGVuc2lvbnM6IEV4dGVuc2lvbltdID0gW1xuICAgICAgRWRpdG9yVmlldy5kb21FdmVudEhhbmRsZXJzKHtcbiAgICAgICAgYmx1cjogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuYXBwLmtleW1hcC5wb3BTY29wZSh0aGlzLmtleW1hcFNjb3BlKTtcbiAgICAgICAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLm9uQmx1cj8uKHRoaXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZm9jdXM6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmFwcC5rZXltYXAucHVzaFNjb3BlKHRoaXMua2V5bWFwU2NvcGUpO1xuICAgICAgICB9LFxuICAgICAgICBwYXN0ZTogKCRldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLm9uUGFzdGU/LigkZXZlbnQsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIFByZWMuaGlnaGVzdChrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnRW50ZXInLFxuICAgICAgICAgIHJ1bjogKCk6IGJvb2xlYW4gPT4gdGhpcy5pc0VudGVySGFuZGxlZChmYWxzZSwgZmFsc2UpLFxuICAgICAgICAgIHNoaWZ0OiAoKTogYm9vbGVhbiA9PiB0aGlzLmlzRW50ZXJIYW5kbGVkKGZhbHNlLCB0cnVlKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnTW9kLUVudGVyJyxcbiAgICAgICAgICBydW46ICgpOiBib29sZWFuID0+IHRoaXMuaXNFbnRlckhhbmRsZWQodHJ1ZSwgZmFsc2UpLFxuICAgICAgICAgIHNoaWZ0OiAoKTogYm9vbGVhbiA9PiB0aGlzLmlzRW50ZXJIYW5kbGVkKHRydWUsIHRydWUpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdFc2NhcGUnLFxuICAgICAgICAgIHByZXZlbnREZWZhdWx0OiB0cnVlLFxuICAgICAgICAgIHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm9uRXNjYXBlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub25Fc2NhcGUodGhpcyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0pKVxuICAgIF07XG5cbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlclRleHQpIHtcbiAgICAgIGV4dGVuc2lvbnMucHVzaChwbGFjZWhvbGRlcih0aGlzLnBsYWNlaG9sZGVyVGV4dCkpO1xuICAgIH1cblxuICAgIHJldHVybiBleHRlbnNpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBhZnRlciBldmVyeSB1cGRhdGUgb2YgdGhlIGVkaXRvciwgd2l0aCB3aGV0aGVyIHRoZSBkb2N1bWVudCBjaGFuZ2VkLlxuICAgKlxuICAgKiBAcGFyYW0gdXBkYXRlIC0gVGhlIENvZGVNaXJyb3IgdXBkYXRlLlxuICAgKiBAcGFyYW0gaXNDaGFuZ2VkIC0gV2hldGhlciB0aGUgZG9jdW1lbnQgY2hhbmdlZC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVVcGRhdGUodXBkYXRlOiBWaWV3VXBkYXRlLCBpc0NoYW5nZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNDaGFuZ2VkKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlPy4odXBkYXRlLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNjcm9sbGFibGVFZGl0b3IoKTogTWFya2Rvd25TY3JvbGxhYmxlRWRpdFZpZXcge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLnNjcm9sbGFibGVFZGl0b3IsICdUaGUgZWRpdG9yIGlzIGJ1aWx0IHdoZW4gdGhlIGNvbXBvbmVudCBsb2Fkcy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbnRlckhhbmRsZWQoaXNNb2RpZmllclByZXNzZWQ6IGJvb2xlYW4sIGlzU2hpZnRQcmVzc2VkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub25FbnRlcj8uKHsgY29tcG9uZW50OiB0aGlzLCBpc01vZGlmaWVyUHJlc3NlZCwgaXNTaGlmdFByZXNzZWQgfSkgPz8gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRWRpdG9yQ2xhc3MoQmFzZUNvbnN0cnVjdG9yOiBTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3Rvcik6IEVtYmVkZGVkU2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3Ige1xuICByZXR1cm4gY2xhc3MgRW1iZWRkZWRTY3JvbGxhYmxlTWFya2Rvd25FZGl0b3IgZXh0ZW5kcyBCYXNlQ29uc3RydWN0b3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50LCBvd25lcjogTWFya2Rvd25TY3JvbGxhYmxlRWRpdFZpZXdPd25lciwgcHJpdmF0ZSByZWFkb25seSBob29rczogRWRpdG9ySG9va3MpIHtcbiAgICAgIC8vIFRoZSBiYXNlIGJ1aWxkcyBpdHMgZXh0ZW5zaW9ucyBsYXppbHksIG9uIHRoZSBmaXJzdCBgc2V0KClgLCBzbyB0aGUgaG9va3MgYXJlIG5vdCBuZWVkZWQgZHVyaW5nIGBzdXBlcigpYC5cbiAgICAgIHN1cGVyKGFwcCwgY29udGFpbmVyRWwsIG93bmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYnVpbGRMb2NhbEV4dGVuc2lvbnMoKTogRXh0ZW5zaW9uW10ge1xuICAgICAgcmV0dXJuIFsuLi5zdXBlci5idWlsZExvY2FsRXh0ZW5zaW9ucygpLCAuLi50aGlzLmhvb2tzLmJ1aWxkRXh0ZW5zaW9ucygpXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgb25VcGRhdGUodXBkYXRlOiBWaWV3VXBkYXRlLCBpc0NoYW5nZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLm9uVXBkYXRlKHVwZGF0ZSwgaXNDaGFuZ2VkKTtcbiAgICAgIHRoaXMuaG9va3MuaGFuZGxlVXBkYXRlKHVwZGF0ZSwgaXNDaGFuZ2VkKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yKGFwcDogQXBwKTogU2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3Ige1xuICBpZiAoc2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yQ29uc3RydWN0b3JDYWNoZS52YWx1ZSkge1xuICAgIHJldHVybiBzY3JvbGxhYmxlTWFya2Rvd25FZGl0b3JDb25zdHJ1Y3RvckNhY2hlLnZhbHVlO1xuICB9XG5cbiAgLy8gQW4gZWRpdGFibGUgTWFya2Rvd24gZW1iZWQgYnVpbGRzIGFuIGlmcmFtZWQgZWRpdG9yIHdob3NlIGJhc2UgY2xhc3MgaXMgdGhlIHNjcm9sbGFibGUgZWRpdG9yLiBUaGUgZW1iZWQgaXMgZ2l2ZW5cbiAgLy8gbm8gZmlsZSwgd2hpY2ggaXMgd2hhdCBrZWVwcyBpdCBmcm9tIHJlYWRpbmcgb3Igd2F0Y2hpbmcgb25lLlxuICBjb25zdCB3aWRnZXRFZGl0b3JWaWV3ID0gY2FzdFRvPFdpZGdldEVkaXRvclZpZXc+KGFwcC5lbWJlZFJlZ2lzdHJ5LmVtYmVkQnlFeHRlbnNpb24ubWQoeyBhcHAsIGNvbnRhaW5lckVsOiBjcmVhdGVEaXYoKSB9LCBjYXN0VG88VEZpbGU+KG51bGwpLCAnJykpO1xuXG4gIHRyeSB7XG4gICAgd2lkZ2V0RWRpdG9yVmlldy5lZGl0YWJsZSA9IHRydWU7XG4gICAgd2lkZ2V0RWRpdG9yVmlldy5zaG93RWRpdG9yKCk7XG4gICAgY29uc3QgaWZyYW1lZEVkaXRvciA9IGVuc3VyZU5vbk51bGxhYmxlKHdpZGdldEVkaXRvclZpZXcuZWRpdE1vZGUsICdUaGUgTWFya2Rvd24gZW1iZWQgYnVpbHQgbm8gZWRpdG9yLicpO1xuICAgIGNvbnN0IHNjcm9sbGFibGVFZGl0b3JQcm90b3R5cGUgPSBjYXN0VG88U2Nyb2xsYWJsZU1hcmtkb3duRWRpdG9yUHJvdG90eXBlPihPYmplY3QuZ2V0UHJvdG90eXBlT2YoT2JqZWN0LmdldFByb3RvdHlwZU9mKGlmcmFtZWRFZGl0b3IpIGFzIG9iamVjdCkpO1xuICAgIHNjcm9sbGFibGVNYXJrZG93bkVkaXRvckNvbnN0cnVjdG9yQ2FjaGUudmFsdWUgPSBzY3JvbGxhYmxlRWRpdG9yUHJvdG90eXBlLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBzY3JvbGxhYmxlRWRpdG9yUHJvdG90eXBlLmNvbnN0cnVjdG9yO1xuICB9IGZpbmFsbHkge1xuICAgIHdpZGdldEVkaXRvclZpZXcudW5sb2FkKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNFZGl0b3JWaWV3Rm9jdXNlZEluSXRzV2luZG93KGVkaXRvclZpZXc6IEVkaXRvclZpZXcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVkaXRvclZpZXcucm9vdC5hY3RpdmVFbGVtZW50ID09PSBlZGl0b3JWaWV3LmNvbnRlbnRET007XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrREEsbUJBR087QUFDUCxrQkFJTztBQUNQLHNCQUFxQjtBQUNyQiwwQkFBdUI7QUFDdkIseUJBQWtDO0FBQ2xDLHNCQUFzQjtBQUV0QiwwQkFBNEI7QUFDNUIscUNBQXNDO0FBcUl0QyxNQUFNLDJDQUFxRixFQUFFLE9BQU8sS0FBSztBQXlCbEcsTUFBTSwwQ0FBMEMsZ0NBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNakUsSUFBVyxTQUFpQjtBQUMxQixlQUFPLHNDQUFrQixLQUFLLG9CQUFvQixFQUFFLE1BQU07QUFBQSxFQUM1RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLElBQVcsYUFBeUI7QUFDbEMsV0FBTyxLQUFLLG9CQUFvQixFQUFFO0FBQUEsRUFDcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVQSxJQUFXLFdBQW9CO0FBQzdCLFdBQU8sK0JBQStCLEtBQUssb0JBQW9CLEVBQUUsUUFBUTtBQUFBLEVBQzNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsSUFBVyxRQUFnQjtBQUN6QixXQUFPLEtBQUssb0JBQW9C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
@@ -157,6 +157,15 @@ export declare class EmbeddableMarkdownEditorComponent extends ComponentEx {
157
157
  * @returns The CodeMirror view.
158
158
  */
159
159
  get editorView(): EditorView;
160
+ /**
161
+ * Whether the editor holds the focus within its window.
162
+ *
163
+ * Unlike CodeMirror's `EditorView.hasFocus`, this does not also require the window to have the operating system's
164
+ * focus, so it stays `true` while the user is in another application or another Obsidian window is in front.
165
+ *
166
+ * @returns `true` when the editor's content element is its document's active element.
167
+ */
168
+ get hasFocus(): boolean;
160
169
  /**
161
170
  * The current document.
162
171
  *
@@ -99,6 +99,7 @@ var components_exports = {};
99
99
  __export(components_exports, {
100
100
  "abort-signal-component": () => abort_signal_component,
101
101
  "all-windows-event-component": () => all_windows_event_component,
102
+ "all-windows-status-bar-item-component": () => all_windows_status_bar_item_component,
102
103
  "async-error-handler-component": () => async_error_handler_component,
103
104
  "async-events-component": () => async_events_component,
104
105
  "bulk-operation-commit-component": () => bulk_operation_commit_component,
@@ -130,13 +131,16 @@ __export(components_exports, {
130
131
  "rmdir-guard-component": () => rmdir_guard_component,
131
132
  "settings-facet-component": () => settings_facet_component,
132
133
  "settings-migration-component": () => settings_migration_component,
134
+ "shared-component-pool-component": () => shared_component_pool_component,
133
135
  "style-sheet-component": () => style_sheet_component,
134
136
  "syntax-highlighting-component": () => syntax_highlighting_component,
135
- "templates-language-component": () => templates_language_component
137
+ "templates-language-component": () => templates_language_component,
138
+ "workspace-layout-state-component": () => workspace_layout_state_component
136
139
  });
137
140
  module.exports = __toCommonJS(components_exports);
138
141
  var abort_signal_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./abort-signal-component.cjs')), 1);
139
142
  var all_windows_event_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./all-windows-event-component.cjs')), 1);
143
+ var all_windows_status_bar_item_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./all-windows-status-bar-item-component.cjs')), 1);
140
144
  var async_error_handler_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./async-error-handler-component.cjs')), 1);
141
145
  var async_events_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./async-events-component.cjs')), 1);
142
146
  var bulk_operation_commit_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./bulk-operation-commit-component.cjs')), 1);
@@ -168,13 +172,16 @@ var rename_delete_handler_component = __toESM(((module) => module && module.__es
168
172
  var rmdir_guard_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./rmdir-guard-component.cjs')), 1);
169
173
  var settings_facet_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./settings-facet-component.cjs')), 1);
170
174
  var settings_migration_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./settings-migration-component.cjs')), 1);
175
+ var shared_component_pool_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./shared-component-pool-component.cjs')), 1);
171
176
  var style_sheet_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./style-sheet-component.cjs')), 1);
172
177
  var syntax_highlighting_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./syntax-highlighting-component.cjs')), 1);
173
178
  var templates_language_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./templates-language-component.cjs')), 1);
179
+ var workspace_layout_state_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./workspace-layout-state-component.cjs')), 1);
174
180
  // Annotate the CommonJS export names for ESM import in node:
175
181
  0 && (module.exports = {
176
182
  "abort-signal-component": null,
177
183
  "all-windows-event-component": null,
184
+ "all-windows-status-bar-item-component": null,
178
185
  "async-error-handler-component": null,
179
186
  "async-events-component": null,
180
187
  "bulk-operation-commit-component": null,
@@ -206,8 +213,10 @@ var templates_language_component = __toESM(((module) => module && module.__esMod
206
213
  "rmdir-guard-component": null,
207
214
  "settings-facet-component": null,
208
215
  "settings-migration-component": null,
216
+ "shared-component-pool-component": null,
209
217
  "style-sheet-component": null,
210
218
  "syntax-highlighting-component": null,
211
- "templates-language-component": null
219
+ "templates-language-component": null,
220
+ "workspace-layout-state-component": null
212
221
  });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50JyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50LWV4JyBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5leHBvcnQgKiBhcyAnY29uc29sZS1kZWJ1Zy1jb21wb25lbnQnIGZyb20gJy4vY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQnIGZyb20gJy4vY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50JyBmcm9tICcuL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQnIGZyb20gJy4vZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQnIGZyb20gJy4vZmlsZS1leHBsb3Jlci1yb290LW1lbnUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCcgZnJvbSAnLi9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xheW91dC1yZWFkeS1jb21wb25lbnQnIGZyb20gJy4vbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50JyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbW9ua2V5LWFyb3VuZC1jb21wb25lbnQnIGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQnIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNvbnRleHQtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWdhdGUtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5vdGljZS1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50JyBmcm9tICcuL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCcgZnJvbSAnLi9yZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVnaXN0cnktY29tcG9uZW50JyBmcm9tICcuL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZS1ub3Rlcy1jb21wb25lbnQnIGZyb20gJy4vcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQnIGZyb20gJy4vcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncm1kaXItZ3VhcmQtY29tcG9uZW50JyBmcm9tICcuL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50JyBmcm9tICcuL3NldHRpbmdzLWZhY2V0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzdHlsZS1zaGVldC1jb21wb25lbnQnIGZyb20gJy4vc3R5bGUtc2hlZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCcgZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudCcgZnJvbSAnLi90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxrQ0FBQUE7QUFBQSxFQUFBLHFDQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHlDQUFBQztBQUFBLEVBQUEsK0NBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSw4QkFBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsOENBQUFDO0FBQUEsRUFBQSwyQ0FBQUM7QUFBQSxFQUFBLHlEQUFBQztBQUFBLEVBQUEsMENBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHdDQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSwyREFBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLG1DQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsbURBQUFDO0FBQUEsRUFBQSw0QkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEseUNBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUFuQyx5QkFBMEM7QUFDMUMsSUFBQUMsOEJBQStDO0FBQy9DLElBQUFDLGdDQUFpRDtBQUNqRCxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHdDQUF5RDtBQUN6RCxJQUFBQyxlQUFnQztBQUNoQyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLHVCQUF3QztBQUN4QyxJQUFBQyw2QkFBOEM7QUFDOUMsSUFBQUMsdUNBQXdEO0FBQ3hELElBQUFDLG9DQUFxRDtBQUNyRCxJQUFBQyxrREFBbUU7QUFDbkUsSUFBQUMsbUNBQW9EO0FBQ3BELElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxpQ0FBa0Q7QUFDbEQsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLG9EQUFxRTtBQUNyRSxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyw0QkFBNkM7QUFDN0MsSUFBQUMsZ0NBQWlEO0FBQ2pELElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyw2QkFBOEM7QUFDOUMsSUFBQUMsNENBQTZEO0FBQzdELElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHdCQUF5QztBQUN6QyxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLHdCQUF5QztBQUN6QyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMsK0JBQWdEOyIsIm5hbWVzIjpbImFib3J0LXNpZ25hbC1jb21wb25lbnQiLCJhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQiLCJhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCIsImFzeW5jLWV2ZW50cy1jb21wb25lbnQiLCJidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50IiwiY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudCIsImNvbXBvbmVudC1leCIsImNvbnNvbGUtZGVidWctY29tcG9uZW50IiwiY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudCIsImRpc3Bvc2FibGUtY29tcG9uZW50IiwiZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQiLCJlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQiLCJmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQiLCJnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCIsImluY3JlbWVudGFsLWZpbGUtaW5kZXgtY29tcG9uZW50IiwibGF5b3V0LXJlYWR5LWNvbXBvbmVudCIsIm1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsIm1vbmtleS1hcm91bmQtY29tcG9uZW50Iiwibm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsInBsdWdpbi1jb250ZXh0LWNvbXBvbmVudCIsInBsdWdpbi1nYXRlLWNvbXBvbmVudCIsInBsdWdpbi1ub3RpY2UtY29tcG9uZW50IiwicGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCIsInBsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50IiwicGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IiwicG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQiLCJyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCIsInJlZ2lzdHJ5LWNvbXBvbmVudCIsInJlbGVhc2Utbm90ZXMtY29tcG9uZW50IiwicmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudCIsInJtZGlyLWd1YXJkLWNvbXBvbmVudCIsInNldHRpbmdzLWZhY2V0LWNvbXBvbmVudCIsInNldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQiLCJzdHlsZS1zaGVldC1jb21wb25lbnQiLCJzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCIsInRlbXBsYXRlcy1sYW5ndWFnZS1jb21wb25lbnQiXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1zdGF0dXMtYmFyLWl0ZW0tY29tcG9uZW50JyBmcm9tICcuL2FsbC13aW5kb3dzLXN0YXR1cy1iYXItaXRlbS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50JyBmcm9tICcuL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1ldmVudHMtY29tcG9uZW50JyBmcm9tICcuL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQnIGZyb20gJy4vYnVsay1vcGVyYXRpb24tY29tbWl0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdjb21wb25lbnQtZXgnIGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zb2xlLWRlYnVnLWNvbXBvbmVudCcgZnJvbSAnLi9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudCcgZnJvbSAnLi9jb3JlLXBsdWdpbi10b2dnbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdkaXNwb3NhYmxlLWNvbXBvbmVudCcgZnJvbSAnLi9kaXNwb3NhYmxlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQnIGZyb20gJy4vZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2VtYmVkZGFibGUtbWFya2Rvd24tZWRpdG9yLWNvbXBvbmVudCcgZnJvbSAnLi9lbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtZXhwbG9yZXItcm9vdC1tZW51LWNvbXBvbmVudCcgZnJvbSAnLi9maWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2dlbmVyYXRlLW1hcmtkb3duLWxpbmstZGVmYXVsdC1wYXJhbXMtY29tcG9uZW50JyBmcm9tICcuL2dlbmVyYXRlLW1hcmtkb3duLWxpbmstZGVmYXVsdC1wYXJhbXMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdpbmNyZW1lbnRhbC1maWxlLWluZGV4LWNvbXBvbmVudCcgZnJvbSAnLi9pbmNyZW1lbnRhbC1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbGF5b3V0LXJlYWR5LWNvbXBvbmVudCcgZnJvbSAnLi9sYXlvdXQtcmVhZHktY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdtZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQnIGZyb20gJy4vbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdtb25rZXktYXJvdW5kLWNvbXBvbmVudCcgZnJvbSAnLi9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCcgZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY29udGV4dC1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tZ2F0ZS1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLWdhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbm90aWNlLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQnIGZyb20gJy4vcG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3JlY29uZmlndXJhYmxlLWVkaXRvci1leHRlbnNpb24tY29tcG9uZW50JyBmcm9tICcuL3JlY29uZmlndXJhYmxlLWVkaXRvci1leHRlbnNpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWdpc3RyeS1jb21wb25lbnQnIGZyb20gJy4vcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWxlYXNlLW5vdGVzLWNvbXBvbmVudCcgZnJvbSAnLi9yZWxlYXNlLW5vdGVzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9yZW5hbWUtZGVsZXRlLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdybWRpci1ndWFyZC1jb21wb25lbnQnIGZyb20gJy4vcm1kaXItZ3VhcmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5ncy1mYWNldC1jb21wb25lbnQnIGZyb20gJy4vc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50JyBmcm9tICcuL3NldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3NoYXJlZC1jb21wb25lbnQtcG9vbC1jb21wb25lbnQnIGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudC1wb29sLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc3R5bGUtc2hlZXQtY29tcG9uZW50JyBmcm9tICcuL3N0eWxlLXNoZWV0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc3ludGF4LWhpZ2hsaWdodGluZy1jb21wb25lbnQnIGZyb20gJy4vc3ludGF4LWhpZ2hsaWdodGluZy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3RlbXBsYXRlcy1sYW5ndWFnZS1jb21wb25lbnQnIGZyb20gJy4vdGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlLWxheW91dC1zdGF0ZS1jb21wb25lbnQnIGZyb20gJy4vd29ya3NwYWNlLWxheW91dC1zdGF0ZS1jb21wb25lbnQudHMnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLGtDQUFBQTtBQUFBLEVBQUEscUNBQUFDO0FBQUEsRUFBQSwrQ0FBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsZ0NBQUFDO0FBQUEsRUFBQSx5Q0FBQUM7QUFBQSxFQUFBLCtDQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLHNDQUFBQztBQUFBLEVBQUEsOEJBQUFDO0FBQUEsRUFBQSxvQ0FBQUM7QUFBQSxFQUFBLDhDQUFBQztBQUFBLEVBQUEsMkNBQUFDO0FBQUEsRUFBQSx5REFBQUM7QUFBQSxFQUFBLDBDQUFBQztBQUFBLEVBQUEsZ0NBQUFDO0FBQUEsRUFBQSx3Q0FBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEsMkRBQUFDO0FBQUEsRUFBQSxrQ0FBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEscUNBQUFDO0FBQUEsRUFBQSxvQ0FBQUM7QUFBQSxFQUFBLG1EQUFBQztBQUFBLEVBQUEsNEJBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLHlDQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxrQ0FBQUM7QUFBQSxFQUFBLHNDQUFBQztBQUFBLEVBQUEseUNBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSwwQ0FBQUM7QUFBQTtBQUFBO0FBRUEsSUFBQXRDLHlCQUEwQztBQUMxQyxJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUMsd0NBQXlEO0FBQ3pELElBQUFDLGdDQUFpRDtBQUNqRCxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHdDQUF5RDtBQUN6RCxJQUFBQyxlQUFnQztBQUNoQyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLHVCQUF3QztBQUN4QyxJQUFBQyw2QkFBOEM7QUFDOUMsSUFBQUMsdUNBQXdEO0FBQ3hELElBQUFDLG9DQUFxRDtBQUNyRCxJQUFBQyxrREFBbUU7QUFDbkUsSUFBQUMsbUNBQW9EO0FBQ3BELElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxpQ0FBa0Q7QUFDbEQsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLG9EQUFxRTtBQUNyRSxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyw0QkFBNkM7QUFDN0MsSUFBQUMsZ0NBQWlEO0FBQ2pELElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyw2QkFBOEM7QUFDOUMsSUFBQUMsNENBQTZEO0FBQzdELElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHdCQUF5QztBQUN6QyxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLGtDQUFtRDtBQUNuRCxJQUFBQyx3QkFBeUM7QUFDekMsSUFBQUMsZ0NBQWlEO0FBQ2pELElBQUFDLCtCQUFnRDtBQUNoRCxJQUFBQyxtQ0FBb0Q7IiwibmFtZXMiOlsiYWJvcnQtc2lnbmFsLWNvbXBvbmVudCIsImFsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudCIsImFsbC13aW5kb3dzLXN0YXR1cy1iYXItaXRlbS1jb21wb25lbnQiLCJhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCIsImFzeW5jLWV2ZW50cy1jb21wb25lbnQiLCJidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50IiwiY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudCIsImNvbXBvbmVudC1leCIsImNvbnNvbGUtZGVidWctY29tcG9uZW50IiwiY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudCIsImRpc3Bvc2FibGUtY29tcG9uZW50IiwiZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQiLCJlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQiLCJmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQiLCJnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCIsImluY3JlbWVudGFsLWZpbGUtaW5kZXgtY29tcG9uZW50IiwibGF5b3V0LXJlYWR5LWNvbXBvbmVudCIsIm1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsIm1vbmtleS1hcm91bmQtY29tcG9uZW50Iiwibm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsInBsdWdpbi1jb250ZXh0LWNvbXBvbmVudCIsInBsdWdpbi1nYXRlLWNvbXBvbmVudCIsInBsdWdpbi1ub3RpY2UtY29tcG9uZW50IiwicGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCIsInBsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50IiwicGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IiwicG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQiLCJyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCIsInJlZ2lzdHJ5LWNvbXBvbmVudCIsInJlbGVhc2Utbm90ZXMtY29tcG9uZW50IiwicmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudCIsInJtZGlyLWd1YXJkLWNvbXBvbmVudCIsInNldHRpbmdzLWZhY2V0LWNvbXBvbmVudCIsInNldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQiLCJzaGFyZWQtY29tcG9uZW50LXBvb2wtY29tcG9uZW50Iiwic3R5bGUtc2hlZXQtY29tcG9uZW50Iiwic3ludGF4LWhpZ2hsaWdodGluZy1jb21wb25lbnQiLCJ0ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50Iiwid29ya3NwYWNlLWxheW91dC1zdGF0ZS1jb21wb25lbnQiXX0=
@@ -1,6 +1,7 @@
1
1
  /// <reference path="../library-references.d.cts" />
2
2
  export * as 'abort-signal-component' from './abort-signal-component.cjs';
3
3
  export * as 'all-windows-event-component' from './all-windows-event-component.cjs';
4
+ export * as 'all-windows-status-bar-item-component' from './all-windows-status-bar-item-component.cjs';
4
5
  export * as 'async-error-handler-component' from './async-error-handler-component.cjs';
5
6
  export * as 'async-events-component' from './async-events-component.cjs';
6
7
  export * as 'bulk-operation-commit-component' from './bulk-operation-commit-component.cjs';
@@ -32,6 +33,8 @@ export * as 'rename-delete-handler-component' from './rename-delete-handler-comp
32
33
  export * as 'rmdir-guard-component' from './rmdir-guard-component.cjs';
33
34
  export * as 'settings-facet-component' from './settings-facet-component.cjs';
34
35
  export * as 'settings-migration-component' from './settings-migration-component.cjs';
36
+ export * as 'shared-component-pool-component' from './shared-component-pool-component.cjs';
35
37
  export * as 'style-sheet-component' from './style-sheet-component.cjs';
36
38
  export * as 'syntax-highlighting-component' from './syntax-highlighting-component.cjs';
37
39
  export * as 'templates-language-component' from './templates-language-component.cjs';
40
+ export * as 'workspace-layout-state-component' from './workspace-layout-state-component.cjs';