indirecttek-vibe-engine 2.6.51 → 2.6.61

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.
package/out/extension.js CHANGED
@@ -42,6 +42,15 @@ class PartnerBotProvider {
42
42
  this._isStopped = false;
43
43
  this._pendingApprovals = new Map();
44
44
  this._messageHistory = [];
45
+ this._lastMode = 'agent';
46
+ this._lastIntent = 'chat';
47
+ this._pendingToolFollowUp = false;
48
+ this._isResuming = false;
49
+ this._followThroughEnabled = false;
50
+ this._lastToolSignature = null;
51
+ this._toolRepeatCount = 0;
52
+ this._allowedToolTags = null;
53
+ this._executedToolTags = new Set();
45
54
  this._context = context;
46
55
  this._permissionManager = new PermissionManager_1.PermissionManager(context);
47
56
  if (!PartnerBotProvider.outputChannel) {
@@ -342,8 +351,10 @@ class PartnerBotProvider {
342
351
  cp.exec(command, { cwd: execCwd }, (err, stdout, stderr) => {
343
352
  terminal.sendText(command);
344
353
  let output = stdout + '\n' + stderr;
345
- if (output.length > 2000)
346
- output = output.substring(0, 2000) + '...[truncated]';
354
+ const maxOutputLength = 8000;
355
+ const truncated = output.length > maxOutputLength;
356
+ if (truncated)
357
+ output = output.substring(0, maxOutputLength) + '\n...[truncated]';
347
358
  // Intelligent NPM Error Parsing
348
359
  if (command.startsWith('npm') && (err || stderr)) {
349
360
  if (output.includes('No matching version found for')) {
@@ -359,12 +370,24 @@ class PartnerBotProvider {
359
370
  // Success? Reset failures
360
371
  this._commandFailures.set(command, 0);
361
372
  }
373
+ this._view?.webview.postMessage({
374
+ type: 'commandOutput',
375
+ value: {
376
+ command,
377
+ cwd: execCwd || '',
378
+ exitCode: err ? err.code : 0,
379
+ output,
380
+ truncated
381
+ }
382
+ });
362
383
  if (err) {
363
384
  this._messageHistory.push({ role: 'user', content: `[System Command Output]: (Exit Code: ${err.code})\n${output}` });
385
+ this._resumeAfterToolRun('run_command', command);
364
386
  resolve(true);
365
387
  }
366
388
  else {
367
389
  this._messageHistory.push({ role: 'user', content: `[System Command Output]:\n${output}` });
390
+ this._resumeAfterToolRun('run_command', command);
368
391
  resolve(true);
369
392
  }
370
393
  });
@@ -395,6 +418,73 @@ class PartnerBotProvider {
395
418
  _postSystemMessage(text) {
396
419
  this._view?.webview.postMessage({ type: 'addMessage', role: 'assistant', text });
397
420
  }
421
+ _shouldEnableFollowThrough(message) {
422
+ const tagRegex = /<\s*(LIST_DIR|RUN_COMMAND|CREATE_FILE|SEARCH_REPLACE|READ_FILE|DELETE_FILE|GENERATE_IMAGE)\b/gi;
423
+ const tagCount = (message.match(tagRegex) || []).length;
424
+ if (tagCount > 1)
425
+ return true;
426
+ return /(steps|in order|sequence|follow[- ]through|do these|multi-step)/i.test(message);
427
+ }
428
+ _getToolSignature(response) {
429
+ const listMatch = /<LIST_DIR\s*\/?>/i.exec(response);
430
+ if (listMatch)
431
+ return 'LIST_DIR';
432
+ const readMatch = /<READ_FILE>(.*?)<\/READ_FILE>/i.exec(response);
433
+ if (readMatch)
434
+ return `READ_FILE:${readMatch[1].trim()}`;
435
+ const createMatch = /<CREATE_FILE>[\s\S]*?<PATH>(.*?)<\/PATH>[\s\S]*?<\/CREATE_FILE>/i.exec(response);
436
+ if (createMatch)
437
+ return `CREATE_FILE:${createMatch[1].trim()}`;
438
+ const deleteMatch = /<DELETE_FILE>[\s\S]*?<PATH>(.*?)<\/PATH>[\s\S]*?<\/DELETE_FILE>/i.exec(response);
439
+ if (deleteMatch)
440
+ return `DELETE_FILE:${deleteMatch[1].trim()}`;
441
+ const editMatch = /<SEARCH_REPLACE>[\s\S]*?<FILE>(.*?)<\/FILE>[\s\S]*?<\/SEARCH_REPLACE>/i.exec(response);
442
+ if (editMatch)
443
+ return `SEARCH_REPLACE:${editMatch[1].trim()}`;
444
+ const cmdMatch = /<RUN_COMMAND>(.*?)<\/RUN_COMMAND>/i.exec(response);
445
+ if (cmdMatch)
446
+ return `RUN_COMMAND:${cmdMatch[1].trim()}`;
447
+ return null;
448
+ }
449
+ _markToolExecuted(tag) {
450
+ this._executedToolTags.add(tag);
451
+ }
452
+ _hasCompletedAllowedTools() {
453
+ if (!this._allowedToolTags)
454
+ return false;
455
+ for (const tag of this._allowedToolTags) {
456
+ if (!this._executedToolTags.has(tag))
457
+ return false;
458
+ }
459
+ return true;
460
+ }
461
+ _deriveAllowedToolTags(message) {
462
+ const tagRegex = /<\s*(LIST_DIR|RUN_COMMAND|CREATE_FILE|SEARCH_REPLACE|READ_FILE|DELETE_FILE|GENERATE_IMAGE)\b/gi;
463
+ const matches = message.match(tagRegex) || [];
464
+ const unique = new Set(matches.map(m => m.replace(/[<\s]/g, '').toUpperCase()));
465
+ if (unique.size === 0)
466
+ return null;
467
+ return unique;
468
+ }
469
+ _resumeAfterToolRun(tool, detail) {
470
+ if (!this._pendingToolFollowUp || this._isStopped || this._isResuming)
471
+ return;
472
+ this._pendingToolFollowUp = false;
473
+ this._isResuming = true;
474
+ this._messageHistory.push({
475
+ role: 'user',
476
+ content: `[System]: ${tool} completed (${detail}). Continue with the next step using tools only.`
477
+ });
478
+ this._saveHistory().catch(() => undefined);
479
+ setTimeout(async () => {
480
+ try {
481
+ await this._runAgentLoop(undefined, this._lastMode, this._lastIntent);
482
+ }
483
+ finally {
484
+ this._isResuming = false;
485
+ }
486
+ }, 50);
487
+ }
398
488
  _isDeleteCommand(command) {
399
489
  const normalized = command.trim();
400
490
  return normalized === 'rm' || normalized.startsWith('rm ')
@@ -554,6 +644,11 @@ class PartnerBotProvider {
554
644
  _intent = 'chat';
555
645
  if (!this._view)
556
646
  return;
647
+ this._lastMode = _mode;
648
+ this._lastIntent = _intent;
649
+ this._followThroughEnabled = this._shouldEnableFollowThrough(_message);
650
+ this._allowedToolTags = this._deriveAllowedToolTags(_message);
651
+ this._executedToolTags = new Set();
557
652
  // 1. Build Context (Visible Editors + Workspace)
558
653
  let systemContext = "";
559
654
  // Visible Editors
@@ -585,6 +680,7 @@ IMPORTANT: You must use the following XML tags for actions. DO NOT use JSON. DO
585
680
  - SEARCH_REPLACE: Use <SEARCH_REPLACE><FILE>relative/path</FILE><SEARCH>exact existing code to match</SEARCH><REPLACE>new code</REPLACE></SEARCH_REPLACE>
586
681
  - READ_FILE: Use <READ_FILE>relative/path</READ_FILE>
587
682
  - RUN_COMMAND: Use <RUN_COMMAND>shell command</RUN_COMMAND>
683
+ - DELETE_FILE: Use <DELETE_FILE><PATH>relative/path</PATH></DELETE_FILE>
588
684
  - GENERATE_IMAGE: Use <GENERATE_IMAGE><PROMPT>description of image</PROMPT><OUTPUT>relative/path.png</OUTPUT></GENERATE_IMAGE>
589
685
  - LIST_DIR: Use <LIST_DIR /> to see file structure.
590
686
 
@@ -598,6 +694,10 @@ Assistant: <RUN_COMMAND>npm install</RUN_COMMAND>
598
694
  User: Generate an image of a red cat
599
695
  Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUTPUT></GENERATE_IMAGE>
600
696
 
697
+ Rules:
698
+ - Do not stop after a tool runs. Continue with the next required tool.
699
+ - If blocked, ask one concise question or propose the next tool; do not explain at length.
700
+
601
701
  [ENVIRONMENT]
602
702
  - Workspace root folder name: ${workspaceRoot}
603
703
  - You are running inside a local VS Code extension with full read/write access to the open workspace (subject to user settings). Implement changes via tools instead of only describing them.
@@ -626,6 +726,8 @@ Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUT
626
726
  let turnCount = 0;
627
727
  const maxTurns = mode === 'agent' ? 10 : 1;
628
728
  this._isStopped = false; // Reset Stop Flag
729
+ this._lastToolSignature = null;
730
+ this._toolRepeatCount = 0;
629
731
  while (turnCount < maxTurns) {
630
732
  if (this._isStopped)
631
733
  break; // Hard Stop Check
@@ -712,10 +814,33 @@ Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUT
712
814
  finally {
713
815
  this._abortController = null;
714
816
  }
817
+ if (toolActionOccurred && this._followThroughEnabled) {
818
+ const signature = this._getToolSignature(assistantResponse);
819
+ if (signature && signature === this._lastToolSignature) {
820
+ this._toolRepeatCount += 1;
821
+ }
822
+ else {
823
+ this._toolRepeatCount = 0;
824
+ this._lastToolSignature = signature;
825
+ }
826
+ if (this._toolRepeatCount >= 1) {
827
+ this._postSystemMessage('[System]: Loop detected. Pausing follow-through. Please confirm the next step.');
828
+ break;
829
+ }
830
+ if (this._allowedToolTags && this._hasCompletedAllowedTools()) {
831
+ toolActionOccurred = false;
832
+ break;
833
+ }
834
+ this._messageHistory.push({
835
+ role: 'user',
836
+ content: '[System]: Tool completed. Continue with the next required step using tools only. Do not explain.'
837
+ });
838
+ await this._saveHistory();
839
+ }
715
840
  // v2.5 Auto-Summary Phase
716
841
  // If we are done with the main loop, and we did something substantial,
717
842
  // ask for a summary.
718
- if (!toolActionOccurred && mutatingActionOccurred) {
843
+ if (!toolActionOccurred && mutatingActionOccurred && !this._followThroughEnabled) {
719
844
  this._view.webview.postMessage({ type: 'streamChunk', value: '\n\n📝 *Summarizing changes...*', isNew: false });
720
845
  // Add system instruction for summary
721
846
  this._messageHistory.push({
@@ -764,6 +889,7 @@ Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUT
764
889
  // We accumulate buffer. chunk is usually full content in v2.6.30 fix logic.
765
890
  this._streamBuffer += chunk;
766
891
  let toolFound = false;
892
+ const allowed = this._allowedToolTags;
767
893
  // Decode HTML entities (common model failure mode)
768
894
  this._streamBuffer = this._streamBuffer
769
895
  .replace(/&lt;/g, '<')
@@ -789,134 +915,181 @@ Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUT
789
915
  // 1. SEARCH_REPLACE
790
916
  const editRegex = /<SEARCH_REPLACE>([\s\S]*?)<\/SEARCH_REPLACE>/g;
791
917
  let match;
792
- while ((match = editRegex.exec(this._streamBuffer)) !== null) {
793
- const content = match[0];
794
- const innerContent = match[1];
795
- const fileMatch = /<FILE>(.*?)<\/FILE>/.exec(innerContent);
796
- const searchMatch = /<SEARCH>([\s\S]*?)<\/SEARCH>/.exec(innerContent);
797
- const replaceMatch = /<REPLACE>([\s\S]*?)<\/REPLACE>/.exec(innerContent);
798
- if (fileMatch && searchMatch && replaceMatch) {
799
- toolFound = true;
800
- const targetFile = fileMatch[1].trim();
801
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Editing: ${targetFile}` });
802
- const result = await this._applyEdit(targetFile, searchMatch[1].trim(), replaceMatch[1].trim());
803
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: result });
804
- this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
805
- this._streamBuffer = this._streamBuffer.replace(content, "");
806
- editRegex.lastIndex = 0;
918
+ if (allowed && !allowed.has('SEARCH_REPLACE')) {
919
+ this._streamBuffer = this._streamBuffer.replace(editRegex, "");
920
+ }
921
+ else {
922
+ while ((match = editRegex.exec(this._streamBuffer)) !== null) {
923
+ const content = match[0];
924
+ const innerContent = match[1];
925
+ const fileMatch = /<FILE>(.*?)<\/FILE>/.exec(innerContent);
926
+ const searchMatch = /<SEARCH>([\s\S]*?)<\/SEARCH>/.exec(innerContent);
927
+ const replaceMatch = /<REPLACE>([\s\S]*?)<\/REPLACE>/.exec(innerContent);
928
+ if (fileMatch && searchMatch && replaceMatch) {
929
+ toolFound = true;
930
+ this._markToolExecuted('SEARCH_REPLACE');
931
+ const targetFile = fileMatch[1].trim();
932
+ this._view?.webview.postMessage({ type: 'thoughtStart', value: `Editing: ${targetFile}` });
933
+ const result = await this._applyEdit(targetFile, searchMatch[1].trim(), replaceMatch[1].trim());
934
+ this._view?.webview.postMessage({ type: 'thoughtEnd', value: result });
935
+ this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
936
+ this._streamBuffer = this._streamBuffer.replace(content, "");
937
+ editRegex.lastIndex = 0;
938
+ }
807
939
  }
808
940
  }
809
941
  // 2. CREATE_FILE
810
942
  const createRegex = /<CREATE_FILE>([\s\S]*?)<\/CREATE_FILE>/g;
811
- while ((match = createRegex.exec(this._streamBuffer)) !== null) {
812
- const content = match[0];
813
- const innerContent = match[1];
814
- const pathMatch = /<PATH>(.*?)<\/PATH>/.exec(innerContent);
815
- const bodyMatch = /<CONTENT>([\s\S]*?)<\/CONTENT>/.exec(innerContent);
816
- if (pathMatch && bodyMatch) {
817
- toolFound = true;
818
- const targetFile = pathMatch[1].trim();
819
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Creating: ${targetFile}` });
820
- const result = await this._createFile(targetFile, bodyMatch[1].trim());
821
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: result });
822
- this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
823
- this._streamBuffer = this._streamBuffer.replace(content, "");
824
- createRegex.lastIndex = 0;
943
+ if (allowed && !allowed.has('CREATE_FILE')) {
944
+ this._streamBuffer = this._streamBuffer.replace(createRegex, "");
945
+ }
946
+ else {
947
+ while ((match = createRegex.exec(this._streamBuffer)) !== null) {
948
+ const content = match[0];
949
+ const innerContent = match[1];
950
+ const pathMatch = /<PATH>(.*?)<\/PATH>/.exec(innerContent);
951
+ const bodyMatch = /<CONTENT>([\s\S]*?)<\/CONTENT>/.exec(innerContent);
952
+ if (pathMatch && bodyMatch) {
953
+ toolFound = true;
954
+ this._markToolExecuted('CREATE_FILE');
955
+ const targetFile = pathMatch[1].trim();
956
+ this._view?.webview.postMessage({ type: 'thoughtStart', value: `Creating: ${targetFile}` });
957
+ const result = await this._createFile(targetFile, bodyMatch[1].trim());
958
+ this._view?.webview.postMessage({ type: 'thoughtEnd', value: result });
959
+ this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
960
+ this._streamBuffer = this._streamBuffer.replace(content, "");
961
+ createRegex.lastIndex = 0;
962
+ }
825
963
  }
826
964
  }
827
965
  // 3. RUN_COMMAND
828
966
  const cmdRegex = /<RUN_COMMAND>([\s\S]*?)<\/RUN_COMMAND>/g;
829
- while ((match = cmdRegex.exec(this._streamBuffer)) !== null) {
830
- toolFound = true;
831
- const content = match[0];
832
- const command = match[1].trim();
833
- // Decide whether to auto-run or just suggest the command based on settings.
834
- const config = vscode.workspace.getConfiguration('partnerBot');
835
- const allowExec = config.get('allowCommandExecution', true);
836
- const execMode = config.get('commandExecutionMode', 'manual');
837
- if (allowExec && execMode === 'auto') {
838
- // Execute the command via the same handler used for UI-initiated commands.
839
- await this._handleRunCommand(command);
840
- }
841
- else {
842
- // Suggest the command in the UI; user must click to run.
843
- this._view?.webview.postMessage({ type: 'commandSuggestion', value: command });
844
- this._messageHistory.push({
845
- role: 'assistant',
846
- content: `[Suggested Command]: ${command}`
847
- });
967
+ if (allowed && !allowed.has('RUN_COMMAND')) {
968
+ this._streamBuffer = this._streamBuffer.replace(cmdRegex, "");
969
+ }
970
+ else {
971
+ while ((match = cmdRegex.exec(this._streamBuffer)) !== null) {
972
+ toolFound = true;
973
+ this._markToolExecuted('RUN_COMMAND');
974
+ const content = match[0];
975
+ const command = match[1].trim();
976
+ // Decide whether to auto-run or just suggest the command based on settings.
977
+ const config = vscode.workspace.getConfiguration('partnerBot');
978
+ const allowExec = config.get('allowCommandExecution', true);
979
+ const execMode = config.get('commandExecutionMode', 'manual');
980
+ if (allowExec && execMode === 'auto') {
981
+ // Execute the command via the same handler used for UI-initiated commands.
982
+ await this._handleRunCommand(command);
983
+ }
984
+ else {
985
+ // Suggest the command in the UI; user must click to run.
986
+ this._pendingToolFollowUp = true;
987
+ this._view?.webview.postMessage({ type: 'commandSuggestion', value: command });
988
+ this._messageHistory.push({
989
+ role: 'assistant',
990
+ content: `[Suggested Command]: ${command}`
991
+ });
992
+ }
993
+ this._streamBuffer = this._streamBuffer.replace(content, "");
994
+ cmdRegex.lastIndex = 0;
848
995
  }
849
- this._streamBuffer = this._streamBuffer.replace(content, "");
850
- cmdRegex.lastIndex = 0;
851
996
  }
852
997
  // 4. DELETE_FILE
853
998
  const deleteRegex = /<DELETE_FILE>([\s\S]*?)<\/DELETE_FILE>/g;
854
- while ((match = deleteRegex.exec(this._streamBuffer)) !== null) {
855
- toolFound = true;
856
- const content = match[0];
857
- const innerContent = match[1];
858
- const pathMatch = /<PATH>(.*?)<\/PATH>/.exec(innerContent);
859
- const targetFile = pathMatch ? pathMatch[1].trim() : innerContent.trim();
860
- if (targetFile) {
861
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Deleting: ${targetFile}` });
862
- const result = await this._deleteFile(targetFile);
863
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: result });
864
- this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
999
+ if (allowed && !allowed.has('DELETE_FILE')) {
1000
+ this._streamBuffer = this._streamBuffer.replace(deleteRegex, "");
1001
+ }
1002
+ else {
1003
+ while ((match = deleteRegex.exec(this._streamBuffer)) !== null) {
1004
+ toolFound = true;
1005
+ this._markToolExecuted('DELETE_FILE');
1006
+ const content = match[0];
1007
+ const innerContent = match[1];
1008
+ const pathMatch = /<PATH>(.*?)<\/PATH>/.exec(innerContent);
1009
+ const targetFile = pathMatch ? pathMatch[1].trim() : innerContent.trim();
1010
+ if (targetFile) {
1011
+ this._view?.webview.postMessage({ type: 'thoughtStart', value: `Deleting: ${targetFile}` });
1012
+ const result = await this._deleteFile(targetFile);
1013
+ this._view?.webview.postMessage({ type: 'thoughtEnd', value: result });
1014
+ this._messageHistory.push({ role: 'user', content: `[System]: ${result}` });
1015
+ }
1016
+ this._streamBuffer = this._streamBuffer.replace(content, "");
1017
+ deleteRegex.lastIndex = 0;
865
1018
  }
866
- this._streamBuffer = this._streamBuffer.replace(content, "");
867
- deleteRegex.lastIndex = 0;
868
1019
  }
869
1020
  // 5. READ_FILE
870
1021
  const readRegex = /<READ_FILE>([\s\S]*?)<\/READ_FILE>/g;
871
- while ((match = readRegex.exec(this._streamBuffer)) !== null) {
872
- toolFound = true;
873
- const content = match[0];
874
- const file = match[1].trim();
875
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Reading: ${file}` });
876
- // v2.6.34 Fix: actually read the file into history
877
- const fileContent = await this._readFileContent(file);
878
- this._messageHistory.push({ role: 'user', content: `[System: Content of ${file}]:\n\`\`\`\n${fileContent}\n\`\`\`` });
879
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Read' });
880
- this._streamBuffer = this._streamBuffer.replace(content, "");
881
- readRegex.lastIndex = 0;
1022
+ if (allowed && !allowed.has('READ_FILE')) {
1023
+ this._streamBuffer = this._streamBuffer.replace(readRegex, "");
1024
+ }
1025
+ else {
1026
+ while ((match = readRegex.exec(this._streamBuffer)) !== null) {
1027
+ toolFound = true;
1028
+ this._markToolExecuted('READ_FILE');
1029
+ const content = match[0];
1030
+ const file = match[1].trim();
1031
+ this._view?.webview.postMessage({ type: 'thoughtStart', value: `Reading: ${file}` });
1032
+ // v2.6.34 Fix: actually read the file into history
1033
+ const fileContent = await this._readFileContent(file);
1034
+ this._messageHistory.push({ role: 'user', content: `[System: Content of ${file}]:\n\`\`\`\n${fileContent}\n\`\`\`` });
1035
+ this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Read' });
1036
+ this._streamBuffer = this._streamBuffer.replace(content, "");
1037
+ readRegex.lastIndex = 0;
1038
+ }
882
1039
  }
883
1040
  // 6. LIST_DIR (New v2.6.34 - Updated regex for self-closing tags)
884
1041
  // Matches <LIST_DIR /> OR <LIST_DIR>path</LIST_DIR>
885
1042
  const listRegex = /<LIST_DIR\s*\/?>((?:.|\n)*?)<\/LIST_DIR>|<LIST_DIR\s*\/>/g;
886
- while ((match = listRegex.exec(this._streamBuffer)) !== null) {
887
- toolFound = true;
888
- const content = match[0];
889
- // If it's the self-closing match, match[1] will be undefined.
890
- this._view?.webview.postMessage({ type: 'thoughtStart', value: `Listing files...` });
891
- const structure = await this._getWorkspaceStructure();
892
- this._messageHistory.push({ role: 'user', content: `[System: File Structure]:\n${structure}` });
893
- this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Done' });
894
- this._streamBuffer = this._streamBuffer.replace(content, "");
895
- listRegex.lastIndex = 0;
1043
+ if (allowed && !allowed.has('LIST_DIR')) {
1044
+ this._streamBuffer = this._streamBuffer.replace(listRegex, "");
1045
+ }
1046
+ else {
1047
+ while ((match = listRegex.exec(this._streamBuffer)) !== null) {
1048
+ toolFound = true;
1049
+ this._markToolExecuted('LIST_DIR');
1050
+ const content = match[0];
1051
+ // If it's the self-closing match, match[1] will be undefined.
1052
+ this._view?.webview.postMessage({ type: 'thoughtStart', value: `Listing files...` });
1053
+ const structure = await this._getWorkspaceStructure();
1054
+ this._view?.webview.postMessage({
1055
+ type: 'listDirOutput',
1056
+ value: { root: vscode.workspace.workspaceFolders?.[0]?.name || 'workspace', output: structure }
1057
+ });
1058
+ this._messageHistory.push({ role: 'user', content: `[System: File Structure]:\n${structure}` });
1059
+ this._view?.webview.postMessage({ type: 'thoughtEnd', value: 'Done' });
1060
+ this._streamBuffer = this._streamBuffer.replace(content, "");
1061
+ listRegex.lastIndex = 0;
1062
+ }
896
1063
  }
897
1064
  // 6. GENERATE_IMAGE
898
1065
  const imgRegex = /<GENERATE_IMAGE>([\s\S]*?)<\/GENERATE_IMAGE>/g;
899
- while ((match = imgRegex.exec(this._streamBuffer)) !== null) {
900
- if (this._abortController?.signal.aborted)
901
- break; // STOP Check
902
- const content = match[0];
903
- const innerContent = match[1];
904
- const promptMatch = /<PROMPT>(.*?)<\/PROMPT>/.exec(innerContent);
905
- const outputMatch = /<OUTPUT>(.*?)<\/OUTPUT>/.exec(innerContent);
906
- if (promptMatch && outputMatch) {
907
- toolFound = true;
908
- if (this._imagesGeneratedThisTurn >= 1) {
909
- PartnerBotProvider.outputChannel.appendLine('[Info] XML: Skipping additional image generation (Limit 1 per turn).');
910
- // Consume tag but do nothing
911
- }
912
- else {
913
- const prompt = promptMatch[1].trim();
914
- const output = outputMatch[1].trim();
915
- await this._handleGenerateImage(prompt, output);
916
- this._imagesGeneratedThisTurn++;
1066
+ if (allowed && !allowed.has('GENERATE_IMAGE')) {
1067
+ this._streamBuffer = this._streamBuffer.replace(imgRegex, "");
1068
+ }
1069
+ else {
1070
+ while ((match = imgRegex.exec(this._streamBuffer)) !== null) {
1071
+ if (this._abortController?.signal.aborted)
1072
+ break; // STOP Check
1073
+ const content = match[0];
1074
+ const innerContent = match[1];
1075
+ const promptMatch = /<PROMPT>(.*?)<\/PROMPT>/.exec(innerContent);
1076
+ const outputMatch = /<OUTPUT>(.*?)<\/OUTPUT>/.exec(innerContent);
1077
+ if (promptMatch && outputMatch) {
1078
+ toolFound = true;
1079
+ this._markToolExecuted('GENERATE_IMAGE');
1080
+ if (this._imagesGeneratedThisTurn >= 1) {
1081
+ PartnerBotProvider.outputChannel.appendLine('[Info] XML: Skipping additional image generation (Limit 1 per turn).');
1082
+ // Consume tag but do nothing
1083
+ }
1084
+ else {
1085
+ const prompt = promptMatch[1].trim();
1086
+ const output = outputMatch[1].trim();
1087
+ await this._handleGenerateImage(prompt, output);
1088
+ this._imagesGeneratedThisTurn++;
1089
+ }
1090
+ this._streamBuffer = this._streamBuffer.replace(content, "");
1091
+ imgRegex.lastIndex = 0;
917
1092
  }
918
- this._streamBuffer = this._streamBuffer.replace(content, "");
919
- imgRegex.lastIndex = 0;
920
1093
  }
921
1094
  }
922
1095
  return toolFound;
@@ -1023,30 +1196,17 @@ Assistant: <GENERATE_IMAGE><PROMPT>a red cat</PROMPT><OUTPUT>assets/cat.png</OUT
1023
1196
  const uri = files[0];
1024
1197
  const doc = await vscode.workspace.openTextDocument(uri);
1025
1198
  const fullText = doc.getText();
1026
- // 1. Try Exact Match First
1199
+ // 1. Try Exact Match First (Exact-only for determinism)
1027
1200
  let startIndex = fullText.indexOf(search);
1028
1201
  let endIndex = startIndex + search.length;
1029
- // 2. Fuzzy Match
1030
- if (startIndex === -1) {
1031
- const cleanMap = [];
1032
- let cleanFull = "";
1033
- for (let i = 0; i < fullText.length; i++) {
1034
- if (!/\s/.test(fullText[i])) {
1035
- cleanFull += fullText[i];
1036
- cleanMap.push(i);
1037
- }
1038
- }
1039
- const cleanSearch = search.replace(/\s/g, "");
1040
- const cleanStartIndex = cleanFull.indexOf(cleanSearch);
1041
- if (cleanStartIndex !== -1) {
1042
- startIndex = cleanMap[cleanStartIndex];
1043
- const cleanEndIndex = cleanStartIndex + cleanSearch.length - 1;
1044
- endIndex = cleanMap[cleanEndIndex] + 1;
1045
- }
1046
- }
1047
1202
  if (startIndex === -1) {
1048
- this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nFailed to find code block (Fuzzy match failed).` });
1049
- return `Error: Failed to find target code block in '${relPath}'.`;
1203
+ const fileContent = await this._readFileContent(relPath);
1204
+ this._messageHistory.push({
1205
+ role: 'user',
1206
+ content: `[System]: Exact match failed for '${relPath}'. Re-read file and reissue <SEARCH_REPLACE> with an exact <SEARCH> snippet.\n\n[System: Content of ${relPath}]:\n\`\`\`\n${fileContent}\n\`\`\``
1207
+ });
1208
+ this._view?.webview.postMessage({ type: 'thoughtAppend', value: `\nExact match failed. Read file and reissue SEARCH_REPLACE with an exact snippet.` });
1209
+ return `Error: Failed to find exact target code block in '${relPath}'.`;
1050
1210
  }
1051
1211
  const startPos = doc.positionAt(startIndex);
1052
1212
  const endPos = doc.positionAt(endIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;AAgBA,4BAoCC;AApDD,iCAAiC;AAGjC,gBAAgB;AAEhB,qBAAqB;AAErB,kEAAkE;AAClE,yBAAyB;AACzB,6BAA6B;AAC7B,uEAAoE;AACpE,2CAAwC;AACxC,iCAAqC;AAErC,uCAA4D;AAE5D,SAAgB,QAAQ,CAAC,OAAgC;IACrD,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvE,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAC7E,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACvD,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACnD,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvD,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,iDAAiD,CAAC,CAAC;IACnG,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAC3D,MAAM,GAAG,GAAG,oBAAoB,IAAI,QAAQ,CAAC;QAE7C,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAUD,MAAM,kBAAkB;IAapB,YAA6B,aAAyB,EAAE,OAAgC;QAA3D,kBAAa,GAAb,aAAa,CAAY;QAX9C,qBAAgB,GAA2B,IAAI,CAAC;QAChD,kBAAa,GAAW,EAAE,CAAC;QAC3B,6BAAwB,GAAW,CAAC,CAAC;QACrC,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,eAAU,GAAY,KAAK,CAAC;QAK5B,sBAAiB,GAA+E,IAAI,GAAG,EAAE,CAAC;QAmiB1G,oBAAe,GAAwC,EAAE,CAAC;QAhiB9D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,qCAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YACpC,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;QACpG,CAAC;IACL,CAAC;IAEM,kBAAkB,CACrB,WAA+B,EAC/B,OAAyC,EACzC,MAAgC;QAEhC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QAEzB,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG;YAC1B,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;SAC3C,CAAC;QAEF,iGAAiG;QACjG,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnD,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;YAE9G,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,cAAc;oBACf,oCAAoC;oBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5D,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAClD,CAAC;oBACD,MAAM;gBACV,KAAK,MAAM;oBACP,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7E,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,wCAAwC;wBACtD,IAAI,CAAC;4BACD,8DAA8D;4BAC9D,8CAA8C;4BAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAChE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;wBAC9C,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACT,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBACzE,CAAC;oBACL,CAAC;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,MAAM;gBACV,KAAK,KAAK;oBACN,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM;gBACV,KAAK,MAAM;oBACP,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,wBAAwB;oBAC5C,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,MAAM;gBACV,KAAK,YAAY;oBACb,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,MAAM;gBACV,KAAK,eAAe,EAAE,+BAA+B;oBACjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI,oBAAoB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC5G,MAAM;gBACV,KAAK,cAAc;oBACf,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,+BAA+B,EAAE,0CAA0C,CAAC,CAAC;oBAC5G,MAAM;gBACV,KAAK,WAAW;oBACZ,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,MAAM;gBACV,KAAK,YAAY;oBACb,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAQ,aAAa,EAAE,EAAE,CAAC,CAAC;oBAC3E,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;oBAC/B,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC9E,MAAM;gBACV,KAAK,WAAW;oBACZ,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;oBACjF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,MAAM;YACd,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAExE,+DAA+D;QAC/D,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACnF,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAEhF,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,kBAAkB;QAEvF,uBAAuB;QACvB,IAAI,YAAY,GAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAS,WAAW,CAAC,IAAI,4BAA4B,CAAC;YAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC;YAExF,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAE7D,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAK,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;gBAC1C,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YACrC,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAEvC,2DAA2D;QAC3D,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBAChD,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa;YAC3F,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACnF,CAAC;IAEM,cAAc;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,kCAAkC;QAE1D,iBAAiB;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;gBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAS,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,aAAa,GAAG,oBAAoB,IAAI,QAAQ,CAAC;gBAEvD,yCAAyC;gBACzC,IAAA,mBAAK,EAAC,aAAa,EAAE;oBACjB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;iBACrC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAuB,EAAE,EAAE;oBAChC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,mCAAmC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;oBAChB,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnG,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,uBAAuB;YAC3B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACxE,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAY;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBAC5B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAe;QAC3C,OAAO,IAAI,OAAO,CAAU,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAU,uBAAuB,CAAC,IAAI,IAAI,CAAC;YACrE,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAS,sBAAsB,CAAC,IAAI,aAAa,CAAC;YAClF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAW,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAChE,mEAAmE;YACnE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC,CAAC;gBAC/G,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,OAAO,uBAAuB,CAAC,CAAC;gBAC9E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,uBAAuB,EAAE,CAAC,CAAC;gBAC3G,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAChH,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE/D,mCAAmC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gCAAgC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7G,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,OAAO,qFAAqF,CAAC,CAAC;gBAChJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,OAAO,qFAAqF,EAAE,CAAC,CAAC;gBAC7K,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAED,kBAAkB;YAClB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,WAAW,wBAAwB,EAAE,CAAC,CAAC;gBACrH,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,OAAO,8BAA8B,CAAC,CAAC;gBACrF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,8BAA8B,EAAE,CAAC,CAAC;gBAClH,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAGD,8DAA8D;YAC9D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAElG,IAAI,eAAe,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;oBAC9D,OAAO,CAAC,UAAU,CAAC,CAAC;oBACpB,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,wBAAwB,eAAe,CAAC,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAChI,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,OAAO,qBAAqB,CAAC,CAAC;gBAC5E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,qBAAqB,EAAE,CAAC,CAAC;gBACzG,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YAED,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,qBAAS,CAAC,GAAG,CAAC;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,KAAK;oBACrB,IAAI,EAAE,qBAAqB;oBAC3B,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS;oBAC5C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI;oBAClC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBAChE,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM;oBACb,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU;iBACjD,CAAC,CAAC;gBAEH,wCAAwC;gBACxC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,qBAAS,CAAC,GAAG,CAAC;oBACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,KAAK;oBACrB,IAAI,EAAE,oBAAoB;oBAC1B,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,QAAQ,KAAK,MAAM;oBAC5B,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS;oBAC5C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI;oBAClC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBAChE,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;oBAC/C,KAAK,EAAE,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBACnG,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU;iBACjD,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,OAAO,mBAAmB,CAAC,CAAC;oBAC1E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,OAAO,mBAAmB,EAAE,CAAC,CAAC;oBACvG,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACX,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACL,CAAC;YACD,mEAAmE;YAEnE,yDAAyD;YAGzD,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,OAAO,EAAE,EAAE,CAAC,CAAC;YAE3F,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAEpC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAQ,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;gBAC5E,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAE3B,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;gBACpC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;oBAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC;gBAEhF,gCAAgC;gBAChC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;oBAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;wBACnD,MAAM,IAAI,kFAAkF,CAAC;oBACjG,CAAC;oBACD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5B,MAAM,IAAI,uDAAuD,CAAC;oBACtE,CAAC;oBACD,4BAA4B;oBAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,0BAA0B;oBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAED,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wCAAwC,GAAG,CAAC,IAAI,MAAM,MAAM,EAAE,EAAE,CAAC,CAAC;oBACrH,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5F,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,6BAA6B,CAAC,OAAe,EAAE,GAAY;QAC/D,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC;QAE3B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACnC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;eACnD,UAAU,KAAK,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;eACrD,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,kBAAkB,CAAC,iEAAiE,CAAC,CAAC;YAC3F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,oEAAoE,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAEO,oBAAoB,CAAC,OAAe;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,GAAG,CAAC;IACf,CAAC;IAIO,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,UAAkB,EAAE,MAAoB;QACvF,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO;QAE5B,gCAAgC;QAChC,sFAAsF;QACtF,8FAA8F;QAC9F,6FAA6F;QAC7F,wCAAwC;QACxC,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,EAAE,CAAC;YACrC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,0DAA0D,CAAC,CAAC;YACxG,OAAO;QACX,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,MAAM,EAAE,EAAE,CAAC,CAAC;QAEhG,0CAA0C;QAC1C,iFAAiF;QACjF,6DAA6D;QAC7D,4BAA4B;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;gBAC5B,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE;oBACL,GAAG,eAAe,CAAC,OAAO;oBAC1B,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,kBAAkB,UAAU,EAAE;oBACvC,MAAM,EAAE,mBAAmB,MAAM,EAAE;iBACtC;aACJ,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;gBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;gBAC3F,OAAO;YACX,CAAC;YACD,6FAA6F;YAC7F,0EAA0E;YAC1E,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAS,YAAY,CAAC,IAAI,2BAA2B,CAAC,CAAC,cAAc;YAClG,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC;YAEhF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAK,EAAC,QAAQ,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,MAAM;oBACN,uBAAuB,EAAE,UAAU;oBACnC,qBAAqB,EAAE,OAAO;oBAC9B,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,KAAK;iBACvB,CAAC;gBACF,MAAM,CAAC,oBAAoB;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,IAAI,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAC5B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAErE,oBAAoB;YACpB,iDAAiD;YACjD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAE1F,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,QAAQ,KAAK,EAAE,CAAC,CAAC;YAErG,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAK,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE1C,uBAAuB;YACvB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACxE,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACtD,oBAAoB;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAEhD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,UAAU,EAAE,EAAE,CAAC,CAAC;YAEjG,iBAAiB;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,MAAM,OAAO,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3G,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,UAAU,EAAE,EAAE,CAAC,CAAC;QAEnG,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6CAA6C,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAMO,KAAK,CAAC,WAAW,CAAC,OAA6B,EAAE,aAAsB,EAAE,aAAsB,EAAE,OAAe,OAAO,EAAE,SAAiB,MAAM;QACpJ,yCAAyC;QACzC,uBAAuB;QACvB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;QAE9D,yDAAyD;QACzD,IAAI,QAAgB,CAAC;QACrB,IAAI,cAAkC,CAAC;QACvC,IAAI,cAAkC,CAAC;QACvC,IAAI,KAAK,GAAW,OAAO,CAAC;QAC5B,IAAI,OAAO,GAAW,MAAM,CAAC;QAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,QAAQ,GAAG,OAAO,CAAC;YACnB,cAAc,GAAG,aAAa,CAAC;YAC/B,cAAc,GAAG,aAAa,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,GAAG,MAAM,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/B,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;YAChC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACvC,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,MAAM,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,iDAAiD;QACjD,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,kBAAkB;QAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC5B,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,GAAG,sBAAsB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACJ,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACxG,IAAI,GAAG,kBAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,SAAS,EAAE,CAAC;YACrK,CAAC;YACD,aAAa,IAAI,KAAK,IAAI,IAAI,CAAC;QACnC,CAAC;QAED,sBAAsB;QACtB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3D,IAAI,cAAc;YAAE,aAAa,IAAI,+BAA+B,cAAc,EAAE,CAAC;QAErF,sDAAsD;QACtD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACnG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3C,CAAC,CAAC,cAAc,CAAC;QAErB,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;gCAqBD,aAAa;;;;0NAI6K,CAAC;QAEnN,0BAA0B;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAS,eAAe,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QAEpH,yEAAyE;QACzE,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,4FAA4F;QAC5F,gCAAgC;QAChC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC;QAEnE,+FAA+F;QAC/F,MAAM,aAAa,GAAG,2JAA2J,CAAC;QAElL,MAAM,eAAe,GAAG,GAAG,eAAe,GAAG,QAAQ,0BAA0B,aAAa,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAE/H,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,mBAAmB;QAE9C,uBAAuB;QACvB,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,aAAsB,EAAE,OAAe,OAAO,EAAE,SAAiB,MAAM;QAC/F,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,kBAAkB;QAE3C,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,kBAAkB;YAE9C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,cAAc;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3F,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;YAE9C,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,sBAAsB,GAAG,KAAK,CAAC,CAAC,4BAA4B;YAEhE,iBAAiB;YACjB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE1B,yHAAyH;YACzH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;gBAC5B,iBAAiB,IAAI,KAAK,CAAC;gBAC3B,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACzF,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAE5B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACtB,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,8CAA8C,CAAC,CAAC;gBAC5F,MAAM;YACV,CAAC;YAED,0EAA0E;YAC1E,wEAAwE;YACxE,4GAA4G;YAC5G,+DAA+D;YAC/D,6DAA6D;YAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,OAAO,CAAC;YAErF,8DAA8D;YAC9D,kFAAkF;YAClF,6CAA6C;YAC7C,kEAAkE;YAClE,+EAA+E;YAC/E,IAAI,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAC9C,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC3C,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC3C,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACjD,sBAAsB,GAAG,IAAI,CAAC;YAClC,CAAC;YAED,sDAAsD;YACtD,2EAA2E;YAE3E,4CAA4C;YAC5C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,oFAAoF;gBACpF,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YAGD,IAAI,CAAC;gBACD,kFAAkF;gBAClF,uDAAuD;gBACvD,iDAAiD;gBAEjD,2DAA2D;gBAC3D,uEAAuE;gBAEvE,MAAM,SAAS,GAAG,gCAAgC,CAAC;gBACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAEhD,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,OAAO,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBAEjH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAEzD,wCAAwC;oBACxC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAE7E,gCAAgC;oBAChC,MAAM,UAAU,GAAG,uBAAuB,OAAO,gBAAgB,WAAW,0CAA0C,CAAC;oBACvH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;oBAEjE,kBAAkB,GAAG,IAAI,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACJ,iDAAiD;oBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACjF,CAAC;YAEL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpH,CAAC;gBACD,MAAM,CAAC,qBAAqB;YAChC,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACjC,CAAC;YAID,0BAA0B;YAC1B,uEAAuE;YACvE,qBAAqB;YACrB,IAAI,CAAC,kBAAkB,IAAI,sBAAsB,EAAE,CAAC;gBAChD,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iCAAiC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEjH,qCAAqC;gBACrC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,2HAA2H;iBACvI,CAAC,CAAC;gBAEH,kCAAkC;gBAClC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClF,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzF,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,gCAAgC;gBAE7D,MAAM,CAAC,gCAAgC;YAC3C,CAAC;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACtB,mCAAmC;gBACnC,MAAM;YACV,CAAC;YAED,SAAS,EAAE,CAAC;QAChB,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC1C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,OAAO,gDAAgD,OAAO,GAAG,CAAC;YACtE,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,uBAAuB;YACvB,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,eAAe,OAAO,0BAA0B,CAAC;YAC5D,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QAEzB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,sBAAsB,OAAO,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,iCAAiC;IACzB,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC3C,4EAA4E;QAC5E,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,mDAAmD;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;aAClC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE3B,4EAA4E;QAC5E,qDAAqD;QACrD,8EAA8E;QAC9E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,mCAAmC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzG,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtD,6BAA6B;YAC7B,IAAI,cAAc,KAAK,YAAY;gBAAE,cAAc,GAAG,aAAa,CAAC;YACpE,IAAI,cAAc,KAAK,YAAY;gBAAE,cAAc,GAAG,aAAa,CAAC;YACpE,IAAI,cAAc,KAAK,UAAU;gBAAE,cAAc,GAAG,WAAW,CAAC;YAChE,IAAI,cAAc,KAAK,eAAe;gBAAE,cAAc,GAAG,gBAAgB,CAAC;YAC1E,IAAI,cAAc,KAAK,YAAY;gBAAE,cAAc,GAAG,aAAa,CAAC;YACpE,OAAO,IAAI,KAAK,GAAG,cAAc,GAAG,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,SAAS,GAAG,+CAA+C,CAAC;QAClE,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzE,IAAI,SAAS,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;gBAC3C,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC3F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC;gBAE5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,GAAG,yCAAyC,CAAC;QAC9D,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC;gBAE5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7D,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,yCAAyC,CAAC;QAC3D,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhC,4EAA4E;YAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAU,uBAAuB,EAAE,IAAI,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAS,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAEtE,IAAI,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACnC,2EAA2E;gBAC3E,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACJ,yDAAyD;gBACzD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,wBAAwB,OAAO,EAAE;iBAC7C,CAAC,CAAC;YACP,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,GAAG,yCAAyC,CAAC;QAC9D,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAEzE,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,eAAe;QACf,MAAM,SAAS,GAAG,qCAAqC,CAAC;QACxD,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;YAErF,mDAAmD;YACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,IAAI,eAAe,WAAW,UAAU,EAAE,CAAC,CAAC;YAEtH,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,kEAAkE;QAClE,oDAAoD;QACpD,MAAM,SAAS,GAAG,2DAA2D,CAAC;QAC9E,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,8DAA8D;YAC9D,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,+CAA+C,CAAC;QACjE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,aAAa;YAE/D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjE,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;gBAC7B,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,EAAE,CAAC;oBACrC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,sEAAsE,CAAC,CAAC;oBACpH,6BAA6B;gBACjC,CAAC;qBAAM,CAAC;oBACJ,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAe;QACtD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;gBACnG,OAAO,6BAA6B,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAE5B,sEAAsE;YACtE,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,iCAAiC;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,OAAO,kCAAkC,CAAC;gBAC9C,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACpF,CAAC;YACL,CAAC;YAED,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzF,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAEnE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;YAClG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,SAAS,OAAO,yBAAyB,CAAC;QAErD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,mBAAmB,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe;QACrC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;gBACnG,OAAO,6BAA6B,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAE5B,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,OAAO,mBAAmB,CAAC,CAAC;oBACzE,OAAO,kCAAkC,CAAC;gBAC9C,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACpF,CAAC;YACL,CAAC;iBAAM,IAAI,eAAe,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC5C,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,OAAO,qBAAqB,CAAC,CAAC;gBAC3E,OAAO,oCAAoC,CAAC;YAChD,CAAC;YAED,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/E,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;YAClG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,SAAS,OAAO,yBAAyB,CAAC;QACrD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,mBAAmB,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE,OAAe;QACrE,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAClD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC7E,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClG,OAAO,gBAAgB,OAAO,cAAc,CAAC;YACjD,CAAC;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAE/B,2BAA2B;YAC3B,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAE1C,iBAAiB;YACjB,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1B,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEvD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzB,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;oBACvC,MAAM,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC/D,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;YAED,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;gBACvH,OAAO,+CAA+C,OAAO,IAAI,CAAC;YACtE,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEjD,iCAAiC;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAChG,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC5B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAA4C,CAAC,GAAG,EAAE,EAAE;oBAClF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC3F,OAAO,kCAAkC,CAAC;gBAC9C,CAAC;gBAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACjD,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzF,OAAO,SAAS,OAAO,yBAAyB,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,OAAO,2CAA2C,OAAO,IAAI,CAAC;YAClE,CAAC;QAEL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,kBAAkB,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,SAAS,IAAI,WAAW,MAAM,CAAC,IAAI,IAAI,CAAC;YAExC,qBAAqB;YACrB,4CAA4C;YAC5C,mEAAmE;YACnE,4DAA4D;YAC5D,MAAM,cAAc,GAAG,yFAAyF,CAAC;YAEjH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAC1C,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,cAAc,EACd,GAAG,CAAC,qBAAqB;aAC5B,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,iCAAiC;gBACjC,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACpJ,SAAS;gBACb,CAAC;gBAED,SAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1E,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAE3D,2BAA2B;QAC3B,MAAM,UAAU,GAAG;YACf,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAS,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAC/C,IAAI,OAAO,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAClD,CAAC;qBAAM,IAAI,OAAO,EAAE,oBAAoB,KAAK,SAAS,EAAE,CAAC;oBACrD,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC;gBACxD,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACxD,CAAC;SACJ,CAAC;QACF,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,CAAC,MAA8C,EAAE,CAAU,EAAE,EAAE;gBACnE,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,6BAA6B,MAAM,8BAA8B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7H,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;qBACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC,CAAC;YAChH,CAAC;SACJ,CAAC;QACF,MAAM,MAAM,GAAG;YACX,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE;gBACjB,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjD,4DAA4D;gBAC5D,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC;SACJ,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,mBAAK,EAAE,MAAM,CAAC,CAAC;QAEzE,MAAM,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAiB,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;YAC9D,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,kCAAkC,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAiB,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;YAC1D,OAAO;QACX,CAAC;QAED,iEAAiE;QACjE,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC/C,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAClC,CAAC;QAEF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,YAAY,GAAG,wBAAwB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClE,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,wGAAwG,IAAI,GAAG,YAAY,EAAE,CAAC;QAC7I,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAA6C,EAAE,MAAmB,EAAE,OAAgC,EAAE,aAAsB,EAAE,SAAiB,OAAO,EAAE,YAAoB,MAAM;QACxM,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE/D,wDAAwD;QACxD,mDAAmD;QACnD,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,IAAI,SAAS,KAAK,KAAK;YAAE,WAAW,GAAG,eAAe,CAAC;QACvD,IAAI,SAAS,KAAK,OAAO;YAAE,WAAW,GAAG,MAAM,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS;YAAE,WAAW,GAAG,SAAS,CAAC;QAErD,oCAAoC;QACpC,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,mBAAmB;QAC7C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,WAAW,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACnD,WAAW,GAAG,MAAM,CAAC;YACrB,2DAA2D;QAC/D,CAAC;QAED,qCAAqC;QACrC,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;YAC5D,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,MAAM,CAAC;YACnC,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,MAAM,CAAC;YAEnC,kBAAkB;YAClB,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,mBAAmB,CAAC,CAAC,OAAO,MAAM,CAAC;gBACxC,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;gBAC9B,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;gBACjC,KAAK,eAAe,CAAC,CAAC,OAAO,SAAS,CAAC;gBACvC,KAAK,gBAAgB,CAAC,CAAC,OAAO,SAAS,CAAC;gBACxC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEhE,wCAAwC;QACxC,IAAI,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC,IAAI,YAAY,CAAC;YACpE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,mBAAmB,CAAC;YACjF,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC,IAAI,6BAA6B,CAAC;YAErF,IAAI,YAAY,KAAK,MAAM;gBAAE,KAAK,GAAG,SAAS,CAAC;iBAC1C,IAAI,YAAY,KAAK,MAAM;gBAAE,KAAK,GAAG,SAAS,CAAC;;gBAC/C,KAAK,GAAG,YAAY,CAAC;QAC9B,CAAC;QAED,mDAAmD;QACnD,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,kBAAkB,WAAW,cAAc,WAAW,YAAY,YAAY,cAAc,KAAK,EAAE,CAAC,CAAC;QACjJ,gDAAgD;QAEhD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAS,WAAW,CAAC,IAAI,wBAAwB,CAAC;QAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAU,eAAe,CAAC,IAAI,KAAK,CAAC;QACpE,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAErE,IAAI,aAAa,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;YACvD,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAS,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAE1D,+EAA+E;gBAC/E,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAK,EAAC,oBAAoB,cAAc,QAAQ,EAAE;oBACrE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACL,cAAc,EAAE,kBAAkB;wBAClC,cAAc,EAAE,KAAK;qBACxB;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,KAAK,EAAE,4BAA4B;wBACnC,QAAQ;wBACR,IAAI,EAAE,WAAW,EAAE,iBAAiB;wBACpC,MAAM,EAAE,WAAW,EAAE,wBAAwB;wBAC7C,IAAI,EAAE,YAAY,EAAE,mCAAmC;wBACvD,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE;qBACpC,CAAC;oBACF,MAAM;iBACT,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAExD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;gBACD,OAAO;YACX,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,GAAG,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,yBAAyB,GAAG,CAAC,OAAO,sCAAsC,EAAE,CAAC,CAAC;YAClJ,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAK,EAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE;gBACrE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK;oBACL,QAAQ;oBACR,MAAM,EAAE,IAAI;iBACf,CAAC;gBACF,MAAM;aACT,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAExD,4CAA4C;YAC5C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBAAE,SAAS;oBAC3B,IAAI,CAAC;wBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;4BACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAClC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,gBAAyB,KAAK;QACjE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG;;;;;;;;;;;;;;;;;;mFAkB4D,CAAC;YACxE,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,mBAAmB;YACnB,OAAO;;uCAEoB,CAAC;QAChC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAuB;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACpG,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QAErG,sDAAsD;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/E,IAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE7C,qBAAqB;QACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,8BAA8B;QAC9B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE5C,iDAAiD;QACjD,8FAA8F;QAC9F,MAAM,GAAG,GAAG,mFAAmF,OAAO,CAAC,SAAS,sBAAsB,OAAO,CAAC,SAAS,gCAAgC,OAAO,CAAC,SAAS,mCAAmC,CAAC;QAC5O,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,SAAS,QAAQ;IACb,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,gEAAgE,CAAC;IAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "indirecttek-vibe-engine",
3
3
  "displayName": "IndirectTek Vibe Engine",
4
4
  "description": "Autonomous Local AI Agent. Vibe Coding v1.0.",
5
- "version": "2.6.51",
5
+ "version": "2.6.61",
6
6
  "icon": "media/icon.png",
7
7
  "bin": {
8
8
  "vibe-agent": "bin/vibe-agent.js"