@mcpmesh/sdk 0.9.12 → 1.0.0-beta.2

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 (87) hide show
  1. package/dist/__tests__/llm-agent-media.test.d.ts +8 -0
  2. package/dist/__tests__/llm-agent-media.test.d.ts.map +1 -0
  3. package/dist/__tests__/llm-agent-media.test.js +167 -0
  4. package/dist/__tests__/llm-agent-media.test.js.map +1 -0
  5. package/dist/__tests__/media-helpers.test.d.ts +7 -0
  6. package/dist/__tests__/media-helpers.test.d.ts.map +1 -0
  7. package/dist/__tests__/media-helpers.test.js +60 -0
  8. package/dist/__tests__/media-helpers.test.js.map +1 -0
  9. package/dist/__tests__/media-param.test.d.ts +7 -0
  10. package/dist/__tests__/media-param.test.d.ts.map +1 -0
  11. package/dist/__tests__/media-param.test.js +104 -0
  12. package/dist/__tests__/media-param.test.js.map +1 -0
  13. package/dist/__tests__/media-resolver.test.d.ts +8 -0
  14. package/dist/__tests__/media-resolver.test.d.ts.map +1 -0
  15. package/dist/__tests__/media-resolver.test.js +298 -0
  16. package/dist/__tests__/media-resolver.test.js.map +1 -0
  17. package/dist/__tests__/media-result.test.d.ts +5 -0
  18. package/dist/__tests__/media-result.test.d.ts.map +1 -0
  19. package/dist/__tests__/media-result.test.js +180 -0
  20. package/dist/__tests__/media-result.test.js.map +1 -0
  21. package/dist/__tests__/media-store.test.d.ts +7 -0
  22. package/dist/__tests__/media-store.test.d.ts.map +1 -0
  23. package/dist/__tests__/media-store.test.js +102 -0
  24. package/dist/__tests__/media-store.test.js.map +1 -0
  25. package/dist/__tests__/proxy-resource-link.test.d.ts +8 -0
  26. package/dist/__tests__/proxy-resource-link.test.d.ts.map +1 -0
  27. package/dist/__tests__/proxy-resource-link.test.js +175 -0
  28. package/dist/__tests__/proxy-resource-link.test.js.map +1 -0
  29. package/dist/agent.d.ts +1 -0
  30. package/dist/agent.d.ts.map +1 -1
  31. package/dist/agent.js +76 -10
  32. package/dist/agent.js.map +1 -1
  33. package/dist/api-runtime.d.ts.map +1 -1
  34. package/dist/api-runtime.js +7 -1
  35. package/dist/api-runtime.js.map +1 -1
  36. package/dist/config.d.ts +17 -0
  37. package/dist/config.d.ts.map +1 -1
  38. package/dist/config.js +19 -0
  39. package/dist/config.js.map +1 -1
  40. package/dist/debug.d.ts +1 -1
  41. package/dist/debug.d.ts.map +1 -1
  42. package/dist/express.d.ts.map +1 -1
  43. package/dist/express.js +33 -18
  44. package/dist/express.js.map +1 -1
  45. package/dist/index.d.ts +5 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +6 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/llm-agent.d.ts.map +1 -1
  50. package/dist/llm-agent.js +44 -6
  51. package/dist/llm-agent.js.map +1 -1
  52. package/dist/llm-provider.d.ts +25 -7
  53. package/dist/llm-provider.d.ts.map +1 -1
  54. package/dist/llm-provider.js +104 -17
  55. package/dist/llm-provider.js.map +1 -1
  56. package/dist/media/index.d.ts +104 -0
  57. package/dist/media/index.d.ts.map +1 -0
  58. package/dist/media/index.js +135 -0
  59. package/dist/media/index.js.map +1 -0
  60. package/dist/media/media-store.d.ts +75 -0
  61. package/dist/media/media-store.d.ts.map +1 -0
  62. package/dist/media/media-store.js +217 -0
  63. package/dist/media/media-store.js.map +1 -0
  64. package/dist/media/resolver.d.ts +67 -0
  65. package/dist/media/resolver.d.ts.map +1 -0
  66. package/dist/media/resolver.js +311 -0
  67. package/dist/media/resolver.js.map +1 -0
  68. package/dist/media-param.d.ts +17 -0
  69. package/dist/media-param.d.ts.map +1 -0
  70. package/dist/media-param.js +32 -0
  71. package/dist/media-param.js.map +1 -0
  72. package/dist/provider-handlers/provider-handler.d.ts.map +1 -1
  73. package/dist/provider-handlers/provider-handler.js +5 -4
  74. package/dist/provider-handlers/provider-handler.js.map +1 -1
  75. package/dist/proxy.d.ts +22 -1
  76. package/dist/proxy.d.ts.map +1 -1
  77. package/dist/proxy.js +65 -20
  78. package/dist/proxy.js.map +1 -1
  79. package/dist/tls-config.d.ts +31 -0
  80. package/dist/tls-config.d.ts.map +1 -0
  81. package/dist/tls-config.js +102 -0
  82. package/dist/tls-config.js.map +1 -0
  83. package/dist/types.d.ts +63 -2
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/types.js +33 -1
  86. package/dist/types.js.map +1 -1
  87. package/package.json +3 -3
@@ -26,6 +26,7 @@ import { createDebug } from "./debug.js";
26
26
  import { ProviderHandlerRegistry, makeSchemaStrict } from "./provider-handlers/index.js";
27
27
  import { generateTraceId, generateSpanId, publishTraceSpan, matchesPropagateHeader } from "./tracing.js";
28
28
  import { runWithTraceContext, runWithPropagatedHeaders, callMcpTool } from "./proxy.js";
29
+ import { resolveResourceLinks, resolveResourceLinksForToolMessage, hasResourceLink, TOOL_IMAGE_UNSUPPORTED_VENDORS } from "./media/index.js";
29
30
  const debug = createDebug("llm-provider");
30
31
  // ============================================================================
31
32
  // Vendor Extraction
@@ -189,7 +190,12 @@ const MeshLlmRequestSchema = z.object({
189
190
  request: z.object({
190
191
  messages: z.array(z.object({
191
192
  role: z.enum(["system", "user", "assistant", "tool"]),
192
- content: z.string().nullable(),
193
+ content: z.union([
194
+ z.string(),
195
+ z.array(z.object({
196
+ type: z.string(),
197
+ }).passthrough()),
198
+ ]).nullable(),
193
199
  tool_calls: z
194
200
  .array(z.object({
195
201
  id: z.string(),
@@ -369,7 +375,7 @@ export function llmProvider(config) {
369
375
  // JSON schema, field descriptions, example format) when tools + structured output
370
376
  // are both present. Without this, LLMs return wrong data.
371
377
  const formattedMessages = request.messages.map(msg => {
372
- if (msg.role === "system" && msg.content) {
378
+ if (msg.role === "system" && typeof msg.content === "string" && msg.content) {
373
379
  const formattedContent = handler.formatSystemPrompt(msg.content, request.tools ?? null, // ToolSchema[] format (OpenAI function calling)
374
380
  outputSchemaObj, promptOutputMode);
375
381
  debug(`Formatted system prompt (${promptOutputMode} mode): ${formattedContent.substring(0, 200)}...`);
@@ -436,6 +442,17 @@ export function llmProvider(config) {
436
442
  debug(`Provider executing tool '${toolName}' at ${toolEndpoint}`);
437
443
  try {
438
444
  const result = await callMcpTool(toolEndpoint, toolName, toolArgs, 30000, 1, "tool");
445
+ // Resolve resource_links to provider-native media content
446
+ if (hasResourceLink(result)) {
447
+ debug(`Tool '${toolName}' result contains resource_link, resolving for ${vendor}`);
448
+ const resolved = await resolveResourceLinksForToolMessage(result, vendor);
449
+ // Return resolved content as structured result for AI SDK
450
+ return resolved.length === 1 ? resolved[0] : resolved;
451
+ }
452
+ if (typeof result === "object") {
453
+ debug(`Tool '${toolName}' result: [multi_content]`);
454
+ return result;
455
+ }
439
456
  debug(`Tool '${toolName}' result: ${result.substring(0, 200)}`);
440
457
  try {
441
458
  return JSON.parse(result);
@@ -625,18 +642,29 @@ export function llmProvider(config) {
625
642
  role: "assistant",
626
643
  content: assistantContentParts,
627
644
  });
645
+ // Collect images that cannot go in tool messages (OpenAI/Gemini).
646
+ // After ALL tool results, we inject ONE user message with all images.
647
+ // This keeps the message sequence valid:
648
+ // assistant(tool_calls) -> tool -> tool -> ... -> user(images)
649
+ const accumulatedImageParts = [];
628
650
  // Execute each tool call and add results as tool messages
629
651
  for (const tc of result.toolCalls) {
630
652
  const toolName = tc.toolName;
631
653
  const toolEndpoint = toolEndpoints[toolName];
632
654
  let toolResultStr;
655
+ // Track raw result for resource_link resolution
656
+ let rawToolResult = null;
633
657
  if (toolEndpoint) {
634
658
  try {
635
659
  const toolArgs = (tc.input ?? {});
636
660
  debug(`Provider executing tool '${toolName}' at ${toolEndpoint}`);
637
- toolResultStr = await callMcpTool(toolEndpoint, toolName, toolArgs, 30000, // 30s timeout
661
+ const rawResult = await callMcpTool(toolEndpoint, toolName, toolArgs, 30000, // 30s timeout
638
662
  1, // 1 attempt
639
663
  "tool");
664
+ rawToolResult = rawResult;
665
+ toolResultStr = typeof rawResult === "object"
666
+ ? JSON.stringify(rawResult)
667
+ : rawResult;
640
668
  debug(`Tool '${toolName}' result: ${toolResultStr.substring(0, 200)}`);
641
669
  }
642
670
  catch (err) {
@@ -648,24 +676,83 @@ export function llmProvider(config) {
648
676
  else {
649
677
  toolResultStr = JSON.stringify({ error: `No endpoint for tool ${toolName}` });
650
678
  }
651
- // Parse JSON result if possible for structured output
652
- let toolOutput;
653
- try {
654
- toolOutput = { type: "json", value: JSON.parse(toolResultStr) };
655
- }
656
- catch {
657
- toolOutput = { type: "text", value: toolResultStr };
658
- }
659
- // Add tool result message in Vercel AI SDK format
660
- currentMessages.push({
661
- role: "tool",
662
- content: [{
679
+ // Resolve resource_links to provider-native multimodal content.
680
+ // Claude supports images in tool messages directly.
681
+ // OpenAI/Gemini: text-only in tool message, images accumulated for user message.
682
+ if (hasResourceLink(rawToolResult)) {
683
+ debug(`Tool '${toolName}' result contains resource_link, resolving for ${vendor}`);
684
+ const allParts = await resolveResourceLinks(rawToolResult, vendor);
685
+ // Build tool result message with text-only content for OpenAI/Gemini,
686
+ // or full multimodal content for Claude.
687
+ const imageTypes = new Set(["image", "image_url"]);
688
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
689
+ let toolResultOutput;
690
+ if (TOOL_IMAGE_UNSUPPORTED_VENDORS.has(vendor)) {
691
+ // OpenAI/Gemini: text-only in tool message, images accumulated separately
692
+ const textParts = allParts.filter(p => !imageTypes.has(p.type));
693
+ toolResultOutput = { type: "text", value: textParts.map(p => p.text || "[image]").join("\n") };
694
+ }
695
+ else {
696
+ // Claude/Anthropic: preserve full multimodal content in tool message
697
+ toolResultOutput = { type: "json", value: allParts };
698
+ }
699
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
700
+ const toolResultContent = [{
663
701
  type: "tool-result",
664
702
  toolCallId: tc.toolCallId,
665
703
  toolName,
666
- output: toolOutput,
667
- }],
704
+ output: toolResultOutput,
705
+ }];
706
+ currentMessages.push({
707
+ role: "tool",
708
+ content: toolResultContent,
709
+ });
710
+ // Accumulate images for a single user message after ALL tool results.
711
+ // For vendors that don't support images in tool messages, extract image
712
+ // parts from the already-resolved content (no second fetch needed).
713
+ if (TOOL_IMAGE_UNSUPPORTED_VENDORS.has(vendor)) {
714
+ const imageParts = allParts.filter(p => imageTypes.has(p.type));
715
+ accumulatedImageParts.push(...imageParts);
716
+ debug(`Tool '${toolName}' resolved multimodal (vendor=${vendor}, images_accumulated=${imageParts.length})`);
717
+ }
718
+ else {
719
+ debug(`Tool '${toolName}' resolved multimodal (vendor=${vendor}, inline in tool message)`);
720
+ }
721
+ }
722
+ else {
723
+ // No resource_links — standard tool result
724
+ let toolOutput;
725
+ try {
726
+ toolOutput = { type: "json", value: JSON.parse(toolResultStr) };
727
+ }
728
+ catch {
729
+ toolOutput = { type: "text", value: toolResultStr };
730
+ }
731
+ // Add tool result message in Vercel AI SDK format
732
+ currentMessages.push({
733
+ role: "tool",
734
+ content: [{
735
+ type: "tool-result",
736
+ toolCallId: tc.toolCallId,
737
+ toolName,
738
+ output: toolOutput,
739
+ }],
740
+ });
741
+ }
742
+ }
743
+ // After ALL tool results: inject accumulated images as one user message.
744
+ // Sequence: assistant(tool_calls) -> tool -> tool -> ... -> user(images)
745
+ // This is valid because it comes after all tool results and before the
746
+ // next LLM call.
747
+ if (accumulatedImageParts.length > 0) {
748
+ currentMessages.push({
749
+ role: "user",
750
+ content: [
751
+ { type: "text", text: "Here are the images from the tool results above:" },
752
+ ...accumulatedImageParts,
753
+ ],
668
754
  });
755
+ debug(`Injected user message with ${accumulatedImageParts.length} accumulated images (vendor=${vendor})`);
669
756
  }
670
757
  }
671
758
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEzG,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AAE1C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB,EAAE,0CAA0C;IACpE,2CAA2C;CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,QAAQ,EAAE,gDAAgD;CACnE,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/C,qDAAqD;QACrD,iCAAiC;QACjC,0DAA0D;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAE9C,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,UAAU,CAAC;YACtD,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;YACvC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,4DAA4D;IAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc;IAEd,8DAA8D;IAC9D,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAGjD,CAAC;QAEF,4EAA4E;QAC5E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAEpD,kFAAkF;QAClF,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAEhC,CAAC;QACd,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,YAAY,MAAM,0DAA0D,UAAU,IAAI,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,2BAA2B,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,QAAsB;IACrD,+EAA+E;IAC/E,iCAAiC;IACjC,OAAO,QAA0C,CAAC;AACpD,CAAC;AAaD;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAA2B;IACnD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,EAAE,CAAC,UAAU;QACjB,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,EAAE,CAAC,QAAQ;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAG,4BAA4B;SACzE;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,UAAU,EAAE,CAAC;iBACV,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gBACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;oBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;iBACtB,CAAC;aACH,CAAC,CACH;iBACA,QAAQ,EAAE;YACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC,CACH;QACD,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAClC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACtC,CAAC,CAAC,WAAW,EAAE;SACjB,CAAC,CACH;aACA,OAAO,EAAE;QACZ,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;KACnC,CAAC;CACH,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CAAC,MAAyB;IAanD,MAAM,EACJ,KAAK,EACL,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,EAAE,EACT,OAAO,GAAG,OAAO,EACjB,eAAe,EAAE,SAAS,EAC1B,WAAW,EACX,IAAI,EACJ,IAAI,GAAG,cAAc,EACrB,WAAW,GAAG,sBAAsB,KAAK,EAAE,GAC5C,GAAG,MAAM,CAAC;IAEX,4BAA4B;IAC5B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IAE1D,KAAK,CAAC,gCAAgC,KAAK,YAAY,MAAM,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAE3F,4BAA4B;IAC5B,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAElC;;OAEG;IACH,MAAM,OAAO,GAAG,KAAK,EAAE,IAAyB,EAAmB,EAAE;QACnE,uEAAuE;QACvE,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAE7C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC1C,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC7C,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,iBAAiB,GAA2B,EAAE,CAAC;QACnD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAwC,CAAC;gBACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7D,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,eAAe,IAAI,eAAe,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,kBAAkB,IAAI,IAAI,CAAC;QAChD,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAErE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACT,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;oBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,KAAK,CAAC,qCAAqC,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3G,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAEhG,0DAA0D;oBAC1D,IAAI,cAAc,GAAG,KAAK,CAAC;oBAC3B,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;oBAExD,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/D,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;wBACxC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,8BAA8B;wBAExD,gCAAgC;wBAChC,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;wBAE7D,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;4BAChD,kEAAkE;4BAClE,KAAK,CACH,mBAAmB,aAAa,8BAA8B;gCAC5D,sBAAsB,cAAc,wBAAwB,MAAM,MAAM;gCACxE,oCAAoC,KAAK,GAAG,CAC/C,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,uDAAuD;4BACvD,cAAc,GAAG,aAAa,CAAC;4BAC/B,KAAK,CAAC,yBAAyB,cAAc,2BAA2B,CAAC,CAAC;wBAC5E,CAAC;oBACH,CAAC;oBAED,+EAA+E;oBAC/E,MAAM,YAAY,GAAG,WAAW,CAAC,aAAoD,CAAC;oBACtF,MAAM,cAAc,GAAG,WAAW,CAAC,gBAAsC,CAAC;oBAC1E,OAAO,WAAW,CAAC,aAAa,CAAC;oBACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC;oBAEpC,8FAA8F;oBAC9F,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC;wBACrC,MAAM,EAAE,YAAY;wBACpB,IAAI,EAAE,cAAc,IAAI,UAAU;qBACnC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAET,IAAI,eAAe,EAAE,CAAC;wBACpB,KAAK,CAAC,iDAAiD,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjF,CAAC;oBAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAE5D,8BAA8B;oBAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC3B,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,cAAc,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBAED,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,mBAAmB;4BACtD,wBAAwB,gBAAgB,CAAC,MAAM,CAAC,IAAI,WAAW,MAAM,EAAE,EAAE,CAC5E,CAAC;oBACJ,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;oBAEnD,gDAAgD;oBAChD,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC3D,KAAK,CAAC,2BAA2B,OAAO,CAAC,WAAW,CAAC,IAAI,gBAAgB,MAAM,EAAE,CAAC,CAAC;oBAEnF,uFAAuF;oBACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBAEhE,4FAA4F;oBAC5F,uFAAuF;oBACvF,2FAA2F;oBAC3F,gFAAgF;oBAChF,oFAAoF;oBACpF,kEAAkE;oBAClE,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,eAAe,IAAI,UAAU,KAAK,QAAQ,CAAC;wBAC/E,CAAC,CAAC,MAAe;wBACjB,CAAC,CAAC,UAAU,CAAC;oBACf,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;wBACpC,KAAK,CAAC,8FAA8F,CAAC,CAAC;oBACxG,CAAC;oBACD,KAAK,CAAC,gBAAgB,UAAU,kBAAkB,gBAAgB,EAAE,CAAC,CAAC;oBAEtE,yFAAyF;oBACzF,oFAAoF;oBACpF,kFAAkF;oBAClF,0DAA0D;oBAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACnD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CACjD,GAAG,CAAC,OAAO,EACX,OAAO,CAAC,KAAK,IAAI,IAAI,EAAG,gDAAgD;4BACxE,eAAe,EACf,gBAAgB,CACjB,CAAC;4BACF,KAAK,CAAC,4BAA4B,gBAAgB,WAAW,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtG,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;wBAC/C,CAAC;wBACD,OAAO,GAAG,CAAC;oBACb,CAAC,CAAC,CAAC;oBAEH,sCAAsC;oBACtC,8DAA8D;oBAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAQ,CAAC;oBAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAgC5B,CAAC;oBAEH,gEAAgE;oBAChE,wEAAwE;oBACxE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAGpC,CAAC;oBAEF,wEAAwE;oBACxE,2EAA2E;oBAC3E,2EAA2E;oBAC3E,MAAM,aAAa,GAA2B,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAmC,CAAC;4BACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;4BACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACjC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gCAC7C,OAAO,OAAO,CAAC,cAAc,CAAC;4BAChC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC/D,+EAA+E;oBAC/E,4EAA4E;oBAC5E,4EAA4E;oBAC5E,gFAAgF;oBAChF,MAAM,WAAW,GAAG,gBAAgB,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC;oBACrF,IAAI,gBAAgB,EAAE,CAAC;wBACrB,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,wBAAwB,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3I,CAAC;oBAED,8DAA8D;oBAC9D,IAAI,WAA4C,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,WAAW,GAAG,EAAE,CAAC;wBACjB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BACjC,gCAAgC;4BAChC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;4BAEjF,4CAA4C;4BAC5C,oDAAoD;4BACpD,iEAAiE;4BACjE,6DAA6D;4BAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,SAAoC,CAAC;4BAC/E,MAAM,WAAW,GAAG;gCAClB,IAAI,EAAE,QAAQ,EAAE,gCAAgC;gCAChD,GAAG,iBAAiB;6BACrB,CAAC;4BAEF,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BAE3F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAEpC,IAAI,WAAW,EAAE,CAAC;gCAChB,gFAAgF;gCAChF,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gCAC7C,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oCAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;oCAC5C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;oCACpC,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;wCAC/B,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;wCACzD,KAAK,CAAC,4BAA4B,QAAQ,QAAQ,YAAY,EAAE,CAAC,CAAC;wCAClE,IAAI,CAAC;4CACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;4CACrF,KAAK,CAAC,SAAS,QAAQ,aAAa,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;4CAChE,IAAI,CAAC;gDAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4CAAC,CAAC;4CAAC,MAAM,CAAC;gDAAC,OAAO,MAAM,CAAC;4CAAC,CAAC;wCAC7D,CAAC;wCAAC,OAAO,GAAG,EAAE,CAAC;4CACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4CAClE,KAAK,CAAC,SAAS,QAAQ,uBAAuB,QAAQ,EAAE,CAAC,CAAC;4CAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;wCAC7B,CAAC;oCACH,CAAC;iCACF,CAAC,CAAC;gCACH,KAAK,CAAC,SAAS,QAAQ,yDAAyD,CAAC,CAAC;4BACpF,CAAC;iCAAM,CAAC;gCACN,+EAA+E;gCAC/E,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oCAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;oCAC5C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;iCACrC,CAAC,CAAC;gCACH,KAAK,CAAC,SAAS,QAAQ,gDAAgD,CAAC,CAAC;4BAC3E,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,0EAA0E;oBAC1E,oEAAoE;oBACpE,sFAAsF;oBACtF,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAC5C,iBAAiC,EACjC,IAAI,EAAE,6CAA6C;oBACnD,eAAe,EAAE,4DAA4D;oBAC7E;wBACE,UAAU,EAAG,sCAAsC;wBACnD,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,WAAiC;wBACzE,eAAe,EAAE,SAAS,IAAI,WAAW,CAAC,UAAgC;wBAC1E,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,KAA2B;qBACtD,CACF,CAAC;oBAEF,uFAAuF;oBACvF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE5E,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAE3E,8DAA8D;oBAC9D,MAAM,cAAc,GAShB;wBACF,KAAK,EAAE,OAAO;wBACd,QAAQ,EAAE,iBAAiB;qBAC5B,CAAC;oBAEF,uBAAuB;oBACvB,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvD,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC;wBACnC,IAAI,WAAW,EAAE,CAAC;4BAChB,2DAA2D;4BAC3D,iEAAiE;4BACjE,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;4BAC7B,KAAK,CAAC,mFAAmF,CAAC,CAAC;wBAC7F,CAAC;wBACD,+DAA+D;wBAC/D,+DAA+D;wBAC/D,qEAAqE;oBACvE,CAAC;oBAED,8BAA8B;oBAC9B,IAAI,SAAS,EAAE,CAAC;wBACd,cAAc,CAAC,eAAe,GAAG,SAAS,CAAC;oBAC7C,CAAC;oBACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC3C,CAAC;oBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC7B,CAAC;oBAED,iDAAiD;oBACjD,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;wBAC3B,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC,UAAoB,CAAC;oBACpE,CAAC;oBACD,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC1C,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC,WAAqB,CAAC;oBACjE,CAAC;oBACD,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBACpC,cAAc,CAAC,IAAI,GAAG,WAAW,CAAC,KAAe,CAAC;oBACpD,CAAC;oBAED,yFAAyF;oBACzF,6FAA6F;oBAC7F,+FAA+F;oBAC/F,4EAA4E;oBAC5E,gFAAgF;oBAChF,MAAM,kBAAkB,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC;oBACpF,IAAI,eAAe,CAAC,cAAc,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC1D,cAAc,CAAC,eAAe,GAAG;4BAC/B,CAAC,MAAM,CAAC,EAAE;gCACR,eAAe,EAAE,eAAe,CAAC,cAAc;6BAChD;yBACF,CAAC;wBACF,KAAK,CAAC,0DAA0D,MAAM,EAAE,CAAC,CAAC;oBAC5E,CAAC;yBAAM,IAAI,kBAAkB,EAAE,CAAC;wBAC9B,KAAK,CAAC,2EAA2E,CAAC,CAAC;oBACrF,CAAC;oBAED,KAAK,CAAC,gCAAgC,kBAAkB,EAAE,CAAC,CAAC;oBAE5D,sFAAsF;oBACtF,qFAAqF;oBACrF,iFAAiF;oBACjF,0DAA0D;oBAC1D,mFAAmF;oBACnF,mFAAmF;oBACnF,oFAAoF;oBACpF,qEAAqE;oBACrE,MAAM,mBAAmB,GAAG,UAAU,KAAK,QAAQ,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC;oBACpF,KAAK,CAAC,gBAAgB,UAAU,0BAA0B,mBAAmB,EAAE,CAAC,CAAC;oBAEjF,IAAI,QAAqC,CAAC;oBAC1C,IAAI,SAAS,GAAW,CAAC,CAAC;oBAC1B,IAAI,WAAwE,CAAC;oBAE7E,IAAI,mBAAmB,EAAE,CAAC;wBACxB,2CAA2C;wBAC3C,KAAK,CAAC,+CAA+C,cAAc,EAAE,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAG,QAAQ,CAAC,cAgB9B,CAAC;wBAEH,kEAAkE;wBAClE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAwE,CAAC;wBAEhG,yDAAyD;wBACzD,6DAA6D;wBAC7D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,YAAuC,CAAC;wBAEnF,6DAA6D;wBAC7D,0EAA0E;wBAC1E,kFAAkF;wBAClF,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAsC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;wBAExG,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;4BACxC,KAAK,EAAE,OAAO;4BACd,QAAQ,EAAE,iBAAiB;4BAC3B,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;4BAChC,UAAU,EAAE,cAAc;4BAC1B,eAAe,EAAE,cAAc,CAAC,eAAe;4BAC/C,WAAW,EAAE,cAAc,CAAC,WAAW;4BACvC,IAAI,EAAE,cAAc,CAAC,IAAI;yBAC1B,CAAC,CAAC;wBAEH,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACnC,KAAK,CACH,oCAAoC;4BAClC,gBAAgB,YAAY,CAAC,YAAY,IAAI;4BAC7C,WAAW,SAAS,IAAI,CAC3B,CAAC;wBAEF,+DAA+D;wBAC/D,QAAQ,GAAG;4BACT,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;yBAC7C,CAAC;wBACF,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;oBACnC,CAAC;yBAAM,IAAI,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;wBAC5C,2DAA2D;wBAC3D,qEAAqE;wBACrE,kEAAkE;wBAClE,0CAA0C;wBAC1C,IAAI,SAAS,GAAG,CAAC,CAAC;wBAClB,MAAM,aAAa,GAAG,EAAE,CAAC;wBACzB,8DAA8D;wBAC9D,IAAI,eAAe,GAAU,CAAC,GAAG,iBAAiB,CAAC,CAAC;wBAEpD,OAAO,SAAS,GAAG,aAAa,EAAE,CAAC;4BACjC,SAAS,EAAE,CAAC;4BAEZ,2EAA2E;4BAC3E,MAAM,WAAW,GAAG;gCAClB,GAAG,cAAc;gCACjB,QAAQ,EAAE,eAAe;6BAC1B,CAAC;4BACF,oDAAoD;4BAEpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;4BAE/C,qCAAqC;4BACrC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gCACjB,IAAI,CAAC,WAAW,EAAE,CAAC;oCACjB,WAAW,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;gCACpD,CAAC;gCACD,WAAW,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;gCAC3F,WAAW,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;4BAChG,CAAC;4BAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACpD,KAAK,CAAC,sBAAsB,MAAM,CAAC,SAAS,CAAC,MAAM,0BAA0B,SAAS,IAAI,aAAa,GAAG,CAAC,CAAC;gCAE5G,6EAA6E;gCAC7E,8DAA8D;gCAC9D,MAAM,qBAAqB,GAAU,EAAE,CAAC;gCACxC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oCAChB,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gCAClE,CAAC;gCACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCAClC,qBAAqB,CAAC,IAAI,CAAC;wCACzB,IAAI,EAAE,WAAW;wCACjB,UAAU,EAAE,EAAE,CAAC,UAAU;wCACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ;wCACrB,KAAK,EAAE,EAAE,CAAC,KAAK;qCAChB,CAAC,CAAC;gCACL,CAAC;gCACD,eAAe,CAAC,IAAI,CAAC;oCACnB,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,qBAAqB;iCAC/B,CAAC,CAAC;gCAEH,0DAA0D;gCAC1D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;oCAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;oCAC7C,IAAI,aAAqB,CAAC;oCAE1B,IAAI,YAAY,EAAE,CAAC;wCACjB,IAAI,CAAC;4CACH,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;4CAC7D,KAAK,CAAC,4BAA4B,QAAQ,QAAQ,YAAY,EAAE,CAAC,CAAC;4CAClE,aAAa,GAAG,MAAM,WAAW,CAC/B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EAAE,cAAc;4CACrB,CAAC,EAAM,YAAY;4CACnB,MAAM,CACP,CAAC;4CACF,KAAK,CAAC,SAAS,QAAQ,aAAa,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wCACzE,CAAC;wCAAC,OAAO,GAAG,EAAE,CAAC;4CACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4CAClE,KAAK,CAAC,SAAS,QAAQ,uBAAuB,QAAQ,EAAE,CAAC,CAAC;4CAC1D,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wCACtD,CAAC;oCACH,CAAC;yCAAM,CAAC;wCACN,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,QAAQ,EAAE,EAAE,CAAC,CAAC;oCAChF,CAAC;oCAED,sDAAsD;oCACtD,IAAI,UAA4C,CAAC;oCACjD,IAAI,CAAC;wCACH,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;oCAClE,CAAC;oCAAC,MAAM,CAAC;wCACP,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;oCACtD,CAAC;oCAED,kDAAkD;oCAClD,eAAe,CAAC,IAAI,CAAC;wCACnB,IAAI,EAAE,MAAM;wCACZ,OAAO,EAAE,CAAC;gDACR,IAAI,EAAE,aAAa;gDACnB,UAAU,EAAE,EAAE,CAAC,UAAU;gDACzB,QAAQ;gDACR,MAAM,EAAE,UAAU;6CACnB,CAAC;qCACH,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,iCAAiC;gCACjC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gCACnC,KAAK,CAAC,sCAAsC,SAAS,wBAAwB,SAAS,IAAI,CAAC,CAAC;gCAE5F,QAAQ,GAAG;oCACT,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;iCAC3B,CAAC;gCACF,MAAM;4BACR,CAAC;wBACH,CAAC;wBAED,+DAA+D;wBAC/D,IAAI,SAAS,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAC5C,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACnC,KAAK,CAAC,6CAA6C,aAAa,cAAc,SAAS,IAAI,CAAC,CAAC;4BAC7F,QAAQ,GAAG;gCACT,IAAI,EAAE,WAAW;gCACjB,OAAO,EAAE,sCAAsC;6BAChD,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,4BAA4B;wBAC5B,kFAAkF;wBAClF,6DAA6D;wBAC7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;wBAElD,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACnC,KAAK,CACH,yBAAyB;4BACvB,gBAAgB,MAAM,CAAC,YAAY,IAAI;4BACvC,aAAa,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI;4BAC9C,WAAW,SAAS,IAAI,CAC3B,CAAC;wBAEF,iBAAiB;wBACjB,QAAQ,GAAG;4BACT,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;yBAC3B,CAAC;wBAEF,0DAA0D;wBAC1D,sEAAsE;wBACtE,sEAAsE;wBACtE,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzE,QAAQ,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC3D,CAAC;wBACD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC7B,CAAC;oBAED,yDAAyD;oBACzD,MAAM,aAAa,GAAG,QAAS,CAAC;oBAEhC,kEAAkE;oBAClE,IAAI,WAAW,EAAE,CAAC;wBAChB,aAAa,CAAC,WAAW,GAAG;4BAC1B,aAAa,EAAE,WAAW,CAAC,WAAW,IAAI,CAAC;4BAC3C,iBAAiB,EAAE,WAAW,CAAC,YAAY,IAAI,CAAC;4BAChD,KAAK,EAAE,cAAc;yBACtB,CAAC;oBACJ,CAAC;oBAED,KAAK,CACH,iCAAiC;wBAC/B,UAAU,cAAc,cAAc,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI;wBACjE,cAAc,mBAAmB,gBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,GAAG,CAC5F,CAAC;oBAEF,mCAAmC;oBACnC,2EAA2E;oBAC3E,qEAAqE;oBACrE,8EAA8E;oBAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;oBACpD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;gBAChC,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,OAAO,MAAM,wBAAwB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,MAAM,QAAQ,EAAE,CAAC;YAC1B,CAAC,CAAC;YAEF,OAAO,MAAM,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,GAAG,KAAK,CAAC;YACrB,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACvC,MAAM,eAAe,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;YAE/D,gBAAgB,CAAC;gBACf,OAAO;gBACP,MAAM;gBACN,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,eAAe;gBAC3B,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9E,YAAY,EAAE,EAAE;gBAChB,oBAAoB,EAAE,CAAC;gBACvB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,WAAW;QACX,4EAA4E;QAC5E,wDAAwD;QACxD,UAAU,EAAE,oBAAoB,CAAC,WAAW,EAAE;QAC9C,OAAO;QACP,wCAAwC;QACxC,SAAS,EAAE;YACT,UAAU;YACV,IAAI;YACJ,OAAO;YACP,MAAM;SACP;KACF,CAAC;IAEF,KAAK,CACH,yBAAyB,IAAI,IAAI;QAC/B,UAAU,KAAK,gBAAgB,UAAU,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAC/F,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAa;IAEb,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,WAAW,IAAI,IAAI;QACnB,OAAQ,IAAgC,CAAC,SAAS,KAAK,QAAQ,CAChE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAoC;IAMrE,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEzG,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,kCAAkC,EAAE,eAAe,EAAE,8BAA8B,EAAwB,MAAM,kBAAkB,CAAC;AAEnK,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AAE1C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB,EAAE,0CAA0C;IACpE,2CAA2C;CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,QAAQ,EAAE,gDAAgD;CACnE,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/C,qDAAqD;QACrD,iCAAiC;QACjC,0DAA0D;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAE9C,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,UAAU,CAAC;YACtD,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC;YACvC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,4DAA4D;IAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc;IAEd,8DAA8D;IAC9D,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAGjD,CAAC;QAEF,4EAA4E;QAC5E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAEpD,kFAAkF;QAClF,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAEhC,CAAC;QACd,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,YAAY,MAAM,0DAA0D,UAAU,IAAI,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,2BAA2B,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,QAAsB;IACrD,+EAA+E;IAC/E,iCAAiC;IACjC,OAAO,QAA0C,CAAC;AACpD,CAAC;AAaD;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAA2B;IACnD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,EAAE,CAAC,UAAU;QACjB,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,EAAE,CAAC,QAAQ;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAG,4BAA4B;SACzE;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;gBACf,CAAC,CAAC,MAAM,EAAE;gBACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;iBACjB,CAAC,CAAC,WAAW,EAAE,CAAC;aAClB,CAAC,CAAC,QAAQ,EAAE;YACb,UAAU,EAAE,CAAC;iBACV,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gBACd,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;oBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;iBACtB,CAAC;aACH,CAAC,CACH;iBACA,QAAQ,EAAE;YACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC,CACH;QACD,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAClC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACtC,CAAC,CAAC,WAAW,EAAE;SACjB,CAAC,CACH;aACA,OAAO,EAAE;QACZ,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;KACnC,CAAC;CACH,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CAAC,MAAyB;IAanD,MAAM,EACJ,KAAK,EACL,UAAU,GAAG,KAAK,EAClB,IAAI,GAAG,EAAE,EACT,OAAO,GAAG,OAAO,EACjB,eAAe,EAAE,SAAS,EAC1B,WAAW,EACX,IAAI,EACJ,IAAI,GAAG,cAAc,EACrB,WAAW,GAAG,sBAAsB,KAAK,EAAE,GAC5C,GAAG,MAAM,CAAC;IAEX,4BAA4B;IAC5B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IAE1D,KAAK,CAAC,gCAAgC,KAAK,YAAY,MAAM,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAE3F,4BAA4B;IAC5B,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAElC;;OAEG;IACH,MAAM,OAAO,GAAG,KAAK,EAAE,IAAyB,EAAmB,EAAE;QACnE,uEAAuE;QACvE,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAE7C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC1C,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YACtC,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC7C,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,iBAAiB,GAA2B,EAAE,CAAC;QACnD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAwC,CAAC;gBACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7D,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,eAAe,IAAI,eAAe,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,kBAAkB,IAAI,IAAI,CAAC;QAChD,MAAM,YAAY,GAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAErE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACT,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;oBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,KAAK,CAAC,qCAAqC,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3G,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAEhG,0DAA0D;oBAC1D,IAAI,cAAc,GAAG,KAAK,CAAC;oBAC3B,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;oBAExD,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/D,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;wBACxC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,8BAA8B;wBAExD,gCAAgC;wBAChC,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;wBAE7D,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;4BAChD,kEAAkE;4BAClE,KAAK,CACH,mBAAmB,aAAa,8BAA8B;gCAC5D,sBAAsB,cAAc,wBAAwB,MAAM,MAAM;gCACxE,oCAAoC,KAAK,GAAG,CAC/C,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,uDAAuD;4BACvD,cAAc,GAAG,aAAa,CAAC;4BAC/B,KAAK,CAAC,yBAAyB,cAAc,2BAA2B,CAAC,CAAC;wBAC5E,CAAC;oBACH,CAAC;oBAED,+EAA+E;oBAC/E,MAAM,YAAY,GAAG,WAAW,CAAC,aAAoD,CAAC;oBACtF,MAAM,cAAc,GAAG,WAAW,CAAC,gBAAsC,CAAC;oBAC1E,OAAO,WAAW,CAAC,aAAa,CAAC;oBACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC;oBAEpC,8FAA8F;oBAC9F,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC;wBACrC,MAAM,EAAE,YAAY;wBACpB,IAAI,EAAE,cAAc,IAAI,UAAU;qBACnC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAET,IAAI,eAAe,EAAE,CAAC;wBACpB,KAAK,CAAC,iDAAiD,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjF,CAAC;oBAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAE5D,8BAA8B;oBAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC3B,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,cAAc,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBAED,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,mBAAmB;4BACtD,wBAAwB,gBAAgB,CAAC,MAAM,CAAC,IAAI,WAAW,MAAM,EAAE,EAAE,CAC5E,CAAC;oBACJ,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;oBAEnD,gDAAgD;oBAChD,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC3D,KAAK,CAAC,2BAA2B,OAAO,CAAC,WAAW,CAAC,IAAI,gBAAgB,MAAM,EAAE,CAAC,CAAC;oBAEnF,uFAAuF;oBACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBAEhE,4FAA4F;oBAC5F,uFAAuF;oBACvF,2FAA2F;oBAC3F,gFAAgF;oBAChF,oFAAoF;oBACpF,kEAAkE;oBAClE,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,eAAe,IAAI,UAAU,KAAK,QAAQ,CAAC;wBAC/E,CAAC,CAAC,MAAe;wBACjB,CAAC,CAAC,UAAU,CAAC;oBACf,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;wBACpC,KAAK,CAAC,8FAA8F,CAAC,CAAC;oBACxG,CAAC;oBACD,KAAK,CAAC,gBAAgB,UAAU,kBAAkB,gBAAgB,EAAE,CAAC,CAAC;oBAEtE,yFAAyF;oBACzF,oFAAoF;oBACpF,kFAAkF;oBAClF,0DAA0D;oBAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACnD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CACjD,GAAG,CAAC,OAAO,EACX,OAAO,CAAC,KAAK,IAAI,IAAI,EAAG,gDAAgD;4BACxE,eAAe,EACf,gBAAgB,CACjB,CAAC;4BACF,KAAK,CAAC,4BAA4B,gBAAgB,WAAW,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;4BACtG,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;wBAC/C,CAAC;wBACD,OAAO,GAAG,CAAC;oBACb,CAAC,CAAC,CAAC;oBAEH,sCAAsC;oBACtC,8DAA8D;oBAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAQ,CAAC;oBAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAgC5B,CAAC;oBAEH,gEAAgE;oBAChE,wEAAwE;oBACxE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAGpC,CAAC;oBAEF,wEAAwE;oBACxE,2EAA2E;oBAC3E,2EAA2E;oBAC3E,MAAM,aAAa,GAA2B,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAmC,CAAC;4BACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;4BACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACjC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gCAC7C,OAAO,OAAO,CAAC,cAAc,CAAC;4BAChC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC/D,+EAA+E;oBAC/E,4EAA4E;oBAC5E,4EAA4E;oBAC5E,gFAAgF;oBAChF,MAAM,WAAW,GAAG,gBAAgB,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC;oBACrF,IAAI,gBAAgB,EAAE,CAAC;wBACrB,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,wBAAwB,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3I,CAAC;oBAED,8DAA8D;oBAC9D,IAAI,WAA4C,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,WAAW,GAAG,EAAE,CAAC;wBACjB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BACjC,gCAAgC;4BAChC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;4BAEjF,4CAA4C;4BAC5C,oDAAoD;4BACpD,iEAAiE;4BACjE,6DAA6D;4BAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,SAAoC,CAAC;4BAC/E,MAAM,WAAW,GAAG;gCAClB,IAAI,EAAE,QAAQ,EAAE,gCAAgC;gCAChD,GAAG,iBAAiB;6BACrB,CAAC;4BAEF,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BAE3F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAEpC,IAAI,WAAW,EAAE,CAAC;gCAChB,gFAAgF;gCAChF,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gCAC7C,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oCAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;oCAC5C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;oCACpC,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;wCAC/B,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;wCACzD,KAAK,CAAC,4BAA4B,QAAQ,QAAQ,YAAY,EAAE,CAAC,CAAC;wCAClE,IAAI,CAAC;4CACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;4CACrF,0DAA0D;4CAC1D,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gDAC5B,KAAK,CAAC,SAAS,QAAQ,kDAAkD,MAAM,EAAE,CAAC,CAAC;gDACnF,MAAM,QAAQ,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gDAC1E,0DAA0D;gDAC1D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;4CACxD,CAAC;4CACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gDAC/B,KAAK,CAAC,SAAS,QAAQ,2BAA2B,CAAC,CAAC;gDACpD,OAAO,MAAM,CAAC;4CAChB,CAAC;4CACD,KAAK,CAAC,SAAS,QAAQ,aAAa,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;4CAChE,IAAI,CAAC;gDAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4CAAC,CAAC;4CAAC,MAAM,CAAC;gDAAC,OAAO,MAAM,CAAC;4CAAC,CAAC;wCAC7D,CAAC;wCAAC,OAAO,GAAG,EAAE,CAAC;4CACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4CAClE,KAAK,CAAC,SAAS,QAAQ,uBAAuB,QAAQ,EAAE,CAAC,CAAC;4CAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;wCAC7B,CAAC;oCACH,CAAC;iCACF,CAAC,CAAC;gCACH,KAAK,CAAC,SAAS,QAAQ,yDAAyD,CAAC,CAAC;4BACpF,CAAC;iCAAM,CAAC;gCACN,+EAA+E;gCAC/E,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oCAC7B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;oCAC5C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;iCACrC,CAAC,CAAC;gCACH,KAAK,CAAC,SAAS,QAAQ,gDAAgD,CAAC,CAAC;4BAC3E,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,0EAA0E;oBAC1E,oEAAoE;oBACpE,sFAAsF;oBACtF,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAC5C,iBAAiC,EACjC,IAAI,EAAE,6CAA6C;oBACnD,eAAe,EAAE,4DAA4D;oBAC7E;wBACE,UAAU,EAAG,sCAAsC;wBACnD,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,WAAiC;wBACzE,eAAe,EAAE,SAAS,IAAI,WAAW,CAAC,UAAgC;wBAC1E,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,KAA2B;qBACtD,CACF,CAAC;oBAEF,uFAAuF;oBACvF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAE5E,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAE3E,8DAA8D;oBAC9D,MAAM,cAAc,GAShB;wBACF,KAAK,EAAE,OAAO;wBACd,QAAQ,EAAE,iBAAiB;qBAC5B,CAAC;oBAEF,uBAAuB;oBACvB,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvD,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC;wBACnC,IAAI,WAAW,EAAE,CAAC;4BAChB,2DAA2D;4BAC3D,iEAAiE;4BACjE,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;4BAC7B,KAAK,CAAC,mFAAmF,CAAC,CAAC;wBAC7F,CAAC;wBACD,+DAA+D;wBAC/D,+DAA+D;wBAC/D,qEAAqE;oBACvE,CAAC;oBAED,8BAA8B;oBAC9B,IAAI,SAAS,EAAE,CAAC;wBACd,cAAc,CAAC,eAAe,GAAG,SAAS,CAAC;oBAC7C,CAAC;oBACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC3C,CAAC;oBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC7B,CAAC;oBAED,iDAAiD;oBACjD,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;wBAC3B,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC,UAAoB,CAAC;oBACpE,CAAC;oBACD,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC1C,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC,WAAqB,CAAC;oBACjE,CAAC;oBACD,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBACpC,cAAc,CAAC,IAAI,GAAG,WAAW,CAAC,KAAe,CAAC;oBACpD,CAAC;oBAED,yFAAyF;oBACzF,6FAA6F;oBAC7F,+FAA+F;oBAC/F,4EAA4E;oBAC5E,gFAAgF;oBAChF,MAAM,kBAAkB,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC;oBACpF,IAAI,eAAe,CAAC,cAAc,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC1D,cAAc,CAAC,eAAe,GAAG;4BAC/B,CAAC,MAAM,CAAC,EAAE;gCACR,eAAe,EAAE,eAAe,CAAC,cAAc;6BAChD;yBACF,CAAC;wBACF,KAAK,CAAC,0DAA0D,MAAM,EAAE,CAAC,CAAC;oBAC5E,CAAC;yBAAM,IAAI,kBAAkB,EAAE,CAAC;wBAC9B,KAAK,CAAC,2EAA2E,CAAC,CAAC;oBACrF,CAAC;oBAED,KAAK,CAAC,gCAAgC,kBAAkB,EAAE,CAAC,CAAC;oBAE5D,sFAAsF;oBACtF,qFAAqF;oBACrF,iFAAiF;oBACjF,0DAA0D;oBAC1D,mFAAmF;oBACnF,mFAAmF;oBACnF,oFAAoF;oBACpF,qEAAqE;oBACrE,MAAM,mBAAmB,GAAG,UAAU,KAAK,QAAQ,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC;oBACpF,KAAK,CAAC,gBAAgB,UAAU,0BAA0B,mBAAmB,EAAE,CAAC,CAAC;oBAEjF,IAAI,QAAqC,CAAC;oBAC1C,IAAI,SAAS,GAAW,CAAC,CAAC;oBAC1B,IAAI,WAAwE,CAAC;oBAE7E,IAAI,mBAAmB,EAAE,CAAC;wBACxB,2CAA2C;wBAC3C,KAAK,CAAC,+CAA+C,cAAc,EAAE,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAG,QAAQ,CAAC,cAgB9B,CAAC;wBAEH,kEAAkE;wBAClE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAwE,CAAC;wBAEhG,yDAAyD;wBACzD,6DAA6D;wBAC7D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,YAAuC,CAAC;wBAEnF,6DAA6D;wBAC7D,0EAA0E;wBAC1E,kFAAkF;wBAClF,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAsC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;wBAExG,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;4BACxC,KAAK,EAAE,OAAO;4BACd,QAAQ,EAAE,iBAAiB;4BAC3B,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;4BAChC,UAAU,EAAE,cAAc;4BAC1B,eAAe,EAAE,cAAc,CAAC,eAAe;4BAC/C,WAAW,EAAE,cAAc,CAAC,WAAW;4BACvC,IAAI,EAAE,cAAc,CAAC,IAAI;yBAC1B,CAAC,CAAC;wBAEH,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACnC,KAAK,CACH,oCAAoC;4BAClC,gBAAgB,YAAY,CAAC,YAAY,IAAI;4BAC7C,WAAW,SAAS,IAAI,CAC3B,CAAC;wBAEF,+DAA+D;wBAC/D,QAAQ,GAAG;4BACT,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;yBAC7C,CAAC;wBACF,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;oBACnC,CAAC;yBAAM,IAAI,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;wBAC5C,2DAA2D;wBAC3D,qEAAqE;wBACrE,kEAAkE;wBAClE,0CAA0C;wBAC1C,IAAI,SAAS,GAAG,CAAC,CAAC;wBAClB,MAAM,aAAa,GAAG,EAAE,CAAC;wBACzB,8DAA8D;wBAC9D,IAAI,eAAe,GAAU,CAAC,GAAG,iBAAiB,CAAC,CAAC;wBAEpD,OAAO,SAAS,GAAG,aAAa,EAAE,CAAC;4BACjC,SAAS,EAAE,CAAC;4BAEZ,2EAA2E;4BAC3E,MAAM,WAAW,GAAG;gCAClB,GAAG,cAAc;gCACjB,QAAQ,EAAE,eAAe;6BAC1B,CAAC;4BACF,oDAAoD;4BAEpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;4BAE/C,qCAAqC;4BACrC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gCACjB,IAAI,CAAC,WAAW,EAAE,CAAC;oCACjB,WAAW,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;gCACpD,CAAC;gCACD,WAAW,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;gCAC3F,WAAW,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;4BAChG,CAAC;4BAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACpD,KAAK,CAAC,sBAAsB,MAAM,CAAC,SAAS,CAAC,MAAM,0BAA0B,SAAS,IAAI,aAAa,GAAG,CAAC,CAAC;gCAE5G,6EAA6E;gCAC7E,8DAA8D;gCAC9D,MAAM,qBAAqB,GAAU,EAAE,CAAC;gCACxC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oCAChB,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gCAClE,CAAC;gCACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCAClC,qBAAqB,CAAC,IAAI,CAAC;wCACzB,IAAI,EAAE,WAAW;wCACjB,UAAU,EAAE,EAAE,CAAC,UAAU;wCACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ;wCACrB,KAAK,EAAE,EAAE,CAAC,KAAK;qCAChB,CAAC,CAAC;gCACL,CAAC;gCACD,eAAe,CAAC,IAAI,CAAC;oCACnB,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,qBAAqB;iCAC/B,CAAC,CAAC;gCAEH,kEAAkE;gCAClE,sEAAsE;gCACtE,yCAAyC;gCACzC,+DAA+D;gCAC/D,MAAM,qBAAqB,GAAsB,EAAE,CAAC;gCAEpD,0DAA0D;gCAC1D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;oCAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;oCAC7C,IAAI,aAAqB,CAAC;oCAC1B,gDAAgD;oCAChD,IAAI,aAAa,GAAY,IAAI,CAAC;oCAElC,IAAI,YAAY,EAAE,CAAC;wCACjB,IAAI,CAAC;4CACH,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;4CAC7D,KAAK,CAAC,4BAA4B,QAAQ,QAAQ,YAAY,EAAE,CAAC,CAAC;4CAClE,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EAAE,cAAc;4CACrB,CAAC,EAAM,YAAY;4CACnB,MAAM,CACP,CAAC;4CACF,aAAa,GAAG,SAAS,CAAC;4CAC1B,aAAa,GAAG,OAAO,SAAS,KAAK,QAAQ;gDAC3C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gDAC3B,CAAC,CAAC,SAAS,CAAC;4CACd,KAAK,CAAC,SAAS,QAAQ,aAAa,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wCACzE,CAAC;wCAAC,OAAO,GAAG,EAAE,CAAC;4CACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4CAClE,KAAK,CAAC,SAAS,QAAQ,uBAAuB,QAAQ,EAAE,CAAC,CAAC;4CAC1D,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wCACtD,CAAC;oCACH,CAAC;yCAAM,CAAC;wCACN,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,QAAQ,EAAE,EAAE,CAAC,CAAC;oCAChF,CAAC;oCAED,gEAAgE;oCAChE,oDAAoD;oCACpD,iFAAiF;oCACjF,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;wCACnC,KAAK,CAAC,SAAS,QAAQ,kDAAkD,MAAM,EAAE,CAAC,CAAC;wCACnF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;wCAEnE,sEAAsE;wCACtE,yCAAyC;wCACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;wCACnD,8DAA8D;wCAC9D,IAAI,gBAAqB,CAAC;wCAC1B,IAAI,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4CAC/C,0EAA0E;4CAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4CAChE,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,IAAe,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wCAC7G,CAAC;6CAAM,CAAC;4CACN,qEAAqE;4CACrE,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;wCACvD,CAAC;wCACD,8DAA8D;wCAC9D,MAAM,iBAAiB,GAAU,CAAC;gDAChC,IAAI,EAAE,aAAa;gDACnB,UAAU,EAAE,EAAE,CAAC,UAAU;gDACzB,QAAQ;gDACR,MAAM,EAAE,gBAAgB;6CACzB,CAAC,CAAC;wCACH,eAAe,CAAC,IAAI,CAAC;4CACnB,IAAI,EAAE,MAAM;4CACZ,OAAO,EAAE,iBAAiB;yCAC3B,CAAC,CAAC;wCAEH,sEAAsE;wCACtE,wEAAwE;wCACxE,oEAAoE;wCACpE,IAAI,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4CAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4CAChE,qBAAqB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;4CAC1C,KAAK,CAAC,SAAS,QAAQ,iCAAiC,MAAM,wBAAwB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;wCAC9G,CAAC;6CAAM,CAAC;4CACN,KAAK,CAAC,SAAS,QAAQ,iCAAiC,MAAM,2BAA2B,CAAC,CAAC;wCAC7F,CAAC;oCACH,CAAC;yCAAM,CAAC;wCACN,2CAA2C;wCAC3C,IAAI,UAA4C,CAAC;wCACjD,IAAI,CAAC;4CACH,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;wCAClE,CAAC;wCAAC,MAAM,CAAC;4CACP,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;wCACtD,CAAC;wCAED,kDAAkD;wCAClD,eAAe,CAAC,IAAI,CAAC;4CACnB,IAAI,EAAE,MAAM;4CACZ,OAAO,EAAE,CAAC;oDACR,IAAI,EAAE,aAAa;oDACnB,UAAU,EAAE,EAAE,CAAC,UAAU;oDACzB,QAAQ;oDACR,MAAM,EAAE,UAAU;iDACnB,CAAC;yCACH,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;gCAED,yEAAyE;gCACzE,yEAAyE;gCACzE,uEAAuE;gCACvE,iBAAiB;gCACjB,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACrC,eAAe,CAAC,IAAI,CAAC;wCACnB,IAAI,EAAE,MAAM;wCACZ,OAAO,EAAE;4CACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kDAAkD,EAAE;4CAC1E,GAAG,qBAAqB;yCACzB;qCACF,CAAC,CAAC;oCACH,KAAK,CAAC,8BAA8B,qBAAqB,CAAC,MAAM,+BAA+B,MAAM,GAAG,CAAC,CAAC;gCAC5G,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,iCAAiC;gCACjC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gCACnC,KAAK,CAAC,sCAAsC,SAAS,wBAAwB,SAAS,IAAI,CAAC,CAAC;gCAE5F,QAAQ,GAAG;oCACT,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;iCAC3B,CAAC;gCACF,MAAM;4BACR,CAAC;wBACH,CAAC;wBAED,+DAA+D;wBAC/D,IAAI,SAAS,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAC5C,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACnC,KAAK,CAAC,6CAA6C,aAAa,cAAc,SAAS,IAAI,CAAC,CAAC;4BAC7F,QAAQ,GAAG;gCACT,IAAI,EAAE,WAAW;gCACjB,OAAO,EAAE,sCAAsC;6BAChD,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,4BAA4B;wBAC5B,kFAAkF;wBAClF,6DAA6D;wBAC7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;wBAElD,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACnC,KAAK,CACH,yBAAyB;4BACvB,gBAAgB,MAAM,CAAC,YAAY,IAAI;4BACvC,aAAa,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI;4BAC9C,WAAW,SAAS,IAAI,CAC3B,CAAC;wBAEF,iBAAiB;wBACjB,QAAQ,GAAG;4BACT,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;yBAC3B,CAAC;wBAEF,0DAA0D;wBAC1D,sEAAsE;wBACtE,sEAAsE;wBACtE,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzE,QAAQ,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC3D,CAAC;wBACD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC7B,CAAC;oBAED,yDAAyD;oBACzD,MAAM,aAAa,GAAG,QAAS,CAAC;oBAEhC,kEAAkE;oBAClE,IAAI,WAAW,EAAE,CAAC;wBAChB,aAAa,CAAC,WAAW,GAAG;4BAC1B,aAAa,EAAE,WAAW,CAAC,WAAW,IAAI,CAAC;4BAC3C,iBAAiB,EAAE,WAAW,CAAC,YAAY,IAAI,CAAC;4BAChD,KAAK,EAAE,cAAc;yBACtB,CAAC;oBACJ,CAAC;oBAED,KAAK,CACH,iCAAiC;wBAC/B,UAAU,cAAc,cAAc,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI;wBACjE,cAAc,mBAAmB,gBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,GAAG,CAC5F,CAAC;oBAEF,mCAAmC;oBACnC,2EAA2E;oBAC3E,qEAAqE;oBACrE,8EAA8E;oBAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;oBACpD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;gBAChC,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,OAAO,MAAM,wBAAwB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,MAAM,QAAQ,EAAE,CAAC;YAC1B,CAAC,CAAC;YAEF,OAAO,MAAM,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,GAAG,KAAK,CAAC;YACrB,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACvC,MAAM,eAAe,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;YAE/D,gBAAgB,CAAC;gBACf,OAAO;gBACP,MAAM;gBACN,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,eAAe;gBAC3B,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9E,YAAY,EAAE,EAAE;gBAChB,oBAAoB,EAAE,CAAC;gBACvB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,WAAW;QACX,4EAA4E;QAC5E,wDAAwD;QACxD,UAAU,EAAE,oBAAoB,CAAC,WAAW,EAAE;QAC9C,OAAO;QACP,wCAAwC;QACxC,SAAS,EAAE;YACT,UAAU;YACV,IAAI;YACJ,OAAO;YACP,MAAM;SACP;KACF,CAAC;IAEF,KAAK,CACH,yBAAyB,IAAI,IAAI;QAC/B,UAAU,KAAK,gBAAgB,UAAU,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAC/F,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAa;IAEb,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,WAAW,IAAI,IAAI;QACnB,OAAQ,IAAgC,CAAC,SAAS,KAAK,QAAQ,CAChE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAoC;IAMrE,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;AAChC,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Media module — public API for multimodal content storage and helpers.
3
+ */
4
+ export { type MediaStore, LocalMediaStore, S3MediaStore, getMediaStore, guessMimeType, _resetMediaStore, } from "./media-store.js";
5
+ export { formatForOpenai, resolveResourceLinks, resolveResourceLinksForToolMessage, resolveMediaAsUserMessage, hasResourceLink, TOOL_IMAGE_UNSUPPORTED_VENDORS, type ResolvedContent, } from "./resolver.js";
6
+ import { type ResolvedContent } from "./resolver.js";
7
+ import type { ResourceLink } from "fastmcp";
8
+ /**
9
+ * Upload binary data to the configured media store.
10
+ *
11
+ * @returns URI pointing to the stored blob (e.g. `file://...` or `s3://...`).
12
+ */
13
+ export declare function uploadMedia(data: Buffer, filename: string, mimeType: string): Promise<string>;
14
+ /**
15
+ * Build an MCP `resource_link` content item.
16
+ *
17
+ * This is the standard way for tools to return references to binary media
18
+ * (images, audio, PDFs, etc.) rather than embedding them inline.
19
+ *
20
+ * Returns a proper MCP ResourceLink that FastMCP sends as a `resource_link`
21
+ * content type in the MCP protocol response (not serialized as JSON text).
22
+ */
23
+ export declare function mediaResult(uri: string, name: string, mimeType: string, description?: string, size?: number): ResourceLink;
24
+ /**
25
+ * Convenience class: upload bytes and return a ResourceLink in one step.
26
+ *
27
+ * Usage:
28
+ * const link = await new MediaResult(pngBytes, "chart.png", "image/png").toResourceLink();
29
+ * // or use the standalone function:
30
+ * const link = await createMediaResult(pngBytes, "chart.png", "image/png");
31
+ */
32
+ export declare class MediaResult {
33
+ readonly data: Buffer;
34
+ readonly filename: string;
35
+ readonly mimeType: string;
36
+ readonly name?: string | undefined;
37
+ readonly description?: string | undefined;
38
+ constructor(data: Buffer, filename: string, mimeType: string, name?: string | undefined, description?: string | undefined);
39
+ toResourceLink(): Promise<ResourceLink>;
40
+ }
41
+ /**
42
+ * Upload bytes and return a ResourceLink in one step.
43
+ */
44
+ export declare function createMediaResult(data: Buffer, filename: string, mimeType: string, name?: string, description?: string): Promise<ResourceLink>;
45
+ /**
46
+ * Result of saving an upload to MediaStore.
47
+ */
48
+ export interface MediaUploadResult {
49
+ uri: string;
50
+ name: string;
51
+ mimeType: string;
52
+ size: number;
53
+ }
54
+ /**
55
+ * Save a file upload (e.g., from multer) to MediaStore and return the URI.
56
+ *
57
+ * Accepts objects with buffer/originalname/mimetype properties (multer format)
58
+ * or any object with data/name/mimeType properties.
59
+ */
60
+ export declare function saveUpload(file: {
61
+ buffer: Buffer;
62
+ originalname: string;
63
+ mimetype: string;
64
+ } | {
65
+ data: Buffer;
66
+ name: string;
67
+ mimeType: string;
68
+ }, options?: {
69
+ filename?: string;
70
+ mimeType?: string;
71
+ }): Promise<string>;
72
+ /**
73
+ * Save a file upload and return full metadata.
74
+ */
75
+ export declare function saveUploadResult(file: {
76
+ buffer: Buffer;
77
+ originalname: string;
78
+ mimetype: string;
79
+ } | {
80
+ data: Buffer;
81
+ name: string;
82
+ mimeType: string;
83
+ }, options?: {
84
+ filename?: string;
85
+ mimeType?: string;
86
+ }): Promise<MediaUploadResult>;
87
+ /**
88
+ * Resolve an array of media inputs to OpenAI-compatible image_url content parts.
89
+ *
90
+ * Each item is either:
91
+ * - A URI string (resolved via MediaStore.fetch())
92
+ * - An inline `{ data: Buffer; mimeType: string }` object
93
+ *
94
+ * Returns an array of ResolvedContent parts in OpenAI image_url format,
95
+ * which Vercel AI SDK converts to each vendor's native format.
96
+ *
97
+ * @param media - Array of URI strings or inline media objects
98
+ * @returns Array of OpenAI-compatible image_url content parts
99
+ */
100
+ export declare function resolveMediaInputs(media: Array<string | {
101
+ data: Buffer;
102
+ mimeType: string;
103
+ }>): Promise<ResolvedContent[]>;
104
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Media module — public API for multimodal content storage and helpers.
3
+ */
4
+ export { LocalMediaStore, S3MediaStore, getMediaStore, guessMimeType, _resetMediaStore, } from "./media-store.js";
5
+ export { formatForOpenai, resolveResourceLinks, resolveResourceLinksForToolMessage, resolveMediaAsUserMessage, hasResourceLink, TOOL_IMAGE_UNSUPPORTED_VENDORS, } from "./resolver.js";
6
+ import { getMediaStore } from "./media-store.js";
7
+ import { formatForOpenai } from "./resolver.js";
8
+ /**
9
+ * Upload binary data to the configured media store.
10
+ *
11
+ * @returns URI pointing to the stored blob (e.g. `file://...` or `s3://...`).
12
+ */
13
+ export async function uploadMedia(data, filename, mimeType) {
14
+ const store = getMediaStore();
15
+ return store.upload(data, filename, mimeType);
16
+ }
17
+ /**
18
+ * Build an MCP `resource_link` content item.
19
+ *
20
+ * This is the standard way for tools to return references to binary media
21
+ * (images, audio, PDFs, etc.) rather than embedding them inline.
22
+ *
23
+ * Returns a proper MCP ResourceLink that FastMCP sends as a `resource_link`
24
+ * content type in the MCP protocol response (not serialized as JSON text).
25
+ */
26
+ export function mediaResult(uri, name, mimeType, description, size) {
27
+ const result = { type: "resource_link", uri, name, mimeType };
28
+ if (description !== undefined)
29
+ result.description = description;
30
+ if (size !== undefined)
31
+ result._meta = { size };
32
+ return result;
33
+ }
34
+ // ---------------------------------------------------------------------------
35
+ // MediaResult class — upload + ResourceLink in one step
36
+ // ---------------------------------------------------------------------------
37
+ /**
38
+ * Convenience class: upload bytes and return a ResourceLink in one step.
39
+ *
40
+ * Usage:
41
+ * const link = await new MediaResult(pngBytes, "chart.png", "image/png").toResourceLink();
42
+ * // or use the standalone function:
43
+ * const link = await createMediaResult(pngBytes, "chart.png", "image/png");
44
+ */
45
+ export class MediaResult {
46
+ data;
47
+ filename;
48
+ mimeType;
49
+ name;
50
+ description;
51
+ constructor(data, filename, mimeType, name, description) {
52
+ this.data = data;
53
+ this.filename = filename;
54
+ this.mimeType = mimeType;
55
+ this.name = name;
56
+ this.description = description;
57
+ }
58
+ async toResourceLink() {
59
+ const uri = await uploadMedia(this.data, this.filename, this.mimeType);
60
+ return mediaResult(uri, this.name ?? this.filename, this.mimeType, this.description, this.data.length);
61
+ }
62
+ }
63
+ /**
64
+ * Upload bytes and return a ResourceLink in one step.
65
+ */
66
+ export async function createMediaResult(data, filename, mimeType, name, description) {
67
+ return new MediaResult(data, filename, mimeType, name, description).toResourceLink();
68
+ }
69
+ /**
70
+ * Save a file upload (e.g., from multer) to MediaStore and return the URI.
71
+ *
72
+ * Accepts objects with buffer/originalname/mimetype properties (multer format)
73
+ * or any object with data/name/mimeType properties.
74
+ */
75
+ export async function saveUpload(file, options) {
76
+ const data = 'buffer' in file ? file.buffer : file.data;
77
+ const filename = options?.filename ?? ('originalname' in file ? file.originalname : file.name);
78
+ const mime = options?.mimeType ?? ('mimetype' in file ? file.mimetype : file.mimeType);
79
+ const store = getMediaStore();
80
+ return store.upload(data, filename, mime);
81
+ }
82
+ /**
83
+ * Save a file upload and return full metadata.
84
+ */
85
+ export async function saveUploadResult(file, options) {
86
+ const data = 'buffer' in file ? file.buffer : file.data;
87
+ const filename = options?.filename ?? ('originalname' in file ? file.originalname : file.name);
88
+ const mime = options?.mimeType ?? ('mimetype' in file ? file.mimetype : file.mimeType);
89
+ const store = getMediaStore();
90
+ const uri = await store.upload(data, filename, mime);
91
+ return { uri, name: filename, mimeType: mime, size: data.length };
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // resolveMediaInputs — resolve media URIs/buffers to OpenAI-compatible parts
95
+ // ---------------------------------------------------------------------------
96
+ /**
97
+ * Resolve an array of media inputs to OpenAI-compatible image_url content parts.
98
+ *
99
+ * Each item is either:
100
+ * - A URI string (resolved via MediaStore.fetch())
101
+ * - An inline `{ data: Buffer; mimeType: string }` object
102
+ *
103
+ * Returns an array of ResolvedContent parts in OpenAI image_url format,
104
+ * which Vercel AI SDK converts to each vendor's native format.
105
+ *
106
+ * @param media - Array of URI strings or inline media objects
107
+ * @returns Array of OpenAI-compatible image_url content parts
108
+ */
109
+ export async function resolveMediaInputs(media) {
110
+ const store = getMediaStore();
111
+ const parts = [];
112
+ for (const item of media) {
113
+ try {
114
+ let data;
115
+ let mimeType;
116
+ if (typeof item === "string") {
117
+ const result = await store.fetch(item);
118
+ data = result.data;
119
+ mimeType = result.mimeType;
120
+ }
121
+ else {
122
+ data = item.data;
123
+ mimeType = item.mimeType;
124
+ }
125
+ const b64 = data.toString("base64");
126
+ parts.push(formatForOpenai(b64, mimeType));
127
+ }
128
+ catch (err) {
129
+ const label = typeof item === "string" ? item : "(inline media)";
130
+ console.error(`[media] Failed to resolve ${label}, skipping:`, err);
131
+ }
132
+ }
133
+ return parts;
134
+ }
135
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * MediaStore abstraction for multimodal content storage.
3
+ *
4
+ * Provides pluggable storage backends (local filesystem, S3) for
5
+ * binary media referenced by resource_link content items.
6
+ */
7
+ /**
8
+ * Storage backend for media blobs.
9
+ */
10
+ export interface MediaStore {
11
+ /** Upload data and return a URI for later retrieval. */
12
+ upload(data: Buffer, filename: string, mimeType: string): Promise<string>;
13
+ /** Fetch previously stored data by URI. */
14
+ fetch(uri: string): Promise<{
15
+ data: Buffer;
16
+ mimeType: string;
17
+ }>;
18
+ /** Check whether a URI exists in the store. */
19
+ exists(uri: string): Promise<boolean>;
20
+ }
21
+ /** Guess MIME type from a filename extension. Falls back to application/octet-stream. */
22
+ export declare function guessMimeType(filename: string): string;
23
+ /**
24
+ * Local filesystem media store.
25
+ *
26
+ * Stores files under a configurable base path and returns `file://` URIs.
27
+ */
28
+ export declare class LocalMediaStore implements MediaStore {
29
+ private readonly basePath;
30
+ private readonly prefix;
31
+ constructor(basePath?: string, prefix?: string);
32
+ private validatePath;
33
+ upload(data: Buffer, filename: string, _mimeType: string): Promise<string>;
34
+ fetch(uri: string): Promise<{
35
+ data: Buffer;
36
+ mimeType: string;
37
+ }>;
38
+ exists(uri: string): Promise<boolean>;
39
+ }
40
+ /**
41
+ * S3-compatible media store.
42
+ *
43
+ * Uses lazy imports for @aws-sdk/client-s3 so it is only required
44
+ * when storage is configured as "s3".
45
+ */
46
+ export declare class S3MediaStore implements MediaStore {
47
+ private readonly bucket;
48
+ private readonly endpoint;
49
+ private readonly prefix;
50
+ private _client;
51
+ constructor(bucket?: string, endpoint?: string, prefix?: string);
52
+ private getClient;
53
+ private loadS3Module;
54
+ upload(data: Buffer, filename: string, mimeType: string): Promise<string>;
55
+ fetch(uri: string): Promise<{
56
+ data: Buffer;
57
+ mimeType: string;
58
+ }>;
59
+ exists(uri: string): Promise<boolean>;
60
+ private parseUri;
61
+ }
62
+ /**
63
+ * Get (or create) the singleton MediaStore based on configuration.
64
+ *
65
+ * Reads `media_storage` config key (env: `MCP_MESH_MEDIA_STORAGE`).
66
+ * - `"local"` (default) -> LocalMediaStore
67
+ * - `"s3"` -> S3MediaStore
68
+ */
69
+ export declare function getMediaStore(): MediaStore;
70
+ /**
71
+ * Reset the singleton (mainly for testing).
72
+ * @internal
73
+ */
74
+ export declare function _resetMediaStore(): void;
75
+ //# sourceMappingURL=media-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-store.d.ts","sourceRoot":"","sources":["../../src/media/media-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1E,2CAA2C;IAC3C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,+CAA+C;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAuBD,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;YAMhC,YAAY;IAQpB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc1E,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAW/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAY5C;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAIhC,OAAO,CAAC,OAAO,CAAa;gBAEhB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;YAQjD,SAAS;YAmBT,YAAY;IAKpB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBzE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB3C,OAAO,CAAC,QAAQ;CAejB;AAQD;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAe1C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}