@theia/ai-chat-ui 1.76.0-next.7 → 1.76.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 (134) hide show
  1. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-ui-frontend-module.js +6 -0
  3. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  4. package/lib/browser/chat-find/chat-find-contribution.d.ts +18 -0
  5. package/lib/browser/chat-find/chat-find-contribution.d.ts.map +1 -0
  6. package/lib/browser/chat-find/chat-find-contribution.js +76 -0
  7. package/lib/browser/chat-find/chat-find-contribution.js.map +1 -0
  8. package/lib/browser/chat-find/chat-find-highlighter.d.ts +114 -0
  9. package/lib/browser/chat-find/chat-find-highlighter.d.ts.map +1 -0
  10. package/lib/browser/chat-find/chat-find-highlighter.js +353 -0
  11. package/lib/browser/chat-find/chat-find-highlighter.js.map +1 -0
  12. package/lib/browser/chat-find/chat-find-highlighter.spec.d.ts +2 -0
  13. package/lib/browser/chat-find/chat-find-highlighter.spec.d.ts.map +1 -0
  14. package/lib/browser/chat-find/chat-find-highlighter.spec.js +283 -0
  15. package/lib/browser/chat-find/chat-find-highlighter.spec.js.map +1 -0
  16. package/lib/browser/chat-find/chat-find-matcher.d.ts +72 -0
  17. package/lib/browser/chat-find/chat-find-matcher.d.ts.map +1 -0
  18. package/lib/browser/chat-find/chat-find-matcher.js +168 -0
  19. package/lib/browser/chat-find/chat-find-matcher.js.map +1 -0
  20. package/lib/browser/chat-find/chat-find-matcher.spec.d.ts +2 -0
  21. package/lib/browser/chat-find/chat-find-matcher.spec.d.ts.map +1 -0
  22. package/lib/browser/chat-find/chat-find-matcher.spec.js +145 -0
  23. package/lib/browser/chat-find/chat-find-matcher.spec.js.map +1 -0
  24. package/lib/browser/chat-find/chat-find-text.d.ts +20 -0
  25. package/lib/browser/chat-find/chat-find-text.d.ts.map +1 -0
  26. package/lib/browser/chat-find/chat-find-text.js +56 -0
  27. package/lib/browser/chat-find/chat-find-text.js.map +1 -0
  28. package/lib/browser/chat-find/chat-find-widget.d.ts +96 -0
  29. package/lib/browser/chat-find/chat-find-widget.d.ts.map +1 -0
  30. package/lib/browser/chat-find/chat-find-widget.js +332 -0
  31. package/lib/browser/chat-find/chat-find-widget.js.map +1 -0
  32. package/lib/browser/chat-find/chat-find-widget.spec.d.ts +2 -0
  33. package/lib/browser/chat-find/chat-find-widget.spec.d.ts.map +1 -0
  34. package/lib/browser/chat-find/chat-find-widget.spec.js +236 -0
  35. package/lib/browser/chat-find/chat-find-widget.spec.js.map +1 -0
  36. package/lib/browser/chat-input-scroll-util.d.ts +7 -0
  37. package/lib/browser/chat-input-scroll-util.d.ts.map +1 -0
  38. package/lib/browser/chat-input-scroll-util.js +33 -0
  39. package/lib/browser/chat-input-scroll-util.js.map +1 -0
  40. package/lib/browser/chat-input-scroll-util.spec.d.ts +2 -0
  41. package/lib/browser/chat-input-scroll-util.spec.d.ts.map +1 -0
  42. package/lib/browser/chat-input-scroll-util.spec.js +38 -0
  43. package/lib/browser/chat-input-scroll-util.spec.js.map +1 -0
  44. package/lib/browser/chat-input-widget.d.ts +21 -3
  45. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  46. package/lib/browser/chat-input-widget.js +109 -50
  47. package/lib/browser/chat-input-widget.js.map +1 -1
  48. package/lib/browser/chat-input-widget.spec.js +21 -0
  49. package/lib/browser/chat-input-widget.spec.js.map +1 -1
  50. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
  51. package/lib/browser/chat-response-renderer/code-part-renderer.js +9 -1
  52. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
  53. package/lib/browser/chat-response-renderer/code-wrapper-editors.d.ts +13 -0
  54. package/lib/browser/chat-response-renderer/code-wrapper-editors.d.ts.map +1 -0
  55. package/lib/browser/chat-response-renderer/code-wrapper-editors.js +41 -0
  56. package/lib/browser/chat-response-renderer/code-wrapper-editors.js.map +1 -0
  57. package/lib/browser/chat-response-renderer/delegation-tool-renderer.js +74 -43
  58. package/lib/browser/chat-response-renderer/delegation-tool-renderer.js.map +1 -1
  59. package/lib/browser/chat-response-renderer/index.d.ts +1 -0
  60. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -1
  61. package/lib/browser/chat-response-renderer/index.js +1 -0
  62. package/lib/browser/chat-response-renderer/index.js.map +1 -1
  63. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +9 -0
  64. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -1
  65. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +34 -16
  66. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -1
  67. package/lib/browser/chat-response-renderer/server-toolcall-part-renderer.d.ts.map +1 -1
  68. package/lib/browser/chat-response-renderer/server-toolcall-part-renderer.js +2 -2
  69. package/lib/browser/chat-response-renderer/server-toolcall-part-renderer.js.map +1 -1
  70. package/lib/browser/chat-response-renderer/spinner.d.ts +3 -0
  71. package/lib/browser/chat-response-renderer/spinner.d.ts.map +1 -0
  72. package/lib/browser/chat-response-renderer/spinner.js +24 -0
  73. package/lib/browser/chat-response-renderer/spinner.js.map +1 -0
  74. package/lib/browser/chat-response-renderer/thinking-part-renderer.d.ts +9 -1
  75. package/lib/browser/chat-response-renderer/thinking-part-renderer.d.ts.map +1 -1
  76. package/lib/browser/chat-response-renderer/thinking-part-renderer.js +93 -2
  77. package/lib/browser/chat-response-renderer/thinking-part-renderer.js.map +1 -1
  78. package/lib/browser/chat-response-renderer/thinking-part-renderer.spec.d.ts +2 -0
  79. package/lib/browser/chat-response-renderer/thinking-part-renderer.spec.d.ts.map +1 -0
  80. package/lib/browser/chat-response-renderer/thinking-part-renderer.spec.js +84 -0
  81. package/lib/browser/chat-response-renderer/thinking-part-renderer.spec.js.map +1 -0
  82. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -1
  83. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +2 -2
  84. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -1
  85. package/lib/browser/chat-response-renderer/toolcall-part-renderer.spec.js +16 -0
  86. package/lib/browser/chat-response-renderer/toolcall-part-renderer.spec.js.map +1 -1
  87. package/lib/browser/chat-response-renderer/toolcall-utils.d.ts.map +1 -1
  88. package/lib/browser/chat-response-renderer/toolcall-utils.js +7 -2
  89. package/lib/browser/chat-response-renderer/toolcall-utils.js.map +1 -1
  90. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts.map +1 -1
  91. package/lib/browser/chat-tree-view/chat-view-tree-container.js +4 -0
  92. package/lib/browser/chat-tree-view/chat-view-tree-container.js.map +1 -1
  93. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +20 -1
  94. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  95. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +88 -7
  96. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  97. package/lib/common/toolcall-utils.d.ts +11 -1
  98. package/lib/common/toolcall-utils.d.ts.map +1 -1
  99. package/lib/common/toolcall-utils.js +191 -9
  100. package/lib/common/toolcall-utils.js.map +1 -1
  101. package/lib/common/toolcall-utils.spec.js +92 -4
  102. package/lib/common/toolcall-utils.spec.js.map +1 -1
  103. package/package.json +13 -13
  104. package/src/browser/ai-chat-ui-frontend-module.ts +7 -0
  105. package/src/browser/chat-find/chat-find-contribution.ts +74 -0
  106. package/src/browser/chat-find/chat-find-highlighter.spec.ts +313 -0
  107. package/src/browser/chat-find/chat-find-highlighter.ts +385 -0
  108. package/src/browser/chat-find/chat-find-matcher.spec.ts +173 -0
  109. package/src/browser/chat-find/chat-find-matcher.ts +197 -0
  110. package/src/browser/chat-find/chat-find-text.ts +65 -0
  111. package/src/browser/chat-find/chat-find-widget.spec.tsx +261 -0
  112. package/src/browser/chat-find/chat-find-widget.tsx +418 -0
  113. package/src/browser/chat-input-scroll-util.spec.ts +42 -0
  114. package/src/browser/chat-input-scroll-util.ts +30 -0
  115. package/src/browser/chat-input-widget.spec.ts +29 -0
  116. package/src/browser/chat-input-widget.tsx +118 -56
  117. package/src/browser/chat-response-renderer/code-part-renderer.tsx +9 -1
  118. package/src/browser/chat-response-renderer/code-wrapper-editors.ts +41 -0
  119. package/src/browser/chat-response-renderer/delegation-tool-renderer.tsx +88 -62
  120. package/src/browser/chat-response-renderer/index.ts +1 -0
  121. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +34 -17
  122. package/src/browser/chat-response-renderer/server-toolcall-part-renderer.tsx +2 -5
  123. package/src/browser/chat-response-renderer/spinner.tsx +22 -0
  124. package/src/browser/chat-response-renderer/thinking-part-renderer.spec.tsx +104 -0
  125. package/src/browser/chat-response-renderer/thinking-part-renderer.tsx +129 -9
  126. package/src/browser/chat-response-renderer/toolcall-part-renderer.spec.ts +16 -0
  127. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +1 -4
  128. package/src/browser/chat-response-renderer/toolcall-utils.ts +5 -0
  129. package/src/browser/chat-tree-view/chat-view-tree-container.ts +4 -0
  130. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +99 -6
  131. package/src/browser/style/chat-find.css +107 -0
  132. package/src/browser/style/index.css +75 -8
  133. package/src/common/toolcall-utils.spec.ts +113 -4
  134. package/src/common/toolcall-utils.ts +207 -9
@@ -27,6 +27,8 @@ const browser_1 = require("@theia/ai-core/lib/browser");
27
27
  const core_1 = require("@theia/core");
28
28
  const browser_2 = require("@theia/core/lib/browser");
29
29
  const context_key_service_1 = require("@theia/core/lib/browser/context-key-service");
30
+ const chat_find_highlighter_1 = require("../chat-find/chat-find-highlighter");
31
+ const chat_find_widget_1 = require("../chat-find/chat-find-widget");
30
32
  const nls_1 = require("@theia/core/lib/common/nls");
31
33
  const inversify_1 = require("@theia/core/shared/inversify");
32
34
  const React = require("@theia/core/shared/react");
@@ -92,8 +94,13 @@ let ChatViewTreeWidget = class ChatViewTreeWidget extends browser_2.TreeWidget {
92
94
  this.chatResponseFocusKey = this.contextKeyService.createKey('chatResponseFocus', false);
93
95
  this.node.setAttribute('tabindex', '0');
94
96
  this.node.setAttribute('aria-label', nls_1.nls.localize('theia/ai/chat-ui/chatResponses', 'Chat responses'));
95
- this.addEventListener(this.node, 'focusin', () => this.chatResponseFocusKey.set(true));
96
- this.addEventListener(this.node, 'focusout', () => this.chatResponseFocusKey.set(false));
97
+ this.findWidget.fallbackFocusTarget = this.node;
98
+ this.toDispose.pushAll([
99
+ this.findWidget,
100
+ this.findHighlighter,
101
+ this.findWidget.onDidChangeState(state => this.findHighlighter.update(this.node, state.regexp, state.matches, state.current)),
102
+ this.findWidget.onDidRequestReveal(match => this.revealFindMatch(match))
103
+ ]);
97
104
  this.toDispose.pushAll([
98
105
  this.toDisposeOnChatModelChange,
99
106
  this.activationService.onDidChangeCanRun(change => {
@@ -122,8 +129,71 @@ let ChatViewTreeWidget = class ChatViewTreeWidget extends browser_2.TreeWidget {
122
129
  }
123
130
  setEnabled(enabled) {
124
131
  this.isEnabled = enabled;
132
+ if (!enabled) {
133
+ this.findWidget.dismiss();
134
+ }
125
135
  this.update();
126
136
  }
137
+ /** Opens the find bar over the response tree (or refocuses it when already open). */
138
+ showFind() {
139
+ this.findWidget.open();
140
+ }
141
+ hideFind() {
142
+ this.findWidget.dismiss();
143
+ }
144
+ get isFindVisible() {
145
+ return this.findWidget.isOpen;
146
+ }
147
+ /** Whether the tracked session has content to search; false while the welcome/session-list screen shows. */
148
+ get canFind() {
149
+ return this.findWidget.canFind;
150
+ }
151
+ /**
152
+ * Reveals a match: mounts the owning row via virtuoso when it is not rendered yet, then re-applies the highlights
153
+ * and scrolls the matched text itself into view (rows can be taller than the viewport).
154
+ */
155
+ revealFindMatch(match) {
156
+ const row = this.rows.get(match.nodeId);
157
+ if (row === undefined) {
158
+ return;
159
+ }
160
+ const settle = () => {
161
+ this.findHighlighter.refresh();
162
+ this.findHighlighter.scrollCurrentIntoView(this.node);
163
+ };
164
+ if (this.findHighlighter.findRow(this.node, match.nodeId)) {
165
+ requestAnimationFrame(settle);
166
+ return;
167
+ }
168
+ this.view?.list?.scrollIntoView({
169
+ index: row.index,
170
+ align: 'center',
171
+ done: settle
172
+ });
173
+ }
174
+ onAfterAttach(msg) {
175
+ super.onAfterAttach(msg);
176
+ // Registered per attach, not in `init()`: `addEventListener` disposes on detach, so listeners registered
177
+ // once would be lost the first time the view is moved (e.g. to the main area), leaving `chatResponseFocus`
178
+ // stuck and every keybinding scoped to it dead until the page is reloaded.
179
+ this.addEventListener(this.node, 'focusin', () => this.chatResponseFocusKey.set(true));
180
+ this.addEventListener(this.node, 'focusout', () => this.chatResponseFocusKey.set(false));
181
+ // The tree node is a React root, so the find bar is attached as a sibling right before it,
182
+ // the same way the core TreeWidget hosts its SearchBox.
183
+ if (this.findWidget.isAttached) {
184
+ browser_2.Widget.detach(this.findWidget);
185
+ }
186
+ if (this.node.parentElement) {
187
+ browser_2.UnsafeWidgetUtilities.attach(this.findWidget, this.node.parentElement, this.node);
188
+ }
189
+ }
190
+ onBeforeDetach(msg) {
191
+ this.chatResponseFocusKey.set(false);
192
+ if (this.findWidget.isAttached) {
193
+ browser_2.Widget.detach(this.findWidget);
194
+ }
195
+ super.onBeforeDetach(msg);
196
+ }
127
197
  /** Toggles auto-scroll and the scroll-to-bottom button based on whether the viewport includes the bottom of the list. */
128
198
  handleAtBottomStateChange(isAtBottom) {
129
199
  if (isAtBottom !== this.atBottom) {
@@ -240,6 +310,7 @@ let ChatViewTreeWidget = class ChatViewTreeWidget extends browser_2.TreeWidget {
240
310
  trackChatModel(chatModel) {
241
311
  this.toDisposeOnChatModelChange.dispose();
242
312
  this.recreateModelTree(chatModel);
313
+ this.findWidget.setChatModel(chatModel);
243
314
  chatModel.getRequests().forEach(request => {
244
315
  if (!request.response.isComplete) {
245
316
  request.response.onDidChange(() => this.scheduleUpdateScrollToRow());
@@ -285,6 +356,11 @@ let ChatViewTreeWidget = class ChatViewTreeWidget extends browser_2.TreeWidget {
285
356
  this.chatInputs.delete(request.id);
286
357
  }
287
358
  }
359
+ doUpdateRows() {
360
+ super.doUpdateRows();
361
+ // Follow new requests and responses to the end of the chat, unless auto-scroll is locked.
362
+ this.scheduleUpdateScrollToRow();
363
+ }
288
364
  getScrollToRow() {
289
365
  // Only scroll to end if auto-scroll is enabled (not locked)
290
366
  if (this.shouldScrollToEnd) {
@@ -316,7 +392,7 @@ let ChatViewTreeWidget = class ChatViewTreeWidget extends browser_2.TreeWidget {
316
392
  const ariaLabel = (0, exports.isRequestNode)(node)
317
393
  ? nls_1.nls.localize('theia/ai/chat-ui/yourMessage', 'Your message')
318
394
  : nls_1.nls.localize('theia/ai/chat-ui/responseFrom', 'Response from {0}', this.getAgentLabel(node));
319
- return (0, jsx_runtime_1.jsx)(React.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { className: 'theia-ChatNode', role: 'article', "aria-label": ariaLabel, onContextMenu: e => this.handleContextMenu(node, e), children: [this.renderAgent(node), this.renderDetail(node)] }) }, node.id);
395
+ return (0, jsx_runtime_1.jsx)(React.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { className: 'theia-ChatNode', "data-node-id": node.id, role: 'article', "aria-label": ariaLabel, onContextMenu: e => this.handleContextMenu(node, e), children: [this.renderAgent(node), this.renderDetail(node)] }) }, node.id);
320
396
  }
321
397
  renderAgent(node) {
322
398
  const inProgress = (0, exports.isResponseNode)(node) && !node.response.isComplete && !node.response.isCanceled && !node.response.isError;
@@ -524,6 +600,14 @@ tslib_1.__decorate([
524
600
  (0, inversify_1.named)('ai-chat-ui:ChatViewTreeWidget'),
525
601
  tslib_1.__metadata("design:type", Object)
526
602
  ], ChatViewTreeWidget.prototype, "logger", void 0);
603
+ tslib_1.__decorate([
604
+ (0, inversify_1.inject)(chat_find_widget_1.ChatFindWidget),
605
+ tslib_1.__metadata("design:type", chat_find_widget_1.ChatFindWidget)
606
+ ], ChatViewTreeWidget.prototype, "findWidget", void 0);
607
+ tslib_1.__decorate([
608
+ (0, inversify_1.inject)(chat_find_highlighter_1.ChatFindHighlighter),
609
+ tslib_1.__metadata("design:type", chat_find_highlighter_1.ChatFindHighlighter)
610
+ ], ChatViewTreeWidget.prototype, "findHighlighter", void 0);
527
611
  tslib_1.__decorate([
528
612
  (0, inversify_1.postConstruct)(),
529
613
  tslib_1.__metadata("design:type", Function),
@@ -624,10 +708,7 @@ const ChatRequestRender = ({ node, hoverService, chatAgentService, variableServi
624
708
  return ((0, jsx_runtime_1.jsx)(HoverableLabel, { text: part.text, description: description, hoverService: hoverService, className: className }, index));
625
709
  }
626
710
  else {
627
- const ref = (0, markdown_part_renderer_1.useMarkdownRendering)(part.text
628
- .replace(/^[\r\n]+|[\r\n]+$/g, '') // remove excessive new lines
629
- .replace(/(^ )/g, ' '), // enforce keeping space before
630
- openerService, true, undefined,
711
+ const ref = (0, markdown_part_renderer_1.useMarkdownRendering)(markdown_part_renderer_1.MarkdownRendering.prepareRequestText(part.text), openerService, true, undefined,
631
712
  // User requests are authored by the user, so their resources are trusted and rendered directly.
632
713
  false);
633
714
  return ((0, jsx_runtime_1.jsx)("span", { ref: ref }, index));
@@ -1 +1 @@
1
- {"version":3,"file":"chat-view-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":";;;;AAyFA,gCAEC;;;;AA3FD,gFAAgF;AAChF,yCAAyC;AACzC,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;AAChF,4CAcwB;AACxB,4CAAmD;AACnD,wDAAiE;AACjE,sCAA+H;AAC/H,qDAeiC;AACjC,qFAA4F;AAC5F,oDAAiD;AACjD,4DAKsC;AACtC,kDAAkD;AAClD,6FAAwF;AACxF,kFAA+E;AAC/E,oGAA6F;AAC7F,gFAA0E;AAC1E,wFAAsE;AACtE,6FAAwF;AACxF,oEAA2D;AAC3D,+EAAmG;AACnG,iEAA4D;AAC5D,+CAA2C;AAQpC,MAAM,aAAa,GAAG,CAAC,IAAc,EAAuB,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC;AAA3E,QAAA,aAAa,iBAA8D;AAKjF,MAAM,qBAAqB,GAAG,CAAC,IAAc,EAA+B,EAAE,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,kCAAwB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAA1I,QAAA,qBAAqB,yBAAqH;AAOhJ,MAAM,cAAc,GAAG,CAAC,IAAc,EAAwB,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC;AAA9E,QAAA,cAAc,kBAAgE;AAE3F,SAAgB,UAAU,CAAC,CAAsB;IAC7C,OAAO,aAAG,CAAC,KAAK,CAAC,OAAO,KAAK,iBAAO,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC;AACnF,CAAC;AAEY,QAAA,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAaxE,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,oBAAU;;aAE9B,OAAE,GAAG,kBAAkB,AAArB,CAAsB;aACxB,iBAAY,GAAG,CAAC,wBAAwB,CAAC,AAA7B,CAA8B;IA+D1D,IAAI,iBAAiB,CAAC,iBAA0B;QAC5C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,YACuB,KAAgB,EAChB,KAAgB,EACN,mBAAwC;QAErE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAlC1B,2BAAsB,GAAG,IAAI,cAAO,EAAe,CAAC;QACvE,oBAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAEjC,eAAU,GAAuC,IAAI,GAAG,EAAE,CAAC;QAEpE,uBAAkB,GAAG,IAAI,CAAC;QAE1B,cAAS,GAAG,KAAK,CAAC;QAI5B,8EAA8E;QACpE,aAAQ,GAAG,IAAI,CAAC;QAC1B;;WAEG;QACO,sBAAiB,GAAG,KAAK,CAAC;QAuNjB,+BAA0B,GAAG,IAAI,2BAAoB,EAAE,CAAC;QAnMvE,IAAI,CAAC,EAAE,GAAG,oBAAkB,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAE5B,KAAK,CAAC,IAAI,GAAG;YACT,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;SACM,CAAC;IAC3B,CAAC;IAGkB,IAAI;QACnB,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,IAAI,CAAC,EAAE,GAAG,oBAAkB,CAAC,EAAE,GAAG,gBAAgB,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAU,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAG,CAAC,QAAQ,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACnB,IAAI,CAAC,0BAA0B;YAC/B,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;gBAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC7B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;gBAClC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACrE,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CACf,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE;oBACzB,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,CAAC,CAAC,CACL,CAAC;YACN,CAAC;QACL,CAAC;QAED,2GAA2G;QAC3G,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACpF,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;IAEL,CAAC;IAEM,UAAU,CAAC,OAAgB;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,yHAAyH;IAC/G,yBAAyB,CAAC,UAAmB;QACnD,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC3B,IAAI,UAAU,EAAE,CAAC;gBACb,gEAAgE;gBAChE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACJ,yDAAyD;gBACzD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAES,sBAAsB,CAAC,OAAgB;QAC7C,sDAAsD;QACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;QACnC,gGAAgG;QAChG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,KAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,IAAI,GAAG,2BAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC;YAC5E,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElC,OAAO,wBAAC,KAAK,CAAC,QAAQ,eACjB,IAAI,EACJ,IAAI,CAAC,0BAA0B,EAAE,IACrB,CAAC;IACtB,CAAC;IAED,0EAA0E;IAChE,0BAA0B;QAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,qDAAqD;QACrD,OAAO,mCACH,SAAS,EAAC,0DAA0D,EACpE,KAAK,EAAE,SAAG,CAAC,QAAQ,CAAC,uDAAuD,EAAE,wBAAwB,CAAC,EACtG,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GACvD,CAAC;IACP,CAAC;IAED,4DAA4D;IAClD,+BAA+B;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,gCAAgC;QACtC,OAAO,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE;aACjD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,IAAc,sBAAsB;QAChC,OAAO,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,qBAAqB;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,SAAS;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC;aACrC,MAAM,CAAC,CAAC,IAAI,EAA2B,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,+BAA+B,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAES,oBAAoB;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,SAAS;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC;aACpC,MAAM,CAAC,CAAC,IAAI,EAA2B,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,+BAA+B,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAES,+BAA+B,CAAC,cAAsB,EAAE,KAAwB;QACtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,kDAAK,CAAC;QACjB,CAAC;QACD,MAAM,YAAY,GAAsB,EAAE,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,YAAY,CAAC,IAAI,CAAC,gCAAsC,SAAS,EAAC,8BAA8B,IAApE,mBAAmB,KAAK,EAAE,CAA6C,CAAC,CAAC;YACzG,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,gCAAK,SAAS,EAAE,cAAc,YACjC,gCAAK,SAAS,EAAC,sCAAsC,YAChD,YAAY,GACX,GACJ,CAAC;IACX,CAAC;IAES,gBAAgB,CAAC,MAA2B;QAClD,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAyB;YAC5C,IAAI,EAAE;gBACF,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,CAAC;YACD,IAAI,OAAO;gBACP,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;YACxB,CAAC;YACD,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACN,CAAC;IAES,iBAAiB,CAAC,QAA2B;QACnD,OAAO;YACH,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAyB;YAC5C,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACN,CAAC;IAID;;;OAGG;IACI,cAAc,CAAC,SAAoB;QACtC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAElC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;YACzE,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACpC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC,CAAC;YACF,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;oBAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO;gBACX,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACrC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;oBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO;gBACX,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;oBAChD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBACjC,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAElC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACpE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;gBAC/E,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACrC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBAC/C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC9C,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC5B,KAAK,CAAC,UAAU,CACnB,CAAC;gBACN,CAAC;YACL,CAAC,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IAES,sBAAsB,CAAC,OAAyB;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAEkB,cAAc;QAC7B,4DAA4D;QAC5D,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,yDAAyD;QACzD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,SAAoB;QAClD,IAAI,2BAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAEkB,UAAU,CACzB,IAAc,EACd,KAAgB;QAEhB,IAAI,CAAC,kBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC;YACjC,CAAC,CAAC,SAAG,CAAC,QAAQ,CAAC,8BAA8B,EAAE,cAAc,CAAC;YAC9D,CAAC,CAAC,SAAG,CAAC,QAAQ,CAAC,+BAA+B,EAAE,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACnG,OAAO,uBAAC,KAAK,CAAC,QAAQ,cAClB,iCACI,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAC,SAAS,gBACF,SAAS,EACrB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,aAElD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IACtB,IATkB,IAAI,CAAC,EAAE,CAUlB,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,IAAgC;QAClD,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5H,MAAM,eAAe,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChF,MAAM,oBAAoB,GAAG,CAAC,UAAU;YACpC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,EAAE;iBACvD,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBACvC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;iBACxE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAsB,CAAC;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;QAE1D,MAAM,eAAe,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,MAAM,qBAAqB,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC;QACnG,MAAM,aAAa,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAErF,OAAO,uBAAC,KAAK,CAAC,QAAQ,cAClB,iCAAK,SAAS,EAAC,sBAAsB,aACjC,gCAAK,SAAS,EAAE,qBAAqB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,GAAQ,EAC/E,+BAAI,GAAG,EAAE,UAAU,EACf,SAAS,EAAC,kBAAkB,EAC5B,YAAY,EAAE,GAAG,EAAE;4BACf,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;4BAC/E,MAAM,YAAY,GAAG,UAAU,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,IAAI,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;4BAC/F,MAAM,SAAS,GAAG,YAAY;gCAC1B,CAAC,CAAC,GAAG,SAAG,CAAC,QAAQ,CAAC,kCAAkC,EAAE,aAAa,CAAC,KAAK,SAAG,CAAC,iBAAiB,CAC1F,YAAY,EAAE,IAAA,kDAAgB,EAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,SAAG,CAAC,iBAAiB,CAC9E,aAAa,EAAE,IAAA,kDAAgB,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE;gCACnE,CAAC,CAAC,SAAS,CAAC;4BAChB,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;gCAChC,MAAM,EAAE,GAAG,IAAI,uCAAkB,EAAE,CAAC;gCACpC,IAAI,gBAAgB,EAAE,CAAC;oCACnB,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gCACxC,CAAC;gCACD,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;oCAChC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gCACrC,CAAC;gCACD,IAAI,SAAS,EAAE,CAAC;oCACZ,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gCACjC,CAAC;gCACD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;oCAC3B,OAAO,EAAE,EAAE;oCACX,MAAM,EAAE,UAAU,CAAC,OAAQ;oCAC3B,QAAQ,EAAE,OAAO;iCACpB,CAAC,CAAC;4BACP,CAAC;wBACL,CAAC,YACA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GACxB,EACJ,eAAe,IAAI,CAChB,uBAAC,yCAAkB,IACf,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,GACjC,CACL,EACA,aAAa,IAAI,CACd,uBAAC,wBAAU,IACP,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,IAAI,CAAC,YAAY,GACjC,CACL,EACA,UAAU,IAAI,CAAC,eAAe;wBAC3B,kCAAM,SAAS,EAAC,6BAA6B,EAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,aAC1E,iCAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,SAAS,CAAC,wBAAwB,iBAAe,IAAI,GAAS,EACzF,SAAG,CAAC,QAAQ,CAAC,mDAAmD,EAAE,YAAY,CAAC,IAC7E,EACV,UAAU,IAAI,eAAe;wBAC1B,kCAAM,SAAS,EAAC,6BAA6B,EAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,aAC1E,iCAAM,SAAS,EAAE,GAAG,IAAA,iBAAO,EAAC,SAAS,CAAC,wBAAwB,iBAAe,IAAI,GAAS,EACzF,SAAG,CAAC,QAAQ,CAAC,wDAAwD,EAAE,mBAAmB,CAAC,IACzF,EACV,CAAC,UAAU;wBACR,gCAAK,SAAS,EAAC,uBAAuB,YACjC,oBAAoB,CAAC,MAAM,GAAG,CAAC;gCAC5B,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC9B,iCAEI,SAAS,EAAE,+BAA+B,MAAM,CAAC,IAAI,EAAE,EACvD,KAAK,EAAE,MAAM,CAAC,OAAO,gBACT,MAAM,CAAC,OAAO,EAC1B,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,CAAC,EAAE;wCACT,CAAC,CAAC,eAAe,EAAE,CAAC;wCACpB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oCAChE,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE;wCACX,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;4CAChB,CAAC,CAAC,eAAe,EAAE,CAAC;4CACpB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wCAChE,CAAC;oCACL,CAAC,EACD,IAAI,EAAC,QAAQ,IAfR,MAAM,CAAC,SAAS,CAgBjB,CACX,GACH,IACR,GACO,CAAC;IACtB,CAAC;IAES,aAAa,CAAC,IAAgC;QACpD,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,sBAAsB;YACtB,OAAO,SAAG,CAAC,QAAQ,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,SAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,IAAI,CAAC,CAAC;IACxG,CAAC;IAES,QAAQ,CAAC,IAAgC;QAC/C,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,CAAC;IAES,qBAAqB,CAAC,IAAgC;QAC5D,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAA,iBAAO,EAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,OAAO,KAAK,EAAE,SAAS,IAAI,IAAA,iBAAO,EAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAES,YAAY,CAAC,IAAgC;QACnD,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAA,sBAAc,EAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAA,CAAC;IACN,CAAC;IAES,iBAAiB,CAAC,IAAiB;QACzC,OAAO,uBAAC,yBAAiB,IACrB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,sBAAsB,EAAE,GAAG,EAAE;gBACzB,MAAM,YAAY,GAAG,IAAI,CAAC;gBAC1B,IAAI,IAAA,6BAAqB,EAAC,YAAY,CAAC,EAAE,CAAC;oBACtC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACV,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;4BAC7B,IAAI,EAAE,YAAY;4BAClB,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;4BACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,EAAE;gCACrG,gFAAgF;gCAChF,8EAA8E;gCAC9E,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,CAAC,CAAC;4BACrI,CAAC;4BACD,MAAM,EAAE,YAAY,CAAC,MAAM;yBAC9B,CAAC,CAAC;wBAEH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wBAE7C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;4BACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;4BACxC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACP,CAAC;oBAED,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAED,OAAO;YACX,CAAC,GACH,CAAC;IACP,CAAC;IAES,kBAAkB,CAAC,IAAkB;QAC3C,OAAO,CACH,iCAAK,SAAS,EAAE,oBAAoB,aAC/B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;uBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;uBAC3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB;yBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC;yBAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACV,2BAAC,uCAAe,OAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,+BAA+B,CAAC,EAAE,GAAI,CAChF,EAER,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzC,gCAAK,SAAS,EAAC,4BAA4B,YAAkC,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,IAAI,CAAC,IAArE,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,CAAmD,CAChI,EACA,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;uBACnB,IAAI,CAAC,QAAQ,CAAC,gBAAgB;yBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC;yBACzC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACV,2BAAC,uCAAe,OAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,6BAA6B,CAAC,EAAE,GAAI,CAC9E,EAER,IAAI,CAAC,QAAQ,CAAC,gBAAgB;qBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;qBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACV,2BAAC,uCAAe,OAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,2BAA2B,CAAC,EAAE,GAAI,CAC5E,IAEH,CACT,CAAC;IACN,CAAC;IAES,2BAA2B,CAAC,OAA4B,EAAE,IAAkB;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,CAAC,MAAM,CACrE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,IAAI,CAAC;QAClB,CAAC,EACD,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,0CAAM,SAAG,CAAC,QAAQ,CAAC,mDAAmD,EAAE,0BAA0B,CAAC,GAAO,CAAC;QACtH,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAES,iBAAiB,CAAC,IAA0B,EAAE,KAAoC;QACxF,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAC5B,QAAQ,EAAE,oBAAkB,CAAC,YAAY;YACzC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE;YAC9C,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,KAAK,CAAC,aAAa;SAC/B,CAAC,CAAC;QACH,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAEkB,WAAW,CAAC,KAAoB;QAC/C,wDAAwD;QACxD,8CAA8C;QAC9C,sEAAsE;QACtE,OAAO,KAAK,CAAC;IACjB,CAAC;;AA1mBQ,gDAAkB;AAMR;IADlB,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,sDAAwB,CAAC;;qEACoD;AAG/F;IADlB,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,yEAAiC,CAAC;;8EACwC;AAGrG;IADT,IAAA,kBAAM,EAAC,0BAAgB,CAAC;;4DACoB;AAG1B;IADlB,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;2DAC4B;AAG5C;IADT,IAAA,kBAAM,EAAC,sBAAe,CAAC;sCACG,sBAAe;2DAAC;AAGxB;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;;yDAC0B;AAGtC;IADT,IAAA,kBAAM,EAAC,sBAAY,CAAC;sCACG,sBAAY;wDAAC;AAGlB;IADlB,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,kCAA0B,CAAC;;mEAC6B;AAGnF;IADT,IAAA,kBAAM,EAAC,oDAAsB,CAAC;;8DACsB;AAGlC;IADlB,IAAA,kBAAM,EAAC,6BAAmB,CAAC;;6DAC8B;AAGvC;IADlB,IAAA,kBAAM,EAAC,qBAAW,CAAC;;uDACwB;AAGzB;IADlB,IAAA,kBAAM,EAAC,uCAAiB,CAAC;;6DAC8B;AAGrC;IADlB,IAAA,kBAAM,EAAC,cAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,+BAA+B,CAAC;;kDACrB;AAqDhB;IADlB,IAAA,yBAAa,GAAE;;;;8CA2Cf;6BAzIQ,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;IA6EJ,mBAAA,IAAA,kBAAM,EAAC,mBAAS,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAM,EAAC,mBAAS,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAM,EAAC,6BAAmB,CAAC,CAAA;6DAAsB,6BAAmB;GA9EhE,kBAAkB,CA2mB9B;AAMD,MAAM,eAAe,GAAmC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IACnE,2CAA2C;IAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IAE/D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7C,gBAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;IACL,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3B,WAAW;IACX,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CACjB,GAAG,EAAE;QACD,UAAU,CAAC,GAAG,EAAE;YACZ,8DAA8D;YAC9D,MAAM,CAAC,SAAS,CAAC,gBAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEX,OAAO,gCAAK,GAAG,EAAE,YAAY,GAAI,CAAC;AACtC,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAC7B,EACI,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EACpE,sBAAsB,EAQzB,EAAE,EAAE;IACL,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,IAAI,kCAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,gCAAK,SAAS,EAAC,mBAAmB,YACrC,uBAAC,eAAe,IAAC,MAAM,EAAE,MAAM,GAAoB,GACjD,CAAC;QACX,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9E,OAAO,CACH,iCAAK,SAAS,EAAC,0BAA0B,aACrC,gCAAK,SAAS,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAC9C,gCAAK,SAAS,EAAC,2CAA2C,EAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE;4BACtF,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;wBACjC,CAAC,GAAQ,GACP,EACN,8CACI,6CAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,SAAS,EACjD,2CAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAQ,IACnC,EACR,gCAAK,SAAS,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAC7C,gCAAK,SAAS,EAAC,4CAA4C,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE;4BACnF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC7B,CAAC,GAAQ,GACP,IACJ,CACT,CAAC;IACN,CAAC,CAAC;IAEF,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,6CAAoB,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;IACtF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAErG,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;aACzD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,6CAAoB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,6CAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;aAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE;YACR,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACP,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,CACH,gCAAK,SAAS,EAAC,gCAAgC,YAC1C,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;gBACtF,OAAO,CACH,gCAAa,SAAS,EAAC,qCAAqC,YACxD,gCACI,GAAG,EAAE,QAAQ,QAAQ,CAAC,QAAQ,WAAW,QAAQ,CAAC,IAAI,EAAE,EACxD,GAAG,EAAE,OAAO,GACd,IAJI,CAAC,CAKL,CACT,CAAC;YACN,CAAC,CAAC,GACA,CACT,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,iCAAK,SAAS,EAAC,mBAAmB,aAC9B,wCACK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACvB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1D,IAAI,mBAAmB,EAAE,CAAC;wBACtB,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,IAAI,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;wBAC5G,OAAO,CACH,iCAAkB,SAAS,EAAC,2EAA2E,YACnG,gCACI,GAAG,EAAE,QAAQ,mBAAmB,CAAC,QAAQ,WAAW,mBAAmB,CAAC,IAAI,EAAE,EAC9E,GAAG,EAAE,OAAO,GACd,IAJK,KAAK,CAKT,CACV,CAAC;oBACN,CAAC;oBACD,IAAI,IAAI,YAAY,oCAA0B,IAAI,IAAI,YAAY,uCAA6B,IAAI,IAAI,YAAY,uCAA6B,EAAE,CAAC;wBAC/I,IAAI,WAAW,GAAG,SAAS,CAAC;wBAC5B,IAAI,SAAS,GAAG,EAAE,CAAC;wBACnB,IAAI,IAAI,YAAY,oCAA0B,EAAE,CAAC;4BAC7C,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;4BACnE,SAAS,GAAG,8BAA8B,CAAC;wBAC/C,CAAC;6BAAM,IAAI,IAAI,YAAY,uCAA6B,EAAE,CAAC;4BACvD,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;4BAC1E,SAAS,GAAG,iCAAiC,CAAC;wBAClD,CAAC;6BAAM,IAAI,IAAI,YAAY,uCAA6B,EAAE,CAAC;4BACvD,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;4BAC5C,SAAS,GAAG,iCAAiC,CAAC;wBAClD,CAAC;wBACD,OAAO,CACH,uBAAC,cAAc,IAEX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,IAJf,KAAK,CAKZ,CACL,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,MAAM,GAAG,GAAG,IAAA,6CAAoB,EAC5B,IAAI,CAAC,IAAI;6BACJ,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,6BAA6B;6BAC/D,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,+BAA+B;wBAChE,aAAa,EACb,IAAI,EACJ,SAAS;wBACT,gGAAgG;wBAChG,KAAK,CACR,CAAC;wBACF,OAAO,CACH,iCAAkB,GAAG,EAAE,GAAG,IAAf,KAAK,CAAmB,CACtC,CAAC;oBACN,CAAC;gBACL,CAAC,CAAC,GACF,EACH,mBAAmB,EAAE,EACrB,YAAY,EAAE,IACb,CACT,CAAC;AACN,CAAC,CAAC;AAnJW,QAAA,iBAAiB,qBAmJ5B;AAEF,MAAM,cAAc,GAAG,CACnB,EACI,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAM7C,EAAE,EAAE;IACL,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAmB,CAAC;IACnD,OAAO,CACH,iCACI,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,GAAG,EAAE;YACf,IAAI,WAAW,EAAE,CAAC;gBACd,YAAY,CAAC,YAAY,CAAC;oBACtB,OAAO,EAAE,WAAW;oBACpB,MAAM,EAAE,OAAO,CAAC,OAAQ;oBACxB,QAAQ,EAAE,OAAO;iBACpB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,YAEA,IAAI,GACF,CACV,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"chat-view-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
+ /**
2
+ * Tells whether `json` may already be complete, i.e. whether handing it to `JSON.parse` can succeed at all.
3
+ *
4
+ * Tool call arguments are rendered repeatedly while they stream in, and the arguments object is truncated
5
+ * until the last delta arrives: `JSON.parse` would scan the whole string only to throw, which gets quadratic
6
+ * as the arguments grow (noticeable with large payloads such as whole-file writes). An arguments object can
7
+ * only be complete once it ends with `}`, so callers skip the parse until then. Text that does not start
8
+ * with `{` is not a streaming arguments object and is always considered worth parsing.
9
+ */
10
+ export declare function mayBeCompleteJson(json: string): boolean;
1
11
  /**
2
12
  * Extracts a string field value from potentially incomplete JSON.
3
- * Tries JSON.parse first, then falls back to regex extraction for streaming scenarios.
13
+ * Uses JSON.parse for complete JSON, and a scan of the top-level entries for streaming scenarios.
4
14
  */
5
15
  export declare function extractJsonStringField(json: string | undefined, fieldName: string): string | undefined;
6
16
  //# sourceMappingURL=toolcall-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolcall-utils.d.ts","sourceRoot":"","sources":["../../src/common/toolcall-utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAetG"}
1
+ {"version":3,"file":"toolcall-utils.d.ts","sourceRoot":"","sources":["../../src/common/toolcall-utils.ts"],"names":[],"mappings":"AAgBA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBtG"}
@@ -15,26 +15,208 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.mayBeCompleteJson = mayBeCompleteJson;
18
19
  exports.extractJsonStringField = extractJsonStringField;
20
+ /**
21
+ * Tells whether `json` may already be complete, i.e. whether handing it to `JSON.parse` can succeed at all.
22
+ *
23
+ * Tool call arguments are rendered repeatedly while they stream in, and the arguments object is truncated
24
+ * until the last delta arrives: `JSON.parse` would scan the whole string only to throw, which gets quadratic
25
+ * as the arguments grow (noticeable with large payloads such as whole-file writes). An arguments object can
26
+ * only be complete once it ends with `}`, so callers skip the parse until then. Text that does not start
27
+ * with `{` is not a streaming arguments object and is always considered worth parsing.
28
+ */
29
+ function mayBeCompleteJson(json) {
30
+ const trimmed = json.trim();
31
+ return !trimmed.startsWith('{') || trimmed.endsWith('}');
32
+ }
19
33
  /**
20
34
  * Extracts a string field value from potentially incomplete JSON.
21
- * Tries JSON.parse first, then falls back to regex extraction for streaming scenarios.
35
+ * Uses JSON.parse for complete JSON, and a scan of the top-level entries for streaming scenarios.
22
36
  */
23
37
  function extractJsonStringField(json, fieldName) {
24
38
  if (!json) {
25
39
  return undefined;
26
40
  }
27
- try {
28
- const parsed = JSON.parse(json);
29
- if (parsed && typeof parsed === 'object' && fieldName in parsed && typeof parsed[fieldName] === 'string') {
30
- return parsed[fieldName];
41
+ if (mayBeCompleteJson(json)) {
42
+ try {
43
+ const parsed = JSON.parse(json);
44
+ if (parsed && typeof parsed === 'object' && fieldName in parsed && typeof parsed[fieldName] === 'string') {
45
+ return parsed[fieldName];
46
+ }
47
+ return undefined;
48
+ }
49
+ catch {
50
+ // fall through to the streaming extraction
31
51
  }
32
52
  }
33
- catch {
34
- const regex = new RegExp('"' + fieldName + '"\\s*:\\s*"([^"]*)"?');
35
- const match = regex.exec(json);
36
- return match?.[1];
53
+ return extractTopLevelStringField(json, fieldName);
54
+ }
55
+ const BACKSLASH = 92;
56
+ /**
57
+ * Extracts a top-level string field from a truncated JSON object by walking its entries.
58
+ *
59
+ * A regex over the whole payload cannot tell nesting apart, so it reports the first `"<field>": "..."` anywhere,
60
+ * including one inside a nested object or array - a `{"edits": [{"path": "a"}], "path": "b"` argument object would
61
+ * be labelled with `a`. Walking the entries skips over nested values and over string contents, so only the keys of
62
+ * the arguments object itself can match, and escapes within the value are resolved instead of ending it early.
63
+ *
64
+ * Values are skipped with `indexOf`, which keeps large payloads (e.g. whole-file writes) a native scan.
65
+ */
66
+ function extractTopLevelStringField(json, fieldName) {
67
+ let index = skipWhitespace(json, 0);
68
+ if (json[index] !== '{') {
69
+ // tool call arguments are always an object; anything else has no top-level field to report
70
+ return undefined;
71
+ }
72
+ index = skipWhitespace(json, index + 1);
73
+ while (index < json.length && json[index] !== '}') {
74
+ if (json[index] !== '"') {
75
+ return undefined;
76
+ }
77
+ const keyStart = index;
78
+ const key = readString(json, index);
79
+ if (!key.terminated) {
80
+ return undefined;
81
+ }
82
+ index = skipWhitespace(json, key.end);
83
+ if (json[index] !== ':') {
84
+ return undefined;
85
+ }
86
+ index = skipWhitespace(json, index + 1);
87
+ if (index >= json.length) {
88
+ return undefined;
89
+ }
90
+ const matches = matchesKey(json, keyStart, key, fieldName);
91
+ if (json[index] === '"') {
92
+ const value = readString(json, index);
93
+ if (matches) {
94
+ return unescapeJsonStringContent(json.substring(index + 1, value.bodyEnd), value.terminated);
95
+ }
96
+ if (!value.terminated) {
97
+ return undefined;
98
+ }
99
+ index = value.end;
100
+ }
101
+ else {
102
+ if (matches) {
103
+ // the field is present, but not a string - same as what the JSON.parse branch reports
104
+ return undefined;
105
+ }
106
+ const end = skipValue(json, index);
107
+ if (end < 0) {
108
+ return undefined;
109
+ }
110
+ index = end;
111
+ }
112
+ index = skipWhitespace(json, index);
113
+ if (json[index] === ',') {
114
+ index = skipWhitespace(json, index + 1);
115
+ }
37
116
  }
38
117
  return undefined;
39
118
  }
119
+ /**
120
+ * Reads the string token starting at `start`, which must be a quote.
121
+ *
122
+ * The closing quote is searched with `indexOf`, so the body - up to megabytes of file content - is skipped by a native
123
+ * scan rather than a per-character loop, and only escaped quotes cost an iteration. Only the bounds are reported: the
124
+ * body of a value that is merely skipped over is never materialized.
125
+ */
126
+ function readString(json, start) {
127
+ let index = start + 1;
128
+ for (;;) {
129
+ const quote = json.indexOf('"', index);
130
+ if (quote < 0) {
131
+ return { bodyEnd: json.length, end: json.length, terminated: false };
132
+ }
133
+ if (!isEscaped(json, quote)) {
134
+ return { bodyEnd: quote, end: quote + 1, terminated: true };
135
+ }
136
+ index = quote + 1;
137
+ }
138
+ }
139
+ /** Skips the non-string value starting at `start`, returning the index right after it, or `-1` if it is still streaming. */
140
+ function skipValue(json, start) {
141
+ let index = start;
142
+ if (json[index] === '{' || json[index] === '[') {
143
+ let depth = 0;
144
+ while (index < json.length) {
145
+ const character = json[index];
146
+ if (character === '"') {
147
+ const contained = readString(json, index);
148
+ if (!contained.terminated) {
149
+ return -1;
150
+ }
151
+ index = contained.end;
152
+ continue;
153
+ }
154
+ if (character === '{' || character === '[') {
155
+ depth++;
156
+ }
157
+ else if (character === '}' || character === ']') {
158
+ depth--;
159
+ if (depth === 0) {
160
+ return index + 1;
161
+ }
162
+ }
163
+ index++;
164
+ }
165
+ return -1;
166
+ }
167
+ while (index < json.length && json[index] !== ',' && json[index] !== '}') {
168
+ index++;
169
+ }
170
+ return index < json.length ? index : -1;
171
+ }
172
+ function skipWhitespace(json, start) {
173
+ let index = start;
174
+ while (index < json.length) {
175
+ const character = json[index];
176
+ if (character !== ' ' && character !== '\n' && character !== '\r' && character !== '\t') {
177
+ break;
178
+ }
179
+ index++;
180
+ }
181
+ return index;
182
+ }
183
+ /** Tells whether the character at `index` is preceded by an odd number of backslashes, i.e. whether it is escaped. */
184
+ function isEscaped(text, index) {
185
+ let backslashes = 0;
186
+ while (index - backslashes > 0 && text.charCodeAt(index - backslashes - 1) === BACKSLASH) {
187
+ backslashes++;
188
+ }
189
+ return backslashes % 2 === 1;
190
+ }
191
+ /** Compares a scanned key against the wanted field name, resolving escapes only in the rare case that the key has any. */
192
+ function matchesKey(json, keyStart, key, fieldName) {
193
+ const raw = json.substring(keyStart + 1, key.bodyEnd);
194
+ return (raw.indexOf('\\') < 0 ? raw : unescapeJsonStringContent(raw, true)) === fieldName;
195
+ }
196
+ /** Resolves the escapes of a JSON string body, dropping the escape the stream was cut off in the middle of. */
197
+ function unescapeJsonStringContent(raw, terminated) {
198
+ const content = terminated ? raw : dropIncompleteEscape(raw);
199
+ try {
200
+ return JSON.parse('"' + content + '"');
201
+ }
202
+ catch {
203
+ // control characters and other invalid contents: the raw text is still the best label we have
204
+ return content;
205
+ }
206
+ }
207
+ /** Drops a trailing escape sequence that has not fully arrived yet, so that the value can be unescaped. */
208
+ function dropIncompleteEscape(raw) {
209
+ let backslashes = 0;
210
+ while (backslashes < raw.length && raw.charCodeAt(raw.length - backslashes - 1) === BACKSLASH) {
211
+ backslashes++;
212
+ }
213
+ if (backslashes % 2 === 1) {
214
+ return raw.substring(0, raw.length - 1);
215
+ }
216
+ const unicodeEscape = /\\u[0-9a-fA-F]{0,3}$/.exec(raw);
217
+ if (unicodeEscape && !isEscaped(raw, unicodeEscape.index)) {
218
+ return raw.substring(0, unicodeEscape.index);
219
+ }
220
+ return raw;
221
+ }
40
222
  //# sourceMappingURL=toolcall-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolcall-utils.js","sourceRoot":"","sources":["../../src/common/toolcall-utils.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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;;AAMhF,wDAeC;AAnBD;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,IAAwB,EAAE,SAAiB;IAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,sBAAsB,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"toolcall-utils.js","sourceRoot":"","sources":["../../src/common/toolcall-utils.ts"],"names":[],"mappings":"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"}