@framingui/mcp-server 0.5.6 → 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.
Files changed (65) hide show
  1. package/dist/__tests__/cache.test.d.ts +6 -0
  2. package/dist/__tests__/cache.test.d.ts.map +1 -0
  3. package/dist/__tests__/cache.test.js +86 -0
  4. package/dist/__tests__/cache.test.js.map +1 -0
  5. package/dist/__tests__/data-client.test.d.ts +13 -0
  6. package/dist/__tests__/data-client.test.d.ts.map +1 -0
  7. package/dist/__tests__/data-client.test.js +323 -0
  8. package/dist/__tests__/data-client.test.js.map +1 -0
  9. package/dist/api/data-client.d.ts +82 -0
  10. package/dist/api/data-client.d.ts.map +1 -1
  11. package/dist/api/data-client.js +198 -0
  12. package/dist/api/data-client.js.map +1 -1
  13. package/dist/auth/cache.d.ts +5 -0
  14. package/dist/auth/cache.d.ts.map +1 -1
  15. package/dist/auth/cache.js +11 -0
  16. package/dist/auth/cache.js.map +1 -1
  17. package/dist/data/template-matcher.d.ts +7 -1
  18. package/dist/data/template-matcher.d.ts.map +1 -1
  19. package/dist/data/template-matcher.js +18 -5
  20. package/dist/data/template-matcher.js.map +1 -1
  21. package/dist/generators/core-resolver.d.ts +7 -13
  22. package/dist/generators/core-resolver.d.ts.map +1 -1
  23. package/dist/generators/core-resolver.js +7 -84
  24. package/dist/generators/core-resolver.js.map +1 -1
  25. package/dist/generators/css-generator.d.ts +8 -26
  26. package/dist/generators/css-generator.d.ts.map +1 -1
  27. package/dist/generators/css-generator.js +17 -265
  28. package/dist/generators/css-generator.js.map +1 -1
  29. package/dist/generators/index.d.ts +2 -2
  30. package/dist/generators/index.d.ts.map +1 -1
  31. package/dist/generators/index.js +4 -2
  32. package/dist/generators/index.js.map +1 -1
  33. package/dist/schemas/mcp-schemas.d.ts +385 -385
  34. package/dist/schemas/mcp-schemas.d.ts.map +1 -1
  35. package/dist/tools/export-screen.d.ts.map +1 -1
  36. package/dist/tools/export-screen.js +6 -9
  37. package/dist/tools/export-screen.js.map +1 -1
  38. package/dist/tools/get-screen-generation-context.d.ts +1 -0
  39. package/dist/tools/get-screen-generation-context.d.ts.map +1 -1
  40. package/dist/tools/get-screen-generation-context.js +34 -23
  41. package/dist/tools/get-screen-generation-context.js.map +1 -1
  42. package/dist/tools/list-components.d.ts +2 -1
  43. package/dist/tools/list-components.d.ts.map +1 -1
  44. package/dist/tools/list-components.js +20 -14
  45. package/dist/tools/list-components.js.map +1 -1
  46. package/dist/tools/list-screen-templates.d.ts +2 -1
  47. package/dist/tools/list-screen-templates.d.ts.map +1 -1
  48. package/dist/tools/list-screen-templates.js +23 -25
  49. package/dist/tools/list-screen-templates.js.map +1 -1
  50. package/dist/tools/list-tokens.d.ts +2 -1
  51. package/dist/tools/list-tokens.d.ts.map +1 -1
  52. package/dist/tools/list-tokens.js +8 -37
  53. package/dist/tools/list-tokens.js.map +1 -1
  54. package/dist/tools/preview-component.d.ts +1 -0
  55. package/dist/tools/preview-component.d.ts.map +1 -1
  56. package/dist/tools/preview-component.js +21 -23
  57. package/dist/tools/preview-component.js.map +1 -1
  58. package/dist/tools/preview-screen-template.d.ts +1 -0
  59. package/dist/tools/preview-screen-template.d.ts.map +1 -1
  60. package/dist/tools/preview-screen-template.js +5 -3
  61. package/dist/tools/preview-screen-template.js.map +1 -1
  62. package/dist/tools/validate-screen-definition.d.ts.map +1 -1
  63. package/dist/tools/validate-screen-definition.js +49 -12
  64. package/dist/tools/validate-screen-definition.js.map +1 -1
  65. package/package.json +2 -4
@@ -1,290 +1,42 @@
1
1
  /**
2
2
  * CSS Generator for MCP Server (v2.1)
3
3
  * SPEC-COMPONENT-001-D: Hybrid Export System
4
+ * [SPEC-MCP-007:E-006] API 기반 CSS 생성으로 마이그레이션
4
5
  *
5
- * Generates CSS Variables from ThemeV2 (v2.1 theme schema)
6
+ * CSS Variables framingui.com API를 통해 가져옴
6
7
  */
7
- import { loadTheme, oklchToCSS } from '@framingui/core';
8
+ import { fetchCSSVariables } from '../api/data-client.js';
8
9
  /**
9
- * ThemeV2 (v2.1)에서 CSS Variables 생성
10
- *
11
- * @param theme - ThemeV2 객체
12
- * @returns CSS 생성 결과
13
- *
14
- * @example
15
- * ```typescript
16
- * const theme = loadTheme('atlantic-magazine-v1');
17
- * if (theme) {
18
- * const result = generateCSS(theme);
19
- * if (result.success) {
20
- * console.log(result.css);
21
- * }
22
- * }
23
- * ```
24
- */
25
- export function generateCSS(theme) {
26
- try {
27
- const lines = [
28
- `/* Generated by Framingui - Theme: ${theme.id} */`,
29
- `/* Schema Version: ${theme.schemaVersion} */`,
30
- '',
31
- ':root {',
32
- ];
33
- // ========================================================================
34
- // Layer 1: Atomic Tokens
35
- // ========================================================================
36
- lines.push(' /* === Layer 1: Atomic Tokens === */');
37
- // Colors (OKLCH format)
38
- const { color } = theme.tokens.atomic;
39
- if (color.brand) {
40
- for (const [shade, oklch] of Object.entries(color.brand)) {
41
- lines.push(` --color-brand-${shade}: ${oklchToCSS(oklch)};`);
42
- }
43
- }
44
- if (color.neutral) {
45
- for (const [shade, oklch] of Object.entries(color.neutral)) {
46
- lines.push(` --color-neutral-${shade}: ${oklchToCSS(oklch)};`);
47
- }
48
- }
49
- if (color.accent) {
50
- for (const [shade, oklch] of Object.entries(color.accent)) {
51
- lines.push(` --color-accent-${shade}: ${oklchToCSS(oklch)};`);
52
- }
53
- }
54
- if (color.success) {
55
- lines.push(` --color-success: ${oklchToCSS(color.success)};`);
56
- }
57
- if (color.warning) {
58
- lines.push(` --color-warning: ${oklchToCSS(color.warning)};`);
59
- }
60
- if (color.error) {
61
- lines.push(` --color-error: ${oklchToCSS(color.error)};`);
62
- }
63
- if (color.info) {
64
- lines.push(` --color-info: ${oklchToCSS(color.info)};`);
65
- }
66
- // Spacing
67
- lines.push('');
68
- for (const [size, value] of Object.entries(theme.tokens.atomic.spacing)) {
69
- lines.push(` --spacing-${size}: ${value};`);
70
- }
71
- // Radius
72
- lines.push('');
73
- for (const [size, value] of Object.entries(theme.tokens.atomic.radius)) {
74
- lines.push(` --radius-${size}: ${value};`);
75
- }
76
- // ========================================================================
77
- // Typography
78
- // ========================================================================
79
- lines.push('');
80
- lines.push(' /* === Typography === */');
81
- const { typography } = theme;
82
- if (typography.fontFamily) {
83
- for (const [name, value] of Object.entries(typography.fontFamily)) {
84
- lines.push(` --font-family-${name}: ${value};`);
85
- }
86
- }
87
- if (typography.fontSize) {
88
- for (const [name, value] of Object.entries(typography.fontSize)) {
89
- lines.push(` --font-size-${name}: ${value};`);
90
- }
91
- }
92
- if (typography.fontWeight) {
93
- for (const [name, value] of Object.entries(typography.fontWeight)) {
94
- lines.push(` --font-weight-${name}: ${value};`);
95
- }
96
- }
97
- if (typography.lineHeight) {
98
- for (const [name, value] of Object.entries(typography.lineHeight)) {
99
- lines.push(` --line-height-${name}: ${value};`);
100
- }
101
- }
102
- if (typography.letterSpacing) {
103
- for (const [name, value] of Object.entries(typography.letterSpacing)) {
104
- lines.push(` --letter-spacing-${name}: ${value};`);
105
- }
106
- }
107
- // ========================================================================
108
- // Border
109
- // ========================================================================
110
- lines.push('');
111
- lines.push(' /* === Border === */');
112
- const { border } = theme;
113
- if (border.width) {
114
- for (const [name, value] of Object.entries(border.width)) {
115
- lines.push(` --border-width-${name}: ${value};`);
116
- }
117
- }
118
- if (border.radius) {
119
- for (const [name, value] of Object.entries(border.radius)) {
120
- lines.push(` --border-radius-${name}: ${value};`);
121
- }
122
- }
123
- // ========================================================================
124
- // Elevation
125
- // ========================================================================
126
- lines.push('');
127
- lines.push(' /* === Elevation === */');
128
- const { elevation } = theme;
129
- if (elevation.level) {
130
- for (const [name, value] of Object.entries(elevation.level)) {
131
- lines.push(` --elevation-${name}: ${value};`);
132
- }
133
- }
134
- // ========================================================================
135
- // Motion
136
- // ========================================================================
137
- lines.push('');
138
- lines.push(' /* === Motion === */');
139
- const { motion } = theme;
140
- if (motion.duration) {
141
- for (const [name, value] of Object.entries(motion.duration)) {
142
- lines.push(` --duration-${name}: ${value};`);
143
- }
144
- }
145
- if (motion.easing) {
146
- for (const [name, value] of Object.entries(motion.easing)) {
147
- lines.push(` --easing-${name}: ${value};`);
148
- }
149
- }
150
- // ========================================================================
151
- // State Layer
152
- // ========================================================================
153
- lines.push('');
154
- lines.push(' /* === State Layer === */');
155
- const { stateLayer } = theme;
156
- if (stateLayer.hover?.opacity !== undefined) {
157
- lines.push(` --state-hover-opacity: ${stateLayer.hover.opacity};`);
158
- }
159
- if (stateLayer.pressed?.opacity !== undefined) {
160
- lines.push(` --state-pressed-opacity: ${stateLayer.pressed.opacity};`);
161
- }
162
- if (stateLayer.focus?.opacity !== undefined) {
163
- lines.push(` --state-focus-opacity: ${stateLayer.focus.opacity};`);
164
- }
165
- if (stateLayer.disabled?.opacity !== undefined) {
166
- lines.push(` --state-disabled-opacity: ${stateLayer.disabled.opacity};`);
167
- }
168
- // ========================================================================
169
- // Layer 2: Semantic Tokens
170
- // ========================================================================
171
- lines.push('');
172
- lines.push(' /* === Layer 2: Semantic Tokens === */');
173
- const { semantic } = theme.tokens;
174
- // Background
175
- if (semantic.background) {
176
- if (semantic.background.canvas) {
177
- lines.push(` --bg-canvas: ${semantic.background.canvas};`);
178
- }
179
- if (semantic.background.surface) {
180
- for (const [name, value] of Object.entries(semantic.background.surface)) {
181
- lines.push(` --bg-surface-${name}: ${value};`);
182
- }
183
- }
184
- if (semantic.background.elevated) {
185
- for (const [name, value] of Object.entries(semantic.background.elevated)) {
186
- lines.push(` --bg-elevated-${name}: ${value};`);
187
- }
188
- }
189
- }
190
- // Foreground
191
- if (semantic.foreground) {
192
- if (semantic.foreground.primary) {
193
- for (const [name, value] of Object.entries(semantic.foreground.primary)) {
194
- lines.push(` --fg-primary-${name}: ${value};`);
195
- }
196
- }
197
- if (semantic.foreground.secondary) {
198
- for (const [name, value] of Object.entries(semantic.foreground.secondary)) {
199
- lines.push(` --fg-secondary-${name}: ${value};`);
200
- }
201
- }
202
- if (semantic.foreground.disabled) {
203
- lines.push(` --fg-disabled: ${semantic.foreground.disabled};`);
204
- }
205
- if (semantic.foreground.placeholder) {
206
- lines.push(` --fg-placeholder: ${semantic.foreground.placeholder};`);
207
- }
208
- }
209
- // Border
210
- if (semantic.border) {
211
- if (semantic.border.default) {
212
- for (const [name, value] of Object.entries(semantic.border.default)) {
213
- lines.push(` --border-${name}: ${value};`);
214
- }
215
- }
216
- if (semantic.border.focus) {
217
- lines.push(` --border-focus: ${semantic.border.focus};`);
218
- }
219
- if (semantic.border.error) {
220
- lines.push(` --border-error: ${semantic.border.error};`);
221
- }
222
- if (semantic.border.success) {
223
- lines.push(` --border-success: ${semantic.border.success};`);
224
- }
225
- }
226
- lines.push('}');
227
- // ========================================================================
228
- // Dark Mode (if present)
229
- // ========================================================================
230
- if (theme.darkMode?.tokens?.semantic) {
231
- lines.push('');
232
- lines.push('.dark {');
233
- lines.push(' /* === Dark Mode Overrides === */');
234
- const darkSemantic = theme.darkMode.tokens.semantic;
235
- if (darkSemantic.background?.canvas) {
236
- lines.push(` --bg-canvas: ${darkSemantic.background.canvas};`);
237
- }
238
- if (darkSemantic.background?.surface) {
239
- for (const [name, value] of Object.entries(darkSemantic.background.surface)) {
240
- lines.push(` --bg-surface-${name}: ${value};`);
241
- }
242
- }
243
- lines.push('}');
244
- }
245
- return {
246
- success: true,
247
- css: lines.join('\n'),
248
- };
249
- }
250
- catch (error) {
251
- return {
252
- success: false,
253
- error: error instanceof Error ? error.message : 'Unknown error during CSS generation',
254
- };
255
- }
256
- }
257
- /**
258
- * 테마 ID로 CSS 생성
10
+ * 테마 ID로 CSS 생성 (API 기반)
11
+ * [SPEC-MCP-007:E-006] fetchCSSVariables 사용
259
12
  *
260
13
  * @param themeId - 테마 ID
261
14
  * @returns CSS 생성 결과
262
15
  */
263
- export function generateCSSFromThemeId(themeId) {
264
- const theme = loadTheme(themeId);
265
- if (!theme) {
16
+ export async function generateCSSFromThemeId(themeId) {
17
+ const css = await fetchCSSVariables(themeId);
18
+ if (!css) {
266
19
  return {
267
20
  success: false,
268
- error: `Theme not found: ${themeId}`,
21
+ error: `Failed to fetch CSS variables for theme: ${themeId}`,
269
22
  };
270
23
  }
271
- return generateCSS(theme);
24
+ return {
25
+ success: true,
26
+ css,
27
+ };
272
28
  }
273
29
  /**
274
- * CSS Variables만 추출 (전체 CSS 대신)
30
+ * CSS Variables만 추출 (전체 CSS 문자열에서 파싱)
275
31
  *
276
- * @param theme - ThemeV2 객체
32
+ * @param cssString - CSS 문자열
277
33
  * @returns CSS Variables 객체 (key-value 쌍)
278
34
  */
279
- export function extractCSSVariables(theme) {
280
- const result = generateCSS(theme);
281
- if (!result.success || !result.css) {
282
- return {};
283
- }
35
+ export function extractCSSVariables(cssString) {
284
36
  const variables = {};
285
37
  const variableRegex = /--([\w-]+):\s*([^;]+);/g;
286
38
  let match;
287
- while ((match = variableRegex.exec(result.css)) !== null) {
39
+ while ((match = variableRegex.exec(cssString)) !== null) {
288
40
  if (match[1] && match[2]) {
289
41
  variables[`--${match[1]}`] = match[2].trim();
290
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"css-generator.js","sourceRoot":"","sources":["../../src/generators/css-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"css-generator.js","sourceRoot":"","sources":["../../src/generators/css-generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAW1D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAe;IAC1D,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4CAA4C,OAAO,EAAE;SAC7D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG;KACJ,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,yBAAyB,CAAC;IAChD,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * - Core Resolver (Tier 1): @framingui/ui에서 컴포넌트 가져오기
8
8
  * - LLM Generator (Tier 2): Claude API로 커스텀 컴포넌트 생성
9
9
  */
10
- export { generateCSS, generateCSSFromThemeId, extractCSSVariables, type CSSGenerationResult, type ThemeV2, } from './css-generator.js';
11
- export { isTier1Component, getTier1Example, getTier1Source, resolveFromTier1, resolveMultipleFromTier1, TIER1_COMPONENTS, type ComponentResolutionResult, } from './core-resolver.js';
10
+ export { generateCSSFromThemeId, extractCSSVariables, type CSSGenerationResult, } from './css-generator.js';
11
+ export { isTier1Component, getTier1Example, resolveFromTier1, resolveMultipleFromTier1, TIER1_COMPONENTS, type ComponentResolutionResult, } from './core-resolver.js';
12
12
  export { generateWithLLM, generateMockComponent, resolveFromTier2, buildLLMContext, extractCodeFromResponse, validateGeneratedCode, type LLMGeneratorConfig, type LLMGenerationResult, type ValidationResult, } from './llm-generator.js';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC"}
@@ -8,9 +8,11 @@
8
8
  * - LLM Generator (Tier 2): Claude API로 커스텀 컴포넌트 생성
9
9
  */
10
10
  // CSS Generator
11
- export { generateCSS, generateCSSFromThemeId, extractCSSVariables, } from './css-generator.js';
11
+ // [SPEC-MCP-007] generateCSS, ThemeV2 제거 (API 기반으로 대체)
12
+ export { generateCSSFromThemeId, extractCSSVariables, } from './css-generator.js';
12
13
  // Core Resolver (Tier 1)
13
- export { isTier1Component, getTier1Example, getTier1Source, resolveFromTier1, resolveMultipleFromTier1, TIER1_COMPONENTS, } from './core-resolver.js';
14
+ // [SPEC-MCP-007] getTier1Source 제거 (readFileSync 사용, npm 환경 미지원)
15
+ export { isTier1Component, getTier1Example, resolveFromTier1, resolveMultipleFromTier1, TIER1_COMPONENTS, } from './core-resolver.js';
14
16
  // LLM Generator (Tier 2)
15
17
  export { generateWithLLM, generateMockComponent, resolveFromTier2, buildLLMContext, extractCodeFromResponse, validateGeneratedCode, } from './llm-generator.js';
16
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,GAItB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gBAAgB;AAChB,uDAAuD;AACvD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,iEAAiE;AACjE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,GAItB,MAAM,oBAAoB,CAAC"}