@mcp-consultant-tools/figma 33.0.0 → 35.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cli.js CHANGED
File without changes
package/build/index.js CHANGED
File without changes
@@ -52,3 +52,4 @@ export const ADO_ORG_EXAMPLES = [
52
52
  export const ADO_PROJECT_EXAMPLES = [
53
53
  { label: "Project name", value: "MyProject" },
54
54
  ];
55
+ //# sourceMappingURL=tool-examples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"figma-tools.d.ts","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgBlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAuRzE"}
1
+ {"version":3,"file":"figma-tools.d.ts","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgBlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA+RzE"}
@@ -18,7 +18,9 @@ export function registerFigmaTools(server, ctx) {
18
18
  simplifyConnectors: z.boolean().optional().describe("Simplify CONNECTOR nodes to just connection endpoints (startNodeId, endNodeId, text). Preserves relationship data while removing visual properties. Default: true. Set to false for full connector data."),
19
19
  simplifyComponentInstances: z.boolean().optional().describe("Keep componentId and componentProperties on INSTANCE nodes but remove visual styling. Ideal for ADO User Story components. Default: true. Set to false for full instance data."),
20
20
  extractors: z.array(z.enum(["layout", "text", "visuals", "component"])).optional().describe(descWithExamples("Override which extractors to use. Default uses all.", EXTRACTOR_EXAMPLES)),
21
- }), async ({ fileKey, nodeId, depth, excludeStyles, tablesToMarkdown, simplifyConnectors, simplifyComponentInstances, extractors, returnFullResponse, }) => {
21
+ }),
22
+ // Pure read: fetches design data from the Figma API.
23
+ { readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeId, depth, excludeStyles, tablesToMarkdown, simplifyConnectors, simplifyComponentInstances, extractors, returnFullResponse, }) => {
22
24
  try {
23
25
  const dataOptions = {
24
26
  excludeStyles,
@@ -53,7 +55,9 @@ export function registerFigmaTools(server, ctx) {
53
55
  ])).optional().describe(descWithExamples("Optional color to category overrides. Map hex colors to categories. ('si-investigation' is a deprecated alias for 'investigation' — output always uses 'investigation'.)", STICKY_CATEGORY_EXAMPLES)),
54
56
  storyIdPattern: z.string().optional().describe(descWithExamples("Optional custom regex pattern for extracting story IDs", STORY_ID_PATTERN_EXAMPLES)),
55
57
  includeScreenshot: z.boolean().optional().describe("When true and nodeId is set, returns a 2x PNG screenshot of the node as an image content block alongside the semantic data."),
56
- }), async ({ fileKey, nodeId, stickyColorOverrides, storyIdPattern, includeScreenshot, returnFullResponse, }) => {
58
+ }),
59
+ // Pure read: extracts semantic data from the Figma API.
60
+ { readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeId, stickyColorOverrides, storyIdPattern, includeScreenshot, returnFullResponse, }) => {
57
61
  try {
58
62
  const dataOptions = {
59
63
  excludeStyles: false,
@@ -121,7 +125,9 @@ export function registerFigmaTools(server, ctx) {
121
125
  adoOrganization: z.string().optional().describe(descWithExamples("Azure DevOps organization name for constructing work item links", ADO_ORG_EXAMPLES)),
122
126
  adoProject: z.string().optional().describe(descWithExamples("Azure DevOps project name for constructing work item links", ADO_PROJECT_EXAMPLES)),
123
127
  includePlaceholders: z.boolean().optional().describe("Include ADO components with placeholder IDs (e.g. 'ADO xxxxx'). Default: false (placeholders are filtered out)."),
124
- }), async ({ fileKey, nodeId, adoOrganization, adoProject, includePlaceholders, returnFullResponse, }) => {
128
+ }),
129
+ // Pure read: extracts ADO story data from the Figma API.
130
+ { readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeId, adoOrganization, adoProject, includePlaceholders, returnFullResponse, }) => {
125
131
  try {
126
132
  const dataOptions = {
127
133
  excludeStyles: true,
@@ -159,7 +165,9 @@ export function registerFigmaTools(server, ctx) {
159
165
  localPath: z.string().describe("Local directory path to save images (created if needed)"),
160
166
  format: z.enum(["png", "svg", "jpg", "pdf"]).optional().describe("Image format. Default: png"),
161
167
  scale: z.number().optional().describe("Scale factor 0.01-4. Default: 2 (for retina)"),
162
- }, async ({ fileKey, nodeIds, localPath, format, scale }) => {
168
+ },
169
+ // Read from Figma API; writes rendered images to local disk only (no remote mutation).
170
+ { readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeIds, localPath, format, scale }) => {
163
171
  try {
164
172
  const parsedIds = nodeIds.split(';').map(id => id.trim()).filter(Boolean);
165
173
  const imageMap = await ctx.figma.getNodeImages(fileKey, parsedIds, { format, scale });
@@ -1 +1 @@
1
- {"version":3,"file":"figma-tools.js","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figma-tools.js","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/figma",
3
- "version": "33.0.0",
3
+ "version": "35.0.0-beta.1",
4
4
  "description": "MCP server for Figma integration - design data extraction and transformation",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@figma/rest-api-spec": "^0.33.0",
43
- "@mcp-consultant-tools/core": "32.0.0",
43
+ "@mcp-consultant-tools/core": "33.0.0",
44
44
  "@modelcontextprotocol/sdk": "^1.0.4",
45
45
  "commander": "^14.0.3",
46
46
  "zod": "^3.24.1"
@@ -1,64 +0,0 @@
1
- import type { SimplifiedDesign } from "./figma/extractors/types.js";
2
- export interface FigmaConfig {
3
- apiKey?: string;
4
- oauthToken?: string;
5
- useOAuth: boolean;
6
- }
7
- /**
8
- * Options for controlling what data is extracted and how it's formatted.
9
- * All options default to false to preserve backward compatibility.
10
- */
11
- export interface FigmaDataOptions {
12
- /** Remove all styling info (fills, strokes, effects, textStyle, opacity, borderRadius) */
13
- excludeStyles?: boolean;
14
- /** Convert TABLE nodes to markdown format */
15
- tablesToMarkdown?: boolean;
16
- /** Simplify CONNECTOR nodes to just endpoints (startNodeId, endNodeId) */
17
- simplifyConnectors?: boolean;
18
- /** Keep componentId and componentProperties but remove visual styling from INSTANCE nodes */
19
- simplifyComponentInstances?: boolean;
20
- /** Override which extractors to use: "layout", "text", "visuals", "component" */
21
- extractors?: ("layout" | "text" | "visuals" | "component")[];
22
- }
23
- /**
24
- * Service for interacting with the Figma API
25
- * Follows the service pattern established by PowerPlatformService
26
- */
27
- export declare class FigmaService {
28
- private config;
29
- private readonly baseUrl;
30
- constructor(config: FigmaConfig);
31
- /**
32
- * Get authentication headers based on configuration
33
- */
34
- private getAuthHeaders;
35
- /**
36
- * Make an authenticated request to the Figma API
37
- */
38
- private request;
39
- /**
40
- * Get raw Figma API response for a file
41
- * @param fileKey - The Figma file key from the URL
42
- * @param depth - Optional depth limit for traversal
43
- */
44
- private getFigmaFile;
45
- /**
46
- * Get raw Figma API response for specific nodes
47
- * @param fileKey - The Figma file key from the URL
48
- * @param nodeIds - Array of node IDs to fetch
49
- * @param depth - Optional depth limit for traversal
50
- */
51
- private getFigmaNodes;
52
- /**
53
- * Get comprehensive Figma design data in simplified, AI-friendly format
54
- * This is the main method exposed to MCP tools
55
- *
56
- * @param fileKey - The Figma file key from the URL
57
- * @param nodeId - Optional specific node ID(s) to fetch (format: "1:10" or "1:10;2:20")
58
- * @param depth - Optional tree traversal depth limit
59
- * @param dataOptions - Optional optimization options for reducing output size
60
- * @returns Simplified design data ready for AI consumption
61
- */
62
- getFigmaData(fileKey: string, nodeId?: string, depth?: number, dataOptions?: FigmaDataOptions): Promise<SimplifiedDesign>;
63
- }
64
- //# sourceMappingURL=FigmaService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FigmaService.d.ts","sourceRoot":"","sources":["../src/FigmaService.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAiC,MAAM,6BAA6B,CAAC;AAInG,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0FAA0F;IAC1F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,6FAA6F;IAC7F,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC;CAC9D;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;gBAE1C,MAAM,EAAE,WAAW;IAiB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;YACW,OAAO;IAgBrB;;;;OAIG;YACW,YAAY;IAQ1B;;;;;OAKG;YACW,aAAa;IAc3B;;;;;;;;;OASG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;CAyF7B"}
@@ -1,162 +0,0 @@
1
- import { fetchWithRetry } from "./figma/utils/fetch-with-retry.js";
2
- import { simplifyRawFigmaObject } from "./figma/extractors/design-extractor.js";
3
- import { allExtractors, layoutExtractor, textExtractor, visualsExtractor, componentExtractor, connectorExtractor, simplifyAllConnectors, } from "./figma/extractors/built-in.js";
4
- import { stripStylesFromDesign } from "./figma/transformers/style-stripper.js";
5
- import { simplifyAllComponentInstances } from "./figma/transformers/component-simplifier.js";
6
- /**
7
- * Service for interacting with the Figma API
8
- * Follows the service pattern established by PowerPlatformService
9
- */
10
- export class FigmaService {
11
- config;
12
- baseUrl = "https://api.figma.com/v1";
13
- constructor(config) {
14
- this.config = config;
15
- // Validate configuration
16
- if (!this.config.apiKey && !this.config.oauthToken) {
17
- throw new Error("Figma configuration requires either apiKey or oauthToken");
18
- }
19
- if (this.config.useOAuth && !this.config.oauthToken) {
20
- throw new Error("useOAuth is true but oauthToken is not provided");
21
- }
22
- }
23
- /**
24
- * Get authentication headers based on configuration
25
- */
26
- getAuthHeaders() {
27
- if (this.config.useOAuth && this.config.oauthToken) {
28
- console.error("Using OAuth Bearer token for authentication");
29
- return { Authorization: `Bearer ${this.config.oauthToken}` };
30
- }
31
- else if (this.config.apiKey) {
32
- console.error("Using Personal Access Token for authentication");
33
- return { "X-Figma-Token": this.config.apiKey };
34
- }
35
- throw new Error("No valid authentication method configured");
36
- }
37
- /**
38
- * Make an authenticated request to the Figma API
39
- */
40
- async request(endpoint) {
41
- try {
42
- console.error(`Calling ${this.baseUrl}${endpoint}`);
43
- const headers = this.getAuthHeaders();
44
- return await fetchWithRetry(`${this.baseUrl}${endpoint}`, {
45
- headers,
46
- });
47
- }
48
- catch (error) {
49
- const errorMessage = error instanceof Error ? error.message : String(error);
50
- throw new Error(`Failed to make request to Figma API endpoint '${endpoint}': ${errorMessage}`);
51
- }
52
- }
53
- /**
54
- * Get raw Figma API response for a file
55
- * @param fileKey - The Figma file key from the URL
56
- * @param depth - Optional depth limit for traversal
57
- */
58
- async getFigmaFile(fileKey, depth) {
59
- const endpoint = `/files/${fileKey}${depth ? `?depth=${depth}` : ""}`;
60
- console.error(`Retrieving Figma file: ${fileKey} (depth: ${depth ?? "default"})`);
61
- const response = await this.request(endpoint);
62
- return response;
63
- }
64
- /**
65
- * Get raw Figma API response for specific nodes
66
- * @param fileKey - The Figma file key from the URL
67
- * @param nodeIds - Array of node IDs to fetch
68
- * @param depth - Optional depth limit for traversal
69
- */
70
- async getFigmaNodes(fileKey, nodeIds, depth) {
71
- const endpoint = `/files/${fileKey}/nodes?ids=${nodeIds.join(",")}${depth ? `&depth=${depth}` : ""}`;
72
- console.error(`Retrieving Figma nodes: ${nodeIds.join(", ")} from ${fileKey} (depth: ${depth ?? "default"})`);
73
- const response = await this.request(endpoint);
74
- return response;
75
- }
76
- /**
77
- * Get comprehensive Figma design data in simplified, AI-friendly format
78
- * This is the main method exposed to MCP tools
79
- *
80
- * @param fileKey - The Figma file key from the URL
81
- * @param nodeId - Optional specific node ID(s) to fetch (format: "1:10" or "1:10;2:20")
82
- * @param depth - Optional tree traversal depth limit
83
- * @param dataOptions - Optional optimization options for reducing output size
84
- * @returns Simplified design data ready for AI consumption
85
- */
86
- async getFigmaData(fileKey, nodeId, depth, dataOptions) {
87
- try {
88
- // Apply defaults - optimizations ON by default for reduced context usage
89
- const effectiveOptions = {
90
- excludeStyles: dataOptions?.excludeStyles ?? true,
91
- tablesToMarkdown: dataOptions?.tablesToMarkdown ?? true,
92
- simplifyConnectors: dataOptions?.simplifyConnectors ?? true,
93
- simplifyComponentInstances: dataOptions?.simplifyComponentInstances ?? true,
94
- extractors: dataOptions?.extractors,
95
- };
96
- // Fetch raw data from Figma API
97
- let rawData;
98
- if (nodeId) {
99
- // Parse node IDs (support both single and multiple, semicolon-separated)
100
- const nodeIds = nodeId.split(";").map(id => id.trim()).filter(id => id.length > 0);
101
- rawData = await this.getFigmaNodes(fileKey, nodeIds, depth);
102
- }
103
- else {
104
- rawData = await this.getFigmaFile(fileKey, depth);
105
- }
106
- // Build extractor array based on options
107
- let extractorList = [...allExtractors];
108
- if (effectiveOptions.extractors) {
109
- // Use custom extractor selection
110
- extractorList = [];
111
- if (effectiveOptions.extractors.includes("layout")) {
112
- extractorList.push(layoutExtractor);
113
- }
114
- if (effectiveOptions.extractors.includes("text")) {
115
- extractorList.push(textExtractor);
116
- }
117
- if (effectiveOptions.extractors.includes("visuals")) {
118
- extractorList.push(visualsExtractor);
119
- }
120
- if (effectiveOptions.extractors.includes("component")) {
121
- extractorList.push(componentExtractor);
122
- }
123
- }
124
- // Always add connector extractor for relationship data
125
- extractorList.push(connectorExtractor);
126
- // Transform raw Figma data into simplified format using extractors
127
- const traversalOptions = {
128
- maxDepth: depth,
129
- optimization: {
130
- tablesToMarkdown: effectiveOptions.tablesToMarkdown,
131
- // Note: simplifyConnectors and simplifyComponentInstances are applied post-processing
132
- },
133
- };
134
- let simplifiedData = simplifyRawFigmaObject(rawData, extractorList, traversalOptions);
135
- // Apply post-processing transformations
136
- // Order matters: apply connector simplification before style stripping
137
- // so connector endpoints are preserved
138
- if (effectiveOptions.simplifyConnectors) {
139
- simplifiedData = {
140
- ...simplifiedData,
141
- nodes: simplifyAllConnectors(simplifiedData.nodes),
142
- };
143
- }
144
- if (effectiveOptions.simplifyComponentInstances) {
145
- simplifiedData = {
146
- ...simplifiedData,
147
- nodes: simplifyAllComponentInstances(simplifiedData.nodes),
148
- };
149
- }
150
- // Apply style stripping last - it removes styling from all nodes
151
- if (effectiveOptions.excludeStyles) {
152
- simplifiedData = stripStylesFromDesign(simplifiedData);
153
- }
154
- return simplifiedData;
155
- }
156
- catch (error) {
157
- console.error("Error fetching Figma data:", error);
158
- throw new Error(`Failed to fetch Figma data: ${error.message}`);
159
- }
160
- }
161
- }
162
- //# sourceMappingURL=FigmaService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FigmaService.js","sourceRoot":"","sources":["../src/FigmaService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAyB7F;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAc;IACX,OAAO,GAAG,0BAA0B,CAAC;IAEtD,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,yBAAyB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,iDAAiD,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QAC/D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAI,QAAgB;QACvC,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtC,OAAO,MAAM,cAAc,CAA0B,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE;gBACjF,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CACb,iDAAiD,QAAQ,MAAM,YAAY,EAAE,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,KAAc;QACxD,MAAM,QAAQ,GAAG,UAAU,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,YAAY,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;QAElF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAkB,QAAQ,CAAC,CAAC;QAC/D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa,CACzB,OAAe,EACf,OAAiB,EACjB,KAAc;QAEd,MAAM,QAAQ,GAAG,UAAU,OAAO,cAAc,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrG,OAAO,CAAC,KAAK,CACX,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,YAAY,KAAK,IAAI,SAAS,GAAG,CAC/F,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuB,QAAQ,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,MAAe,EACf,KAAc,EACd,WAA8B;QAE9B,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,gBAAgB,GAAG;gBACvB,aAAa,EAAE,WAAW,EAAE,aAAa,IAAI,IAAI;gBACjD,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,IAAI,IAAI;gBACvD,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,IAAI,IAAI;gBAC3D,0BAA0B,EAAE,WAAW,EAAE,0BAA0B,IAAI,IAAI;gBAC3E,UAAU,EAAE,WAAW,EAAE,UAAU;aACpC,CAAC;YAEF,gCAAgC;YAChC,IAAI,OAA+C,CAAC;YAEpD,IAAI,MAAM,EAAE,CAAC;gBACX,yEAAyE;gBACzE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACnF,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAED,yCAAyC;YACzC,IAAI,aAAa,GAAkB,CAAC,GAAG,aAAa,CAAC,CAAC;YAEtD,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;gBAChC,iCAAiC;gBACjC,aAAa,GAAG,EAAE,CAAC;gBACnB,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnD,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpD,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtD,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,uDAAuD;YACvD,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEvC,mEAAmE;YACnE,MAAM,gBAAgB,GAAqB;gBACzC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE;oBACZ,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;oBACnD,sFAAsF;iBACvF;aACF,CAAC;YAEF,IAAI,cAAc,GAAG,sBAAsB,CACzC,OAAO,EACP,aAAa,EACb,gBAAgB,CACjB,CAAC;YAEF,wCAAwC;YACxC,uEAAuE;YACvE,uCAAuC;YAEvC,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;gBACxC,cAAc,GAAG;oBACf,GAAG,cAAc;oBACjB,KAAK,EAAE,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC;iBACnD,CAAC;YACJ,CAAC;YAED,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,CAAC;gBAChD,cAAc,GAAG;oBACf,GAAG,cAAc;oBACjB,KAAK,EAAE,6BAA6B,CAAC,cAAc,CAAC,KAAK,CAAC;iBAC3D,CAAC;YACJ,CAAC;YAED,iEAAiE;YACjE,IAAI,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBACnC,cAAc,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;CACF"}