@bscotch/yy 0.2.1 → 0.3.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 (58) hide show
  1. package/README.md +5 -1
  2. package/dist/Schema.d.ts +1 -0
  3. package/dist/Schema.d.ts.map +1 -0
  4. package/dist/Schema.js +2 -0
  5. package/dist/Schema.js.map +1 -0
  6. package/dist/Yy.d.ts +4417 -9
  7. package/dist/Yy.d.ts.map +1 -1
  8. package/dist/Yy.js +142 -24
  9. package/dist/Yy.js.map +1 -1
  10. package/dist/Yy.parse.d.ts +2 -1
  11. package/dist/Yy.parse.d.ts.map +1 -1
  12. package/dist/Yy.parse.js +3 -3
  13. package/dist/Yy.parse.js.map +1 -1
  14. package/dist/Yy.stringify.d.ts +2 -1
  15. package/dist/Yy.stringify.d.ts.map +1 -1
  16. package/dist/Yy.stringify.js +11 -12
  17. package/dist/Yy.stringify.js.map +1 -1
  18. package/dist/index.d.ts +7 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +7 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/types/YyBase.d.ts +47 -0
  23. package/dist/types/YyBase.d.ts.map +1 -0
  24. package/dist/types/YyBase.js +38 -0
  25. package/dist/types/YyBase.js.map +1 -0
  26. package/dist/types/YyObject.d.ts +463 -0
  27. package/dist/types/YyObject.d.ts.map +1 -0
  28. package/dist/types/YyObject.js +109 -0
  29. package/dist/types/YyObject.js.map +1 -0
  30. package/dist/types/YyRoom.d.ts +1544 -0
  31. package/dist/types/YyRoom.d.ts.map +1 -0
  32. package/dist/types/YyRoom.js +156 -0
  33. package/dist/types/YyRoom.js.map +1 -0
  34. package/dist/types/YyScript.d.ts +48 -0
  35. package/dist/types/YyScript.d.ts.map +1 -0
  36. package/dist/types/YyScript.js +9 -0
  37. package/dist/types/YyScript.js.map +1 -0
  38. package/dist/types/YySound.d.ts +116 -0
  39. package/dist/types/YySound.d.ts.map +1 -0
  40. package/dist/types/YySound.js +62 -0
  41. package/dist/types/YySound.js.map +1 -0
  42. package/dist/types/YySprite.d.ts +7829 -0
  43. package/dist/types/YySprite.d.ts.map +1 -0
  44. package/dist/types/YySprite.js +410 -0
  45. package/dist/types/YySprite.js.map +1 -0
  46. package/dist/types/YySprite.lib.d.ts +411 -0
  47. package/dist/types/YySprite.lib.d.ts.map +1 -0
  48. package/dist/types/YySprite.lib.js +27 -0
  49. package/dist/types/YySprite.lib.js.map +1 -0
  50. package/dist/types/Yyp.d.ts +589 -0
  51. package/dist/types/Yyp.d.ts.map +1 -0
  52. package/dist/types/Yyp.js +100 -0
  53. package/dist/types/Yyp.js.map +1 -0
  54. package/dist/types/utility.d.ts +74 -0
  55. package/dist/types/utility.d.ts.map +1 -0
  56. package/dist/types/utility.js +105 -0
  57. package/dist/types/utility.js.map +1 -0
  58. package/package.json +11 -5
@@ -0,0 +1,411 @@
1
+ import { DeepPartial } from './utility.js';
2
+ import { YySprite } from './YySprite.js';
3
+ export declare function ensureTrackKeyFrames(sprite: DeepPartial<YySprite>): {
4
+ ConfigValues?: {
5
+ [x: string]: {
6
+ [x: string]: string | undefined;
7
+ } | undefined;
8
+ } | undefined;
9
+ tags?: (string | undefined)[] | undefined;
10
+ swatchColours?: unknown;
11
+ nineSlice?: unknown;
12
+ type?: import("./YySprite.js").SpriteType | undefined;
13
+ name?: string | undefined;
14
+ resourceType?: "GMSprite" | undefined;
15
+ parent?: {
16
+ path?: string | undefined;
17
+ name?: string | undefined;
18
+ } | undefined;
19
+ resourceVersion?: string | undefined;
20
+ gridX?: number | undefined;
21
+ gridY?: number | undefined;
22
+ layers?: ({
23
+ tags?: (string | undefined)[] | undefined;
24
+ name?: string | undefined;
25
+ resourceType?: "GMImageLayer" | undefined;
26
+ resourceVersion?: string | undefined;
27
+ visible?: boolean | undefined;
28
+ isLocked?: boolean | undefined;
29
+ blendMode?: import("./YySprite.js").SpriteLayerBlendMode | undefined;
30
+ opacity?: {
31
+ readonly digits?: number | undefined;
32
+ toString?: {} | undefined;
33
+ toJSON?: {} | undefined;
34
+ [Symbol.toPrimitive]?: {} | undefined;
35
+ toFixed?: {} | undefined;
36
+ toExponential?: {} | undefined;
37
+ toPrecision?: {} | undefined;
38
+ valueOf?: {} | undefined;
39
+ toLocaleString?: {} | undefined;
40
+ } | undefined;
41
+ displayName?: string | undefined;
42
+ } | undefined)[] | undefined;
43
+ bboxMode?: import("./YySprite.js").SpriteBoundingBoxMode | undefined;
44
+ collisionKind?: import("./YySprite.js").SpriteCollisionKind | undefined;
45
+ origin?: import("./YySprite.js").SpriteOrigin | undefined;
46
+ preMultiplyAlpha?: boolean | undefined;
47
+ edgeFiltering?: boolean | undefined;
48
+ collisionTolerance?: number | undefined;
49
+ swfPrecision?: number | undefined;
50
+ bbox_left?: number | undefined;
51
+ bbox_right?: number | undefined;
52
+ bbox_top?: number | undefined;
53
+ bbox_bottom?: number | undefined;
54
+ HTile?: boolean | undefined;
55
+ VTile?: boolean | undefined;
56
+ For3D?: boolean | undefined;
57
+ width?: number | undefined;
58
+ height?: number | undefined;
59
+ textureGroupId?: {
60
+ path?: string | undefined;
61
+ name?: string | undefined;
62
+ } | undefined;
63
+ frames?: ({
64
+ tags?: (string | undefined)[] | undefined;
65
+ parent?: {
66
+ path?: string | undefined;
67
+ name?: string | undefined;
68
+ } | undefined;
69
+ compositeImage?: {
70
+ tags?: (string | undefined)[] | undefined;
71
+ name?: string | undefined;
72
+ resourceType?: "GMSpriteBitmap" | undefined;
73
+ resourceVersion?: "1.0" | undefined;
74
+ FrameId?: {
75
+ path?: string | undefined;
76
+ name?: string | undefined;
77
+ } | undefined;
78
+ LayerId?: null | undefined;
79
+ } | undefined;
80
+ images?: ({
81
+ tags?: (string | undefined)[] | undefined;
82
+ name?: string | undefined;
83
+ resourceType?: "GMSpriteBitmap" | undefined;
84
+ resourceVersion?: "1.0" | undefined;
85
+ FrameId?: {
86
+ path?: string | undefined;
87
+ name?: string | undefined;
88
+ } | undefined;
89
+ LayerId?: {
90
+ path?: string | undefined;
91
+ name?: string | undefined;
92
+ } | undefined;
93
+ } | undefined)[] | undefined;
94
+ name?: string | undefined;
95
+ resourceType?: "GMSpriteFrame" | undefined;
96
+ resourceVersion?: "1.0" | "1.1" | undefined;
97
+ } | undefined)[] | undefined;
98
+ sequence?: {
99
+ name?: string | undefined;
100
+ tags?: (string | undefined)[] | undefined;
101
+ parent?: {
102
+ path?: string | undefined;
103
+ name?: string | undefined;
104
+ } | undefined;
105
+ spriteId?: {
106
+ path?: string | undefined;
107
+ name?: string | undefined;
108
+ } | undefined;
109
+ eventToFunction?: unknown;
110
+ eventStubScript?: unknown;
111
+ length?: {
112
+ readonly digits?: number | undefined;
113
+ toString?: {} | undefined;
114
+ toJSON?: {} | undefined;
115
+ [Symbol.toPrimitive]?: {} | undefined;
116
+ toFixed?: {} | undefined;
117
+ toExponential?: {} | undefined;
118
+ toPrecision?: {} | undefined;
119
+ valueOf?: {} | undefined;
120
+ toLocaleString?: {} | undefined;
121
+ } | undefined;
122
+ resourceType?: "GMSequence" | undefined;
123
+ resourceVersion?: string | undefined;
124
+ volume?: {
125
+ readonly digits?: number | undefined;
126
+ toString?: {} | undefined;
127
+ toJSON?: {} | undefined;
128
+ [Symbol.toPrimitive]?: {} | undefined;
129
+ toFixed?: {} | undefined;
130
+ toExponential?: {} | undefined;
131
+ toPrecision?: {} | undefined;
132
+ valueOf?: {} | undefined;
133
+ toLocaleString?: {} | undefined;
134
+ } | undefined;
135
+ timeUnits?: number | undefined;
136
+ playback?: number | undefined;
137
+ playbackSpeed?: {
138
+ readonly digits?: number | undefined;
139
+ toString?: {} | undefined;
140
+ toJSON?: {} | undefined;
141
+ [Symbol.toPrimitive]?: {} | undefined;
142
+ toFixed?: {} | undefined;
143
+ toExponential?: {} | undefined;
144
+ toPrecision?: {} | undefined;
145
+ valueOf?: {} | undefined;
146
+ toLocaleString?: {} | undefined;
147
+ } | undefined;
148
+ playbackSpeedType?: import("./YySprite.js").SpritePlaybackSpeedType | undefined;
149
+ autoRecord?: boolean | undefined;
150
+ visibleRange?: {
151
+ x?: {
152
+ readonly digits?: number | undefined;
153
+ toString?: {} | undefined;
154
+ toJSON?: {} | undefined;
155
+ [Symbol.toPrimitive]?: {} | undefined;
156
+ toFixed?: {} | undefined;
157
+ toExponential?: {} | undefined;
158
+ toPrecision?: {} | undefined;
159
+ valueOf?: {} | undefined;
160
+ toLocaleString?: {} | undefined;
161
+ } | undefined;
162
+ y?: {
163
+ readonly digits?: number | undefined;
164
+ toString?: {} | undefined;
165
+ toJSON?: {} | undefined;
166
+ [Symbol.toPrimitive]?: {} | undefined;
167
+ toFixed?: {} | undefined;
168
+ toExponential?: {} | undefined;
169
+ toPrecision?: {} | undefined;
170
+ valueOf?: {} | undefined;
171
+ toLocaleString?: {} | undefined;
172
+ } | undefined;
173
+ } | null | undefined;
174
+ lockOrigin?: boolean | undefined;
175
+ showBackdrop?: boolean | undefined;
176
+ showBackdropImage?: boolean | undefined;
177
+ backdropImagePath?: string | undefined;
178
+ backdropImageOpacity?: number | undefined;
179
+ backdropWidth?: number | undefined;
180
+ backdropHeight?: number | undefined;
181
+ backdropXOffset?: {
182
+ readonly digits?: number | undefined;
183
+ toString?: {} | undefined;
184
+ toJSON?: {} | undefined;
185
+ [Symbol.toPrimitive]?: {} | undefined;
186
+ toFixed?: {} | undefined;
187
+ toExponential?: {} | undefined;
188
+ toPrecision?: {} | undefined;
189
+ valueOf?: {} | undefined;
190
+ toLocaleString?: {} | undefined;
191
+ } | undefined;
192
+ backdropYOffset?: {
193
+ readonly digits?: number | undefined;
194
+ toString?: {} | undefined;
195
+ toJSON?: {} | undefined;
196
+ [Symbol.toPrimitive]?: {} | undefined;
197
+ toFixed?: {} | undefined;
198
+ toExponential?: {} | undefined;
199
+ toPrecision?: {} | undefined;
200
+ valueOf?: {} | undefined;
201
+ toLocaleString?: {} | undefined;
202
+ } | undefined;
203
+ xorigin?: number | undefined;
204
+ yorigin?: number | undefined;
205
+ events?: {
206
+ resourceVersion?: "1.0" | undefined;
207
+ Keyframes?: unknown[] | undefined;
208
+ resourceType?: "KeyframeStore<MessageEventKeyframe>" | undefined;
209
+ } | {
210
+ resourceVersion?: "1.0" | undefined;
211
+ Keyframes?: unknown[] | undefined;
212
+ resourceType?: "KeyframeStore`1" | undefined;
213
+ elementType?: "MessageEventKeyframe" | undefined;
214
+ } | undefined;
215
+ moments?: {
216
+ resourceVersion?: "1.0" | undefined;
217
+ Keyframes?: unknown[] | undefined;
218
+ resourceType?: "KeyframeStore<MomentsEventKeyframe>" | undefined;
219
+ } | {
220
+ resourceVersion?: "1.0" | undefined;
221
+ Keyframes?: unknown[] | undefined;
222
+ resourceType?: "KeyframeStore`1" | undefined;
223
+ elementType?: "MomentsEventKeyframe" | undefined;
224
+ } | undefined;
225
+ tracks?: ({
226
+ tags?: (string | undefined)[] | undefined;
227
+ spriteId?: unknown;
228
+ name?: string | undefined;
229
+ resourceType?: "GMSpriteFramesTrack" | undefined;
230
+ resourceVersion?: "1.0" | undefined;
231
+ events?: unknown[] | undefined;
232
+ tracks?: unknown[] | undefined;
233
+ trackColour?: number | undefined;
234
+ inheritsTrackColour?: boolean | undefined;
235
+ builtinName?: number | undefined;
236
+ traits?: number | undefined;
237
+ interpolation?: number | undefined;
238
+ modifiers?: unknown[] | undefined;
239
+ isCreationTrack?: boolean | undefined;
240
+ keyframes?: {
241
+ resourceVersion?: "1.0" | undefined;
242
+ Keyframes?: ({
243
+ resourceVersion?: "1.0" | undefined;
244
+ id?: string | undefined;
245
+ Key?: {
246
+ readonly digits?: number | undefined;
247
+ toString?: {} | undefined;
248
+ toJSON?: {} | undefined;
249
+ [Symbol.toPrimitive]?: {} | undefined;
250
+ toFixed?: {} | undefined;
251
+ toExponential?: {} | undefined;
252
+ toPrecision?: {} | undefined;
253
+ valueOf?: {} | undefined;
254
+ toLocaleString?: {} | undefined;
255
+ } | undefined;
256
+ Length?: {
257
+ readonly digits?: number | undefined;
258
+ toString?: {} | undefined;
259
+ toJSON?: {} | undefined;
260
+ [Symbol.toPrimitive]?: {} | undefined;
261
+ toFixed?: {} | undefined;
262
+ toExponential?: {} | undefined;
263
+ toPrecision?: {} | undefined;
264
+ valueOf?: {} | undefined;
265
+ toLocaleString?: {} | undefined;
266
+ } | undefined;
267
+ Stretch?: boolean | undefined;
268
+ Disabled?: boolean | undefined;
269
+ IsCreationKey?: boolean | undefined;
270
+ Channels?: {
271
+ [x: string]: {
272
+ resourceType?: "SpriteFrameKeyframe" | undefined;
273
+ resourceVersion?: "1.0" | undefined;
274
+ Id?: {
275
+ path?: string | undefined;
276
+ name?: string | undefined;
277
+ } | undefined;
278
+ } | undefined;
279
+ } | undefined;
280
+ resourceType?: "Keyframe`1" | undefined;
281
+ elementType?: "SpriteFrameKeyframe" | undefined;
282
+ } | {
283
+ resourceVersion?: "1.0" | undefined;
284
+ id?: string | undefined;
285
+ Key?: {
286
+ readonly digits?: number | undefined;
287
+ toString?: {} | undefined;
288
+ toJSON?: {} | undefined;
289
+ [Symbol.toPrimitive]?: {} | undefined;
290
+ toFixed?: {} | undefined;
291
+ toExponential?: {} | undefined;
292
+ toPrecision?: {} | undefined;
293
+ valueOf?: {} | undefined;
294
+ toLocaleString?: {} | undefined;
295
+ } | undefined;
296
+ Length?: {
297
+ readonly digits?: number | undefined;
298
+ toString?: {} | undefined;
299
+ toJSON?: {} | undefined;
300
+ [Symbol.toPrimitive]?: {} | undefined;
301
+ toFixed?: {} | undefined;
302
+ toExponential?: {} | undefined;
303
+ toPrecision?: {} | undefined;
304
+ valueOf?: {} | undefined;
305
+ toLocaleString?: {} | undefined;
306
+ } | undefined;
307
+ Stretch?: boolean | undefined;
308
+ Disabled?: boolean | undefined;
309
+ IsCreationKey?: boolean | undefined;
310
+ Channels?: {
311
+ [x: string]: {
312
+ resourceType?: "SpriteFrameKeyframe" | undefined;
313
+ resourceVersion?: "1.0" | undefined;
314
+ Id?: {
315
+ path?: string | undefined;
316
+ name?: string | undefined;
317
+ } | undefined;
318
+ } | undefined;
319
+ } | undefined;
320
+ resourceType?: "Keyframe<SpriteFrameKeyframe>" | undefined;
321
+ } | undefined)[] | undefined;
322
+ resourceType?: "KeyframeStore<SpriteFrameKeyframe>" | undefined;
323
+ } | {
324
+ resourceVersion?: "1.0" | undefined;
325
+ Keyframes?: ({
326
+ resourceVersion?: "1.0" | undefined;
327
+ id?: string | undefined;
328
+ Key?: {
329
+ readonly digits?: number | undefined;
330
+ toString?: {} | undefined;
331
+ toJSON?: {} | undefined;
332
+ [Symbol.toPrimitive]?: {} | undefined;
333
+ toFixed?: {} | undefined;
334
+ toExponential?: {} | undefined;
335
+ toPrecision?: {} | undefined;
336
+ valueOf?: {} | undefined;
337
+ toLocaleString?: {} | undefined;
338
+ } | undefined;
339
+ Length?: {
340
+ readonly digits?: number | undefined;
341
+ toString?: {} | undefined;
342
+ toJSON?: {} | undefined;
343
+ [Symbol.toPrimitive]?: {} | undefined;
344
+ toFixed?: {} | undefined;
345
+ toExponential?: {} | undefined;
346
+ toPrecision?: {} | undefined;
347
+ valueOf?: {} | undefined;
348
+ toLocaleString?: {} | undefined;
349
+ } | undefined;
350
+ Stretch?: boolean | undefined;
351
+ Disabled?: boolean | undefined;
352
+ IsCreationKey?: boolean | undefined;
353
+ Channels?: {
354
+ [x: string]: {
355
+ resourceType?: "SpriteFrameKeyframe" | undefined;
356
+ resourceVersion?: "1.0" | undefined;
357
+ Id?: {
358
+ path?: string | undefined;
359
+ name?: string | undefined;
360
+ } | undefined;
361
+ } | undefined;
362
+ } | undefined;
363
+ resourceType?: "Keyframe`1" | undefined;
364
+ elementType?: "SpriteFrameKeyframe" | undefined;
365
+ } | {
366
+ resourceVersion?: "1.0" | undefined;
367
+ id?: string | undefined;
368
+ Key?: {
369
+ readonly digits?: number | undefined;
370
+ toString?: {} | undefined;
371
+ toJSON?: {} | undefined;
372
+ [Symbol.toPrimitive]?: {} | undefined;
373
+ toFixed?: {} | undefined;
374
+ toExponential?: {} | undefined;
375
+ toPrecision?: {} | undefined;
376
+ valueOf?: {} | undefined;
377
+ toLocaleString?: {} | undefined;
378
+ } | undefined;
379
+ Length?: {
380
+ readonly digits?: number | undefined;
381
+ toString?: {} | undefined;
382
+ toJSON?: {} | undefined;
383
+ [Symbol.toPrimitive]?: {} | undefined;
384
+ toFixed?: {} | undefined;
385
+ toExponential?: {} | undefined;
386
+ toPrecision?: {} | undefined;
387
+ valueOf?: {} | undefined;
388
+ toLocaleString?: {} | undefined;
389
+ } | undefined;
390
+ Stretch?: boolean | undefined;
391
+ Disabled?: boolean | undefined;
392
+ IsCreationKey?: boolean | undefined;
393
+ Channels?: {
394
+ [x: string]: {
395
+ resourceType?: "SpriteFrameKeyframe" | undefined;
396
+ resourceVersion?: "1.0" | undefined;
397
+ Id?: {
398
+ path?: string | undefined;
399
+ name?: string | undefined;
400
+ } | undefined;
401
+ } | undefined;
402
+ } | undefined;
403
+ resourceType?: "Keyframe<SpriteFrameKeyframe>" | undefined;
404
+ } | undefined)[] | undefined;
405
+ resourceType?: "KeyframeStore`1" | undefined;
406
+ elementType?: "SpriteFrameKeyframe" | undefined;
407
+ } | undefined;
408
+ } | undefined)[] | undefined;
409
+ } | undefined;
410
+ };
411
+ //# sourceMappingURL=YySprite.lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YySprite.lib.d.ts","sourceRoot":"","sources":["../../src/types/YySprite.lib.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCjE"}
@@ -0,0 +1,27 @@
1
+ import { literal, setJsonPointerValue } from '@bscotch/utility';
2
+ import { v4 as uuidV4 } from 'uuid';
3
+ import { getYyResourceId } from './utility.js';
4
+ export function ensureTrackKeyFrames(sprite) {
5
+ const spriteId = getYyResourceId('sprites', sprite.name);
6
+ const frames = sprite.frames;
7
+ if (frames) {
8
+ const keyframes = setJsonPointerValue(sprite, literal(['sequence', 'tracks', 0, 'keyframes', 'Keyframes']), [], { createMissing: true, noClobber: true });
9
+ for (let i = 0; i < frames.length; i++) {
10
+ const frame = setJsonPointerValue(frames, [i], {}, { noClobber: true });
11
+ frame.name ||= uuidV4();
12
+ if (keyframes.length <= i) {
13
+ keyframes.push({});
14
+ }
15
+ const keyframe = keyframes[i];
16
+ // Make sure that the Channels value is an object since
17
+ // it uses numeric string indexes (which confuses JSON Pointers)
18
+ setJsonPointerValue(keyframe, '/Channels', {}, { noClobber: true });
19
+ keyframe.Channels ||= {};
20
+ keyframe.Channels['0'] ||= {};
21
+ setJsonPointerValue(keyframe, literal(['Channels', '0', 'Id', 'name']), frame.name, { noClobber: true, createMissing: true });
22
+ setJsonPointerValue(keyframe, literal(['Channels', '0', 'Id', 'path']), spriteId.path, { noClobber: true });
23
+ }
24
+ }
25
+ return sprite;
26
+ }
27
+ //# sourceMappingURL=YySprite.lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YySprite.lib.js","sourceRoot":"","sources":["../../src/types/YySprite.lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAC;AAG5D,MAAM,UAAU,oBAAoB,CAAC,MAA6B;IAChE,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,IAAK,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,MAAM,EAAE;QACV,MAAM,SAAS,GAAG,mBAAmB,CACnC,MAAM,EACN,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,EAC5D,EAAE,EACF,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CACxC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAE,CAAC;YACzE,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;gBACzB,SAAS,CAAC,IAAI,CAAC,EAAS,CAAC,CAAC;aAC3B;YACD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;YAC/B,uDAAuD;YACvD,gEAAgE;YAChE,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAS,CAAC;YACrC,mBAAmB,CACjB,QAAQ,EACR,OAAO,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EACxC,KAAK,CAAC,IAAI,EACV,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CACzC,CAAC;YACF,mBAAmB,CACjB,QAAQ,EACR,OAAO,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EACxC,QAAQ,CAAC,IAAI,EACb,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;SACH;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}