@kya-os/cli 1.0.0 → 1.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 (60) hide show
  1. package/dist/effects/cli-integration.js +8 -8
  2. package/dist/effects/cli-integration.js.map +1 -1
  3. package/dist/effects/config.d.ts +10 -86
  4. package/dist/effects/config.d.ts.map +1 -1
  5. package/dist/effects/config.js +18 -201
  6. package/dist/effects/config.js.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/package.json +2 -1
  9. package/dist/effects/animation-engine.d.ts +0 -173
  10. package/dist/effects/animation-engine.d.ts.map +0 -1
  11. package/dist/effects/animation-engine.js +0 -254
  12. package/dist/effects/animation-engine.js.map +0 -1
  13. package/dist/effects/effect-runner.d.ts +0 -69
  14. package/dist/effects/effect-runner.d.ts.map +0 -1
  15. package/dist/effects/effect-runner.js +0 -255
  16. package/dist/effects/effect-runner.js.map +0 -1
  17. package/dist/effects/gradient.d.ts +0 -131
  18. package/dist/effects/gradient.d.ts.map +0 -1
  19. package/dist/effects/gradient.js +0 -236
  20. package/dist/effects/gradient.js.map +0 -1
  21. package/dist/effects/implementations/beams.d.ts +0 -80
  22. package/dist/effects/implementations/beams.d.ts.map +0 -1
  23. package/dist/effects/implementations/beams.js +0 -221
  24. package/dist/effects/implementations/beams.js.map +0 -1
  25. package/dist/effects/implementations/blackhole.d.ts +0 -98
  26. package/dist/effects/implementations/blackhole.d.ts.map +0 -1
  27. package/dist/effects/implementations/blackhole.js +0 -421
  28. package/dist/effects/implementations/blackhole.js.map +0 -1
  29. package/dist/effects/implementations/burn.d.ts +0 -74
  30. package/dist/effects/implementations/burn.d.ts.map +0 -1
  31. package/dist/effects/implementations/burn.js +0 -234
  32. package/dist/effects/implementations/burn.js.map +0 -1
  33. package/dist/effects/implementations/decrypt.d.ts +0 -115
  34. package/dist/effects/implementations/decrypt.d.ts.map +0 -1
  35. package/dist/effects/implementations/decrypt.js +0 -394
  36. package/dist/effects/implementations/decrypt.js.map +0 -1
  37. package/dist/effects/implementations/waves.d.ts +0 -78
  38. package/dist/effects/implementations/waves.d.ts.map +0 -1
  39. package/dist/effects/implementations/waves.js +0 -278
  40. package/dist/effects/implementations/waves.js.map +0 -1
  41. package/dist/effects/index.d.ts +0 -34
  42. package/dist/effects/index.d.ts.map +0 -1
  43. package/dist/effects/index.js +0 -114
  44. package/dist/effects/index.js.map +0 -1
  45. package/dist/effects/motion-engine.d.ts +0 -168
  46. package/dist/effects/motion-engine.d.ts.map +0 -1
  47. package/dist/effects/motion-engine.js +0 -353
  48. package/dist/effects/motion-engine.js.map +0 -1
  49. package/dist/effects/safe-executor.d.ts +0 -55
  50. package/dist/effects/safe-executor.d.ts.map +0 -1
  51. package/dist/effects/safe-executor.js +0 -210
  52. package/dist/effects/safe-executor.js.map +0 -1
  53. package/dist/effects/types.d.ts +0 -199
  54. package/dist/effects/types.d.ts.map +0 -1
  55. package/dist/effects/types.js +0 -80
  56. package/dist/effects/types.js.map +0 -1
  57. package/dist/effects/utils.d.ts +0 -104
  58. package/dist/effects/utils.d.ts.map +0 -1
  59. package/dist/effects/utils.js +0 -280
  60. package/dist/effects/utils.js.map +0 -1
@@ -1,421 +0,0 @@
1
- /**
2
- * Blackhole Effect
3
- * Characters are consumed by a black hole and explode outwards
4
- */
5
- import { BaseEffect, } from "../types.js";
6
- import { ANSI } from "../utils.js";
7
- /**
8
- * Blackhole effect implementation
9
- */
10
- export class BlackholeEffect extends BaseEffect {
11
- constructor(options = {}) {
12
- super();
13
- this.name = "Blackhole";
14
- this.description = "Characters are consumed by a black hole and explode outwards";
15
- this.characterStates = new Map();
16
- this.animationFrameCount = 0;
17
- this.totalFrames = 0;
18
- this._isEffectComplete = false;
19
- // Animation phase tracking
20
- this.currentPhase = "forming";
21
- // @ts-ignore - Reserved for phase transitions
22
- this.phaseProgress = 0;
23
- // Blackhole properties
24
- this.blackholeCenter = { x: 0, y: 0 };
25
- this.blackholeRadius = 0;
26
- this.blackholeChars = [];
27
- // @ts-ignore - Reserved for queued consumption
28
- this.consumptionQueue = [];
29
- // Star symbols
30
- this.starSymbols = ["*", "'", "`", "¤", "•", "°", "·", "✦", "✧"];
31
- this.starfieldColors = [
32
- "4a4a4d",
33
- "808080",
34
- "a0a0a0",
35
- "c0c0c0",
36
- "e0e0e0",
37
- "ffffff",
38
- ];
39
- this.options = {
40
- duration: 6000,
41
- blackholeColor: "ffffff",
42
- starColors: ["4a4a4d", "808080", "a0a0a0", "c0c0c0", "e0e0e0", "ffffff"],
43
- finalColor: "ffffff",
44
- useGradient: false,
45
- gradientDirection: "diagonal",
46
- blackholeSize: 0.3,
47
- ...options,
48
- };
49
- }
50
- /**
51
- * Initialize the effect
52
- */
53
- onInitialize() {
54
- this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
55
- const dimensions = this.getCanvasDimensions();
56
- this.blackholeCenter = {
57
- x: Math.floor(dimensions.width / 2),
58
- y: Math.floor(dimensions.height / 2),
59
- };
60
- this.blackholeRadius = Math.max(3, Math.floor(Math.min(dimensions.width * this.options.blackholeSize, dimensions.height * this.options.blackholeSize)));
61
- // Initialize character states
62
- this.characterStates.clear();
63
- this.blackholeChars = [];
64
- this.consumptionQueue = [];
65
- // Calculate final colors for gradient
66
- const gradientColors = this.calculateGradientColors(dimensions);
67
- // Select characters for blackhole ring
68
- const blackholeCharCount = Math.min(Math.floor(this.blackholeRadius * 3), Math.floor(this.characters.length * 0.3));
69
- const shuffledChars = [...this.characters].sort(() => Math.random() - 0.5);
70
- this.blackholeChars = shuffledChars.slice(0, blackholeCharCount);
71
- this.consumptionQueue = shuffledChars.slice(blackholeCharCount);
72
- // Initialize all character states
73
- for (const char of this.characters) {
74
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
75
- const isBlackholeChar = this.blackholeChars.includes(char);
76
- let finalColor = this.options.finalColor;
77
- if (this.options.useGradient) {
78
- const gradientKey = this.getGradientKey(char.originalPosition, dimensions);
79
- finalColor = gradientColors[gradientKey] || this.options.finalColor;
80
- }
81
- // Random starfield position
82
- const starfieldPos = {
83
- x: Math.floor(Math.random() * dimensions.width),
84
- y: Math.floor(Math.random() * dimensions.height),
85
- };
86
- this.characterStates.set(key, {
87
- phase: "starfield",
88
- isBlackholeRing: isBlackholeChar,
89
- starSymbol: this.starSymbols[Math.floor(Math.random() * this.starSymbols.length)],
90
- starColor: this.starfieldColors[Math.floor(Math.random() * this.starfieldColors.length)],
91
- position: { ...starfieldPos },
92
- targetPosition: { ...char.originalPosition },
93
- spiralAngle: Math.random() * Math.PI * 2,
94
- spiralRadius: this.calculateDistance(starfieldPos, this.blackholeCenter),
95
- explosionVector: { x: 0, y: 0 },
96
- settlingProgress: 0,
97
- finalColor,
98
- });
99
- }
100
- this.currentPhase = "forming";
101
- this.phaseProgress = 0;
102
- this.animationFrameCount = 0;
103
- this._isEffectComplete = false;
104
- }
105
- /**
106
- * Calculate gradient colors
107
- */
108
- calculateGradientColors(dimensions) {
109
- const gradientMap = {};
110
- if (this.options.gradientDirection === "diagonal") {
111
- const maxDist = Math.sqrt(dimensions.width ** 2 + dimensions.height ** 2);
112
- for (let y = 0; y < dimensions.height; y++) {
113
- for (let x = 0; x < dimensions.width; x++) {
114
- const dist = Math.sqrt(x ** 2 + y ** 2);
115
- const factor = dist / maxDist;
116
- const key = `${x},${y}`;
117
- gradientMap[key] = this.interpolateColor(this.options.starColors[this.options.starColors.length - 1], this.options.finalColor, factor);
118
- }
119
- }
120
- }
121
- else {
122
- const size = this.options.gradientDirection === "vertical"
123
- ? dimensions.height
124
- : dimensions.width;
125
- const startColor = this.options.starColors[this.options.starColors.length - 1];
126
- for (let i = 0; i < size; i++) {
127
- const factor = i / (size - 1);
128
- gradientMap[i] = this.interpolateColor(startColor, this.options.finalColor, factor);
129
- }
130
- }
131
- return gradientMap;
132
- }
133
- /**
134
- * Get gradient key based on direction
135
- */
136
- getGradientKey(pos, _dimensions) {
137
- if (this.options.gradientDirection === "diagonal") {
138
- return `${pos.x},${pos.y}`;
139
- }
140
- else if (this.options.gradientDirection === "vertical") {
141
- return pos.y;
142
- }
143
- else {
144
- return pos.x;
145
- }
146
- }
147
- /**
148
- * Render the next frame
149
- */
150
- async render() {
151
- if (!this.isInitialized) {
152
- throw new Error("Effect not initialized");
153
- }
154
- // Update animation state
155
- this.updateAnimationState();
156
- // Create the frame
157
- const dimensions = this.getCanvasDimensions();
158
- const frame = Array(dimensions.height)
159
- .fill("")
160
- .map(() => Array(dimensions.width).fill(" "));
161
- // Render characters
162
- for (const char of this.characters) {
163
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
164
- const state = this.characterStates.get(key);
165
- if (state) {
166
- const visual = this.createCharacterVisual(char, state);
167
- char.visual = visual;
168
- const x = Math.round(state.position.x);
169
- const y = Math.round(state.position.y);
170
- if (y >= 0 && y < dimensions.height && x >= 0 && x < dimensions.width) {
171
- // Apply ANSI color codes
172
- const colorCode = this.getColorCode(visual.colors.fg);
173
- const resetCode = ANSI.reset;
174
- frame[y][x] = colorCode + visual.symbol + resetCode;
175
- }
176
- }
177
- }
178
- this.animationFrameCount++;
179
- // Convert frame to strings
180
- return frame.map((row) => row.join(""));
181
- }
182
- /**
183
- * Update animation state for all characters
184
- */
185
- updateAnimationState() {
186
- const progress = this.animationFrameCount / this.totalFrames;
187
- // Update phase transitions
188
- if (this.currentPhase === "forming" && progress > 0.15) {
189
- this.currentPhase = "consuming";
190
- }
191
- else if (this.currentPhase === "consuming" && progress > 0.5) {
192
- this.currentPhase = "collapsing";
193
- }
194
- else if (this.currentPhase === "collapsing" && progress > 0.6) {
195
- this.currentPhase = "exploding";
196
- }
197
- else if (this.currentPhase === "exploding" && progress > 0.7) {
198
- this.currentPhase = "settling";
199
- }
200
- // Update character positions based on phase
201
- for (const [_key, state] of this.characterStates) {
202
- this.updateCharacterPosition(state);
203
- }
204
- // Check completion
205
- this._isEffectComplete = progress >= 1;
206
- }
207
- /**
208
- * Update individual character position
209
- */
210
- updateCharacterPosition(state) {
211
- const frameProgress = this.animationFrameCount / this.totalFrames;
212
- switch (this.currentPhase) {
213
- case "forming":
214
- if (state.isBlackholeRing) {
215
- // Move to blackhole ring position
216
- const ringProgress = Math.min(frameProgress / 0.15, 1);
217
- const angle = (this.blackholeChars.indexOf(this.characters.find((c) => this.characterStates.get(`${c.originalPosition.x},${c.originalPosition.y}`) === state)) /
218
- this.blackholeChars.length) *
219
- Math.PI *
220
- 2;
221
- const targetX = this.blackholeCenter.x + Math.cos(angle) * this.blackholeRadius;
222
- const targetY = this.blackholeCenter.y + Math.sin(angle) * this.blackholeRadius;
223
- state.position.x =
224
- state.position.x +
225
- (targetX - state.position.x) * ringProgress * 0.1;
226
- state.position.y =
227
- state.position.y +
228
- (targetY - state.position.y) * ringProgress * 0.1;
229
- state.phase = "consuming";
230
- }
231
- break;
232
- case "consuming":
233
- if (state.isBlackholeRing) {
234
- // Rotate blackhole ring
235
- const angle = (this.blackholeChars.indexOf(this.characters.find((c) => this.characterStates.get(`${c.originalPosition.x},${c.originalPosition.y}`) === state)) /
236
- this.blackholeChars.length) *
237
- Math.PI *
238
- 2 +
239
- frameProgress * Math.PI * 2;
240
- state.position.x =
241
- this.blackholeCenter.x + Math.cos(angle) * this.blackholeRadius;
242
- state.position.y =
243
- this.blackholeCenter.y + Math.sin(angle) * this.blackholeRadius;
244
- }
245
- else {
246
- // Spiral into blackhole
247
- const consumeProgress = (frameProgress - 0.15) / 0.35;
248
- if (consumeProgress > 0) {
249
- state.spiralAngle += 0.2;
250
- state.spiralRadius *= 0.95;
251
- state.position.x =
252
- this.blackholeCenter.x +
253
- Math.cos(state.spiralAngle) * state.spiralRadius;
254
- state.position.y =
255
- this.blackholeCenter.y +
256
- Math.sin(state.spiralAngle) * state.spiralRadius;
257
- if (state.spiralRadius < 2) {
258
- state.phase = "collapsed";
259
- state.position = { ...this.blackholeCenter };
260
- }
261
- }
262
- }
263
- break;
264
- case "collapsing":
265
- // All characters move to center
266
- const collapseProgress = (frameProgress - 0.5) / 0.1;
267
- if (collapseProgress > 0) {
268
- state.position.x += (this.blackholeCenter.x - state.position.x) * 0.2;
269
- state.position.y += (this.blackholeCenter.y - state.position.y) * 0.2;
270
- state.phase = "collapsed";
271
- }
272
- break;
273
- case "exploding":
274
- // Calculate explosion vector
275
- if (state.explosionVector.x === 0 && state.explosionVector.y === 0) {
276
- const angle = Math.atan2(state.targetPosition.y - this.blackholeCenter.y, state.targetPosition.x - this.blackholeCenter.x);
277
- const distance = this.calculateDistance(state.targetPosition, this.blackholeCenter);
278
- const speed = Math.min(distance * 0.3, 5);
279
- state.explosionVector.x = Math.cos(angle) * speed;
280
- state.explosionVector.y = Math.sin(angle) * speed;
281
- state.phase = "exploding";
282
- }
283
- // Apply explosion movement
284
- state.position.x += state.explosionVector.x;
285
- state.position.y += state.explosionVector.y;
286
- // Dampen explosion
287
- state.explosionVector.x *= 0.9;
288
- state.explosionVector.y *= 0.9;
289
- break;
290
- case "settling":
291
- // Settle to final position
292
- const settleProgress = (frameProgress - 0.7) / 0.3;
293
- if (settleProgress > 0) {
294
- state.position.x += (state.targetPosition.x - state.position.x) * 0.1;
295
- state.position.y += (state.targetPosition.y - state.position.y) * 0.1;
296
- state.settlingProgress = Math.min(settleProgress, 1);
297
- if (Math.abs(state.position.x - state.targetPosition.x) < 0.5 &&
298
- Math.abs(state.position.y - state.targetPosition.y) < 0.5) {
299
- state.position = { ...state.targetPosition };
300
- state.phase = "final";
301
- }
302
- }
303
- break;
304
- }
305
- }
306
- /**
307
- * Create visual representation of a character
308
- */
309
- createCharacterVisual(char, state) {
310
- let symbol = state.starSymbol;
311
- let color = state.starColor;
312
- switch (state.phase) {
313
- case "starfield":
314
- // Initial starfield state
315
- break;
316
- case "consuming":
317
- if (state.isBlackholeRing) {
318
- symbol = "*";
319
- color = this.options.blackholeColor;
320
- }
321
- else {
322
- // Fading as consumed
323
- const fadeColors = ["808080", "606060", "404040", "202020", "000000"];
324
- const fadeIndex = Math.min(Math.floor((1 - state.spiralRadius / 50) * fadeColors.length), fadeColors.length - 1);
325
- color = fadeColors[Math.max(0, fadeIndex)];
326
- }
327
- break;
328
- case "collapsed":
329
- symbol = "●";
330
- color =
331
- this.options.starColors[Math.floor(Math.random() * this.options.starColors.length)];
332
- break;
333
- case "exploding":
334
- symbol = char.originalSymbol;
335
- color =
336
- this.options.starColors[Math.floor(this.animationFrameCount / 2) %
337
- this.options.starColors.length];
338
- break;
339
- case "settling":
340
- case "final":
341
- symbol = char.originalSymbol;
342
- // Fade from star color to final color
343
- const starColor = this.options.starColors[0];
344
- color = this.interpolateColor(starColor, state.finalColor, state.settlingProgress);
345
- break;
346
- }
347
- return {
348
- symbol,
349
- colors: {
350
- fg: color,
351
- bg: null,
352
- },
353
- };
354
- }
355
- /**
356
- * Calculate distance between two coordinates
357
- */
358
- calculateDistance(a, b) {
359
- return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
360
- }
361
- /**
362
- * Get ANSI color code for a color
363
- */
364
- getColorCode(color) {
365
- if (!color || this.config.noColor) {
366
- return "";
367
- }
368
- // For RGB colors, convert to ANSI 24-bit color
369
- if (typeof color === "string") {
370
- const r = parseInt(color.substring(0, 2), 16);
371
- const g = parseInt(color.substring(2, 4), 16);
372
- const b = parseInt(color.substring(4, 6), 16);
373
- return `\x1b[38;2;${r};${g};${b}m`;
374
- }
375
- // For XTerm colors
376
- return `\x1b[38;5;${color}m`;
377
- }
378
- /**
379
- * Interpolate between two colors
380
- */
381
- interpolateColor(color1, color2, factor) {
382
- const r1 = parseInt(color1.substring(0, 2), 16);
383
- const g1 = parseInt(color1.substring(2, 4), 16);
384
- const b1 = parseInt(color1.substring(4, 6), 16);
385
- const r2 = parseInt(color2.substring(0, 2), 16);
386
- const g2 = parseInt(color2.substring(2, 4), 16);
387
- const b2 = parseInt(color2.substring(4, 6), 16);
388
- const r = Math.round(r1 + (r2 - r1) * factor);
389
- const g = Math.round(g1 + (g2 - g1) * factor);
390
- const b = Math.round(b1 + (b2 - b1) * factor);
391
- return [r, g, b]
392
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
393
- .join("");
394
- }
395
- /**
396
- * Render fallback for when effects are disabled
397
- */
398
- renderFallback() {
399
- return this.text.split("\n");
400
- }
401
- /**
402
- * Check if effect is complete
403
- */
404
- isComplete() {
405
- return this._isEffectComplete;
406
- }
407
- /**
408
- * Reset the effect
409
- */
410
- onReset() {
411
- this.characterStates.clear();
412
- this.blackholeChars = [];
413
- this.consumptionQueue = [];
414
- this.currentPhase = "forming";
415
- this.phaseProgress = 0;
416
- this.animationFrameCount = 0;
417
- this._isEffectComplete = false;
418
- this.onInitialize();
419
- }
420
- }
421
- //# sourceMappingURL=blackhole.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blackhole.js","sourceRoot":"","sources":["../../../src/effects/implementations/blackhole.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Burn Effect
3
- * Characters are ignited and burn up the screen
4
- */
5
- import { BaseEffect } from "../types.js";
6
- /**
7
- * Configuration options for the Burn effect
8
- */
9
- export interface BurnEffectOptions {
10
- /** Duration in milliseconds */
11
- duration?: number;
12
- /** Starting color before burning */
13
- startingColor?: string;
14
- /** Colors to transition through while burning */
15
- burnColors?: string[];
16
- /** Speed of the burn spread (characters per frame) */
17
- burnSpeed?: number;
18
- /** Delay between burn waves */
19
- burnDelay?: number;
20
- /** Randomness factor for burn timing */
21
- burnRandomness?: number;
22
- }
23
- /**
24
- * Burn effect implementation
25
- */
26
- export declare class BurnEffect extends BaseEffect {
27
- readonly name = "Burn";
28
- readonly description = "Characters are ignited and burn up the screen";
29
- private options;
30
- private characterStates;
31
- private burnFront;
32
- private animationFrameCount;
33
- private totalFrames;
34
- private burnPhaseDuration;
35
- private _isEffectComplete;
36
- constructor(options?: BurnEffectOptions);
37
- /**
38
- * Initialize the effect
39
- */
40
- protected onInitialize(): void;
41
- /**
42
- * Render the next frame
43
- */
44
- render(): Promise<string[]>;
45
- /**
46
- * Update burn state for all characters
47
- */
48
- private updateBurnState;
49
- /**
50
- * Create visual representation of a character
51
- */
52
- private createCharacterVisual;
53
- /**
54
- * Get ANSI color code for a color
55
- */
56
- private getColorCode;
57
- /**
58
- * Interpolate between two colors
59
- */
60
- private interpolateColor;
61
- /**
62
- * Render fallback for when effects are disabled
63
- */
64
- renderFallback(): string[];
65
- /**
66
- * Check if effect is complete
67
- */
68
- isComplete(): boolean;
69
- /**
70
- * Reset the effect
71
- */
72
- protected onReset(): void;
73
- }
74
- //# sourceMappingURL=burn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"burn.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/burn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAIX,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,mDAAmD;IAEvE,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,OAAO,GAAE,iBAAsB;IAa3C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IA0B9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuCjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuDvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4D7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;CAO1B"}