@rotu/structview 0.11.1 → 0.13.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 +3 -3
- package/esm/core.d.ts +15 -1
- package/esm/core.d.ts.map +1 -1
- package/esm/core.js +17 -1
- package/esm/fields.d.ts +4 -4
- package/esm/fields.d.ts.map +1 -1
- package/esm/types.d.ts +8 -2
- package/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,8 +11,8 @@ data in a typesafe, declarative, object-oriented way.
|
|
|
11
11
|
4. Clean object format. No risk of your struct field names colliding with
|
|
12
12
|
implementation details. Type inference won't show excessive properties.
|
|
13
13
|
|
|
14
|
-

|
|
15
|
-

|
|
14
|
+
[](https://jsr.io/@rotu/structview)
|
|
15
|
+
[](https://www.npmjs.com/package/@rotu/structview)
|
|
16
16
|
|
|
17
17
|
# example
|
|
18
18
|
|
|
@@ -75,7 +75,7 @@ class Menu extends defineArray({
|
|
|
75
75
|
length: 3,
|
|
76
76
|
}) {}
|
|
77
77
|
|
|
78
|
-
const myMenu =
|
|
78
|
+
const myMenu = Menu.alloc({ byteLength: 48 })
|
|
79
79
|
Object.assign(myMenu.item(0), { name: "garden salad", price: 4 })
|
|
80
80
|
Object.assign(myMenu.item(1), { name: "soup du jour", price: 2.5 })
|
|
81
81
|
Object.assign(myMenu.item(2), { name: "fries", price: 2.25 })
|
package/esm/core.d.ts
CHANGED
|
@@ -24,6 +24,19 @@ export declare function structBytes(struct: AnyStruct, start?: number, end?: num
|
|
|
24
24
|
*/
|
|
25
25
|
export declare class Struct {
|
|
26
26
|
[dataViewSymbol]: DataView;
|
|
27
|
+
/**
|
|
28
|
+
* Create a new instance of this Struct in a newly allocated buffer
|
|
29
|
+
* @param args options for allocation. Note that if the class does not have a static BYTE_LENGTH property, you *must* provide a byteLength here.
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
static alloc<T extends Struct>(this: {
|
|
33
|
+
new ({ buffer }: {
|
|
34
|
+
readonly buffer: ArrayBufferLike;
|
|
35
|
+
}): T;
|
|
36
|
+
}, args?: {
|
|
37
|
+
byteLength?: number;
|
|
38
|
+
maxByteLength?: number;
|
|
39
|
+
}): T;
|
|
27
40
|
get [Symbol.toStringTag](): string;
|
|
28
41
|
static toDataView(o: Struct): DataView;
|
|
29
42
|
static [Symbol.hasInstance](instance: unknown): boolean;
|
|
@@ -35,7 +48,8 @@ export declare class Struct {
|
|
|
35
48
|
* @remarks
|
|
36
49
|
* The reason we don't use a positional argument for `byteLength` is because it's confusing - TypedArray constructors take a `length` argument that is in elements, not bytes.
|
|
37
50
|
* Another reason is because this allows you to pass in a `DataView` or a `TypedArray` directly to reinterpret its memory as a struct.
|
|
38
|
-
|
|
51
|
+
*
|
|
52
|
+
* Instead of passing an undefined `buffer` property, consider using the `.alloc` static method. */
|
|
39
53
|
constructor(arg: {
|
|
40
54
|
readonly buffer: ArrayBufferLike;
|
|
41
55
|
readonly byteOffset?: number;
|
package/esm/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,cAAc,eAAgC,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAM1D;AACD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CAOZ;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;IAE1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;IAItC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO;IAQvD
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,cAAc,eAAgC,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAM1D;AACD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CAOZ;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;IAE1B;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAC3B,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;SAAE,GAAG,CAAC,CAAA;KAAE,EACnE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACrD,CAAC;IAcJ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;IAItC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO;IAQvD;;;;;;;;;uGASmG;gBAEjG,GAAG,EACC;QACA,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAC7B,GACC;QACA,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAC5B;CAyBN;AAsBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,qBAAqB,EACpE,mBAAmB,EAAE,KAAK,GACzB,sBAAsB,CAAC,OAAO,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAmB9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,SAAS,MAAM,EAC7C,YAAY,EAAE;IACZ,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,oIAAoI;IACpI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,GACA,iBAAiB,CAClB;IACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,GAAG,QAAQ,CAAC,IAAI,CAAC,CACnB,CAqDA"}
|
package/esm/core.js
CHANGED
|
@@ -41,6 +41,21 @@ export function structBytes(struct, start, end) {
|
|
|
41
41
|
* Note there are no predeclared string-keyed properties - all property names are reserved for user-defined fields
|
|
42
42
|
*/
|
|
43
43
|
export class Struct {
|
|
44
|
+
/**
|
|
45
|
+
* Create a new instance of this Struct in a newly allocated buffer
|
|
46
|
+
* @param args options for allocation. Note that if the class does not have a static BYTE_LENGTH property, you *must* provide a byteLength here.
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
static alloc(args) {
|
|
50
|
+
const byteLength = args?.byteLength ?? Reflect.get(this, "BYTE_LENGTH");
|
|
51
|
+
const maxByteLength = args?.maxByteLength ??
|
|
52
|
+
Reflect.get(this, "MAX_BYTE_LENGTH");
|
|
53
|
+
if (typeof byteLength !== "number") {
|
|
54
|
+
throw new TypeError("Cannot allocate struct - its class must have a static BYTE_LENGTH property");
|
|
55
|
+
}
|
|
56
|
+
const buffer = new ArrayBuffer(byteLength, { maxByteLength });
|
|
57
|
+
return new this({ buffer });
|
|
58
|
+
}
|
|
44
59
|
get [(_a = dataViewSymbol, Symbol.toStringTag)]() {
|
|
45
60
|
return Struct.name;
|
|
46
61
|
}
|
|
@@ -60,7 +75,8 @@ export class Struct {
|
|
|
60
75
|
* @remarks
|
|
61
76
|
* The reason we don't use a positional argument for `byteLength` is because it's confusing - TypedArray constructors take a `length` argument that is in elements, not bytes.
|
|
62
77
|
* Another reason is because this allows you to pass in a `DataView` or a `TypedArray` directly to reinterpret its memory as a struct.
|
|
63
|
-
|
|
78
|
+
*
|
|
79
|
+
* Instead of passing an undefined `buffer` property, consider using the `.alloc` static method. */
|
|
64
80
|
constructor(arg) {
|
|
65
81
|
Object.defineProperty(this, _a, {
|
|
66
82
|
enumerable: true,
|
package/esm/fields.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Factories for property descriptors representing fields in a binary struct
|
|
3
3
|
* @module
|
|
4
4
|
*/
|
|
5
|
-
import type { StructConstructor, StructPropertyDescriptor, TypedArraySpecies } from "./types.js";
|
|
5
|
+
import type { ReadOnlyAccessorDescriptor, StructConstructor, StructPropertyDescriptor, TypedArraySpecies } from "./types.js";
|
|
6
6
|
/**
|
|
7
7
|
* Field for a 8-bit unsigned integer
|
|
8
8
|
*/
|
|
@@ -73,7 +73,7 @@ export declare function bool(fieldOffset: number): StructPropertyDescriptor<bool
|
|
|
73
73
|
* @param fieldGetter function which, given a dataview, returns
|
|
74
74
|
* @returns
|
|
75
75
|
*/
|
|
76
|
-
export declare function fromDataView<T>(fieldGetter: (dv: DataView) => T): StructPropertyDescriptor<T>;
|
|
76
|
+
export declare function fromDataView<T>(fieldGetter: (dv: DataView) => T): StructPropertyDescriptor<T> & ReadOnlyAccessorDescriptor<T>;
|
|
77
77
|
/**
|
|
78
78
|
* Field for an embedded struct
|
|
79
79
|
* @param ctor constructor for the inner struct
|
|
@@ -81,7 +81,7 @@ export declare function fromDataView<T>(fieldGetter: (dv: DataView) => T): Struc
|
|
|
81
81
|
* @param bytelength the length in bytes of the inner struct
|
|
82
82
|
* @returns property descriptor for a struct
|
|
83
83
|
*/
|
|
84
|
-
export declare function substruct<T extends object>(ctor: StructConstructor<T>, byteOffset?: number, bytelength?: number): StructPropertyDescriptor<T>;
|
|
84
|
+
export declare function substruct<T extends object>(ctor: StructConstructor<T>, byteOffset?: number, bytelength?: number): StructPropertyDescriptor<T> & ReadOnlyAccessorDescriptor<T>;
|
|
85
85
|
/**
|
|
86
86
|
* Field for a typed array
|
|
87
87
|
*
|
|
@@ -98,7 +98,7 @@ export declare function typedArray<T>(fieldOffset: number, kwargs: {
|
|
|
98
98
|
readonly length: number | string | undefined;
|
|
99
99
|
/** TypedArray constructor */
|
|
100
100
|
readonly species: TypedArraySpecies<T>;
|
|
101
|
-
}): StructPropertyDescriptor<T>;
|
|
101
|
+
}): StructPropertyDescriptor<T> & ReadOnlyAccessorDescriptor<T>;
|
|
102
102
|
/**
|
|
103
103
|
* Field for a big-endian 16-bit unsigned integer
|
|
104
104
|
*/
|
package/esm/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,wBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASxE;AACD;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AACD;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AACD;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AACD;;GAEG;AACH,wBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASxE;AACD;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AACD;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AACD;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACrC,wBAAwB,CAAC,MAAM,CAAC,CA0BlC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9B,wBAAwB,CAAC,MAAM,CAAC,CAqBlC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAezE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CASzE;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAAC,MAAM,CAAC,CAqBlC;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAS3E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,CAAC,GAC/B,wBAAwB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
|
package/esm/types.d.ts
CHANGED
|
@@ -25,15 +25,21 @@ export type TPropertyDescriptor<T> = {
|
|
|
25
25
|
writable?: boolean;
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
28
|
-
* Object type that would result from Object.defineProperties(p:Props)
|
|
28
|
+
* Object type that would result from Object.defineProperties({}, p:Props)
|
|
29
29
|
*/
|
|
30
30
|
export type MixinFromProps<Props extends object> = {
|
|
31
|
-
|
|
31
|
+
+readonly [K in keyof Props as (Props[K] extends ReadOnlyAccessorDescriptor<unknown> ? K : never)]: Props[K] extends TPropertyDescriptor<infer V> ? V : unknown;
|
|
32
|
+
} & {
|
|
33
|
+
-readonly [K in keyof Props as (Props[K] extends ReadOnlyAccessorDescriptor<unknown> ? never : K)]: Props[K] extends TPropertyDescriptor<infer V> ? V : unknown;
|
|
32
34
|
};
|
|
33
35
|
/**
|
|
34
36
|
* Type of a property descriptor for a struct
|
|
35
37
|
*/
|
|
36
38
|
export type StructPropertyDescriptor<T> = ThisType<AnyStruct> & TPropertyDescriptor<T>;
|
|
39
|
+
export type ReadOnlyAccessorDescriptor<T> = {
|
|
40
|
+
get(): T;
|
|
41
|
+
set?: undefined;
|
|
42
|
+
};
|
|
37
43
|
export type StructConstructor<T extends object> = {
|
|
38
44
|
new (arg: {
|
|
39
45
|
readonly buffer: ArrayBufferLike;
|
package/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAAE,CAAA;AAExD,MAAM,MAAM,sBAAsB,CAChC,IAAI,SAAS,WAAW,CAAC,MAAM,CAAC,EAChC,KAAK,IAEH;KAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;CAAE,GAC9B;IACA,KACE,GAAG,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,GACnC,YAAY,CAAC,IAAI,CAAC,GAAG;SAAG,CAAC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;KAAE,CAAA;CACzD,CAAA;AAEH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,CAAC,IAAI,CAAC,CAAA;IACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;IACrB,KAAK,CAAC,EAAE,CAAC,CAAA;IACT,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAAE,CAAA;AAExD,MAAM,MAAM,sBAAsB,CAChC,IAAI,SAAS,WAAW,CAAC,MAAM,CAAC,EAChC,KAAK,IAEH;KAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;CAAE,GAC9B;IACA,KACE,GAAG,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,GACnC,YAAY,CAAC,IAAI,CAAC,GAAG;SAAG,CAAC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;KAAE,CAAA;CACzD,CAAA;AAEH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,CAAC,IAAI,CAAC,CAAA;IACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;IACrB,KAAK,CAAC,EAAE,CAAC,CAAA;IACT,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,IAC3C;IACA,CAAC,UACC,CAAC,IACI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,0BAA0B,CAAC,OAAO,CAAC,GACnE,CAAC,GACD,KAAK,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO;CAC/D,GACC;IACA,CAAC,UACC,CAAC,IACI,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,0BAA0B,CAAC,OAAO,CAAC,GACnE,KAAK,GACL,CAAC,CAAC,GACP,KAAK,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO;CAC/D,CAAA;AAEH;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAClC,QAAQ,CAAC,SAAS,CAAC,GACnB,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAE1B,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI;IAC1C,GAAG,IAAI,CAAC,CAAA;IACR,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI;IAChD,KAAK,GAAG,EAAE;QACR,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAC5B,GAAG,CAAC,CAAA;CACN,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,KACE,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,CAAC,CAAA;IACJ,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CACnC,CAAA"}
|