@helios-lang/contract-utils 0.1.11 → 0.1.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helios-lang/contract-utils",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Convenience and type-safety utilities for using Helios validators from within Typescript",
5
5
  "main": "src/index.js",
6
6
  "types": "types/index.d.ts",
package/src/lib/Lib.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * @typedef {{
3
+ * allValidatorTypes: {[name: string]: any},
3
4
  * otherValidators: {[name: string]: {purpose: string, hash: string}},
4
5
  * dependsOnOwnHash?: boolean,
5
6
  * ownHash?: string,
@@ -15,6 +16,7 @@
15
16
  /**
16
17
  * @typedef {{
17
18
  * version: string
19
+ * getValidatorType: (purpose: string) => any
18
20
  * typeCheck: (validators: {[name: string]: SourceDetails}, modules: {[name: string]: SourceDetails}) => ({
19
21
  * modules: {[name: string]: ModuleDetails}, validators: {[name: string]: ValidatorDetails}})
20
22
  * compile: (main: string, modules: string[], options: CompileOptions) => CompileOutput
@@ -129,7 +129,6 @@ export class Lib_v0_16 {
129
129
  }
130
130
 
131
131
  /**
132
- * @private
133
132
  * @param {string} purpose
134
133
  * @returns {HashType}
135
134
  */
@@ -352,15 +351,7 @@ export class Lib_v0_16 {
352
351
  compile(main, modules, options) {
353
352
  const [purpose, name] = readHeader(main)
354
353
  const otherValidators = options.otherValidators ?? {}
355
- const otherValidatorTypes = Object.fromEntries(
356
- Object.keys(otherValidators).map((k) => {
357
- return [k, this.getValidatorType(otherValidators[k].purpose)]
358
- })
359
- )
360
-
361
- if (options.dependsOnOwnHash) {
362
- otherValidatorTypes[name] = this.getValidatorType(purpose)
363
- }
354
+ const otherValidatorTypes = options.allValidatorTypes
364
355
 
365
356
  const program = this.lib.Program.newInternal(
366
357
  main,
@@ -415,7 +406,7 @@ export class Lib_v0_16 {
415
406
  for (let other in otherValidators) {
416
407
  const key = `__helios__scripts__${other}`
417
408
 
418
- extra.set(key, new IR(`#${otherValidators[other]}`))
409
+ extra.set(key, new IR(`#${otherValidators[other].hash}`))
419
410
  }
420
411
 
421
412
  const optimize = options.optimize
package/src/lib/index.js CHANGED
@@ -1 +1,5 @@
1
1
  export { loadLibrary } from "./load.js"
2
+
3
+ /**
4
+ * @typedef {import("./Lib.js").Lib} Lib
5
+ */
@@ -12,6 +12,7 @@ import { Cast } from "./Cast.js"
12
12
  import { ContractContext } from "./ContractContext.js"
13
13
 
14
14
  /**
15
+ * @typedef {import("../lib/index.js").Lib} Lib
15
16
  * @typedef {import("./ContractContext.js").Validator} CompiledValidator
16
17
  */
17
18
 
@@ -106,6 +107,19 @@ export class ContractContextBuilder {
106
107
  })
107
108
  }
108
109
 
110
+ /**
111
+ * @private
112
+ * @param {Lib} lib
113
+ * @returns {{[name: string]: any}}
114
+ */
115
+ getValidatorTypes(lib) {
116
+ return Object.fromEntries(
117
+ Object.entries(this.validators).map(([name, v]) => {
118
+ return [name, lib.getValidatorType(v.$purpose)]
119
+ })
120
+ )
121
+ }
122
+
109
123
  /**
110
124
  *
111
125
  * @param {Option<{[name: string]: string}>} expectedHashes
@@ -136,6 +150,8 @@ export class ContractContextBuilder {
136
150
  build(expectedHashes = None) {
137
151
  const lib = loadLibrary()
138
152
 
153
+ const allValidatorTypes = this.getValidatorTypes(lib)
154
+
139
155
  /**
140
156
  * @type {{[name: string]: (
141
157
  * ValidatorHash<SpendingContext<any, any, any, any>> |
@@ -223,14 +239,13 @@ export class ContractContextBuilder {
223
239
 
224
240
  const modules = collectModules(validator)
225
241
 
226
- const otherValidators = getOtherValidators()
227
-
228
242
  const { cborHex: optimizedCborHex } = lib.compile(
229
243
  validator.$sourceCode,
230
244
  Array.from(modules.values()),
231
245
  {
232
246
  optimize: true,
233
247
  otherValidators: getOtherValidators(),
248
+ allValidatorTypes: allValidatorTypes,
234
249
  dependsOnOwnHash: validator.$dependsOnOwnHash
235
250
  }
236
251
  )
@@ -276,6 +291,7 @@ export class ContractContextBuilder {
276
291
  {
277
292
  optimize: false,
278
293
  otherValidators: getOtherValidators(),
294
+ allValidatorTypes: allValidatorTypes,
279
295
  ownHash: validator.$dependsOnOwnHash ? ownHash : undefined
280
296
  }
281
297
  )
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * @typedef {{
3
+ * allValidatorTypes: {[name: string]: any},
3
4
  * otherValidators: {[name: string]: {purpose: string, hash: string}},
4
5
  * dependsOnOwnHash?: boolean,
5
6
  * ownHash?: string,
@@ -14,6 +15,7 @@
14
15
  /**
15
16
  * @typedef {{
16
17
  * version: string
18
+ * getValidatorType: (purpose: string) => any
17
19
  * typeCheck: (validators: {[name: string]: SourceDetails}, modules: {[name: string]: SourceDetails}) => ({
18
20
  * modules: {[name: string]: ModuleDetails}, validators: {[name: string]: ValidatorDetails}})
19
21
  * compile: (main: string, modules: string[], options: CompileOptions) => CompileOutput
@@ -39,6 +41,9 @@ export function getVersion(lib: {
39
41
  VERSION: string;
40
42
  }): number[];
41
43
  export type CompileOptions = {
44
+ allValidatorTypes: {
45
+ [name: string]: any;
46
+ };
42
47
  otherValidators: {
43
48
  [name: string]: {
44
49
  purpose: string;
@@ -54,6 +59,7 @@ export type CompileOutput = {
54
59
  };
55
60
  export type Lib = {
56
61
  version: string;
62
+ getValidatorType: (purpose: string) => any;
57
63
  typeCheck: (validators: {
58
64
  [name: string]: SourceDetails;
59
65
  }, modules: {
@@ -1 +1 @@
1
- {"version":3,"file":"Lib.d.ts","sourceRoot":"","sources":["../../src/lib/Lib.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AACH,gCAHW;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACf,MAAM,EAAE,CAIpB;;;;qBAzCgD,MAAM;kBAAQ,MAAM;;;;;cAGtD,OAAO;;4BAKT;IACZ,OAAW,EAAE,MAAM,CAAA;CAChB;;aAIU,MAAM;;;;;;;;;;;;;oBAGC,MAAM,WAAW,MAAM,EAAE,WAAW,cAAc,KAAK,aAAa;;kCAK5E,OAAO,qBAAqB,EAAE,UAAU;4BACxC,OAAO,qBAAqB,EAAE,MAAM;+BACpC,OAAO,qBAAqB,EAAE,SAAS;4BAIvC;IACZ,MAAU,MAAM,CAAA;IAChB,OAAW,EAAE,MAAM,CAAA;IACnB,UAAc,EAAE,MAAM,CAAA;CACnB"}
1
+ {"version":3,"file":"Lib.d.ts","sourceRoot":"","sources":["../../src/lib/Lib.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH;;;;;;;;GAQG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AACH,gCAHW;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACf,MAAM,EAAE,CAIpB;;;;;;;qBA1CgD,MAAM;kBAAQ,MAAM;;;;;cAGtD,OAAO;;4BAKT;IACZ,OAAW,EAAE,MAAM,CAAA;CAChB;;aAIU,MAAM;gCACa,MAAM,KAAK,GAAG;;;;;;;;;;;;;oBAG1B,MAAM,WAAW,MAAM,EAAE,WAAW,cAAc,KAAK,aAAa;;kCAK5E,OAAO,qBAAqB,EAAE,UAAU;4BACxC,OAAO,qBAAqB,EAAE,MAAM;+BACpC,OAAO,qBAAqB,EAAE,SAAS;4BAIvC;IACZ,MAAU,MAAM,CAAA;IAChB,OAAW,EAAE,MAAM,CAAA;IACnB,UAAc,EAAE,MAAM,CAAA;CACnB"}
@@ -98,11 +98,10 @@ export class Lib_v0_16 implements Lib {
98
98
  */
99
99
  get version(): string;
100
100
  /**
101
- * @private
102
101
  * @param {string} purpose
103
102
  * @returns {HashType}
104
103
  */
105
- private getValidatorType;
104
+ getValidatorType(purpose: string): HashType;
106
105
  /**
107
106
  * @private
108
107
  * @param {SourceDetails[]} validators
@@ -1 +1 @@
1
- {"version":3,"file":"Libg_v0_16.d.ts","sourceRoot":"","sources":["../../src/lib/Libg_v0_16.js"],"names":[],"mappings":"AAcA;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;GAMG;AACH;;;;;;;;;GASG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IACI;;OAEG;IACH,iBAFW,GAAG,EAIb;IADG,SAAc;IAGlB;;OAEG;IACH,sBAEC;IAED;;;;OAIG;IACH,yBAWC;IAED;;;;;;OAMG;IACH,uBAcC;IAED;;;;;OAKG;IACH,iBAWC;IAED;;;;;OAKG;IACH,6BAeC;IAED;;;;OAIG;IACH;;;;;;;;;;;MAuEC;IAED;;;OAGG;IACH,wBAHW,UAAU,GACR,mBAAmB,CAgC/B;IAED;;;OAGG;IACH,2BAHW,QAAQ,GACN,mBAAmB,CAc/B;IAED;;;;;OAKG;IACH,cALW,MAAM,WACN,MAAM,EAAE,WACR,cAAc,GACZ,aAAa,CAgGzB;CACJ;4BA7bY,OAAO,qBAAqB,EAAE,MAAM;+BACpC,OAAO,qBAAqB,EAAE,SAAS;kCACvC,OAAO,qBAAqB,EAAE,UAAU;6BACxC,OAAO,UAAU,EAAE,cAAc;4BACjC,OAAO,UAAU,EAAE,aAAa;kBAChC,OAAO,UAAU,EAAE,GAAG;4BACtB,OAAO,UAAU,EAAE,aAAa;;;;uBAchC,EACT;;kBAKe,MAAM,KAAK,OAAO;;4BAKxB;IACZ,MAAU,MAAM,CAAA;CACb;8BAIS;IACZ,MAAU,MAAM,CAAA;CACb;wBAIS,eAAe,GAAG,aAAa,GAAG,GAAG;;UAKvC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;8BACK,MAAM,EAAE,KAAK,MAAM,EAAE;gBACnC,SAAS,EAAE;;;UAKjB,MAAM;gBACA,GAAG,SAAS,IAAI,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE;WACvC,SAAS;yBACK,MAAM,EAAE;gBACjB,MAAM;kBACJ,QAAQ,EAAE;;uBAKhB;IACZ,WAAe,CAAC,EAAE,WAAW,CAAA;CAC1B;yBAIS;IACZ,IAAQ,EAAG,MAAM,CAAA;CACd,GAAG;IACN,IAAQ,EAAM,MAAM,CAAA;IACpB,QAAY,EAAE,UAAU,CAAA;CACrB,GAAG;IACN,IAAQ,EAAO,KAAK,CAAA;IACpB,OAAW,EAAI,UAAU,CAAA;IACzB,SAAa,EAAE,UAAU,CAAA;CACtB,GAAG;IACN,IAAQ,EAAM,QAAQ,CAAA;IACtB,QAAY,EAAE,UAAU,CAAA;CACrB,GAAG;IACN,IAAQ,EAAQ,QAAQ,CAAA;IACxB,UAAc,EAAE,eAAe,EAAE,CAAA;CAC9B,GAAG;IACN,IAAQ,EAAU,MAAM,CAAA;IACxB,YAAgB,EAAE;QAAC,MAAM,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,EAAE,CAAA;KAAC,EAAE,CAAA;CAC9D;8BAIS;IACZ,MAAU,MAAM,CAAA;CACb,GAAG,UAAU;0BAIJ;IACZ,SAAa,EAAE,MAAM,CAAA;IACrB,UAAc,EAAE,MAAM,CAAA;IACtB,YAAgB,EAAE,UAAU,CAAA;CACzB;wBAIS,EACT"}
1
+ {"version":3,"file":"Libg_v0_16.d.ts","sourceRoot":"","sources":["../../src/lib/Libg_v0_16.js"],"names":[],"mappings":"AAcA;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;GAMG;AACH;;;;;;;;;GASG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IACI;;OAEG;IACH,iBAFW,GAAG,EAIb;IADG,SAAc;IAGlB;;OAEG;IACH,sBAEC;IAED;;;OAGG;IACH,0BAHW,MAAM,GACJ,QAAQ,CAapB;IAED;;;;;;OAMG;IACH,uBAcC;IAED;;;;;OAKG;IACH,iBAWC;IAED;;;;;OAKG;IACH,6BAeC;IAED;;;;OAIG;IACH;;;;;;;;;;;MAuEC;IAED;;;OAGG;IACH,wBAHW,UAAU,GACR,mBAAmB,CAgC/B;IAED;;;OAGG;IACH,2BAHW,QAAQ,GACN,mBAAmB,CAc/B;IAED;;;;;OAKG;IACH,cALW,MAAM,WACN,MAAM,EAAE,WACR,cAAc,GACZ,aAAa,CAwFzB;CACJ;4BApbY,OAAO,qBAAqB,EAAE,MAAM;+BACpC,OAAO,qBAAqB,EAAE,SAAS;kCACvC,OAAO,qBAAqB,EAAE,UAAU;6BACxC,OAAO,UAAU,EAAE,cAAc;4BACjC,OAAO,UAAU,EAAE,aAAa;kBAChC,OAAO,UAAU,EAAE,GAAG;4BACtB,OAAO,UAAU,EAAE,aAAa;;;;uBAchC,EACT;;kBAKe,MAAM,KAAK,OAAO;;4BAKxB;IACZ,MAAU,MAAM,CAAA;CACb;8BAIS;IACZ,MAAU,MAAM,CAAA;CACb;wBAIS,eAAe,GAAG,aAAa,GAAG,GAAG;;UAKvC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;8BACK,MAAM,EAAE,KAAK,MAAM,EAAE;gBACnC,SAAS,EAAE;;;UAKjB,MAAM;gBACA,GAAG,SAAS,IAAI,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE;WACvC,SAAS;yBACK,MAAM,EAAE;gBACjB,MAAM;kBACJ,QAAQ,EAAE;;uBAKhB;IACZ,WAAe,CAAC,EAAE,WAAW,CAAA;CAC1B;yBAIS;IACZ,IAAQ,EAAG,MAAM,CAAA;CACd,GAAG;IACN,IAAQ,EAAM,MAAM,CAAA;IACpB,QAAY,EAAE,UAAU,CAAA;CACrB,GAAG;IACN,IAAQ,EAAO,KAAK,CAAA;IACpB,OAAW,EAAI,UAAU,CAAA;IACzB,SAAa,EAAE,UAAU,CAAA;CACtB,GAAG;IACN,IAAQ,EAAM,QAAQ,CAAA;IACtB,QAAY,EAAE,UAAU,CAAA;CACrB,GAAG;IACN,IAAQ,EAAQ,QAAQ,CAAA;IACxB,UAAc,EAAE,eAAe,EAAE,CAAA;CAC9B,GAAG;IACN,IAAQ,EAAU,MAAM,CAAA;IACxB,YAAgB,EAAE;QAAC,MAAM,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,EAAE,CAAA;KAAC,EAAE,CAAA;CAC9D;8BAIS;IACZ,MAAU,MAAM,CAAA;CACb,GAAG,UAAU;0BAIJ;IACZ,SAAa,EAAE,MAAM,CAAA;IACrB,UAAc,EAAE,MAAM,CAAA;IACtB,YAAgB,EAAE,UAAU,CAAA;CACzB;wBAIS,EACT"}
@@ -1,2 +1,3 @@
1
1
  export { loadLibrary } from "./load.js";
2
+ export type Lib = import("./Lib.js").Lib;
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.js"],"names":[],"mappings":";kBAGa,OAAO,UAAU,EAAE,GAAG"}
@@ -1,4 +1,5 @@
1
1
  /**
2
+ * @typedef {import("../lib/index.js").Lib} Lib
2
3
  * @typedef {import("./ContractContext.js").Validator} CompiledValidator
3
4
  */
4
5
  /**
@@ -74,6 +75,12 @@ export class ContractContextBuilder<T extends {
74
75
  * }>}
75
76
  */
76
77
  with<V extends Validator>(validator: V): ContractContextBuilder<T & { [K in V["$name"]]: V; }>;
78
+ /**
79
+ * @private
80
+ * @param {Lib} lib
81
+ * @returns {{[name: string]: any}}
82
+ */
83
+ private getValidatorTypes;
77
84
  /**
78
85
  *
79
86
  * @param {Option<{[name: string]: string}>} expectedHashes
@@ -105,6 +112,7 @@ export class ContractContextBuilder<T extends {
105
112
  [name: string]: string;
106
113
  }>): { [K_1 in keyof T]: T[K_1]["$purpose"] extends "spending" ? ValidatorHash<SpendingContext<import("./StrictType.js").StrictType<T[K_1]["$Datum"]>, import("./PermissiveType.js").PermissiveType<T[K_1]["$Datum"]>, import("./StrictType.js").StrictType<T[K_1]["$Redeemer"]>, import("./PermissiveType.js").PermissiveType<T[K_1]["$Redeemer"]>>> : T[K_1]["$purpose"] extends "minting" ? MintingPolicyHash<MintingContext<import("./StrictType.js").StrictType<T[K_1]["$Redeemer"]>, import("./PermissiveType.js").PermissiveType<T[K_1]["$Redeemer"]>>> : T[K_1]["$purpose"] extends "certifying" | "rewarding" ? StakingValidatorHash<StakingContext<import("./StrictType.js").StrictType<T[K_1]["$Redeemer"]>, import("./PermissiveType.js").PermissiveType<T[K_1]["$Redeemer"]>>> : never; };
107
114
  }
115
+ export type Lib = import("../lib/index.js").Lib;
108
116
  export type CompiledValidator = import("./ContractContext.js").Validator;
109
117
  export type MintingContext<TRedeemerStrict, TRedeemerPermissive> = import("@helios-lang/ledger").MintingContext<TRedeemerStrict, TRedeemerPermissive>;
110
118
  export type SpendingContext<TDatumStrict, TDatumPermissive, TRedeemerStrict, TRedeemerPermissive> = import("@helios-lang/ledger").SpendingContext<TDatumStrict, TDatumPermissive, TRedeemerStrict, TRedeemerPermissive>;
@@ -1 +1 @@
1
- {"version":3,"file":"ContractContextBuilder.d.ts","sourceRoot":"","sources":["../../src/runtime/ContractContextBuilder.js"],"names":[],"mappings":"AAaA;;GAEG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH;;;IAgBI;;OAEG;IACH,gBAFa,uBAAuB,EAAE,CAAC,CAItC;IAbD;;;OAGG;IACH,sBAEC;IAbD;;;;OAIG;IACH,4BAAU;IAiBV;;;;;;OAMG;IACH,+FAKC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH;;2wBA6LC;CACJ;gCAvTY,OAAO,sBAAsB,EAAE,SAAS;mEAMxC,OAAO,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC;oGAQlF,OAAO,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,CAAC;mEAMnH,OAAO,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC;6HAKlF,OAAO,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC;yHAK/C,OAAO,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;qBAIvC;IACZ,KAAS,EAAE,MAAM,CAAA;IACjB,WAAe,EAAE,MAAM,CAAA;IACvB,aAAiB,EAAE,MAAM,EAAE,CAAA;CACxB;wBAIS;IACZ,KAAS,EAAE,MAAM,CAAA;IACjB,QAAY,EAAE,MAAM,CAAA;IACpB,WAAe,EAAE,MAAM,CAAA;IACvB,aAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,iBAAqB,EAAE,SAAS,EAAE,CAAA;IAClC,iBAAqB,EAAE,OAAO,CAAA;IAC9B,SAAa,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAU,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAA;CACxB;8BA3DG,qBAAqB;kCAArB,qBAAqB;qCAArB,qBAAqB;qBAIP,WAAW"}
1
+ {"version":3,"file":"ContractContextBuilder.d.ts","sourceRoot":"","sources":["../../src/runtime/ContractContextBuilder.js"],"names":[],"mappings":"AAaA;;;GAGG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH;;;IAgBI;;OAEG;IACH,gBAFa,uBAAuB,EAAE,CAAC,CAItC;IAbD;;;OAGG;IACH,sBAEC;IAbD;;;;OAIG;IACH,4BAAU;IAiBV;;;;;;OAMG;IACH,+FAKC;IAED;;;;OAIG;IACH,0BAMC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH;;2wBA+LC;CACJ;kBAvUY,OAAO,iBAAiB,EAAE,GAAG;gCAC7B,OAAO,sBAAsB,EAAE,SAAS;mEAMxC,OAAO,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC;oGAQlF,OAAO,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,CAAC;mEAMnH,OAAO,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC;6HAKlF,OAAO,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC;yHAK/C,OAAO,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;qBAIvC;IACZ,KAAS,EAAE,MAAM,CAAA;IACjB,WAAe,EAAE,MAAM,CAAA;IACvB,aAAiB,EAAE,MAAM,EAAE,CAAA;CACxB;wBAIS;IACZ,KAAS,EAAE,MAAM,CAAA;IACjB,QAAY,EAAE,MAAM,CAAA;IACpB,WAAe,EAAE,MAAM,CAAA;IACvB,aAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,iBAAqB,EAAE,SAAS,EAAE,CAAA;IAClC,iBAAqB,EAAE,OAAO,CAAA;IAC9B,SAAa,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,MAAU,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAA;CACxB;8BA5DG,qBAAqB;kCAArB,qBAAqB;qCAArB,qBAAqB;qBAIP,WAAW"}