@heyseo/mcp-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +284 -0
  2. package/dist/index.d.ts +10 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +258 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/prompts/index.d.ts +22 -0
  7. package/dist/prompts/index.d.ts.map +1 -0
  8. package/dist/prompts/index.js +267 -0
  9. package/dist/prompts/index.js.map +1 -0
  10. package/dist/resources/index.d.ts +38 -0
  11. package/dist/resources/index.d.ts.map +1 -0
  12. package/dist/resources/index.js +247 -0
  13. package/dist/resources/index.js.map +1 -0
  14. package/dist/tools/comparison.d.ts +159 -0
  15. package/dist/tools/comparison.d.ts.map +1 -0
  16. package/dist/tools/comparison.js +482 -0
  17. package/dist/tools/comparison.js.map +1 -0
  18. package/dist/tools/ga4.d.ts +182 -0
  19. package/dist/tools/ga4.d.ts.map +1 -0
  20. package/dist/tools/ga4.js +429 -0
  21. package/dist/tools/ga4.js.map +1 -0
  22. package/dist/tools/gsc.d.ts +194 -0
  23. package/dist/tools/gsc.d.ts.map +1 -0
  24. package/dist/tools/gsc.js +348 -0
  25. package/dist/tools/gsc.js.map +1 -0
  26. package/dist/tools/index.d.ts +392 -0
  27. package/dist/tools/index.d.ts.map +1 -0
  28. package/dist/tools/index.js +59 -0
  29. package/dist/tools/index.js.map +1 -0
  30. package/dist/tools/pagespeed.d.ts +88 -0
  31. package/dist/tools/pagespeed.d.ts.map +1 -0
  32. package/dist/tools/pagespeed.js +285 -0
  33. package/dist/tools/pagespeed.js.map +1 -0
  34. package/dist/tools/tasks.d.ts +71 -0
  35. package/dist/tools/tasks.d.ts.map +1 -0
  36. package/dist/tools/tasks.js +116 -0
  37. package/dist/tools/tasks.js.map +1 -0
  38. package/dist/types.d.ts +151 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +5 -0
  41. package/dist/types.js.map +1 -0
  42. package/dist/utils/api-client.d.ts +69 -0
  43. package/dist/utils/api-client.d.ts.map +1 -0
  44. package/dist/utils/api-client.js +202 -0
  45. package/dist/utils/api-client.js.map +1 -0
  46. package/package.json +42 -0
package/README.md ADDED
@@ -0,0 +1,284 @@
1
+ # HeySeo MCP Server
2
+
3
+ Connect your LLM to your SEO data. Query Google Search Console, Google Analytics 4, and PageSpeed Insights directly from Claude, Cursor, or any MCP-compatible client.
4
+
5
+ ## Features
6
+
7
+ ### Tools
8
+
9
+ | Tool | Description |
10
+ |------|-------------|
11
+ | `heyseo_query_gsc` | Query Google Search Console analytics with custom dimensions and filters |
12
+ | `heyseo_top_keywords` | Get top performing keywords for a site |
13
+ | `heyseo_top_pages` | Get top performing pages for a site |
14
+ | `heyseo_query_ga4` | Query Google Analytics 4 data |
15
+ | `heyseo_landing_pages` | Get landing page performance with engagement metrics |
16
+ | `heyseo_traffic_sources` | Analyze traffic sources and channels |
17
+ | `heyseo_pagespeed` | Run PageSpeed Insights analysis with Core Web Vitals |
18
+ | `heyseo_pagespeed_bulk` | Analyze multiple pages at once |
19
+ | `heyseo_compare_periods` | Compare SEO metrics between two time periods |
20
+ | `heyseo_week_over_week` | Quick week-over-week comparison |
21
+ | `heyseo_find_opportunities` | Discover SEO optimization opportunities |
22
+ | `heyseo_create_task` | Create SEO tasks in HeySeo Kanban |
23
+
24
+ ### Resources
25
+
26
+ Access your SEO data as readable resources:
27
+
28
+ - `heyseo://sites` - List all connected sites
29
+ - `heyseo://sites/{id}` - Site details
30
+ - `heyseo://sites/{id}/overview` - Current metrics overview
31
+ - `heyseo://sites/{id}/keywords` - Top 50 keywords
32
+ - `heyseo://sites/{id}/pages` - Top 50 pages
33
+
34
+ ### Prompts
35
+
36
+ Pre-built prompts for common SEO tasks:
37
+
38
+ - `seo_audit` - Comprehensive SEO audit
39
+ - `weekly_report` - Weekly performance report
40
+ - `keyword_research` - Keyword analysis and opportunities
41
+ - `content_optimization` - Page optimization recommendations
42
+ - `technical_health_check` - Core Web Vitals and performance
43
+ - `traffic_analysis` - Traffic patterns and sources
44
+ - `quick_wins` - Low-effort, high-impact opportunities
45
+ - `ranking_changes` - Recent ranking changes analysis
46
+
47
+ ## Installation
48
+
49
+ ```bash
50
+ npm install @heyseo/mcp-server
51
+ ```
52
+
53
+ Or clone and build from source:
54
+
55
+ ```bash
56
+ git clone https://github.com/heyseo/mcp-server
57
+ cd mcp-server
58
+ npm install
59
+ npm run build
60
+ ```
61
+
62
+ ## Configuration
63
+
64
+ ### Environment Variables
65
+
66
+ ```bash
67
+ # Required: Your HeySeo API key
68
+ HEYSEO_API_KEY=your_api_key_here
69
+
70
+ # Optional: Custom API URL (defaults to https://heyseo.app)
71
+ HEYSEO_API_URL=https://heyseo.app
72
+ ```
73
+
74
+ ### Claude Desktop Configuration
75
+
76
+ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
77
+
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "heyseo": {
82
+ "command": "npx",
83
+ "args": ["@heyseo/mcp-server"],
84
+ "env": {
85
+ "HEYSEO_API_KEY": "your_api_key_here"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ Or if installed locally:
93
+
94
+ ```json
95
+ {
96
+ "mcpServers": {
97
+ "heyseo": {
98
+ "command": "node",
99
+ "args": ["/path/to/mcp-server/dist/index.js"],
100
+ "env": {
101
+ "HEYSEO_API_KEY": "your_api_key_here"
102
+ }
103
+ }
104
+ }
105
+ }
106
+ ```
107
+
108
+ ### Cursor Configuration
109
+
110
+ Add to your Cursor settings:
111
+
112
+ ```json
113
+ {
114
+ "mcp.servers": {
115
+ "heyseo": {
116
+ "command": "npx",
117
+ "args": ["@heyseo/mcp-server"],
118
+ "env": {
119
+ "HEYSEO_API_KEY": "your_api_key_here"
120
+ }
121
+ }
122
+ }
123
+ }
124
+ ```
125
+
126
+ ## Usage Examples
127
+
128
+ ### Query Top Keywords
129
+
130
+ ```
131
+ User: What are my top 10 keywords this month?
132
+
133
+ Claude: I'll query your top keywords using HeySeo.
134
+ [Calls heyseo_top_keywords with limit=10]
135
+
136
+ Here are your top 10 keywords for the last 28 days:
137
+
138
+ | Rank | Keyword | Clicks | Impressions | CTR | Position |
139
+ |------|---------|--------|-------------|-----|----------|
140
+ | 1 | seo tools | 1,234 | 45,000 | 2.7% | 4.2 |
141
+ | 2 | keyword research | 890 | 32,000 | 2.8% | 5.1 |
142
+ ...
143
+ ```
144
+
145
+ ### Run SEO Audit
146
+
147
+ ```
148
+ User: Run an SEO audit on my site
149
+
150
+ Claude: I'll perform a comprehensive SEO audit.
151
+ [Uses seo_audit prompt template]
152
+ [Calls multiple tools: top_keywords, top_pages, find_opportunities]
153
+
154
+ ## SEO Audit Report
155
+
156
+ ### Performance Overview
157
+ - Total Clicks: 15,234 (+12% MoM)
158
+ - Impressions: 456,000 (+8% MoM)
159
+ - Average CTR: 3.3%
160
+ - Average Position: 12.4
161
+
162
+ ### Key Findings
163
+ 1. **Quick Wins Found**: 23 keywords with high impressions but low CTR
164
+ 2. **Page 2 Opportunities**: 15 keywords ranking positions 11-20
165
+ 3. **Underperforming Pages**: 5 pages with >1000 impressions but <2% CTR
166
+
167
+ ### Recommendations
168
+ 1. [HIGH] Optimize meta descriptions for top 10 low-CTR pages
169
+ 2. [MEDIUM] Expand content on page 2 keywords
170
+ 3. [LOW] Add FAQ schema to product pages
171
+
172
+ Creating tasks for top recommendations...
173
+ ```
174
+
175
+ ### Compare Performance
176
+
177
+ ```
178
+ User: How did we do this week vs last week?
179
+
180
+ Claude: I'll compare your week-over-week performance.
181
+ [Calls heyseo_week_over_week]
182
+
183
+ ## Week-over-Week Comparison
184
+
185
+ | Metric | Last Week | This Week | Change |
186
+ |--------|-----------|-----------|--------|
187
+ | Clicks | 3,456 | 3,890 | +12.6% |
188
+ | Impressions | 98,000 | 105,000 | +7.1% |
189
+ | CTR | 3.5% | 3.7% | +0.2pp |
190
+ | Position | 11.2 | 10.8 | -0.4 (improved) |
191
+
192
+ **Top Gainers:**
193
+ - "best seo tool" +45 clicks (+32%)
194
+ - "keyword tracker" +28 clicks (+18%)
195
+
196
+ **Top Losers:**
197
+ - "seo software" -12 clicks (-8%)
198
+ ```
199
+
200
+ ### Analyze Page Speed
201
+
202
+ ```
203
+ User: Check the page speed for our homepage
204
+
205
+ Claude: I'll analyze your homepage performance.
206
+ [Calls heyseo_pagespeed with url and strategy=mobile]
207
+
208
+ ## PageSpeed Analysis: https://example.com
209
+
210
+ **Performance Score: 72/100** (Needs Improvement)
211
+
212
+ ### Core Web Vitals
213
+ | Metric | Value | Rating |
214
+ |--------|-------|--------|
215
+ | LCP | 2.8s | Needs Improvement |
216
+ | INP | 120ms | Good |
217
+ | CLS | 0.05 | Good |
218
+ | FCP | 1.2s | Good |
219
+ | TTFB | 0.8s | Good |
220
+
221
+ ### Top Opportunities
222
+ 1. **Serve images in next-gen formats** - Save 1.2s
223
+ 2. **Eliminate render-blocking resources** - Save 0.8s
224
+ 3. **Reduce unused JavaScript** - Save 0.4s
225
+
226
+ Would you like me to create tasks for these optimizations?
227
+ ```
228
+
229
+ ## API Reference
230
+
231
+ ### Getting an API Key
232
+
233
+ 1. Sign up at [heyseo.app](https://heyseo.app)
234
+ 2. Connect your Google Search Console and/or GA4 properties
235
+ 3. Generate an API key in Settings > API
236
+
237
+ ### Rate Limits
238
+
239
+ - 100 requests per minute per API key
240
+ - 10,000 requests per day per API key
241
+
242
+ ### Error Handling
243
+
244
+ All tools return JSON with a `success` field:
245
+
246
+ ```json
247
+ // Success
248
+ {
249
+ "success": true,
250
+ "data": { ... }
251
+ }
252
+
253
+ // Error
254
+ {
255
+ "success": false,
256
+ "error": "Error message here"
257
+ }
258
+ ```
259
+
260
+ ## Development
261
+
262
+ ```bash
263
+ # Install dependencies
264
+ npm install
265
+
266
+ # Build
267
+ npm run build
268
+
269
+ # Run in development mode
270
+ npm run dev
271
+
272
+ # Test locally
273
+ HEYSEO_API_KEY=your_key node dist/index.js
274
+ ```
275
+
276
+ ## License
277
+
278
+ MIT
279
+
280
+ ## Support
281
+
282
+ - Documentation: [docs.heyseo.app](https://docs.heyseo.app)
283
+ - Issues: [GitHub Issues](https://github.com/heyseo/mcp-server/issues)
284
+ - Discord: [HeySeo Community](https://discord.gg/heyseo)
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * HeySeo MCP Server
4
+ * Model Context Protocol server for connecting LLMs to HeySeo SEO data
5
+ *
6
+ * @author HeySeo
7
+ * @license MIT
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
package/dist/index.js ADDED
@@ -0,0 +1,258 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * HeySeo MCP Server
4
+ * Model Context Protocol server for connecting LLMs to HeySeo SEO data
5
+ *
6
+ * @author HeySeo
7
+ * @license MIT
8
+ */
9
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
10
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
11
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
12
+ import { createApiClient } from './utils/api-client.js';
13
+ import { allTools, executeQueryGSC, executeTopKeywords, executeTopPages, executeQueryGA4, executeLandingPages, executeTrafficSources, executeAnalyzePageSpeed, executeBulkPageSpeed, executeComparePeriod, executeWeekOverWeek, executeFindOpportunities, executeCreateTask, queryGSCSchema, topKeywordsSchema, topPagesSchema, queryGA4Schema, landingPagesSchema, trafficSourcesSchema, analyzePageSpeedSchema, bulkPageSpeedSchema, comparePeriodSchema, weekOverWeekSchema, findOpportunitiesSchema, createTaskSchema, } from './tools/index.js';
14
+ import { listResources, fetchResource, resourceTemplates } from './resources/index.js';
15
+ import { promptTemplates, generatePromptMessages } from './prompts/index.js';
16
+ // Server info
17
+ const SERVER_NAME = 'heyseo-mcp';
18
+ const SERVER_VERSION = '0.1.0';
19
+ /**
20
+ * Main MCP Server class
21
+ */
22
+ class HeySeoMCPServer {
23
+ server;
24
+ client = null;
25
+ constructor() {
26
+ this.server = new Server({
27
+ name: SERVER_NAME,
28
+ version: SERVER_VERSION,
29
+ }, {
30
+ capabilities: {
31
+ tools: {},
32
+ resources: {},
33
+ prompts: {},
34
+ },
35
+ });
36
+ this.setupHandlers();
37
+ this.setupErrorHandling();
38
+ }
39
+ /**
40
+ * Initialize the API client
41
+ */
42
+ initClient() {
43
+ if (!this.client) {
44
+ this.client = createApiClient();
45
+ }
46
+ return this.client;
47
+ }
48
+ /**
49
+ * Setup request handlers
50
+ */
51
+ setupHandlers() {
52
+ // List available tools
53
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
54
+ return {
55
+ tools: allTools,
56
+ };
57
+ });
58
+ // Handle tool calls
59
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
60
+ const { name, arguments: args } = request.params;
61
+ const client = this.initClient();
62
+ try {
63
+ let result;
64
+ switch (name) {
65
+ // GSC Tools
66
+ case 'heyseo_query_gsc': {
67
+ const parsed = queryGSCSchema.parse(args);
68
+ result = await executeQueryGSC(client, parsed);
69
+ break;
70
+ }
71
+ case 'heyseo_top_keywords': {
72
+ const parsed = topKeywordsSchema.parse(args);
73
+ result = await executeTopKeywords(client, parsed);
74
+ break;
75
+ }
76
+ case 'heyseo_top_pages': {
77
+ const parsed = topPagesSchema.parse(args);
78
+ result = await executeTopPages(client, parsed);
79
+ break;
80
+ }
81
+ // GA4 Tools
82
+ case 'heyseo_query_ga4': {
83
+ const parsed = queryGA4Schema.parse(args);
84
+ result = await executeQueryGA4(client, parsed);
85
+ break;
86
+ }
87
+ case 'heyseo_landing_pages': {
88
+ const parsed = landingPagesSchema.parse(args);
89
+ result = await executeLandingPages(client, parsed);
90
+ break;
91
+ }
92
+ case 'heyseo_traffic_sources': {
93
+ const parsed = trafficSourcesSchema.parse(args);
94
+ result = await executeTrafficSources(client, parsed);
95
+ break;
96
+ }
97
+ // PageSpeed Tools
98
+ case 'heyseo_pagespeed': {
99
+ const parsed = analyzePageSpeedSchema.parse(args);
100
+ result = await executeAnalyzePageSpeed(client, parsed);
101
+ break;
102
+ }
103
+ case 'heyseo_pagespeed_bulk': {
104
+ const parsed = bulkPageSpeedSchema.parse(args);
105
+ result = await executeBulkPageSpeed(client, parsed);
106
+ break;
107
+ }
108
+ // Comparison Tools
109
+ case 'heyseo_compare_periods': {
110
+ const parsed = comparePeriodSchema.parse(args);
111
+ result = await executeComparePeriod(client, parsed);
112
+ break;
113
+ }
114
+ case 'heyseo_week_over_week': {
115
+ const parsed = weekOverWeekSchema.parse(args);
116
+ result = await executeWeekOverWeek(client, parsed);
117
+ break;
118
+ }
119
+ case 'heyseo_find_opportunities': {
120
+ const parsed = findOpportunitiesSchema.parse(args);
121
+ result = await executeFindOpportunities(client, parsed);
122
+ break;
123
+ }
124
+ // Task Tools
125
+ case 'heyseo_create_task': {
126
+ const parsed = createTaskSchema.parse(args);
127
+ result = await executeCreateTask(client, parsed);
128
+ break;
129
+ }
130
+ default:
131
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
132
+ }
133
+ return {
134
+ content: [
135
+ {
136
+ type: 'text',
137
+ text: result,
138
+ },
139
+ ],
140
+ };
141
+ }
142
+ catch (error) {
143
+ if (error instanceof McpError) {
144
+ throw error;
145
+ }
146
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
147
+ return {
148
+ content: [
149
+ {
150
+ type: 'text',
151
+ text: JSON.stringify({ success: false, error: errorMessage }),
152
+ },
153
+ ],
154
+ isError: true,
155
+ };
156
+ }
157
+ });
158
+ // List available resources
159
+ this.server.setRequestHandler(ListResourcesRequestSchema, async () => {
160
+ try {
161
+ const client = this.initClient();
162
+ const resources = await listResources(client);
163
+ return { resources };
164
+ }
165
+ catch {
166
+ // Return resource templates if we can't fetch actual resources
167
+ return {
168
+ resources: resourceTemplates.map((t) => ({
169
+ uri: t.uriTemplate,
170
+ name: t.name,
171
+ description: t.description,
172
+ mimeType: t.mimeType,
173
+ })),
174
+ };
175
+ }
176
+ });
177
+ // Read resource content
178
+ this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
179
+ const { uri } = request.params;
180
+ const client = this.initClient();
181
+ try {
182
+ const { content, mimeType } = await fetchResource(client, uri);
183
+ return {
184
+ contents: [
185
+ {
186
+ uri,
187
+ mimeType,
188
+ text: content,
189
+ },
190
+ ],
191
+ };
192
+ }
193
+ catch (error) {
194
+ throw new McpError(ErrorCode.InvalidRequest, error instanceof Error ? error.message : 'Failed to read resource');
195
+ }
196
+ });
197
+ // List available prompts
198
+ this.server.setRequestHandler(ListPromptsRequestSchema, async () => {
199
+ return {
200
+ prompts: promptTemplates.map((p) => ({
201
+ name: p.name,
202
+ description: p.description,
203
+ arguments: p.arguments,
204
+ })),
205
+ };
206
+ });
207
+ // Get prompt content
208
+ this.server.setRequestHandler(GetPromptRequestSchema, async (request) => {
209
+ const { name, arguments: args } = request.params;
210
+ const template = promptTemplates.find((p) => p.name === name);
211
+ if (!template) {
212
+ throw new McpError(ErrorCode.InvalidRequest, `Unknown prompt: ${name}`);
213
+ }
214
+ // Validate required arguments
215
+ for (const arg of template.arguments) {
216
+ if (arg.required && (!args || !args[arg.name])) {
217
+ throw new McpError(ErrorCode.InvalidParams, `Missing required argument: ${arg.name}`);
218
+ }
219
+ }
220
+ const messages = generatePromptMessages(name, args || {});
221
+ return {
222
+ description: template.description,
223
+ messages,
224
+ };
225
+ });
226
+ }
227
+ /**
228
+ * Setup error handling
229
+ */
230
+ setupErrorHandling() {
231
+ this.server.onerror = (error) => {
232
+ console.error('[HeySeo MCP Error]', error);
233
+ };
234
+ process.on('SIGINT', async () => {
235
+ await this.server.close();
236
+ process.exit(0);
237
+ });
238
+ process.on('SIGTERM', async () => {
239
+ await this.server.close();
240
+ process.exit(0);
241
+ });
242
+ }
243
+ /**
244
+ * Run the server
245
+ */
246
+ async run() {
247
+ const transport = new StdioServerTransport();
248
+ await this.server.connect(transport);
249
+ console.error(`HeySeo MCP Server v${SERVER_VERSION} running on stdio`);
250
+ }
251
+ }
252
+ // Main entry point
253
+ const server = new HeySeoMCPServer();
254
+ server.run().catch((error) => {
255
+ console.error('Failed to start HeySeo MCP Server:', error);
256
+ process.exit(1);
257
+ });
258
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * MCP Prompt Templates
3
+ * Pre-built prompts for common SEO analysis tasks
4
+ */
5
+ export interface PromptTemplate {
6
+ name: string;
7
+ description: string;
8
+ arguments: Array<{
9
+ name: string;
10
+ description: string;
11
+ required: boolean;
12
+ }>;
13
+ }
14
+ export declare const promptTemplates: PromptTemplate[];
15
+ /**
16
+ * Generate prompt messages for a template
17
+ */
18
+ export declare function generatePromptMessages(templateName: string, args: Record<string, string>): Array<{
19
+ role: 'user';
20
+ content: string;
21
+ }>;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,EA2H3C,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAuJ1C"}