@theia/plugin-ext 1.77.0-next.6 → 1.77.0-next.63

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 (379) hide show
  1. package/lib/common/character-classifier.js.map +1 -1
  2. package/lib/common/plugin-api-rpc.d.ts +2 -0
  3. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  4. package/lib/common/plugin-api-rpc.js.map +1 -1
  5. package/lib/common/plugin-protocol.d.ts +9 -0
  6. package/lib/common/plugin-protocol.d.ts.map +1 -1
  7. package/lib/common/plugin-protocol.js +19 -1
  8. package/lib/common/plugin-protocol.js.map +1 -1
  9. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  10. package/lib/hosted/browser/hosted-plugin.js +4 -2
  11. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  12. package/lib/hosted/browser/hosted-plugin.spec.d.ts +2 -0
  13. package/lib/hosted/browser/hosted-plugin.spec.d.ts.map +1 -0
  14. package/lib/hosted/browser/hosted-plugin.spec.js +59 -0
  15. package/lib/hosted/browser/hosted-plugin.spec.js.map +1 -0
  16. package/lib/hosted/browser/worker/worker-main.js +2 -1
  17. package/lib/hosted/browser/worker/worker-main.js.map +1 -1
  18. package/lib/hosted/browser-only/browser-only-plugin-paths-service.js +1 -1
  19. package/lib/hosted/browser-only/browser-only-plugin-paths-service.js.map +1 -1
  20. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js +2 -1
  21. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js.map +1 -1
  22. package/lib/hosted/node/hosted-plugin-localization-service.js +2 -2
  23. package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
  24. package/lib/hosted/node/hosted-plugin-process.js +1 -1
  25. package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
  26. package/lib/hosted/node/plugin-deployer-handler-impl.js +1 -1
  27. package/lib/hosted/node/plugin-deployer-handler-impl.js.map +1 -1
  28. package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -1
  29. package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
  30. package/lib/hosted/node/plugin-host-proxy.d.ts.map +1 -1
  31. package/lib/hosted/node/plugin-host-proxy.js +10 -6
  32. package/lib/hosted/node/plugin-host-proxy.js.map +1 -1
  33. package/lib/hosted/node/plugin-host-rpc.js +1 -1
  34. package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
  35. package/lib/hosted/node/plugin-host.js +2 -1
  36. package/lib/hosted/node/plugin-host.js.map +1 -1
  37. package/lib/hosted/node/plugin-reader.js +6 -6
  38. package/lib/hosted/node/plugin-reader.js.map +1 -1
  39. package/lib/hosted/node/plugin-reader.spec.js +4 -3
  40. package/lib/hosted/node/plugin-reader.spec.js.map +1 -1
  41. package/lib/hosted/node/plugin-require-override.d.ts.map +1 -1
  42. package/lib/hosted/node/plugin-require-override.js +3 -1
  43. package/lib/hosted/node/plugin-require-override.js.map +1 -1
  44. package/lib/hosted/node/plugin-require-override.spec.d.ts +2 -0
  45. package/lib/hosted/node/plugin-require-override.spec.d.ts.map +1 -0
  46. package/lib/hosted/node/plugin-require-override.spec.js +40 -0
  47. package/lib/hosted/node/plugin-require-override.spec.js.map +1 -0
  48. package/lib/hosted/node/scanners/file-plugin-uri-factory.js +1 -1
  49. package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
  50. package/lib/hosted/node/scanners/scanner-theia.js +2 -2
  51. package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
  52. package/lib/hosted/node/scanners/scanner-theia.spec.js +5 -4
  53. package/lib/hosted/node/scanners/scanner-theia.spec.js.map +1 -1
  54. package/lib/hosted/node-electron/scanner-theia-electron.js +1 -1
  55. package/lib/hosted/node-electron/scanner-theia-electron.js.map +1 -1
  56. package/lib/main/browser/commands.js +1 -1
  57. package/lib/main/browser/commands.js.map +1 -1
  58. package/lib/main/browser/comments/comment-thread-widget.js +3 -2
  59. package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
  60. package/lib/main/browser/comments/comments-contribution.js +1 -1
  61. package/lib/main/browser/comments/comments-contribution.js.map +1 -1
  62. package/lib/main/browser/custom-editors/custom-editor-opener.spec.js +3 -2
  63. package/lib/main/browser/custom-editors/custom-editor-opener.spec.js.map +1 -1
  64. package/lib/main/browser/custom-editors/custom-editor-widget.js +1 -1
  65. package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
  66. package/lib/main/browser/custom-editors/custom-editors-main.js +2 -1
  67. package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
  68. package/lib/main/browser/decorations/decorations-main.js +2 -1
  69. package/lib/main/browser/decorations/decorations-main.js.map +1 -1
  70. package/lib/main/browser/dialogs-main.js +2 -1
  71. package/lib/main/browser/dialogs-main.js.map +1 -1
  72. package/lib/main/browser/documents-main.js +3 -2
  73. package/lib/main/browser/documents-main.js.map +1 -1
  74. package/lib/main/browser/file-system-main-impl.js +3 -2
  75. package/lib/main/browser/file-system-main-impl.js.map +1 -1
  76. package/lib/main/browser/hierarchy/hierarchy-types-converters.js +3 -2
  77. package/lib/main/browser/hierarchy/hierarchy-types-converters.js.map +1 -1
  78. package/lib/main/browser/languages-main.js +3 -3
  79. package/lib/main/browser/languages-main.js.map +1 -1
  80. package/lib/main/browser/languages-main.spec.js +2 -1
  81. package/lib/main/browser/languages-main.spec.js.map +1 -1
  82. package/lib/main/browser/main-file-system-event-service.d.ts +1 -22
  83. package/lib/main/browser/main-file-system-event-service.d.ts.map +1 -1
  84. package/lib/main/browser/main-file-system-event-service.js +2 -48
  85. package/lib/main/browser/main-file-system-event-service.js.map +1 -1
  86. package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
  87. package/lib/main/browser/menus/menus-contribution-handler.js +1 -12
  88. package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
  89. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
  90. package/lib/main/browser/notebooks/renderers/output-webview-internal.js +3 -2
  91. package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
  92. package/lib/main/browser/plugin-contribution-handler.js +1 -1
  93. package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
  94. package/lib/main/browser/plugin-ext-widget.js +1 -1
  95. package/lib/main/browser/plugin-ext-widget.js.map +1 -1
  96. package/lib/main/browser/plugin-icon-service.js +1 -1
  97. package/lib/main/browser/plugin-icon-service.js.map +1 -1
  98. package/lib/main/browser/plugin-icon-theme-service.d.ts +2 -2
  99. package/lib/main/browser/plugin-icon-theme-service.d.ts.map +1 -1
  100. package/lib/main/browser/plugin-icon-theme-service.js +2 -2
  101. package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
  102. package/lib/main/browser/plugin-icon-theme-service.spec.js +2 -1
  103. package/lib/main/browser/plugin-icon-theme-service.spec.js.map +1 -1
  104. package/lib/main/browser/plugin-shared-style.js.map +1 -1
  105. package/lib/main/browser/scm-main.d.ts +3 -1
  106. package/lib/main/browser/scm-main.d.ts.map +1 -1
  107. package/lib/main/browser/scm-main.js +6 -3
  108. package/lib/main/browser/scm-main.js.map +1 -1
  109. package/lib/main/browser/scm-main.spec.js +31 -0
  110. package/lib/main/browser/scm-main.spec.js.map +1 -1
  111. package/lib/main/browser/status-bar-message-registry-main.js +2 -1
  112. package/lib/main/browser/status-bar-message-registry-main.js.map +1 -1
  113. package/lib/main/browser/text-editor-main.js +2 -1
  114. package/lib/main/browser/text-editor-main.js.map +1 -1
  115. package/lib/main/browser/text-editors-main.js +2 -1
  116. package/lib/main/browser/text-editors-main.js.map +1 -1
  117. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +1 -1
  118. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
  119. package/lib/main/browser/view/plugin-view-registry.d.ts +17 -2
  120. package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
  121. package/lib/main/browser/view/plugin-view-registry.js +72 -21
  122. package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
  123. package/lib/main/browser/view/plugin-view-registry.spec.js +188 -9
  124. package/lib/main/browser/view/plugin-view-registry.spec.js.map +1 -1
  125. package/lib/main/browser/view/tree-view-decorator-service.js +1 -1
  126. package/lib/main/browser/view/tree-view-decorator-service.js.map +1 -1
  127. package/lib/main/browser/view/tree-view-widget.js +2 -2
  128. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  129. package/lib/main/browser/webview/pre/main.spec.d.ts +2 -0
  130. package/lib/main/browser/webview/pre/main.spec.d.ts.map +1 -0
  131. package/lib/main/browser/webview/pre/main.spec.js +45 -0
  132. package/lib/main/browser/webview/pre/main.spec.js.map +1 -0
  133. package/lib/main/browser/webview/webview-theme-data-provider.d.ts +1 -1
  134. package/lib/main/browser/webview/webview-theme-data-provider.d.ts.map +1 -1
  135. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  136. package/lib/main/browser/webview/webview.js +6 -3
  137. package/lib/main/browser/webview/webview.js.map +1 -1
  138. package/lib/main/browser/window-state-main.js +2 -1
  139. package/lib/main/browser/window-state-main.js.map +1 -1
  140. package/lib/main/browser/workspace-main.js +1 -1
  141. package/lib/main/browser/workspace-main.js.map +1 -1
  142. package/lib/main/common/plugin-theia-environment.js +1 -1
  143. package/lib/main/common/plugin-theia-environment.js.map +1 -1
  144. package/lib/main/node/handlers/plugin-theia-directory-handler.js +4 -4
  145. package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
  146. package/lib/main/node/handlers/plugin-theia-file-handler.js +3 -3
  147. package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
  148. package/lib/main/node/paths/plugin-paths-service.js +4 -4
  149. package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
  150. package/lib/main/node/plugin-deployer-directory-handler-context-impl.js +2 -1
  151. package/lib/main/node/plugin-deployer-directory-handler-context-impl.js.map +1 -1
  152. package/lib/main/node/plugin-deployer-file-handler-context-impl.js +3 -2
  153. package/lib/main/node/plugin-deployer-file-handler-context-impl.js.map +1 -1
  154. package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
  155. package/lib/main/node/plugin-deployer-impl.js +7 -2
  156. package/lib/main/node/plugin-deployer-impl.js.map +1 -1
  157. package/lib/main/node/plugin-deployer-impl.spec.d.ts +2 -0
  158. package/lib/main/node/plugin-deployer-impl.spec.d.ts.map +1 -0
  159. package/lib/main/node/plugin-deployer-impl.spec.js +66 -0
  160. package/lib/main/node/plugin-deployer-impl.spec.js.map +1 -0
  161. package/lib/main/node/plugin-github-resolver.js +1 -1
  162. package/lib/main/node/plugin-github-resolver.js.map +1 -1
  163. package/lib/main/node/plugin-http-resolver.js +1 -1
  164. package/lib/main/node/plugin-http-resolver.js.map +1 -1
  165. package/lib/main/node/plugin-service.d.ts +1 -1
  166. package/lib/main/node/plugin-service.d.ts.map +1 -1
  167. package/lib/main/node/plugin-service.js +4 -4
  168. package/lib/main/node/plugin-service.js.map +1 -1
  169. package/lib/main/node/plugins-key-value-storage.js +2 -2
  170. package/lib/main/node/plugins-key-value-storage.js.map +1 -1
  171. package/lib/main/node/plugins-key-value-storage.spec.js +2 -1
  172. package/lib/main/node/plugins-key-value-storage.spec.js.map +1 -1
  173. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +2 -2
  174. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
  175. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js +4 -3
  176. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js.map +1 -1
  177. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +3 -3
  178. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
  179. package/lib/main/node/temp-dir-util.js +3 -2
  180. package/lib/main/node/temp-dir-util.js.map +1 -1
  181. package/lib/plugin/comments.d.ts +1 -1
  182. package/lib/plugin/comments.d.ts.map +1 -1
  183. package/lib/plugin/custom-editors.js +2 -1
  184. package/lib/plugin/custom-editors.js.map +1 -1
  185. package/lib/plugin/decorations.spec.js +2 -1
  186. package/lib/plugin/decorations.spec.js.map +1 -1
  187. package/lib/plugin/document-data.d.ts.map +1 -1
  188. package/lib/plugin/document-data.js +0 -1
  189. package/lib/plugin/document-data.js.map +1 -1
  190. package/lib/plugin/documents.js +2 -1
  191. package/lib/plugin/documents.js.map +1 -1
  192. package/lib/plugin/editors-and-documents.js +1 -1
  193. package/lib/plugin/editors-and-documents.js.map +1 -1
  194. package/lib/plugin/file-system-event-service-ext-impl.d.ts +1 -1
  195. package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
  196. package/lib/plugin/file-system-event-service-ext-impl.js +3 -2
  197. package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
  198. package/lib/plugin/file-system-ext-impl.js +5 -4
  199. package/lib/plugin/file-system-ext-impl.js.map +1 -1
  200. package/lib/plugin/file-system-watcher.spec.js +2 -1
  201. package/lib/plugin/file-system-watcher.spec.js.map +1 -1
  202. package/lib/plugin/known-commands.js +5 -5
  203. package/lib/plugin/known-commands.js.map +1 -1
  204. package/lib/plugin/known-commands.spec.js +2 -1
  205. package/lib/plugin/known-commands.spec.js.map +1 -1
  206. package/lib/plugin/languages/call-hierarchy.js +2 -1
  207. package/lib/plugin/languages/call-hierarchy.js.map +1 -1
  208. package/lib/plugin/languages/code-action.js +2 -1
  209. package/lib/plugin/languages/code-action.js.map +1 -1
  210. package/lib/plugin/languages/color.js +2 -1
  211. package/lib/plugin/languages/color.js.map +1 -1
  212. package/lib/plugin/languages/completion.js +2 -1
  213. package/lib/plugin/languages/completion.js.map +1 -1
  214. package/lib/plugin/languages/declaration.js +3 -2
  215. package/lib/plugin/languages/declaration.js.map +1 -1
  216. package/lib/plugin/languages/definition.js +3 -2
  217. package/lib/plugin/languages/definition.js.map +1 -1
  218. package/lib/plugin/languages/document-drop-edit.js +4 -3
  219. package/lib/plugin/languages/document-drop-edit.js.map +1 -1
  220. package/lib/plugin/languages/document-formatting.js +2 -1
  221. package/lib/plugin/languages/document-formatting.js.map +1 -1
  222. package/lib/plugin/languages/document-highlight.js +3 -2
  223. package/lib/plugin/languages/document-highlight.js.map +1 -1
  224. package/lib/plugin/languages/evaluatable-expression.js +2 -1
  225. package/lib/plugin/languages/evaluatable-expression.js.map +1 -1
  226. package/lib/plugin/languages/folding.js +2 -1
  227. package/lib/plugin/languages/folding.js.map +1 -1
  228. package/lib/plugin/languages/hover.js +2 -1
  229. package/lib/plugin/languages/hover.js.map +1 -1
  230. package/lib/plugin/languages/implementation.js +3 -2
  231. package/lib/plugin/languages/implementation.js.map +1 -1
  232. package/lib/plugin/languages/inlay-hints.js +2 -1
  233. package/lib/plugin/languages/inlay-hints.js.map +1 -1
  234. package/lib/plugin/languages/inline-completion.js +2 -1
  235. package/lib/plugin/languages/inline-completion.js.map +1 -1
  236. package/lib/plugin/languages/inline-values.js +2 -1
  237. package/lib/plugin/languages/inline-values.js.map +1 -1
  238. package/lib/plugin/languages/lens.js +2 -1
  239. package/lib/plugin/languages/lens.js.map +1 -1
  240. package/lib/plugin/languages/link-provider.js +2 -1
  241. package/lib/plugin/languages/link-provider.js.map +1 -1
  242. package/lib/plugin/languages/multi-document-highlight.js +3 -2
  243. package/lib/plugin/languages/multi-document-highlight.js.map +1 -1
  244. package/lib/plugin/languages/on-type-formatting.js +2 -1
  245. package/lib/plugin/languages/on-type-formatting.js.map +1 -1
  246. package/lib/plugin/languages/outline.js +3 -2
  247. package/lib/plugin/languages/outline.js.map +1 -1
  248. package/lib/plugin/languages/range-formatting.js +2 -1
  249. package/lib/plugin/languages/range-formatting.js.map +1 -1
  250. package/lib/plugin/languages/reference.js +2 -1
  251. package/lib/plugin/languages/reference.js.map +1 -1
  252. package/lib/plugin/languages/rename.js +2 -1
  253. package/lib/plugin/languages/rename.js.map +1 -1
  254. package/lib/plugin/languages/selection-range.js +2 -1
  255. package/lib/plugin/languages/selection-range.js.map +1 -1
  256. package/lib/plugin/languages/signature.js +2 -1
  257. package/lib/plugin/languages/signature.js.map +1 -1
  258. package/lib/plugin/languages/type-definition.js +3 -2
  259. package/lib/plugin/languages/type-definition.js.map +1 -1
  260. package/lib/plugin/languages/type-hierarchy.js +2 -1
  261. package/lib/plugin/languages/type-hierarchy.js.map +1 -1
  262. package/lib/plugin/languages/util.js +2 -1
  263. package/lib/plugin/languages/util.js.map +1 -1
  264. package/lib/plugin/languages/workspace-symbol.js +2 -1
  265. package/lib/plugin/languages/workspace-symbol.js.map +1 -1
  266. package/lib/plugin/node/debug/debug.spec.js +2 -1
  267. package/lib/plugin/node/debug/debug.spec.js.map +1 -1
  268. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js +3 -2
  269. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js.map +1 -1
  270. package/lib/plugin/node/env-node-ext.js +1 -1
  271. package/lib/plugin/node/env-node-ext.js.map +1 -1
  272. package/lib/plugin/notebook/notebook-document.js +3 -2
  273. package/lib/plugin/notebook/notebook-document.js.map +1 -1
  274. package/lib/plugin/notebook/notebook-editors.js +2 -1
  275. package/lib/plugin/notebook/notebook-editors.js.map +1 -1
  276. package/lib/plugin/notebook/notebooks.js +2 -1
  277. package/lib/plugin/notebook/notebooks.js.map +1 -1
  278. package/lib/plugin/path.spec.js +2 -1
  279. package/lib/plugin/path.spec.js.map +1 -1
  280. package/lib/plugin/plugin-context.js +1 -1
  281. package/lib/plugin/plugin-context.js.map +1 -1
  282. package/lib/plugin/plugin-icon-path.js +2 -1
  283. package/lib/plugin/plugin-icon-path.js.map +1 -1
  284. package/lib/plugin/plugin-manager.js +1 -1
  285. package/lib/plugin/plugin-manager.js.map +1 -1
  286. package/lib/plugin/preference-registry.spec.js +2 -1
  287. package/lib/plugin/preference-registry.spec.js.map +1 -1
  288. package/lib/plugin/quick-open.js +2 -1
  289. package/lib/plugin/quick-open.js.map +1 -1
  290. package/lib/plugin/relative-pattern.spec.js +3 -2
  291. package/lib/plugin/relative-pattern.spec.js.map +1 -1
  292. package/lib/plugin/scm.d.ts.map +1 -1
  293. package/lib/plugin/scm.js +14 -1
  294. package/lib/plugin/scm.js.map +1 -1
  295. package/lib/plugin/scm.spec.js +56 -1
  296. package/lib/plugin/scm.spec.js.map +1 -1
  297. package/lib/plugin/tasks/task-provider.js +2 -1
  298. package/lib/plugin/tasks/task-provider.js.map +1 -1
  299. package/lib/plugin/tasks/tasks.js +2 -1
  300. package/lib/plugin/tasks/tasks.js.map +1 -1
  301. package/lib/plugin/telemetry-ext.spec.js +2 -1
  302. package/lib/plugin/telemetry-ext.spec.js.map +1 -1
  303. package/lib/plugin/terminal-ext.js +1 -1
  304. package/lib/plugin/terminal-ext.js.map +1 -1
  305. package/lib/plugin/terminal-ext.spec.js +2 -1
  306. package/lib/plugin/terminal-ext.spec.js.map +1 -1
  307. package/lib/plugin/tests.js +1 -1
  308. package/lib/plugin/tests.js.map +1 -1
  309. package/lib/plugin/text-editor.js +2 -1
  310. package/lib/plugin/text-editor.js.map +1 -1
  311. package/lib/plugin/text-editors.js +2 -1
  312. package/lib/plugin/text-editors.js.map +1 -1
  313. package/lib/plugin/tree/tree-views.d.ts.map +1 -1
  314. package/lib/plugin/tree/tree-views.js +2 -1
  315. package/lib/plugin/tree/tree-views.js.map +1 -1
  316. package/lib/plugin/type-converters.js +6 -5
  317. package/lib/plugin/type-converters.js.map +1 -1
  318. package/lib/plugin/type-converters.spec.js +5 -4
  319. package/lib/plugin/type-converters.spec.js.map +1 -1
  320. package/lib/plugin/types-impl.d.ts +10 -0
  321. package/lib/plugin/types-impl.d.ts.map +1 -1
  322. package/lib/plugin/types-impl.js +7 -1
  323. package/lib/plugin/types-impl.js.map +1 -1
  324. package/lib/plugin/types-impl.spec.js +25 -2
  325. package/lib/plugin/types-impl.spec.js.map +1 -1
  326. package/lib/plugin/workspace.js +2 -2
  327. package/lib/plugin/workspace.js.map +1 -1
  328. package/lib/plugin/workspace.spec.js +2 -1
  329. package/lib/plugin/workspace.spec.js.map +1 -1
  330. package/lib/plugin-ext-frontend-electron-module.js +2 -1
  331. package/lib/plugin-ext-frontend-electron-module.js.map +1 -1
  332. package/lib/plugin-ext-frontend-module.js +2 -1
  333. package/lib/plugin-ext-frontend-module.js.map +1 -1
  334. package/package.json +32 -32
  335. package/src/common/character-classifier.ts +1 -1
  336. package/src/common/plugin-api-rpc.ts +2 -0
  337. package/src/common/plugin-protocol.ts +18 -0
  338. package/src/hosted/browser/hosted-plugin.spec.ts +66 -0
  339. package/src/hosted/browser/hosted-plugin.ts +3 -1
  340. package/src/hosted/node/plugin-host-proxy.ts +6 -3
  341. package/src/hosted/node/plugin-reader.ts +1 -1
  342. package/src/hosted/node/plugin-require-override.spec.ts +44 -0
  343. package/src/hosted/node/plugin-require-override.ts +1 -0
  344. package/src/main/browser/file-system-main-impl.ts +1 -1
  345. package/src/main/browser/main-file-system-event-service.ts +2 -49
  346. package/src/main/browser/menus/menus-contribution-handler.ts +6 -13
  347. package/src/main/browser/notebooks/renderers/output-webview-internal.ts +6 -3
  348. package/src/main/browser/plugin-shared-style.ts +2 -2
  349. package/src/main/browser/scm-main.spec.ts +32 -0
  350. package/src/main/browser/scm-main.ts +6 -2
  351. package/src/main/browser/view/plugin-view-registry.spec.ts +277 -12
  352. package/src/main/browser/view/plugin-view-registry.ts +76 -21
  353. package/src/main/browser/view/tree-view-widget.tsx +1 -1
  354. package/src/main/browser/webview/pre/main.js +19 -10
  355. package/src/main/browser/webview/pre/main.spec.ts +46 -0
  356. package/src/main/browser/webview/webview.ts +7 -3
  357. package/src/main/node/handlers/plugin-theia-directory-handler.ts +1 -1
  358. package/src/main/node/handlers/plugin-theia-file-handler.ts +1 -1
  359. package/src/main/node/plugin-deployer-file-handler-context-impl.ts +1 -1
  360. package/src/main/node/plugin-deployer-impl.spec.ts +75 -0
  361. package/src/main/node/plugin-deployer-impl.ts +7 -2
  362. package/src/main/node/plugin-service.ts +1 -1
  363. package/src/plugin/document-data.ts +0 -1
  364. package/src/plugin/file-system-event-service-ext-impl.ts +1 -1
  365. package/src/plugin/file-system-ext-impl.ts +2 -2
  366. package/src/plugin/known-commands.ts +5 -5
  367. package/src/plugin/plugin-context.ts +4 -4
  368. package/src/plugin/scm.spec.ts +67 -1
  369. package/src/plugin/scm.ts +18 -1
  370. package/src/plugin/tests.ts +2 -2
  371. package/src/plugin/tree/tree-views.ts +2 -1
  372. package/src/plugin/type-converters.spec.ts +1 -1
  373. package/src/plugin/types-impl.spec.ts +25 -0
  374. package/src/plugin/types-impl.ts +7 -0
  375. package/lib/main/browser/main-file-system-event-service.spec.d.ts +0 -2
  376. package/lib/main/browser/main-file-system-event-service.spec.d.ts.map +0 -1
  377. package/lib/main/browser/main-file-system-event-service.spec.js +0 -100
  378. package/lib/main/browser/main-file-system-event-service.spec.js.map +0 -1
  379. package/src/main/browser/main-file-system-event-service.spec.ts +0 -125
@@ -96,6 +96,7 @@ let PluginViewRegistry = class PluginViewRegistry {
96
96
  // TODO workbench.panel.comments - Theia does not have a proper comments view yet
97
97
  this.updateFocusedView();
98
98
  this.shell.onDidChangeActiveWidget(() => this.updateFocusedView());
99
+ this.onDidExpandView(viewId => this.prepareWelcomeOnlyView(viewId).catch(e => this.logger.error(e)));
99
100
  this.widgetManager.onWillCreateWidget(({ factoryId, widget, waitUntil }) => {
100
101
  if (factoryId === browser_2.EXPLORER_VIEW_CONTAINER_ID && widget instanceof browser_1.ViewContainer) {
101
102
  waitUntil(this.prepareViewContainer('explorer', widget));
@@ -267,16 +268,32 @@ let PluginViewRegistry = class PluginViewRegistry {
267
268
  }, viewContainer.when?.trim()));
268
269
  return toDispose;
269
270
  }
271
+ /**
272
+ * Toggles the view container the same way as {@link AbstractViewContribution.toggleView}:
273
+ * collapses its panel if it is the visible tab, otherwise opens and activates it.
274
+ */
270
275
  async toggleViewContainer(id) {
271
- let widget = await this.getPluginViewContainer(id);
272
- if (widget && widget.isAttached) {
273
- widget.dispose();
274
- }
275
- else {
276
- widget = await this.openViewContainer(id);
277
- if (widget) {
278
- this.shell.activateWidget(widget.id);
276
+ const existing = await this.getPluginViewContainer(id);
277
+ const tabBar = existing && this.shell.getTabBarFor(existing);
278
+ const area = existing && this.shell.getAreaFor(existing);
279
+ if (existing && tabBar && area && this.shell.isExpanded(area) && tabBar.currentTitle === existing.title) {
280
+ if (area === 'left' || area === 'right') {
281
+ await this.shell.collapsePanel(area);
282
+ }
283
+ else if (area === 'bottom') {
284
+ // Don't collapse the bottom panel if it's currently split
285
+ if (this.shell.bottomAreaTabBars.length === 1) {
286
+ await this.shell.collapsePanel('bottom');
287
+ }
279
288
  }
289
+ else {
290
+ existing.dispose();
291
+ }
292
+ return;
293
+ }
294
+ const widget = await this.openViewContainer(id);
295
+ if (widget) {
296
+ await this.shell.activateWidget(widget.id);
280
297
  }
281
298
  }
282
299
  doRegisterViewContainer(id, location, options, when) {
@@ -289,18 +306,22 @@ let PluginViewRegistry = class PluginViewRegistry {
289
306
  toDispose.push(disposable_1.Disposable.create(() => this.viewContainerClauseContexts.delete(id)));
290
307
  }
291
308
  }
292
- const toggleCommandId = `plugin.view-container.${id}.toggle`;
293
309
  // Some plugins may register empty view containers.
294
310
  // We should not register commands for them immediately, as that leads to bad UX.
295
311
  // Instead, we register commands the first time we add a view to them.
296
312
  let activate = () => {
313
+ // Like VS Code, use the container's id, e.g. `workbench.view.extension.${id}`, as the command id
297
314
  toDispose.push(this.commands.registerCommand({
298
- id: toggleCommandId,
315
+ id,
299
316
  category: core_1.nls.localizeByDefault('View'),
300
317
  label: core_1.nls.localizeByDefault('Toggle {0}', options.label)
301
318
  }, {
302
319
  execute: () => this.toggleViewContainer(id)
303
320
  }));
321
+ // Kept for backward compatibility with keybindings that use the former command id
322
+ toDispose.push(this.commands.registerCommand({ id: `plugin.view-container.${id}.toggle` }, {
323
+ execute: () => this.toggleViewContainer(id)
324
+ }));
304
325
  toDispose.push(this.registerViewMenuAction(id, options.label));
305
326
  toDispose.push(this.quickView?.registerItem({
306
327
  label: options.label,
@@ -401,7 +422,7 @@ let PluginViewRegistry = class PluginViewRegistry {
401
422
  }
402
423
  }
403
424
  const disposable = this.menus.registerMenuAction(browser_1.CommonMenus.VIEW_VIEWS, {
404
- commandId: `plugin.view-container.${id}.toggle`,
425
+ commandId: id,
405
426
  label: menuLabel,
406
427
  when: containerInfo.when
407
428
  });
@@ -468,14 +489,22 @@ let PluginViewRegistry = class PluginViewRegistry {
468
489
  when: view.when,
469
490
  open: () => this.openView(view.id, { activate: true })
470
491
  }));
471
- toDispose.push(this.commands.registerCommand({ id: `${view.id}.focus` }, {
472
- execute: async () => { await this.openView(view.id, { activate: true }); }
492
+ toDispose.push(this.commands.registerCommand({
493
+ id: `${view.id}.focus`,
494
+ category: this.viewContainers.get(viewContainerId)?.options.label,
495
+ label: core_1.nls.localizeByDefault('Focus on {0} View', view.name)
496
+ }, {
497
+ execute: async (options) => { await this.openView(view.id, this.toOpenViewOptions(options)); },
498
+ isVisible: () => this.isViewVisible(view.id)
473
499
  }));
474
500
  toDispose.push(this.commands.registerCommand({ id: `${view.id}.open` }, {
475
- execute: async () => { await this.openView(view.id, { activate: true }); }
501
+ execute: async (options) => { await this.openView(view.id, this.toOpenViewOptions(options)); }
476
502
  }));
477
503
  return toDispose;
478
504
  }
505
+ toOpenViewOptions(options) {
506
+ return options?.preserveFocus ? { reveal: true } : { activate: true };
507
+ }
479
508
  async resolveWebviewView(viewId, webview, cancellation) {
480
509
  const resolver = this.webviewViewResolvers.get(viewId);
481
510
  if (resolver) {
@@ -545,13 +574,20 @@ let PluginViewRegistry = class PluginViewRegistry {
545
574
  this.openView(viewId, preserveFocus ? { reveal: true } : { activate: true });
546
575
  }
547
576
  };
548
- const toDispose = this.onNewResolverRegistered(resolver => {
577
+ // Like VS Code, resolve a webview view only once it is visible: extensions start work in
578
+ // `resolveWebviewView`, and views that are hidden or never opened should not pay for it.
579
+ const resolveIfVisible = () => {
580
+ if (webview.isVisible) {
581
+ webviewView.resolve();
582
+ }
583
+ };
584
+ const toDispose = new disposable_1.DisposableCollection(this.onNewResolverRegistered(resolver => {
549
585
  if (resolver.viewType === viewId) {
550
586
  // Potentially re-activate if we have a new resolver
551
- webviewView.resolve();
587
+ resolveIfVisible();
552
588
  }
553
- });
554
- webviewView.resolve();
589
+ }), webview.onDidChangeVisibility(resolveIfVisible));
590
+ resolveIfVisible();
555
591
  return webviewView;
556
592
  }
557
593
  registerViewWelcome(viewWelcome) {
@@ -642,7 +678,8 @@ let PluginViewRegistry = class PluginViewRegistry {
642
678
  const currentDataWidget = widget.widgets[0];
643
679
  const webviewId = currentDataWidget instanceof webview_1.WebviewWidget ? currentDataWidget.identifier?.id : undefined;
644
680
  const viewDataWidget = await this.createViewDataWidget(view.id, webviewId);
645
- if (widget.isDisposed) {
681
+ // `onDidInitializeLayout` can dispose the data widget before it is added here.
682
+ if (widget.isDisposed || viewDataWidget?.isDisposed) {
646
683
  viewDataWidget?.dispose();
647
684
  return;
648
685
  }
@@ -868,8 +905,8 @@ let PluginViewRegistry = class PluginViewRegistry {
868
905
  return `view-welcome.${viewId}.${index}`;
869
906
  }
870
907
  /**
871
- * retrieve restored layout state from previous user session but close widgets
872
- * widgets should be opened only when view data providers are registered
908
+ * Retrieves the restored state of the data widgets and disposes them: a view gets a new data widget
909
+ * once its data provider registers or, for a view with only welcome content, once it is expanded.
873
910
  */
874
911
  onDidInitializeLayout() {
875
912
  const widgets = this.widgetManager.getWidgets(exports.PLUGIN_VIEW_DATA_FACTORY_ID);
@@ -945,6 +982,20 @@ let PluginViewRegistry = class PluginViewRegistry {
945
982
  }
946
983
  return widget;
947
984
  }
985
+ /**
986
+ * Gives an expanded view that has `viewsWelcome` content but neither a data provider nor a
987
+ * content widget its welcome widget, which `onDidInitializeLayout` disposes when it was restored.
988
+ */
989
+ async prepareWelcomeOnlyView(viewId) {
990
+ if (this.views.get(viewId)?.[1]?.type === common_1.PluginViewType.Webview
991
+ || this.viewDataProviders.has(viewId) || !this.getViewWelcomes(viewId).length) {
992
+ return;
993
+ }
994
+ const view = await this.getView(viewId);
995
+ if (view && !view.widgets.length) {
996
+ await this.prepareView(view);
997
+ }
998
+ }
948
999
  async createViewWelcomeWidget(viewId) {
949
1000
  const widget = await this.widgetManager.getOrCreateWidget(exports.PLUGIN_VIEW_DATA_FACTORY_ID, { id: viewId });
950
1001
  if (!widget.model.root) {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-view-registry.js","sourceRoot":"","sources":["../../../../src/main/browser/view/plugin-view-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-view-registry.js","sourceRoot":"","sources":["../../../../src/main/browser/view/plugin-view-registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;AAEhF,4DAAkG;AAClG,qDAKiC;AACjC,4CAAmF;AACnF,gEAA2D;AAC3D,6EAAyE;AACzE,6DAAoF;AACpF,8EAAwH;AACxH,kEAA8D;AAE9D,0DAAkH;AAClH,gGAAgG;AAChG,8HAAwH;AACxH,kEAAqF;AACrF,4DAAiE;AACjE,sDAAgE;AAChE,wDAA8D;AAC9D,qFAA4F;AAC5F,yEAAmE;AACnE,sFAAuF;AACvF,2EAAuE;AACvE,4GAAuG;AAEvG,oHAA8G;AAC9G,gGAA6F;AAE7F,gDAA4E;AAC5E,sEAAwE;AACxE,sDAA2D;AAC3D,sCAA2C;AAE3C,sEAA+D;AAC/D,sFAAmF;AAEtE,QAAA,sBAAsB,GAAG,aAAa,CAAC;AACvC,QAAA,gCAAgC,GAAG,uBAAuB,CAAC;AAC3D,QAAA,2BAA2B,GAAG,kBAAkB,CAAC;AAavD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QAsCgB,2BAAsB,GAAG,IAAI,eAAO,EAAU,CAAC;QACzD,oBAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAE5C,UAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC1C,iBAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;QAChD,mBAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;QACtD,mBAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC7C,uBAAkB,GAAG,IAAI,GAAG,EAAmC,CAAC;QAChE,gCAA2B,GAAG,IAAI,GAAG,EAAmC,CAAC;QAEzE,gCAA2B,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC7D,wBAAmB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAEpD,sBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;QACxD,kBAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE1C,yBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC5D,mCAA8B,GAAG,IAAI,eAAO,EAAiC,CAAC;QACxF,4BAAuB,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC;QAE5D,wBAAmB,GAAG,IAAI,GAAG,EAA+E,CAAC;QAEtH,wBAAmB,GAAG,CAAC,CAAC;IAmiCpC,CAAC;;aAjiC2B,4BAAuB,GAAG,IAAI,GAAG,CAAS;QAC9D,UAAU;QACV,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;KACV,CAAC,AAN6C,CAM5C;aAEqB,gBAAW,GAAwB,IAAI,GAAG,CAAC;QAC/D,mBAAmB;QACnB,CAAC,oCAA0B,EAAE,yBAAyB,CAAC;QACvD,CAAC,wCAAqB,EAAE,oBAAoB,CAAC;QAC7C,CAAC,sDAAwB,EAAE,uBAAuB,CAAC;QACnD,CAAC,0BAAW,CAAC,EAAE,EAAE,sBAAsB,CAAC;QACxC,CAAC,+BAA+B,EAAE,2BAA2B,CAAC,EAAE,+EAA+E;QAC/I,CAAC,mCAAkB,EAAE,yBAAyB,CAAC;QAC/C,CAAC,+CAAsB,EAAE,wBAAwB,CAAC;QAClD,CAAC,4BAAY,CAAC,EAAE,EAAE,wBAAwB,CAAC;QAC3C,CAAC,qDAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,sBAAsB,CAAC;QAC7D,qKAAqK;QACrK,4DAA4D;QAC5D,+GAA+G;KAClH,CAAC,AAdiC,CAchC;IAGO,IAAI;QAEV,iFAAiF;QAEjF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;YACvE,IAAI,SAAS,KAAK,oCAA0B,IAAI,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBACpF,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,SAAS,KAAK,wCAAqB,IAAI,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBAC/E,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,SAAS,KAAK,sDAAwB,IAAI,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBAClF,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,SAAS,KAAK,+CAAsB,IAAI,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBAChF,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,SAAS,KAAK,0BAAW,CAAC,EAAE,IAAI,MAAM,YAAY,0BAAW,EAAE,CAAC;gBAChE,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC/D,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,SAAS,KAAK,wCAAgC,IAAI,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBAC1F,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,SAAS,KAAK,8BAAsB,IAAI,MAAM,YAAY,qCAAgB,EAAE,CAAC;gBAC7E,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,KAAK,CAAC,MAAM,YAAY,6BAAmB,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,IAAI,iCAAoB,EAAE,CAAC;gBAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBACrC,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,UAAG,CAAC,iBAAiB,CAC1B,wCAAwC,EACxC,IAAI,UAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,8CAA8C,CACzF;oBACD,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC,CAAC;gBACJ,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,YAAY,sBAAS,EAAE,CAAC;gBACpC,MAAM,UAAU,GAAG,IAAI,iCAAoB,EAAE,CAAC;gBAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBACrC,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,UAAG,CAAC,iBAAiB,CAAC,0EAA0E,CAAC;0BACpG,MAAM,UAAG,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,kCAAkC;oBAC7F,IAAI,EAAE,qBAAqB;oBAC3B,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC,CAAC;gBACJ,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACnC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnD,MAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxE,IAAI,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC;YACD,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,IAAI,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;YACD,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrD,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACjE,IAAI,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC5C,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAAE,GAAuB,EAAE,EAAE;YACxE,IAAI,mBAAmB,GAAG,IAAI,iCAAoB,EAAE,CAAC;YACrD,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBAC7B,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAC9B,mBAAmB,GAAG,IAAI,iCAAoB,EAAE,CAAC;gBACjD,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,YAAY,oBAAU,EAAE,CAAC;oBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC3B,IAAI,KAAK,GAAG,oBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,wCAAgC,CAAC,EAAE,CAAC;4BACzD,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtD,CAAC;oBACL,CAAC;oBACD,MAAM,MAAM,GAAG,GAAG,EAAE;wBAChB,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;4BAC5B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACnB,CAAC;6BAAM,CAAC;4BACJ,GAAG,CAAC,KAAK,EAAE,CAAC;wBAChB,CAAC;oBACL,CAAC,CAAC;oBACF,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;wBACvD,MAAM,EAAE,CAAC;oBACb,CAAC,CAAC,CAAC,CAAC;oBACJ,MAAM,EAAE,CAAC;gBAEb,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7B,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC5F,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC/F,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,2BAA2B,CAAC,MAAc;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,0BAA0B,EAAE,CAAC;QACxC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,MAAc;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QACD,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QACD,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAC9C,CAAC;IACN,CAAC;IAES,aAAa,CAAC,MAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtG,CAAC;IAED,qBAAqB,CAAC,QAAgB,EAAE,aAA4B;QAChE,MAAM,WAAW,GAAG,4BAA4B,aAAa,CAAC,EAAE,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC/F,OAAO,uBAAU,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,6BAA6B,CAAC;QACrD,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,6BAA6B,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,6EAA6E;QAE3J,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,qBAAS,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE,CAAC;gBACP,cAAc,GAAG,qBAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,CAAC;QACL,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,uCAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC;6BAClE,OAAO;qCACC,OAAO;aAC/B,CAAC,CAAC,CAAC;QACR,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE;YAC/D,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,iGAAiG;YACjG,SAAS,EAAE,CAAC,cAAc,IAAI,cAAc,CAAC,GAAG,GAAG,GAAG,SAAS;YAC/D,SAAS,EAAE,IAAI;SAClB,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YACD,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAES,uBAAuB,CAAC,EAAU,EAAE,QAAgB,EAAE,OAAkC,EAAE,IAAa;QAC7G,MAAM,SAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC/C,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;QACD,mDAAmD;QACnD,iFAAiF;QACjF,sEAAsE;QACtE,IAAI,QAAQ,GAAG,GAAG,EAAE;YAChB,iGAAiG;YACjG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;gBACzC,EAAE;gBACF,QAAQ,EAAE,UAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACvC,KAAK,EAAE,UAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;aAC5D,EAAE;gBACC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAC,CAAC;YACJ,kFAAkF;YAClF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAE;gBACvF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAC,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;gBACxC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;gBAClD,IAAI;gBACJ,IAAI,EAAE,KAAK,IAAI,EAAE;oBACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,MAAM,EAAE,CAAC;wBACT,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzC,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC,CAAC;YACJ,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,0CAA0C;YAC1C,QAAQ,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE;YACxB,EAAE;YACF,QAAQ;YACR,IAAI;YACJ,OAAO;YACP,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,sBAAsB,CAAC,QAA4B;QACzD,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,OAAO,UAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACtD,KAAK,OAAO,CAAC,CAAC,OAAO,UAAG,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;YACjE,KAAK,QAAQ,CAAC,CAAC,OAAO,UAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC9B,CAAC;IACL,CAAC;IAES,oBAAoB,CAAC,eAAuB;QAClD,IAAI,oBAAkB,CAAC,uBAAuB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAClE,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC9D,CAAC;IAES,2BAA2B,CAAC,eAAuB;QACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;QACpG,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;QAC/E,IAAI,mBAAmB,IAAI,cAAc,EAAE,CAAC;YACxC,OAAO,GAAG,mBAAmB,MAAM,cAAc,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAES,sBAAsB,CAAC,WAAmB,EAAE,KAAa;QAC/D,IAAI,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,GAAG,EAAE,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACxB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,UAAU,EAAE,CAAC;gBACb,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAES,oBAAoB,CAAC,KAAa;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO;QACX,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,SAAS;YACb,CAAC;YACD,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxE,IAAI,WAAW,EAAE,CAAC;oBACd,SAAS,GAAG,GAAG,KAAK,KAAK,WAAW,GAAG,CAAC;gBAC5C,CAAC;YACL,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,qBAAW,CAAC,UAAU,EAAE;gBACrE,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,aAAa,CAAC,IAAI;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAES,sBAAsB,CAAC,WAAmB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtG,CAAC;IAES,KAAK,CAAC,6BAA6B,CAAC,WAAmB;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,yFAAyF;YACzF,OAAO;QACX,CAAC;QACD,8FAA8F;QAC9F,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,eAAuB;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,YAAY,CAAC,eAAuB,EAAE,IAAU;QAC5C,IAAI,CAAC,oBAAkB,CAAC,uBAAuB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACnE,0IAA0I;YAC1I,eAAe,GAAG,4BAA4B,eAAe,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,OAAO,uBAAU,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;QAE7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpE,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAI,aAAa,EAAE,CAAC;YAChB,aAAa,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC/D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,WAAW,EAAE,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC;YAC9D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACzD,CAAC,CAAC,CAAC;QACJ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ;YACtB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,KAAK;YACjE,KAAK,EAAE,UAAG,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC;SAC/D,EAAE;YACC,OAAO,EAAE,KAAK,EAAE,OAAqC,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5H,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAC,CAAC;QACJ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE;YACpE,OAAO,EAAE,KAAK,EAAE,OAAqC,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/H,CAAC,CAAC,CAAC;QACJ,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,iBAAiB,CAAC,OAAqC;QAC7D,OAAO,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,OAAoB,EAAE,YAA+B;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;QAC1C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,uBAAQ,EAAQ,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,QAA6B;QACnE,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/D,MAAM,SAAS,GAAG,IAAI,iCAAoB,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,cAAc,EAAE,CAAC;YACjB,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,gCAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,MAAc;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CACtD,uBAAa,CAAC,UAAU,EAA2B;YAC/C,EAAE,EAAE,IAAA,mBAAY,GAAE;YAClB,MAAM;SACT,CAAC,CAAC;QACP,OAAO,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,IAAI,YAAgC,CAAC;QACrC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,kBAA6C,CAAC;QAElD,MAAM,WAAW,GAAgB;YAC7B,OAAO;YAEP,IAAI,qBAAqB,KAAqB,OAAO,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACrF,IAAI,YAAY,KAAkB,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YAEhE,IAAI,KAAK,KAAyB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/D,IAAI,KAAK,CAAC,KAAyB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAE3E,IAAI,WAAW,KAAyB,OAAO,YAAY,CAAC,CAAC,CAAC;YAC9D,IAAI,WAAW,CAAC,KAAyB,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC;YAEpE,OAAO,EAAE,GAAG,EAAE;gBACV,SAAS,GAAG,KAAK,CAAC;gBAClB,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,SAAS,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAChB,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO;gBACX,CAAC;gBACD,IAAI,kBAAkB,EAAE,CAAC;oBACrB,OAAO,kBAAkB,CAAC;gBAC9B,CAAC;gBACD,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,gCAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAChG,SAAS,GAAG,IAAI,CAAC;oBACjB,kBAAkB,GAAG,SAAS,CAAC;gBACnC,CAAC,CAAC,CAAC;gBACH,OAAO,kBAAkB,CAAC;YAC9B,CAAC;YACD,IAAI,EAAE,CAAC,aAAsB,EAAE,EAAE;gBAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACjF,CAAC;SACJ,CAAC;QAEF,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC1B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,iCAAoB,CACtC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE;YACpC,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/B,oDAAoD;gBACpD,gBAAgB,EAAE,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,EACF,OAAO,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAClD,CAAC;QAEF,gBAAgB,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,mBAAmB,CAAC,WAAwB;QACxC,MAAM,SAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/F,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,MAAc;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,8BAA8B,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAES,KAAK,CAAC,wBAAwB,CAAC,MAAc;QACnD,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,UAAU;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAwB,2BAAiB,CAAC,CAAC;YAClF,KAAK,KAAK,CAAC,CAAC,CAAC;gBACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAY,wCAAqB,CAAC,CAAC;gBACvF,OAAO,SAAS,EAAE,cAA2C,CAAC;YAClE,CAAC;YACD;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAwB,mCAA2B,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChH,CAAC;IACL,CAAC;IAED,eAAe,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAmB,8BAAsB,EAAE,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAkD;QAC7E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACS,KAAK,CAAC,UAAU,CAAC,MAAc;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAC3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,MAAwB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QACD,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,iBAAiB,YAAY,uBAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5G,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC3E,+EAA+E;QAC/E,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,EAAE,UAAU,EAAE,CAAC;YAClD,cAAc,EAAE,OAAO,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QACD,IAAI,iBAAiB,KAAK,cAAc,EAAE,CAAC;YACvC,IAAI,iBAAiB,EAAE,CAAC;gBACpB,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;IACL,CAAC;IAES,8BAA8B,CAAC,WAAmB;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAsB,wCAAgC,EAAE,UAAU,CAAC,CAAC;IACnH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACvC,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE;gBACxC,IAAI,EAAE,0BAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBAC/D,IAAI,EAAE,MAAM,CAAC,gBAAgB;aAChC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,eAAuB,EAAE,eAAoC;QAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC7D,0GAA0G;YAC1G,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAmB,8BAAsB,EAAE,UAAU,CAAC,CAAC;YAC7G,IAAI,cAAc,IAAI,cAAc,CAAC,sBAAsB,EAAE,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;gBAClG,IAAI,gBAAgB,IAAI,IAAI,CAAC,wBAAwB,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBACtF,SAAS;gBACb,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAmB,8BAAsB,EAAE,UAAU,CAAC,CAAC;YAChH,IAAI,eAAe,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/D,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE;oBAC9B,kBAAkB,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM;oBACvD,eAAe,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;iBAC/C,CAAC,CAAC;YACP,CAAC;YACD,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAES,wBAAwB,CAAC,MAAwB,EAAE,eAAoC;QAC7F,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YAEP,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;YACzE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7F,2FAA2F;YAC3F,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtF,MAAM,sBAAsB,GAAG,GAAG,EAAE;gBAChC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC7C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,iCAAoB,CACnC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,EACxC,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CACrD,CAAC;YAEF,sBAAsB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAAA,CAAC;IAEQ,kBAAkB,CAAC,SAA8B;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjE,QAAQ,WAAW,EAAE,SAAS,EAAE,CAAC;YAC7B,KAAK,oCAA0B,CAAC,CAAC,OAAO,UAAU,CAAC;YACnD,KAAK,wCAAqB,CAAC,CAAC,OAAO,KAAK,CAAC;YACzC,KAAK,sDAAwB,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/C,KAAK,+CAAsB,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3C,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,EAAE,MAAM,YAAY,0BAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAChG,KAAK,wCAAgC,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1F,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,EAAE,CAAC;QACjC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,eAAuB;QAC1D,IAAI,eAAe,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAsB,oCAA0B,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAsB,wCAAqB,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAsB,sDAAwB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAsB,+CAAsB,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,0BAAW,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,YAAY,0BAAW,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAsB,wCAAgC,EAAE,UAAU,CAAC,CAAC;IAC3G,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACjD,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnF,uDAAuD;gBACvD,aAAa,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;QAClG,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACb,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;gBACtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oCAA0B,CAAC,CAAC;YAChF,IAAI,QAAQ,YAAY,uBAAmB,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,wCAAqB,CAAC,CAAC;YACtE,IAAI,GAAG,YAAY,uBAAmB,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;QACL,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sDAAwB,CAAC,CAAC;YAC5E,IAAI,MAAM,YAAY,uBAAmB,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC;QACL,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,+CAAsB,CAAC,CAAC;YACxE,IAAI,IAAI,YAAY,uBAAmB,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;QACL,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,0BAAW,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,YAAY,0BAAW,EAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC9D,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,8BAAsB,CAAC,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,YAAY,qCAAgB,EAAE,CAAC;gBACnC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,wCAAgC,CAAC,CAAC;QACvF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YACzC,IAAI,aAAa,YAAY,uBAAmB,EAAE,CAAC;gBAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC/B,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAES,yBAAyB,CAAC,eAAuB;QACvD,OAAO,EAAE,EAAE,EAAE,wCAAgC,GAAG,GAAG,GAAG,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACjH,CAAC;IACS,iBAAiB,CAAC,UAAmC;QAC3D,OAAO,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,wCAAgC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IAES,4BAA4B,CAAC,MAAc;QACjD,OAAO,EAAE,EAAE,EAAE,8BAAsB,GAAG,GAAG,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC;IACjE,CAAC;IACS,QAAQ,CAAC,UAAsC;QACrD,OAAO,UAAU,CAAC,MAAM,CAAC;IAC7B,CAAC;IAES,eAAe,CAAC,KAAa,EAAE,MAAc;QACnD,OAAO,gBAAgB,MAAM,IAAI,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,mCAA2B,CAAC,CAAC;QAC3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,wBAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAED,wBAAwB,CAAC,MAAc,EAAE,QAA0B;QAC/D,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,8BAA8B,CAAC,CAAC;YAC9E,OAAO,uBAAU,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,iCAAoB,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC9D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,SAA+B;QACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACJ,MAAM,wBAAwB,GAAG,IAAI,iCAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBACtF,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;wBAChB,WAAW,EAAE,CAAC;wBACd,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;gBACL,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACnC,wBAAwB,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC9F,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,SAAkB;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,uBAAc,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;gBACtC,CAAC,CAAC,SAAS,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,8BAA8B,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,wBAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,sBAAsB,CAAC,MAAc;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,uBAAc,CAAC,OAAO;eACzD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAChF,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,uBAAuB,CAAC,MAAc;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAiB,mCAA2B,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAA2C;gBACjD,EAAE,EAAE,EAAE;gBACN,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,EAAE;aACf,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,0FAA0F;QAC1F,yCAAyC;QACzC,MAAM,CAAC,8BAA8B,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,SAAkB;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC5D,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,uBAAa,CAAC,UAAU,EAA2B,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACjI,OAAO,aAAa,CAAC;IACzB,CAAC;IAES,2BAA2B,CAAC,MAAc,EAAE,MAA+B;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;IACN,CAAC;IAES,eAAe,CAAC,MAAc;QACpC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC;IAClD,CAAC;IAES,iBAAiB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACvC,IAAI,MAAM,YAAY,qCAAgB,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;IACL,CAAC;;AA9lCQ,gDAAkB;AAGR;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;sCACC,0BAAgB;iDAAC;AAGxB;IADlB,IAAA,kBAAM,EAAC,uCAAiB,CAAC;sCACA,uCAAiB;iDAAC;AAGzB;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCACY,uBAAa;yDAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,kCAAe,CAAC;sCACA,kCAAe;+CAAC;AAGrB;IADlB,IAAA,kBAAM,EAAC,kDAAyB,CAAC;sCACL,kDAAyB;oDAAC;AAGpC;IADlB,IAAA,kBAAM,EAAC,8EAAoC,CAAC;sCACnB,8EAAoC;iDAAC;AAG5C;IADlB,IAAA,kBAAM,EAAC,yBAAe,CAAC;sCACK,yBAAe;oDAAC;AAG1B;IADlB,IAAA,kBAAM,EAAC,wBAAiB,CAAC;sCACA,wBAAiB;iDAAC;AAGzB;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;IAAE,IAAA,oBAAQ,GAAE;sCACP,0BAAgB;qDAAC;AAG5B;IADlB,IAAA,kBAAM,EAAC,uCAAiB,CAAC;;6DAC8B;AAGrC;IADlB,IAAA,kBAAM,EAAC,gDAAqB,CAAC;sCACM,gDAAqB;2DAAC;AAGvC;IADlB,IAAA,kBAAM,EAAC,cAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,+BAA+B,CAAC;;kDACrB;AAmDzB;IADT,IAAA,yBAAa,GAAE;;;;8CAoHf;6BA1MQ,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CA+lC9B"}
@@ -24,6 +24,8 @@ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({})
24
24
  const chai_1 = require("chai");
25
25
  const common_1 = require("@theia/core/lib/common");
26
26
  const plugin_view_registry_1 = require("./plugin-view-registry");
27
+ const common_2 = require("../../../common");
28
+ const widget_1 = require("@theia/core/lib/browser/widgets/widget");
27
29
  disableJSDOM();
28
30
  /**
29
31
  * Minimal stand-in for {@link MenuModelRegistry} that records the menu actions registered for the
@@ -42,7 +44,6 @@ class RecordingMenuModelRegistry {
42
44
  describe('PluginViewRegistry - view menu labels', () => {
43
45
  let registry;
44
46
  let menus;
45
- const toggleCommandId = (id) => `plugin.view-container.${id}.toggle`;
46
47
  const internals = () => registry;
47
48
  function registerContainer(id, label, location) {
48
49
  internals().viewContainers.set(id, { id, location, options: { label }, onViewAdded: () => { } });
@@ -55,33 +56,33 @@ describe('PluginViewRegistry - view menu labels', () => {
55
56
  });
56
57
  it('uses the plain label for a single container', () => {
57
58
  registerContainer('a', 'Claude Code', 'left');
58
- (0, chai_1.expect)(menus.actions.get(toggleCommandId('a'))?.label).to.equal('Claude Code');
59
+ (0, chai_1.expect)(menus.actions.get('a')?.label).to.equal('Claude Code');
59
60
  });
60
61
  it('leaves distinct labels unsuffixed', () => {
61
62
  registerContainer('a', 'Explorer', 'left');
62
63
  registerContainer('b', 'Claude Code', 'right');
63
- (0, chai_1.expect)(menus.actions.get(toggleCommandId('a'))?.label).to.equal('Explorer');
64
- (0, chai_1.expect)(menus.actions.get(toggleCommandId('b'))?.label).to.equal('Claude Code');
64
+ (0, chai_1.expect)(menus.actions.get('a')?.label).to.equal('Explorer');
65
+ (0, chai_1.expect)(menus.actions.get('b')?.label).to.equal('Claude Code');
65
66
  });
66
67
  it('suffixes the location when two containers share a label', () => {
67
68
  registerContainer('a', 'Claude Code', 'left');
68
69
  registerContainer('b', 'Claude Code', 'right');
69
- (0, chai_1.expect)(menus.actions.get(toggleCommandId('a'))?.label).to.equal('Claude Code (Side Bar)');
70
- (0, chai_1.expect)(menus.actions.get(toggleCommandId('b'))?.label).to.equal('Claude Code (Secondary Side Bar)');
70
+ (0, chai_1.expect)(menus.actions.get('a')?.label).to.equal('Claude Code (Side Bar)');
71
+ (0, chai_1.expect)(menus.actions.get('b')?.label).to.equal('Claude Code (Secondary Side Bar)');
71
72
  });
72
73
  it('drops the suffix from the remaining container once the duplicate is removed', () => {
73
74
  registerContainer('a', 'Claude Code', 'left');
74
75
  const disposeB = registerContainer('b', 'Claude Code', 'right');
75
76
  disposeB.dispose();
76
- (0, chai_1.expect)(menus.actions.get(toggleCommandId('a'))?.label).to.equal('Claude Code');
77
- (0, chai_1.expect)(menus.actions.has(toggleCommandId('b'))).to.equal(false);
77
+ (0, chai_1.expect)(menus.actions.get('a')?.label).to.equal('Claude Code');
78
+ (0, chai_1.expect)(menus.actions.has('b')).to.equal(false);
78
79
  });
79
80
  });
81
+ const welcome = (view) => ({ view, content: `[Hi](command:${view}.hi)`, order: 0 });
80
82
  describe('PluginViewRegistry - welcome-only views', () => {
81
83
  let registry;
82
84
  let createdWidget;
83
85
  let getOrCreateCalls;
84
- const welcome = (view) => ({ view, content: `[Hi](command:${view}.hi)`, order: 0 });
85
86
  const internals = () => registry;
86
87
  beforeEach(() => {
87
88
  registry = new plugin_view_registry_1.PluginViewRegistry();
@@ -117,4 +118,182 @@ describe('PluginViewRegistry - welcome-only views', () => {
117
118
  (0, chai_1.expect)(getOrCreateCalls).to.have.lengthOf(0);
118
119
  });
119
120
  });
121
+ describe('PluginViewRegistry - welcome-only views on expand', () => {
122
+ const noop = () => common_1.Disposable.NULL;
123
+ let registry;
124
+ let view;
125
+ let prepared;
126
+ const internals = () => registry;
127
+ async function expand(viewId) {
128
+ internals().onDidExpandViewEmitter.fire(viewId);
129
+ await new Promise(resolve => setTimeout(resolve));
130
+ }
131
+ beforeEach(() => {
132
+ registry = new plugin_view_registry_1.PluginViewRegistry();
133
+ view = { widgets: [] };
134
+ prepared = [];
135
+ Object.assign(registry, {
136
+ shell: { activeWidget: undefined, onDidChangeActiveWidget: noop, initialized: new Promise(() => { }) },
137
+ viewContextKeys: { focusedView: { reset: () => { } } },
138
+ contextKeyService: { onDidChange: noop },
139
+ widgetManager: { onWillCreateWidget: noop, onDidCreateWidget: noop, getWidget: async () => view },
140
+ prepareView: async (widget) => { prepared.push(widget); }
141
+ });
142
+ internals().init();
143
+ internals().views.set('actions', ['container', {}]);
144
+ internals().viewsWelcome.set('actions', [welcome('actions')]);
145
+ });
146
+ it('prepares an empty welcome-only view when it is expanded, as after restoring a saved layout', async () => {
147
+ await expand('actions');
148
+ (0, chai_1.expect)(prepared).to.deep.equal([view]);
149
+ });
150
+ it('leaves a view with a data provider to the provider', async () => {
151
+ internals().viewDataProviders.set('actions', () => undefined);
152
+ await expand('actions');
153
+ (0, chai_1.expect)(prepared).to.have.lengthOf(0);
154
+ });
155
+ it('leaves a view that already has content alone', async () => {
156
+ view.widgets.push({});
157
+ await expand('actions');
158
+ (0, chai_1.expect)(prepared).to.have.lengthOf(0);
159
+ });
160
+ it('leaves a view without welcomes alone', async () => {
161
+ internals().viewsWelcome.delete('actions');
162
+ await expand('actions');
163
+ (0, chai_1.expect)(prepared).to.have.lengthOf(0);
164
+ });
165
+ it('leaves a webview view alone', async () => {
166
+ internals().views.set('actions', ['container', { type: common_2.PluginViewType.Webview }]);
167
+ await expand('actions');
168
+ (0, chai_1.expect)(prepared).to.have.lengthOf(0);
169
+ });
170
+ });
171
+ describe('PluginViewRegistry - prepareView', () => {
172
+ let registry;
173
+ let view;
174
+ let dataWidget;
175
+ beforeEach(() => {
176
+ registry = new plugin_view_registry_1.PluginViewRegistry();
177
+ view = {
178
+ options: { viewId: 'actions' },
179
+ title: { label: '' },
180
+ widgets: [],
181
+ isDisposed: false,
182
+ addWidget(widget) {
183
+ this.widgets.push(widget);
184
+ }
185
+ };
186
+ dataWidget = { isDisposed: false, dispose: () => { } };
187
+ registry.views.set('actions', ['container', { id: 'actions', name: 'Actions' }]);
188
+ registry.createViewDataWidget = async () => dataWidget;
189
+ });
190
+ const prepareView = () => registry.prepareView(view);
191
+ it('adds the created data widget to the view', async () => {
192
+ await prepareView();
193
+ (0, chai_1.expect)(view.widgets).to.deep.equal([dataWidget]);
194
+ });
195
+ it('leaves the view empty when its data widget was disposed before it could be added', async () => {
196
+ dataWidget.isDisposed = true;
197
+ await prepareView();
198
+ (0, chai_1.expect)(view.widgets).to.have.lengthOf(0);
199
+ });
200
+ });
201
+ describe('PluginViewRegistry - VS Code view commands', () => {
202
+ let registry;
203
+ let commands;
204
+ const internals = () => registry;
205
+ beforeEach(() => {
206
+ registry = new plugin_view_registry_1.PluginViewRegistry();
207
+ commands = new Map();
208
+ registry.commands = {
209
+ registerCommand: (command) => {
210
+ commands.set(command.id, command);
211
+ return common_1.Disposable.create(() => commands.delete(command.id));
212
+ }
213
+ };
214
+ registry.menus = new RecordingMenuModelRegistry();
215
+ registry.quickView = { registerItem: () => common_1.Disposable.NULL };
216
+ });
217
+ it('registers the container id and the view focus and open commands once a view is added', () => {
218
+ const containerId = 'workbench.view.extension.sample';
219
+ internals().doRegisterViewContainer(containerId, 'left', { label: 'Sample' });
220
+ (0, chai_1.expect)(commands.has(containerId)).to.equal(false);
221
+ const disposeView = registry.registerView('sample', { id: 'sample.view', name: 'Sample View' });
222
+ (0, chai_1.expect)(commands.get(containerId)).to.include({ label: 'Toggle Sample', category: 'View' });
223
+ (0, chai_1.expect)(commands.get('plugin.view-container.workbench.view.extension.sample.toggle')?.label).to.equal(undefined);
224
+ (0, chai_1.expect)(commands.get('sample.view.focus')).to.include({ label: 'Focus on Sample View View', category: 'Sample' });
225
+ (0, chai_1.expect)(commands.has('sample.view.open')).to.equal(true);
226
+ disposeView.dispose();
227
+ (0, chai_1.expect)(commands.has('sample.view.focus')).to.equal(false);
228
+ (0, chai_1.expect)(commands.has('sample.view.open')).to.equal(false);
229
+ });
230
+ });
231
+ describe('PluginViewRegistry - webview view resolution', () => {
232
+ class FakeWebviewWidget extends widget_1.BaseWidget {
233
+ setContentOptions() { }
234
+ }
235
+ const viewId = 'test.webviewView';
236
+ let registry;
237
+ let webview;
238
+ let resolveCount;
239
+ let disableDom;
240
+ const createWebviewView = () => registry.createNewWebviewView(viewId);
241
+ const registerResolver = () => registry.registerWebviewView(viewId, { resolve: async () => { resolveCount++; } });
242
+ const settle = () => new Promise(resolve => setTimeout(resolve, 0));
243
+ before(() => disableDom = (0, jsdom_1.enableJSDOM)());
244
+ after(() => disableDom());
245
+ beforeEach(() => {
246
+ registry = new plugin_view_registry_1.PluginViewRegistry();
247
+ webview = new FakeWebviewWidget();
248
+ resolveCount = 0;
249
+ registry.widgetManager = { getOrCreateWidget: async () => webview };
250
+ });
251
+ afterEach(() => webview.dispose());
252
+ it('does not resolve a webview view that has not been shown', async () => {
253
+ await createWebviewView();
254
+ await registerResolver();
255
+ await settle();
256
+ (0, chai_1.expect)(resolveCount).to.equal(0);
257
+ });
258
+ it('resolves a webview view once it is shown', async () => {
259
+ await createWebviewView();
260
+ await registerResolver();
261
+ await settle();
262
+ widget_1.Widget.attach(webview, document.body);
263
+ await settle();
264
+ (0, chai_1.expect)(resolveCount).to.equal(1);
265
+ });
266
+ it('resolves a webview view that is shown before its provider is registered', async () => {
267
+ await createWebviewView();
268
+ widget_1.Widget.attach(webview, document.body);
269
+ await settle();
270
+ await registerResolver();
271
+ await settle();
272
+ (0, chai_1.expect)(resolveCount).to.equal(1);
273
+ });
274
+ it('resolves a webview view in a hidden parent only once the parent is shown', async () => {
275
+ const parent = new widget_1.Panel();
276
+ parent.hide();
277
+ parent.addWidget(webview);
278
+ widget_1.Widget.attach(parent, document.body);
279
+ await createWebviewView();
280
+ await registerResolver();
281
+ await settle();
282
+ (0, chai_1.expect)(resolveCount).to.equal(0);
283
+ parent.show();
284
+ await settle();
285
+ parent.hide();
286
+ parent.show();
287
+ await settle();
288
+ (0, chai_1.expect)(resolveCount).to.equal(1);
289
+ parent.dispose();
290
+ });
291
+ it('does not resolve a webview view that is disposed before it is shown', async () => {
292
+ await createWebviewView();
293
+ webview.dispose();
294
+ await registerResolver();
295
+ await settle();
296
+ (0, chai_1.expect)(resolveCount).to.equal(0);
297
+ });
298
+ });
120
299
  //# sourceMappingURL=plugin-view-registry.spec.js.map