@nexart/ui-renderer 0.4.0 → 0.7.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.
- package/README.md +198 -37
- package/dist/capabilities.d.ts +30 -8
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +121 -269
- package/dist/compiler.d.ts +2 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +3 -2
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/presets/primitives.d.ts.map +1 -1
- package/dist/presets/primitives.js +651 -0
- package/dist/preview/code-renderer.d.ts +3 -3
- package/dist/preview/code-renderer.d.ts.map +1 -1
- package/dist/preview/code-renderer.js +64 -32
- package/dist/preview/renderer.d.ts +2 -1
- package/dist/preview/renderer.d.ts.map +1 -1
- package/dist/preview/renderer.js +2 -1
- package/dist/system.d.ts +2 -1
- package/dist/system.d.ts.map +1 -1
- package/dist/system.js +22 -7
- package/dist/types.d.ts +4 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -2
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @nexart/ui-renderer
|
|
2
2
|
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
|
|
5
5
|
**Declarative and Code Mode System Authoring SDK for NexArt Protocol**
|
|
6
6
|
|
|
@@ -19,30 +19,32 @@ Version: 0.4.0
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
## PROTOCOL LOCK — v1.
|
|
22
|
+
## PROTOCOL LOCK — v1.2.0 (MIRROR)
|
|
23
23
|
|
|
24
24
|
| Property | Value |
|
|
25
25
|
|----------|-------|
|
|
26
26
|
| Protocol Name | NexArt Code Mode |
|
|
27
|
-
| Version | v1.
|
|
28
|
-
| Status | **
|
|
27
|
+
| Version | v1.2.0 |
|
|
28
|
+
| Status | **STABLE** |
|
|
29
|
+
| Phase | 3 |
|
|
29
30
|
| This SDK | Mirror only — NOT authoritative |
|
|
30
|
-
| Canonical Authority | @nexart/codemode-sdk |
|
|
31
|
-
| Lock Date |
|
|
31
|
+
| Canonical Authority | @nexart/codemode-sdk v1.4.0 |
|
|
32
|
+
| Lock Date | January 2026 |
|
|
32
33
|
|
|
33
|
-
**This SDK mirrors the
|
|
34
|
+
**This SDK mirrors the v1.2.0 protocol surface. Any future protocol change requires v2.0.0 in @nexart/codemode-sdk first.**
|
|
34
35
|
|
|
35
36
|
This SDK mirrors:
|
|
36
37
|
- Execution model (Static and Loop modes)
|
|
37
|
-
- VAR[0..9] specification (
|
|
38
|
+
- VAR[0..9] specification (0-10 input, always 10 at runtime)
|
|
38
39
|
- Determinism behavior (seed + VAR → consistent preview)
|
|
39
|
-
- Time semantics (t, frameCount, time, tGlobal)
|
|
40
|
+
- Time semantics (t, frameCount, time, tGlobal, totalFrames)
|
|
40
41
|
- Forbidden patterns list (13 patterns)
|
|
41
42
|
- Error message format (`[Code Mode Protocol Error]`)
|
|
43
|
+
- v1.2.0 features: curveVertex, bezierVertex, pixel system, createGraphics
|
|
42
44
|
|
|
43
45
|
---
|
|
44
46
|
|
|
45
|
-
## Protocol Alignment (v1.
|
|
47
|
+
## Protocol Alignment (v1.2.0)
|
|
46
48
|
|
|
47
49
|
This SDK mirrors NexArt Protocol behavior. It is NOT canonical.
|
|
48
50
|
|
|
@@ -83,43 +85,47 @@ The following patterns are rejected (mirroring @nexart/codemode-sdk exactly):
|
|
|
83
85
|
- `document.*`, `window.*` — DOM access forbidden
|
|
84
86
|
- `import`, `require()` — external imports forbidden
|
|
85
87
|
|
|
86
|
-
### VAR Protocol —
|
|
88
|
+
### VAR Protocol — v1.2.0 (MIRROR of SDK v1.4.0)
|
|
87
89
|
|
|
88
|
-
VAR[0..9] is a read-only array of 10 protocol variables (0-100
|
|
90
|
+
VAR[0..9] is a read-only array of 10 protocol variables (0-100 strict range).
|
|
89
91
|
|
|
90
|
-
**VAR Specification (
|
|
92
|
+
**VAR Specification (mirrors @nexart/codemode-sdk v1.4.0):**
|
|
91
93
|
|
|
92
94
|
| Property | Value | Enforcement |
|
|
93
95
|
|----------|-------|-------------|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
96
|
+
| Input count | 0-10 (VAR[0]..VAR[9]) | HARD — throws if > 10 |
|
|
97
|
+
| Runtime count | Always 10 | Padded with zeros |
|
|
98
|
+
| Type | finite number | HARD — throws if non-number |
|
|
99
|
+
| Range | 0-100 | HARD — throws if out of range |
|
|
100
|
+
| Mutability | Read-only | HARD — frozen, writes throw |
|
|
98
101
|
| Injection | Before execution | Guaranteed |
|
|
99
102
|
| Lifecycle | Stable for entire render | Guaranteed |
|
|
100
103
|
| Default | All zeros | If not provided |
|
|
101
104
|
|
|
102
|
-
**This specification
|
|
103
|
-
|
|
104
|
-
**DO NOT** add support for dynamic-length VAR arrays.
|
|
105
|
-
**DO NOT** allow user-defined VAR counts.
|
|
105
|
+
**This specification mirrors @nexart/codemode-sdk v1.4.0 exactly.**
|
|
106
106
|
|
|
107
107
|
```typescript
|
|
108
108
|
// Correct usage
|
|
109
109
|
const size = map(VAR[0], 0, 100, 10, 200);
|
|
110
110
|
const count = floor(map(VAR[1], 0, 100, 5, 50));
|
|
111
111
|
|
|
112
|
+
// VAR[5] returns 0 if input had fewer than 6 elements
|
|
113
|
+
const value = VAR[5]; // Returns 0 if not provided
|
|
114
|
+
|
|
112
115
|
// Error: VAR is read-only
|
|
113
|
-
VAR[0] = 50; //
|
|
116
|
+
VAR[0] = 50; // Throws: "[Code Mode Protocol Error] VAR is read-only..."
|
|
114
117
|
```
|
|
115
118
|
|
|
116
119
|
**Error examples:**
|
|
117
120
|
```typescript
|
|
118
|
-
// Protocol error:
|
|
119
|
-
vars: [
|
|
121
|
+
// Protocol error: too many elements
|
|
122
|
+
vars: [1,2,3,4,5,6,7,8,9,10,11] // Throws: "VAR array must have at most 10 elements, got 11"
|
|
120
123
|
|
|
121
|
-
//
|
|
122
|
-
vars: [150, 50, 50
|
|
124
|
+
// Protocol error: out of range
|
|
125
|
+
vars: [150, 50, 50] // Throws: "VAR[0] = 150 is out of range. Values must be 0-100."
|
|
126
|
+
|
|
127
|
+
// Valid: fewer than 10 elements (padded with zeros)
|
|
128
|
+
vars: [50, 75, 25] // Works! VAR[3..9] will be 0
|
|
123
129
|
```
|
|
124
130
|
|
|
125
131
|
---
|
|
@@ -142,15 +148,59 @@ Opinionated presets with guardrails. Provides consistent, protocol-aligned backg
|
|
|
142
148
|
|
|
143
149
|
### `primitive`
|
|
144
150
|
|
|
145
|
-
Declarative generative components. Structured parameters, no raw code.
|
|
151
|
+
Declarative generative components. Structured parameters, no raw code. **30 primitives available:**
|
|
152
|
+
|
|
153
|
+
**Basic Shapes:**
|
|
154
|
+
- `dots` — Grid/random dot patterns
|
|
155
|
+
- `lines` — Vertical wavy lines
|
|
156
|
+
- `waves` — Horizontal wave patterns
|
|
157
|
+
- `stripes` — Simple horizontal stripes
|
|
158
|
+
- `circles` — Concentric pulsing circles
|
|
159
|
+
- `grid` — Rotating square grid
|
|
160
|
+
|
|
161
|
+
**Geometric:**
|
|
162
|
+
- `polygons` — Random rotating polygons (3-7 sides)
|
|
163
|
+
- `diamonds` — Diamond grid with noise rotation
|
|
164
|
+
- `hexgrid` — Honeycomb hexagonal grid
|
|
165
|
+
- `stars` — Scattered rotating star shapes
|
|
166
|
+
- `concentricSquares` — Nested rotating squares
|
|
167
|
+
|
|
168
|
+
**Radial:**
|
|
169
|
+
- `spirals` — Multiple expanding spirals
|
|
170
|
+
- `rays` — Lines emanating from center
|
|
171
|
+
- `orbits` — Wobbling orbital rings
|
|
172
|
+
- `rings` — Alternating concentric rings
|
|
173
|
+
- `arcs` — Random partial circles
|
|
174
|
+
- `radialLines` — Lines from inner to outer radius
|
|
175
|
+
- `petals` — Flower petal pattern
|
|
176
|
+
|
|
177
|
+
**Flow & Motion:**
|
|
178
|
+
- `flow` — Particle flow field
|
|
179
|
+
- `particles` — Scattered particles with tails
|
|
180
|
+
- `bubbles` — Rising floating bubbles
|
|
181
|
+
|
|
182
|
+
**Patterns:**
|
|
183
|
+
- `crosshatch` — Cross-hatched shading lines
|
|
184
|
+
- `chevrons` — V-shaped wave patterns
|
|
185
|
+
- `zigzag` — Zigzag horizontal lines
|
|
186
|
+
- `weave` — Interlocking woven pattern
|
|
187
|
+
- `moire` — Overlapping circle interference
|
|
188
|
+
|
|
189
|
+
**Organic:**
|
|
190
|
+
- `curves` — Random bezier curves
|
|
191
|
+
- `noise` — Perlin noise vector field
|
|
192
|
+
- `mesh` — Deformed triangular mesh
|
|
193
|
+
- `branches` — Fractal tree branches
|
|
146
194
|
|
|
147
195
|
```typescript
|
|
148
196
|
{
|
|
149
197
|
type: 'primitive',
|
|
150
|
-
name: '
|
|
151
|
-
count:
|
|
198
|
+
name: 'spirals', // Any of the 30 primitives above
|
|
199
|
+
count: 12,
|
|
152
200
|
color: '#ffffff',
|
|
153
|
-
motion:
|
|
201
|
+
motion: 'medium', // 'slow', 'medium', 'fast'
|
|
202
|
+
strokeWeight: 'thin', // 'thin', 'medium', 'thick', or number
|
|
203
|
+
opacity: 0.8
|
|
154
204
|
}
|
|
155
205
|
```
|
|
156
206
|
|
|
@@ -272,7 +322,7 @@ const system = createSystem({
|
|
|
272
322
|
source: string, // Raw p5-like sketch code
|
|
273
323
|
seed?: number, // Optional: PRNG seed
|
|
274
324
|
totalFrames?: number, // Required for loop mode
|
|
275
|
-
vars?: number[] // Optional: VAR[0..9] (10 values, 0-100)
|
|
325
|
+
vars?: number[] // Optional: VAR[0..9] (0-10 values, 0-100 range)
|
|
276
326
|
});
|
|
277
327
|
```
|
|
278
328
|
|
|
@@ -305,23 +355,134 @@ if (!result.valid) {
|
|
|
305
355
|
|
|
306
356
|
### `getCapabilities()`
|
|
307
357
|
|
|
308
|
-
Discover SDK capabilities.
|
|
358
|
+
Discover SDK capabilities for AI and tooling.
|
|
309
359
|
|
|
310
360
|
```typescript
|
|
311
361
|
import { getCapabilities } from '@nexart/ui-renderer';
|
|
312
362
|
|
|
313
363
|
const caps = getCapabilities();
|
|
314
364
|
// {
|
|
315
|
-
// version: '0.
|
|
365
|
+
// version: '0.7.0',
|
|
316
366
|
// isCanonical: false,
|
|
317
367
|
// isArchival: false,
|
|
318
368
|
// renderer: '@nexart/ui-renderer',
|
|
319
|
-
//
|
|
320
|
-
//
|
|
369
|
+
// primitivesMeta: { notice: '...', count: 30, isCanonical: false },
|
|
370
|
+
// primitives: [ { name, category, description, parameters } ],
|
|
321
371
|
// ...
|
|
322
372
|
// }
|
|
323
373
|
```
|
|
324
374
|
|
|
375
|
+
### `getPrimitiveTypes()`
|
|
376
|
+
|
|
377
|
+
Get all 30 primitive names as array.
|
|
378
|
+
|
|
379
|
+
```typescript
|
|
380
|
+
import { getPrimitiveTypes } from '@nexart/ui-renderer';
|
|
381
|
+
|
|
382
|
+
const names = getPrimitiveTypes();
|
|
383
|
+
// ['dots', 'lines', 'waves', 'stripes', ... ]
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### `getPrimitivesByCategory()`
|
|
387
|
+
|
|
388
|
+
Get primitives organized by category.
|
|
389
|
+
|
|
390
|
+
```typescript
|
|
391
|
+
import { getPrimitivesByCategory } from '@nexart/ui-renderer';
|
|
392
|
+
|
|
393
|
+
const byCategory = getPrimitivesByCategory();
|
|
394
|
+
// {
|
|
395
|
+
// basic: ['dots', 'lines', 'waves', 'stripes', 'circles', 'grid'],
|
|
396
|
+
// geometric: ['polygons', 'diamonds', 'hexgrid', 'stars', 'concentricSquares'],
|
|
397
|
+
// radial: ['spirals', 'rays', 'orbits', 'rings', 'arcs', 'radialLines', 'petals'],
|
|
398
|
+
// flow: ['flow', 'particles', 'bubbles'],
|
|
399
|
+
// patterns: ['crosshatch', 'chevrons', 'zigzag', 'weave', 'moire'],
|
|
400
|
+
// organic: ['curves', 'noise', 'mesh', 'branches']
|
|
401
|
+
// }
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### `getPrimitiveInfo(name)`
|
|
405
|
+
|
|
406
|
+
Get full capability info for a single primitive.
|
|
407
|
+
|
|
408
|
+
```typescript
|
|
409
|
+
import { getPrimitiveInfo } from '@nexart/ui-renderer';
|
|
410
|
+
|
|
411
|
+
const info = getPrimitiveInfo('spirals');
|
|
412
|
+
// {
|
|
413
|
+
// name: 'spirals',
|
|
414
|
+
// category: 'radial',
|
|
415
|
+
// description: 'Multiple expanding spirals from center',
|
|
416
|
+
// compilesTo: 'codemode',
|
|
417
|
+
// isCanonical: false,
|
|
418
|
+
// parameters: { count, color, opacity, strokeWeight, motion }
|
|
419
|
+
// }
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### `isPrimitiveValid(name)`
|
|
423
|
+
|
|
424
|
+
Check if a primitive name is valid.
|
|
425
|
+
|
|
426
|
+
```typescript
|
|
427
|
+
import { isPrimitiveValid } from '@nexart/ui-renderer';
|
|
428
|
+
|
|
429
|
+
isPrimitiveValid('spirals'); // true
|
|
430
|
+
isPrimitiveValid('invalid'); // false
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## AI Capabilities API
|
|
436
|
+
|
|
437
|
+
**Designed for AI agents to build valid systems without hallucination.**
|
|
438
|
+
|
|
439
|
+
⚠️ **Primitives are helper generators that compile to Code Mode sketches.**
|
|
440
|
+
They are NOT canonical. The canonical output is always the compiled Code Mode source.
|
|
441
|
+
|
|
442
|
+
### For AI Agents
|
|
443
|
+
|
|
444
|
+
```typescript
|
|
445
|
+
import { getCapabilities, isPrimitiveValid, getPrimitiveInfo } from '@nexart/ui-renderer';
|
|
446
|
+
|
|
447
|
+
const caps = getCapabilities();
|
|
448
|
+
|
|
449
|
+
caps.primitivesMeta.notice; // "Primitives are helper generators..."
|
|
450
|
+
caps.primitivesMeta.count; // 30
|
|
451
|
+
caps.primitivesMeta.isCanonical; // false
|
|
452
|
+
|
|
453
|
+
for (const p of caps.primitives) {
|
|
454
|
+
console.log(p.name); // 'dots', 'spirals', etc.
|
|
455
|
+
console.log(p.category); // 'basic', 'radial', etc.
|
|
456
|
+
console.log(p.description); // Human-readable description
|
|
457
|
+
console.log(p.parameters.count.min); // 3
|
|
458
|
+
console.log(p.parameters.count.max); // 50
|
|
459
|
+
console.log(p.parameters.count.default); // 12
|
|
460
|
+
}
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### Primitive Parameter Specification
|
|
464
|
+
|
|
465
|
+
All primitives share these parameters:
|
|
466
|
+
|
|
467
|
+
| Parameter | Type | Required | Range | Default |
|
|
468
|
+
|-----------|------|----------|-------|---------|
|
|
469
|
+
| `count` | number | No | 3-50 | 12 |
|
|
470
|
+
| `color` | string | No | CSS color | Palette foreground |
|
|
471
|
+
| `opacity` | number | No | 0.1-1 | 1 |
|
|
472
|
+
| `strokeWeight` | enum | No | 'auto', 'thin', 'medium', 'thick' | 'auto' |
|
|
473
|
+
| `motion` | enum | No | 'slow', 'medium', 'fast' | 'slow' |
|
|
474
|
+
|
|
475
|
+
### Valid Primitive Categories
|
|
476
|
+
|
|
477
|
+
| Category | Primitives |
|
|
478
|
+
|----------|-----------|
|
|
479
|
+
| `basic` | dots, lines, waves, stripes, circles, grid |
|
|
480
|
+
| `geometric` | polygons, diamonds, hexgrid, stars, concentricSquares |
|
|
481
|
+
| `radial` | spirals, rays, orbits, rings, arcs, radialLines, petals |
|
|
482
|
+
| `flow` | flow, particles, bubbles |
|
|
483
|
+
| `patterns` | crosshatch, chevrons, zigzag, weave, moire |
|
|
484
|
+
| `organic` | curves, noise, mesh, branches |
|
|
485
|
+
|
|
325
486
|
---
|
|
326
487
|
|
|
327
488
|
## Delegation Logging
|
|
@@ -330,7 +491,7 @@ All Code Mode previews log their delegation:
|
|
|
330
491
|
|
|
331
492
|
```
|
|
332
493
|
[UIRenderer] Preview delegation → @nexart/codemode-sdk
|
|
333
|
-
[UIRenderer] Protocol version: 1.
|
|
494
|
+
[UIRenderer] Protocol version: 1.2.0
|
|
334
495
|
[UIRenderer] Mode: loop
|
|
335
496
|
```
|
|
336
497
|
|
|
@@ -374,4 +535,4 @@ If the protocol rejects code:
|
|
|
374
535
|
|
|
375
536
|
MIT License
|
|
376
537
|
|
|
377
|
-
Copyright (c) 2024 NexArt
|
|
538
|
+
Copyright (c) 2024-2026 NexArt
|
package/dist/capabilities.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @nexart/ui-renderer v0.
|
|
2
|
+
* @nexart/ui-renderer v0.7.0 - Capabilities Discovery
|
|
3
3
|
*
|
|
4
4
|
* Exposes SDK capabilities for AI tools and builders.
|
|
5
5
|
* Critical for preventing hallucination and SDK bypass.
|
|
6
|
+
* Mirrors @nexart/codemode-sdk v1.4.0 (Protocol v1.2.0)
|
|
7
|
+
*
|
|
8
|
+
* ⚠️ PRIMITIVES ARE NON-CANONICAL
|
|
9
|
+
* Primitives are helper generators that compile to Code Mode sketches.
|
|
10
|
+
* They exist for convenience and rapid prototyping only.
|
|
11
|
+
* The canonical output is always the compiled Code Mode source.
|
|
6
12
|
*/
|
|
7
13
|
export interface PrimitiveCapability {
|
|
8
|
-
|
|
14
|
+
name: string;
|
|
15
|
+
category: 'basic' | 'geometric' | 'radial' | 'flow' | 'patterns' | 'organic';
|
|
9
16
|
description: string;
|
|
10
|
-
|
|
17
|
+
compilesTo: 'codemode';
|
|
18
|
+
isCanonical: false;
|
|
19
|
+
parameters: {
|
|
20
|
+
count: ParameterSpec;
|
|
21
|
+
color: ParameterSpec;
|
|
22
|
+
opacity: ParameterSpec;
|
|
23
|
+
strokeWeight: ParameterSpec;
|
|
24
|
+
motion: ParameterSpec;
|
|
25
|
+
};
|
|
11
26
|
}
|
|
12
27
|
export interface ParameterSpec {
|
|
13
28
|
type: 'number' | 'string' | 'enum' | 'tuple' | 'boolean';
|
|
@@ -24,6 +39,13 @@ export interface Capabilities {
|
|
|
24
39
|
isCanonical: false;
|
|
25
40
|
isArchival: false;
|
|
26
41
|
renderer: '@nexart/ui-renderer';
|
|
42
|
+
primitivesMeta: {
|
|
43
|
+
notice: string;
|
|
44
|
+
count: number;
|
|
45
|
+
categories: string[];
|
|
46
|
+
compilesTo: 'codemode';
|
|
47
|
+
isCanonical: false;
|
|
48
|
+
};
|
|
27
49
|
primitives: PrimitiveCapability[];
|
|
28
50
|
background: {
|
|
29
51
|
color: ParameterSpec;
|
|
@@ -40,15 +62,15 @@ export interface Capabilities {
|
|
|
40
62
|
};
|
|
41
63
|
limits: {
|
|
42
64
|
maxElements: number;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
maxLines: number;
|
|
46
|
-
maxOrbits: number;
|
|
47
|
-
maxGridSize: number;
|
|
65
|
+
maxCount: number;
|
|
66
|
+
maxPrimitives: number;
|
|
48
67
|
};
|
|
49
68
|
}
|
|
50
69
|
export declare function getCapabilities(): Capabilities;
|
|
51
70
|
export declare function getPrimitiveTypes(): string[];
|
|
71
|
+
export declare function getPrimitivesByCategory(): Record<string, string[]>;
|
|
72
|
+
export declare function getPrimitiveInfo(name: string): PrimitiveCapability | null;
|
|
52
73
|
export declare function getMotionSources(): string[];
|
|
53
74
|
export declare function getBackgroundTextures(): string[];
|
|
75
|
+
export declare function isPrimitiveValid(name: string): boolean;
|
|
54
76
|
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,aAAa,CAAC;QACrB,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC;QACvB,YAAY,EAAE,aAAa,CAAC;QAC5B,MAAM,EAAE,aAAa,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACzD,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,KAAK,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,qBAAqB,CAAC;IAEhC,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,KAAK,CAAC;KACpB,CAAC;IAEF,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAElC,UAAU,EAAE;QACV,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE;YACR,IAAI,EAAE,aAAa,CAAC;YACpB,MAAM,EAAE,aAAa,CAAC;YACtB,KAAK,EAAE,aAAa,CAAC;SACtB,CAAC;KACH,CAAC;IAEF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,aAAa,CAAC;KACtB,CAAC;IAEF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAwDD,wBAAgB,eAAe,IAAI,YAAY,CA0G9C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAS5C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CASlE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAGzE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|