@teamflojo/floimg 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,27 +66,27 @@ async function loadImage(imageId, imagePath, imageBytes, mime) {
66
66
  }
67
67
  // Detect MIME type from file path
68
68
  function detectMimeFromPath(path) {
69
- const ext = path.split('.').pop()?.toLowerCase();
69
+ const ext = path.split(".").pop()?.toLowerCase();
70
70
  const mimeMap = {
71
- 'svg': 'image/svg+xml',
72
- 'png': 'image/png',
73
- 'jpg': 'image/jpeg',
74
- 'jpeg': 'image/jpeg',
75
- 'webp': 'image/webp',
76
- 'avif': 'image/avif',
71
+ svg: "image/svg+xml",
72
+ png: "image/png",
73
+ jpg: "image/jpeg",
74
+ jpeg: "image/jpeg",
75
+ webp: "image/webp",
76
+ avif: "image/avif",
77
77
  };
78
- return mimeMap[ext || ''] || 'image/png';
78
+ return mimeMap[ext || ""] || "image/png";
79
79
  }
80
80
  // Plugin auto-discovery
81
81
  async function loadAvailablePlugins(client) {
82
82
  const plugins = [];
83
- console.error('[floimg-mcp] Starting plugin discovery...');
83
+ console.error("[floimg-mcp] Starting plugin discovery...");
84
84
  const potentialPlugins = [
85
- { name: 'quickchart', module: '@teamflojo/floimg-quickchart' },
86
- { name: 'd3', module: '@teamflojo/floimg-d3' },
87
- { name: 'mermaid', module: '@teamflojo/floimg-mermaid' },
88
- { name: 'qr', module: '@teamflojo/floimg-qr' },
89
- { name: 'screenshot', module: '@teamflojo/floimg-screenshot' },
85
+ { name: "quickchart", module: "@teamflojo/floimg-quickchart" },
86
+ { name: "d3", module: "@teamflojo/floimg-d3" },
87
+ { name: "mermaid", module: "@teamflojo/floimg-mermaid" },
88
+ { name: "qr", module: "@teamflojo/floimg-qr" },
89
+ { name: "screenshot", module: "@teamflojo/floimg-screenshot" },
90
90
  ];
91
91
  for (const { name, module } of potentialPlugins) {
92
92
  try {
@@ -96,9 +96,7 @@ async function loadAvailablePlugins(client) {
96
96
  console.error(`[floimg-mcp] ⚠ ${module} has no default export`);
97
97
  continue;
98
98
  }
99
- const generator = typeof plugin.default === 'function'
100
- ? plugin.default()
101
- : plugin.default;
99
+ const generator = typeof plugin.default === "function" ? plugin.default() : plugin.default;
102
100
  client.registerGenerator(generator);
103
101
  plugins.push(name);
104
102
  console.error(`[floimg-mcp] ✓ Loaded plugin: ${name}`);
@@ -108,11 +106,11 @@ async function loadAvailablePlugins(client) {
108
106
  console.error(`[floimg-mcp] ✗ Failed to load ${module}: ${error.message}`);
109
107
  }
110
108
  }
111
- console.error(`[floimg-mcp] Plugin discovery complete. Loaded: ${plugins.join(', ') || 'none'}`);
109
+ console.error(`[floimg-mcp] Plugin discovery complete. Loaded: ${plugins.join(", ") || "none"}`);
112
110
  if (plugins.length === 0) {
113
- console.error('[floimg-mcp] ⚠ No generator plugins found!');
114
- console.error('[floimg-mcp] Install with: npm install -g @teamflojo/floimg-quickchart @teamflojo/floimg-mermaid @teamflojo/floimg-qr @teamflojo/floimg-d3 @teamflojo/floimg-screenshot');
115
- console.error('[floimg-mcp] Only built-in generators (shapes, openai) will be available.');
111
+ console.error("[floimg-mcp] ⚠ No generator plugins found!");
112
+ console.error("[floimg-mcp] Install with: npm install -g @teamflojo/floimg-quickchart @teamflojo/floimg-mermaid @teamflojo/floimg-qr @teamflojo/floimg-d3 @teamflojo/floimg-screenshot");
113
+ console.error("[floimg-mcp] Only built-in generators (shapes, openai) will be available.");
116
114
  }
117
115
  return plugins;
118
116
  }
@@ -120,56 +118,88 @@ async function loadAvailablePlugins(client) {
120
118
  function selectGenerator(intent, params) {
121
119
  const intentLower = intent.toLowerCase();
122
120
  // QR codes
123
- if (intentLower.includes('qr') || intentLower.includes('barcode')) {
124
- return 'qr';
121
+ if (intentLower.includes("qr") || intentLower.includes("barcode")) {
122
+ return "qr";
125
123
  }
126
124
  // Screenshots
127
- if (intentLower.includes('screenshot') || intentLower.includes('capture') ||
128
- intentLower.includes('website') || intentLower.includes('webpage') ||
129
- intentLower.includes('url') && params.url) {
130
- return 'screenshot';
125
+ if (intentLower.includes("screenshot") ||
126
+ intentLower.includes("capture") ||
127
+ intentLower.includes("website") ||
128
+ intentLower.includes("webpage") ||
129
+ (intentLower.includes("url") && params.url)) {
130
+ return "screenshot";
131
131
  }
132
132
  // Diagrams (Mermaid)
133
- if (intentLower.includes('flowchart') || intentLower.includes('diagram') ||
134
- intentLower.includes('sequence') || intentLower.includes('gantt') ||
135
- intentLower.includes('class diagram') || intentLower.includes('entity') ||
136
- intentLower.includes('state') || intentLower.includes('mindmap')) {
137
- return 'mermaid';
133
+ if (intentLower.includes("flowchart") ||
134
+ intentLower.includes("diagram") ||
135
+ intentLower.includes("sequence") ||
136
+ intentLower.includes("gantt") ||
137
+ intentLower.includes("class diagram") ||
138
+ intentLower.includes("entity") ||
139
+ intentLower.includes("state") ||
140
+ intentLower.includes("mindmap")) {
141
+ return "mermaid";
138
142
  }
139
143
  // Charts & Data Visualization (check BEFORE AI detection)
140
- if (intentLower.includes('chart') || intentLower.includes('graph') ||
141
- intentLower.includes('plot') || intentLower.includes('visualiz')) {
144
+ if (intentLower.includes("chart") ||
145
+ intentLower.includes("graph") ||
146
+ intentLower.includes("plot") ||
147
+ intentLower.includes("visualiz")) {
142
148
  // D3 for custom/complex visualizations
143
- if (params.render || params.renderString ||
144
- intentLower.includes('custom') || intentLower.includes('d3')) {
145
- return 'd3';
149
+ if (params.render ||
150
+ params.renderString ||
151
+ intentLower.includes("custom") ||
152
+ intentLower.includes("d3")) {
153
+ return "d3";
146
154
  }
147
155
  // QuickChart for standard charts
148
- return 'quickchart';
156
+ return "quickchart";
149
157
  }
150
158
  // AI Image Generation - IMPROVED: Better keyword detection
151
159
  // Check for scene descriptions, subjects, art styles, etc.
152
160
  const aiKeywords = [
153
- 'photo', 'picture', 'illustration', 'painting', 'drawing',
154
- 'scene', 'image of', 'portrait', 'landscape', 'artwork',
155
- 'realistic', 'photorealistic', 'stylized', 'artistic',
156
- 'dall-e', 'ai image', 'ai generated', 'generate image',
157
- 'person', 'people', 'animal', 'building', 'nature',
158
- 'stadium', 'player', 'celebrating', 'sunset', 'dramatic'
161
+ "photo",
162
+ "picture",
163
+ "illustration",
164
+ "painting",
165
+ "drawing",
166
+ "scene",
167
+ "image of",
168
+ "portrait",
169
+ "landscape",
170
+ "artwork",
171
+ "realistic",
172
+ "photorealistic",
173
+ "stylized",
174
+ "artistic",
175
+ "dall-e",
176
+ "ai image",
177
+ "ai generated",
178
+ "generate image",
179
+ "person",
180
+ "people",
181
+ "animal",
182
+ "building",
183
+ "nature",
184
+ "stadium",
185
+ "player",
186
+ "celebrating",
187
+ "sunset",
188
+ "dramatic",
159
189
  ];
160
- const hasAIKeyword = aiKeywords.some(keyword => intentLower.includes(keyword));
190
+ const hasAIKeyword = aiKeywords.some((keyword) => intentLower.includes(keyword));
161
191
  const hasPromptParam = params.prompt !== undefined;
162
192
  // Route to OpenAI if:
163
193
  // 1. Has AI-related keywords OR
164
194
  // 2. Has prompt parameter OR
165
195
  // 3. Intent describes a scene/subject (more than 5 words)
166
196
  const wordCount = intent.trim().split(/\s+/).length;
167
- const isDescriptiveIntent = wordCount > 5 && !intentLower.includes('gradient') && !intentLower.includes('shape');
197
+ const isDescriptiveIntent = wordCount > 5 && !intentLower.includes("gradient") && !intentLower.includes("shape");
168
198
  if (hasAIKeyword || hasPromptParam || isDescriptiveIntent) {
169
- return 'openai';
199
+ return "openai";
170
200
  }
171
201
  // Default to shapes for simple SVG graphics (gradients, basic shapes)
172
- return 'shapes';
202
+ return "shapes";
173
203
  }
174
204
  // Initialize server
175
205
  const server = new Server({
@@ -222,11 +252,14 @@ const TOOLS = [
222
252
  },
223
253
  {
224
254
  name: "transform_image",
225
- description: "Transform an image with filters, effects, text, resizing, and more. " +
226
- "Reference images by: imageId (from generate_image), imagePath (any file), or imageBytes (base64). " +
227
- "Supports: resize, convert, blur, sharpen, grayscale, modulate, tint, roundCorners, " +
228
- "addText, addCaption, and preset filters (vintage, vibrant, dramatic, etc.). " +
229
- "Transformed image is saved to session workspace with new imageId.",
255
+ description: "Apply deterministic, pixel-precise transforms to images. Unlike AI regeneration " +
256
+ "(DALL-E, inpainting), these operations mathematically modify exactly what you specify—" +
257
+ "the rest of your image stays identical. When you say 'resize to 1200x630,' it does " +
258
+ "exactly that, guaranteed. " +
259
+ "Supports: resize, convert, blur, sharpen, grayscale, modulate (brightness/saturation/hue), " +
260
+ "tint, roundCorners, addText, addCaption, and preset filters. " +
261
+ "Reference images by: imageId (from generate_image), imagePath, or imageBytes. " +
262
+ "Each transform creates a new imageId for chaining.",
230
263
  inputSchema: {
231
264
  type: "object",
232
265
  properties: {
@@ -333,10 +366,11 @@ const TOOLS = [
333
366
  },
334
367
  {
335
368
  name: "run_pipeline",
336
- description: "Execute a multi-step image workflow in a single call. " +
337
- "Define a series of generate, transform, and save operations. " +
338
- "Each step automatically receives the output from the previous step. " +
339
- "Perfect for complex workflows like: generate resize add caption upload to cloud.",
369
+ description: "Execute a complete image workflow as one atomic operation. Combine AI generation " +
370
+ "with deterministic transforms and cloud upload in a single call. What typically " +
371
+ "requires 4+ separate tools becomes one pipeline: generate transform → save. " +
372
+ "Each step auto-chains to the next. Session state means you can iterate: run a " +
373
+ "pipeline, then refine with additional transforms without starting over.",
340
374
  inputSchema: {
341
375
  type: "object",
342
376
  properties: {
@@ -450,10 +484,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
450
484
  const client = createClient(config);
451
485
  // Load available plugins
452
486
  const availablePlugins = await loadAvailablePlugins(client);
453
- console.error(`[floimg-mcp] Available generators: shapes, openai, ${availablePlugins.join(', ')}`);
487
+ console.error(`[floimg-mcp] Available generators: shapes, openai, ${availablePlugins.join(", ")}`);
454
488
  switch (name) {
455
489
  case "generate_image": {
456
- const { intent, params = {}, saveTo } = args;
490
+ const { intent, params = {}, saveTo, } = args;
457
491
  if (!intent) {
458
492
  throw new Error("'intent' parameter is required");
459
493
  }
@@ -462,13 +496,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
462
496
  console.error(`[floimg-mcp] Intent: "${intent}" → Generator: ${generator}`);
463
497
  // Auto-fill params for simple cases to improve UX
464
498
  const finalParams = { ...params };
465
- if (generator === 'openai' && !finalParams.prompt) {
499
+ if (generator === "openai" && !finalParams.prompt) {
466
500
  // For AI images: use intent as prompt
467
501
  finalParams.prompt = intent;
468
- finalParams.size = finalParams.size || '1024x1024';
502
+ finalParams.size = finalParams.size || "1024x1024";
469
503
  console.error(`[floimg-mcp] Auto-filled: prompt="${intent}", size=${finalParams.size}`);
470
504
  }
471
- if (generator === 'qr' && !finalParams.text) {
505
+ if (generator === "qr" && !finalParams.text) {
472
506
  // For QR codes: extract URL from intent
473
507
  const urlMatch = intent.match(/https?:\/\/[^\s]+/);
474
508
  if (urlMatch) {
@@ -482,13 +516,16 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
482
516
  }
483
517
  }
484
518
  // For charts and diagrams: params always required (too complex to extract)
485
- if ((generator === 'quickchart' || generator === 'mermaid' || generator === 'd3') &&
486
- !finalParams.type && !finalParams.data && !finalParams.code && !finalParams.render) {
519
+ if ((generator === "quickchart" || generator === "mermaid" || generator === "d3") &&
520
+ !finalParams.type &&
521
+ !finalParams.data &&
522
+ !finalParams.code &&
523
+ !finalParams.render) {
487
524
  throw new Error(`${generator} requires explicit params. Intent is only for routing. ` +
488
525
  `Please provide structured data: ` +
489
- `${generator === 'quickchart' ? '{ type: "bar", data: {...} }' : ''}` +
490
- `${generator === 'mermaid' ? '{ code: "graph TD; A-->B" }' : ''}` +
491
- `${generator === 'd3' ? '{ render: "...", data: [...] }' : ''}`);
526
+ `${generator === "quickchart" ? '{ type: "bar", data: {...} }' : ""}` +
527
+ `${generator === "mermaid" ? '{ code: "graph TD; A-->B" }' : ""}` +
528
+ `${generator === "d3" ? '{ render: "...", data: [...] }' : ""}`);
492
529
  }
493
530
  const blob = await client.generate({
494
531
  generator,
@@ -543,7 +580,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
543
580
  };
544
581
  }
545
582
  case "transform_image": {
546
- const { imageId, imagePath, imageBytes, mime, operation, params = {}, to, saveTo } = args;
583
+ const { imageId, imagePath, imageBytes, mime, operation, params = {}, to, saveTo, } = args;
547
584
  // Load input image
548
585
  const inputBlob = await loadImage(imageId, imagePath, imageBytes, mime);
549
586
  let resultBlob;
@@ -657,17 +694,17 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
657
694
  const stepType = Object.keys(step)[0]; // 'generate', 'transform', or 'save'
658
695
  const stepParams = step[stepType];
659
696
  console.error(`[floimg-mcp] Pipeline step ${i + 1}/${steps.length}: ${stepType}`);
660
- if (stepType === 'generate') {
697
+ if (stepType === "generate") {
661
698
  // Generate step
662
699
  const { intent, params = {} } = stepParams;
663
700
  const generator = selectGenerator(intent, params);
664
701
  // Auto-fill params for simple cases (same logic as generate_image tool)
665
702
  const finalParams = { ...params };
666
- if (generator === 'openai' && !finalParams.prompt) {
703
+ if (generator === "openai" && !finalParams.prompt) {
667
704
  finalParams.prompt = intent;
668
- finalParams.size = finalParams.size || '1024x1024';
705
+ finalParams.size = finalParams.size || "1024x1024";
669
706
  }
670
- if (generator === 'qr' && !finalParams.text) {
707
+ if (generator === "qr" && !finalParams.text) {
671
708
  const urlMatch = intent.match(/https?:\/\/[^\s]+/);
672
709
  if (urlMatch)
673
710
  finalParams.text = urlMatch[0];
@@ -684,9 +721,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
684
721
  metadata: { width: blob.width, height: blob.height, source: blob.source },
685
722
  });
686
723
  currentImageId = imageId;
687
- results.push({ step: i + 1, type: 'generate', imageId, generator });
724
+ results.push({ step: i + 1, type: "generate", imageId, generator });
688
725
  }
689
- else if (stepType === 'transform') {
726
+ else if (stepType === "transform") {
690
727
  // Transform step - uses current image
691
728
  if (!currentImageId) {
692
729
  throw new Error(`Pipeline step ${i + 1}: transform requires a previous generate step`);
@@ -727,9 +764,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
727
764
  metadata: { width: resultBlob.width, height: resultBlob.height },
728
765
  });
729
766
  currentImageId = newImageId;
730
- results.push({ step: i + 1, type: 'transform', operation, imageId: newImageId });
767
+ results.push({ step: i + 1, type: "transform", operation, imageId: newImageId });
731
768
  }
732
- else if (stepType === 'save') {
769
+ else if (stepType === "save") {
733
770
  // Save step - saves current image
734
771
  if (!currentImageId) {
735
772
  throw new Error(`Pipeline step ${i + 1}: save requires a previous generate/transform step`);
@@ -739,7 +776,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
739
776
  const result = await client.save(inputBlob, provider ? { path: destination, provider } : destination);
740
777
  results.push({
741
778
  step: i + 1,
742
- type: 'save',
779
+ type: "save",
743
780
  location: result.location,
744
781
  provider: result.provider,
745
782
  size: result.size,
@@ -766,7 +803,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
766
803
  };
767
804
  }
768
805
  case "analyze_image": {
769
- const { imageId, imagePath, imageBytes, mime, prompt, provider, outputFormat = "text" } = args;
806
+ const { imageId, imagePath, imageBytes, mime, prompt, provider, outputFormat = "text", } = args;
770
807
  if (!prompt) {
771
808
  throw new Error("'prompt' parameter is required");
772
809
  }
@@ -872,13 +909,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
872
909
  // Helper: Get file extension from MIME type
873
910
  function getExtension(mime) {
874
911
  const map = {
875
- 'image/svg+xml': 'svg',
876
- 'image/png': 'png',
877
- 'image/jpeg': 'jpg',
878
- 'image/webp': 'webp',
879
- 'image/avif': 'avif',
912
+ "image/svg+xml": "svg",
913
+ "image/png": "png",
914
+ "image/jpeg": "jpg",
915
+ "image/webp": "webp",
916
+ "image/avif": "avif",
880
917
  };
881
- return map[mime] || 'png';
918
+ return map[mime] || "png";
882
919
  }
883
920
  // Start server with stdio transport
884
921
  async function main() {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import type { SaveProvider, ImageBlob, SaveResult } from "../../core/types.js";
2
+ export interface PresignOptions {
3
+ /** Expiry time in seconds (default: 3600 = 1 hour) */
4
+ expiresIn?: number;
5
+ }
2
6
  export interface S3SaveProviderConfig {
3
7
  bucket: string;
4
8
  region: string;
@@ -10,11 +14,19 @@ export interface S3SaveProviderConfig {
10
14
  }
11
15
  /**
12
16
  * S3 save provider - saves images to AWS S3 or S3-compatible storage
17
+ *
18
+ * Supports:
19
+ * - AWS S3
20
+ * - Hetzner Object Storage
21
+ * - Cloudflare R2
22
+ * - Any S3-compatible service
13
23
  */
14
24
  export default class S3SaveProvider implements SaveProvider {
15
25
  name: string;
16
26
  private s3Client;
17
27
  private bucket;
28
+ private region;
29
+ private endpoint?;
18
30
  constructor(config: S3SaveProviderConfig);
19
31
  save(input: {
20
32
  blob: ImageBlob;
@@ -22,5 +34,31 @@ export default class S3SaveProvider implements SaveProvider {
22
34
  headers?: Record<string, string>;
23
35
  metadata?: Record<string, unknown>;
24
36
  }): Promise<SaveResult>;
37
+ /**
38
+ * Generate a presigned URL for temporary access to a private object
39
+ *
40
+ * @param key - The S3 object key (path)
41
+ * @param options - Presign options (expiry time)
42
+ * @returns Presigned URL string
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const provider = new S3SaveProvider({ bucket: 'my-bucket', region: 'us-east-1' });
47
+ * const url = await provider.getPresignedUrl('images/photo.png', { expiresIn: 3600 });
48
+ * // Returns: https://my-bucket.s3.us-east-1.amazonaws.com/images/photo.png?X-Amz-...
49
+ * ```
50
+ */
51
+ getPresignedUrl(key: string, options?: PresignOptions): Promise<string>;
52
+ /**
53
+ * Get the public URL for an object (assumes bucket is publicly readable)
54
+ *
55
+ * @param key - The S3 object key (path)
56
+ * @returns Public URL string
57
+ */
58
+ getPublicUrl(key: string): string;
59
+ /**
60
+ * Get the bucket name
61
+ */
62
+ getBucket(): string;
25
63
  }
26
64
  //# sourceMappingURL=S3SaveProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"S3SaveProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/save/S3SaveProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,YAAY;IACzD,IAAI,SAAQ;IACZ,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,oBAAoB;IASlC,IAAI,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,UAAU,CAAC;CA2BxB"}
1
+ {"version":3,"file":"S3SaveProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/save/S3SaveProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,YAAY;IACzD,IAAI,SAAQ;IACZ,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,oBAAoB;IAYlC,IAAI,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BvB;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7E;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAWjC;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}