ox 0.14.28 → 0.14.30
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/CHANGELOG.md +24 -0
- package/_cjs/tempo/MultisigConfig.js +19 -21
- package/_cjs/tempo/MultisigConfig.js.map +1 -1
- package/_cjs/tempo/SignatureEnvelope.js +62 -28
- package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/tempo/MultisigConfig.js +60 -49
- package/_esm/tempo/MultisigConfig.js.map +1 -1
- package/_esm/tempo/SignatureEnvelope.js +118 -41
- package/_esm/tempo/SignatureEnvelope.js.map +1 -1
- package/_esm/tempo/index.js +4 -4
- package/_esm/version.js +1 -1
- package/_types/tempo/MultisigConfig.d.ts +68 -56
- package/_types/tempo/MultisigConfig.d.ts.map +1 -1
- package/_types/tempo/SignatureEnvelope.d.ts +90 -26
- package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +4 -4
- package/_types/version.d.ts +1 -1
- package/package.json +1 -1
- package/tempo/MultisigConfig.test.ts +62 -36
- package/tempo/MultisigConfig.ts +102 -95
- package/tempo/SignatureEnvelope.test.ts +226 -27
- package/tempo/SignatureEnvelope.ts +174 -69
- package/tempo/e2e.test.ts +263 -48
- package/tempo/index.ts +4 -4
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.14.30
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#281](https://github.com/wevm/ox/pull/281) [`da3309e`](https://github.com/wevm/ox/commit/da3309e19907db3e5a497140dee5e9041c05f514) Thanks [@jxom](https://github.com/jxom)! - **Breaking (`ox/tempo`):** Removed the TIP-1061 multisig `config_id` concept to match the updated Tempo reference implementation: multisig account addresses now derive directly from the initial config, owner approval digests bind only `account`, the signature wire format is `0x05 || rlp([account, signatures, init?])`, `MultisigConfig.maxOwners` is now 255 with `u8` weights, and owner approvals may be nested multisig signatures.
|
|
8
|
+
|
|
9
|
+
```diff
|
|
10
|
+
- const id = MultisigConfig.toId(genesisConfig)
|
|
11
|
+
- const account = MultisigConfig.getAddress({ genesisConfigId: id })
|
|
12
|
+
+ const account = MultisigConfig.getAddress(genesisConfig)
|
|
13
|
+
|
|
14
|
+
- MultisigConfig.getSignPayload({ payload, account, genesisConfigId })
|
|
15
|
+
+ MultisigConfig.getSignPayload({ payload, account })
|
|
16
|
+
|
|
17
|
+
- SignatureEnvelope.from({ account, genesisConfigId, signatures })
|
|
18
|
+
+ SignatureEnvelope.from({ account, signatures })
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 0.14.29
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [#268](https://github.com/wevm/ox/pull/268) [`ed93945`](https://github.com/wevm/ox/commit/ed93945197dd505d4848535de72a93c225fa8466) Thanks [@jxom](https://github.com/jxom)! - `viem/tempo`: Added `genesisConfig` shorthand to TIP-1061 multisig helpers and renamed `configId` → `genesisConfigId` on the typed `SignatureEnvelope.Multisig`.
|
|
26
|
+
|
|
3
27
|
## 0.14.28
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvalidConfigError = exports.zeroSalt = exports.signatureTypeByte = exports.maxOwnerSignatureBytes = exports.maxOwners = void 0;
|
|
3
|
+
exports.InvalidConfigError = exports.zeroSalt = exports.signatureTypeByte = exports.maxOwnerSignatureBytes = exports.maxNestingDepth = exports.maxOwners = void 0;
|
|
4
4
|
exports.assert = assert;
|
|
5
5
|
exports.from = from;
|
|
6
6
|
exports.fromTuple = fromTuple;
|
|
7
7
|
exports.getAddress = getAddress;
|
|
8
8
|
exports.getSignPayload = getSignPayload;
|
|
9
|
-
exports.toId = toId;
|
|
10
9
|
exports.toTuple = toTuple;
|
|
11
10
|
exports.validate = validate;
|
|
12
11
|
const Address = require("../core/Address.js");
|
|
13
12
|
const Errors = require("../core/Errors.js");
|
|
14
13
|
const Hash = require("../core/Hash.js");
|
|
15
14
|
const Hex = require("../core/Hex.js");
|
|
16
|
-
exports.maxOwners =
|
|
15
|
+
exports.maxOwners = 255;
|
|
16
|
+
exports.maxNestingDepth = 3;
|
|
17
17
|
exports.maxOwnerSignatureBytes = 2049;
|
|
18
18
|
exports.signatureTypeByte = '0x05';
|
|
19
19
|
exports.zeroSalt = `0x${'00'.repeat(32)}`;
|
|
20
20
|
const accountDomain = 'tempo:multisig:account';
|
|
21
|
-
const configDomain = 'tempo:multisig:config';
|
|
22
21
|
const signatureDomain = 'tempo:multisig:signature';
|
|
23
22
|
function assert(config) {
|
|
24
23
|
const { salt, threshold, owners } = config;
|
|
@@ -45,9 +44,9 @@ function assert(config) {
|
|
|
45
44
|
previous = current;
|
|
46
45
|
totalWeight += Number(owner.weight);
|
|
47
46
|
}
|
|
48
|
-
if (totalWeight >
|
|
47
|
+
if (totalWeight > 0xff)
|
|
49
48
|
throw new InvalidConfigError({
|
|
50
|
-
reason: 'total owner weight exceeds
|
|
49
|
+
reason: 'total owner weight exceeds u8 max',
|
|
51
50
|
});
|
|
52
51
|
if (Number(threshold) > totalWeight)
|
|
53
52
|
throw new InvalidConfigError({
|
|
@@ -78,24 +77,23 @@ function fromTuple(tuple) {
|
|
|
78
77
|
}),
|
|
79
78
|
};
|
|
80
79
|
}
|
|
81
|
-
function getAddress(
|
|
82
|
-
const id = 'configId' in value ? value.configId : toId(value.config);
|
|
83
|
-
const hash = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), id));
|
|
84
|
-
return Address.from(Hex.slice(hash, 12, 32));
|
|
85
|
-
}
|
|
86
|
-
function getSignPayload(value) {
|
|
87
|
-
const { payload, account, configId } = value;
|
|
88
|
-
return Hash.keccak256(Hex.concat(Hex.fromString(signatureDomain), Hex.from(payload), account, configId));
|
|
89
|
-
}
|
|
90
|
-
function toId(config) {
|
|
80
|
+
function getAddress(config) {
|
|
91
81
|
assert(config);
|
|
92
|
-
const
|
|
82
|
+
const hash = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), Hex.padLeft(config.salt ?? exports.zeroSalt, 32), Hex.fromNumber(config.threshold, { size: 1 }), Hex.fromNumber(config.owners.length, { size: 1 }), ...config.owners.flatMap((owner) => [
|
|
93
83
|
owner.owner,
|
|
94
|
-
Hex.fromNumber(owner.weight, { size:
|
|
84
|
+
Hex.fromNumber(owner.weight, { size: 1 }),
|
|
95
85
|
])));
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
86
|
+
const account = Address.from(Hex.slice(hash, 12, 32));
|
|
87
|
+
if (Hex.toBigInt(account) === 0n)
|
|
88
|
+
throw new InvalidConfigError({ reason: 'derived account cannot be zero' });
|
|
89
|
+
return account;
|
|
90
|
+
}
|
|
91
|
+
function getSignPayload(value) {
|
|
92
|
+
const { payload } = value;
|
|
93
|
+
const account = 'account' in value && value.account
|
|
94
|
+
? value.account
|
|
95
|
+
: getAddress(value.genesisConfig);
|
|
96
|
+
return Hash.keccak256(Hex.concat(Hex.fromString(signatureDomain), Hex.from(payload), account));
|
|
99
97
|
}
|
|
100
98
|
function toTuple(config) {
|
|
101
99
|
assert(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VerificationError = exports.InvalidSerializedError = exports.MissingPropertiesError = exports.CoercionError = exports.types = exports.magicBytes = void 0;
|
|
3
|
+
exports.VerificationError = exports.InvalidMultisigApprovalError = exports.InvalidSerializedError = exports.MissingPropertiesError = exports.CoercionError = exports.types = exports.magicBytes = void 0;
|
|
4
4
|
exports.assert = assert;
|
|
5
5
|
exports.extractAddress = extractAddress;
|
|
6
6
|
exports.extractPublicKey = extractPublicKey;
|
|
@@ -95,19 +95,37 @@ function assert(envelope) {
|
|
|
95
95
|
const missing = [];
|
|
96
96
|
if (!multisig.account)
|
|
97
97
|
missing.push('account');
|
|
98
|
-
if (!multisig.configId)
|
|
99
|
-
missing.push('configId');
|
|
100
98
|
if (!Array.isArray(multisig.signatures))
|
|
101
99
|
missing.push('signatures');
|
|
102
100
|
if (missing.length > 0)
|
|
103
101
|
throw new MissingPropertiesError({ envelope, missing, type: 'multisig' });
|
|
104
|
-
|
|
102
|
+
if (getNestingDepth(multisig) > MultisigConfig.maxNestingDepth)
|
|
103
|
+
throw new InvalidMultisigApprovalError({
|
|
104
|
+
reason: `multisig nesting depth exceeds ${MultisigConfig.maxNestingDepth}`,
|
|
105
|
+
});
|
|
106
|
+
for (const inner of multisig.signatures) {
|
|
107
|
+
if (inner.type === 'keychain')
|
|
108
|
+
throw new InvalidMultisigApprovalError({
|
|
109
|
+
reason: 'keychain owner approvals are not allowed',
|
|
110
|
+
});
|
|
111
|
+
if (inner.type === 'multisig' && inner.init)
|
|
112
|
+
throw new InvalidMultisigApprovalError({
|
|
113
|
+
reason: 'nested multisig owner approvals cannot carry `init`',
|
|
114
|
+
});
|
|
105
115
|
assert(inner);
|
|
116
|
+
}
|
|
106
117
|
if (multisig.init)
|
|
107
118
|
MultisigConfig.assert(multisig.init);
|
|
108
119
|
return;
|
|
109
120
|
}
|
|
110
121
|
}
|
|
122
|
+
function getNestingDepth(envelope) {
|
|
123
|
+
let deepest = 0;
|
|
124
|
+
for (const inner of envelope.signatures)
|
|
125
|
+
if (inner.type === 'multisig')
|
|
126
|
+
deepest = Math.max(deepest, getNestingDepth(inner));
|
|
127
|
+
return 1 + deepest;
|
|
128
|
+
}
|
|
111
129
|
function extractAddress(options) {
|
|
112
130
|
const { signature, root } = options;
|
|
113
131
|
if (signature.type === 'keychain') {
|
|
@@ -225,16 +243,18 @@ function deserialize(value) {
|
|
|
225
243
|
};
|
|
226
244
|
}
|
|
227
245
|
if (typeId === serializedMultisigType) {
|
|
228
|
-
const [account,
|
|
246
|
+
const [account, signatures, init] = Rlp.toHex(data);
|
|
247
|
+
if (typeof init !== 'undefined' && !Array.isArray(init))
|
|
248
|
+
throw new InvalidSerializedError({
|
|
249
|
+
reason: 'Invalid multisig `init`: expected the bootstrap config list or an omitted trailing element',
|
|
250
|
+
serialized,
|
|
251
|
+
});
|
|
229
252
|
return {
|
|
230
253
|
type: 'multisig',
|
|
231
254
|
account,
|
|
232
|
-
configId,
|
|
233
255
|
signatures: signatures.map((signature) => deserialize(signature)),
|
|
234
|
-
...(init
|
|
235
|
-
? {
|
|
236
|
-
init: MultisigConfig.fromTuple(init),
|
|
237
|
-
}
|
|
256
|
+
...(init
|
|
257
|
+
? { init: MultisigConfig.fromTuple(init) }
|
|
238
258
|
: {}),
|
|
239
259
|
};
|
|
240
260
|
}
|
|
@@ -255,10 +275,20 @@ function from(value, options) {
|
|
|
255
275
|
const type = getType(value);
|
|
256
276
|
if (type === 'multisig') {
|
|
257
277
|
const multisig = value;
|
|
278
|
+
const { genesisConfig, init, ...rest } = multisig;
|
|
279
|
+
const account = (() => {
|
|
280
|
+
if (rest.account)
|
|
281
|
+
return rest.account;
|
|
282
|
+
if (genesisConfig)
|
|
283
|
+
return MultisigConfig.getAddress(genesisConfig);
|
|
284
|
+
return rest.account;
|
|
285
|
+
})();
|
|
286
|
+
const initSource = init === true ? genesisConfig : init || undefined;
|
|
258
287
|
return {
|
|
259
|
-
...
|
|
260
|
-
|
|
261
|
-
|
|
288
|
+
...rest,
|
|
289
|
+
account,
|
|
290
|
+
signatures: rest.signatures.map((signature) => from(signature)),
|
|
291
|
+
...(initSource ? { init: MultisigConfig.from(initSource) } : {}),
|
|
262
292
|
type,
|
|
263
293
|
};
|
|
264
294
|
}
|
|
@@ -365,14 +395,11 @@ function fromRpc(envelope) {
|
|
|
365
395
|
};
|
|
366
396
|
}
|
|
367
397
|
if (envelope.type === 'multisig' ||
|
|
368
|
-
('account' in envelope &&
|
|
369
|
-
'configId' in envelope &&
|
|
370
|
-
'signatures' in envelope)) {
|
|
398
|
+
('account' in envelope && 'signatures' in envelope)) {
|
|
371
399
|
const multisig = envelope;
|
|
372
400
|
return {
|
|
373
401
|
type: 'multisig',
|
|
374
402
|
account: multisig.account,
|
|
375
|
-
configId: multisig.configId,
|
|
376
403
|
signatures: multisig.signatures.map((signature) => deserialize(signature)),
|
|
377
404
|
...(multisig.init ? { init: MultisigConfig.from(multisig.init) } : {}),
|
|
378
405
|
};
|
|
@@ -405,8 +432,7 @@ function getType(envelope) {
|
|
|
405
432
|
return 'webAuthn';
|
|
406
433
|
if ('userAddress' in envelope && 'inner' in envelope)
|
|
407
434
|
return 'keychain';
|
|
408
|
-
if ('account' in envelope &&
|
|
409
|
-
'configId' in envelope &&
|
|
435
|
+
if (('account' in envelope || 'genesisConfig' in envelope) &&
|
|
410
436
|
'signatures' in envelope)
|
|
411
437
|
return 'multisig';
|
|
412
438
|
throw new CoercionError({
|
|
@@ -439,20 +465,17 @@ function serialize(envelope, options = {}) {
|
|
|
439
465
|
const multisig = envelope;
|
|
440
466
|
return Hex.concat(serializedMultisigType, Rlp.fromHex([
|
|
441
467
|
multisig.account,
|
|
442
|
-
multisig.configId,
|
|
443
468
|
multisig.signatures.map((signature) => serialize(signature)),
|
|
444
|
-
multisig.init ? MultisigConfig.toTuple(multisig.init) :
|
|
469
|
+
...(multisig.init ? [MultisigConfig.toTuple(multisig.init)] : []),
|
|
445
470
|
]), options.magic ? exports.magicBytes : '0x');
|
|
446
471
|
}
|
|
447
472
|
throw new CoercionError({ envelope });
|
|
448
473
|
}
|
|
449
474
|
function sortMultisigApprovals(value) {
|
|
450
|
-
const {
|
|
451
|
-
const digest = MultisigConfig.getSignPayload(
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
payload,
|
|
455
|
-
});
|
|
475
|
+
const { payload, signatures } = value;
|
|
476
|
+
const digest = MultisigConfig.getSignPayload('genesisConfig' in value && value.genesisConfig
|
|
477
|
+
? { payload, genesisConfig: value.genesisConfig }
|
|
478
|
+
: { payload, account: value.account });
|
|
456
479
|
return signatures
|
|
457
480
|
.map((signature) => ({
|
|
458
481
|
key: Hex.toBigInt(extractAddress({ payload: digest, signature })),
|
|
@@ -508,7 +531,6 @@ function toRpc(envelope) {
|
|
|
508
531
|
return {
|
|
509
532
|
type: 'multisig',
|
|
510
533
|
account: multisig.account,
|
|
511
|
-
configId: multisig.configId,
|
|
512
534
|
signatures: multisig.signatures.map((signature) => serialize(signature)),
|
|
513
535
|
...(multisig.init ? { init: multisig.init } : {}),
|
|
514
536
|
};
|
|
@@ -607,6 +629,18 @@ class InvalidSerializedError extends Errors.BaseError {
|
|
|
607
629
|
}
|
|
608
630
|
}
|
|
609
631
|
exports.InvalidSerializedError = InvalidSerializedError;
|
|
632
|
+
class InvalidMultisigApprovalError extends Errors.BaseError {
|
|
633
|
+
constructor({ reason }) {
|
|
634
|
+
super(`Invalid native multisig owner approval: ${reason}.`);
|
|
635
|
+
Object.defineProperty(this, "name", {
|
|
636
|
+
enumerable: true,
|
|
637
|
+
configurable: true,
|
|
638
|
+
writable: true,
|
|
639
|
+
value: 'SignatureEnvelope.InvalidMultisigApprovalError'
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
exports.InvalidMultisigApprovalError = InvalidMultisigApprovalError;
|
|
610
644
|
class VerificationError extends Errors.BaseError {
|
|
611
645
|
constructor() {
|
|
612
646
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureEnvelope.js","sourceRoot":"","sources":["../../tempo/SignatureEnvelope.ts"],"names":[],"mappings":";;;AA6QA,wBAqEC;AAoCD,wCAYC;AA6CD,4CAqBC;AAyCD,kCAoJC;AAqHD,oBA+DC;AAmDD,0BAuGC;AA2BD,0BA2DC;AA4BD,8BAiFC;AA0DD,sDAkBC;AAoCD,sBAgEC;AA0BD,4BASC;AA8GD,wBAiDC;AApgDD,8CAA6C;AAE7C,4CAA2C;AAC3C,sCAAqC;AASrC,wCAAuC;AACvC,2CAA0C;AAE1C,sCAAqC;AACrC,qDAAoD;AACpD,kDAAiD;AAEjD,2DAA0D;AAC1D,sDAAqD;AAGrD,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACjC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,wBAAwB,GAAG,MAAM,CAAA;AACvC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAGxB,QAAA,UAAU,GACrB,oEAAoE,CAAA;AAqNzD,QAAA,KAAK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAU,CAAA;AAyB/D,SAAgB,MAAM,CAAC,QAA8C;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAqB,CAAA;QACvC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAgB,CAAA;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtE,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtE,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aACzC,CAAC;YACJ,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACrE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACvE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1E,IAAI,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aAC3C,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB;gBACtC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;YAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc;gBACnC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aAC7C,CAAC;YACJ,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACzE,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACtB,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3E,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU;YAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACtD,IAAI,QAAQ,CAAC,IAAI;YAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvD,OAAM;IACR,CAAC;AACH,CAAC;AAoCD,SAAgB,cAAc,CAC5B,OAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACnC,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAClC,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,WAAW,CAAA;QACtC,OAAO,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IACnE,CAAC;IAGD,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC,OAAO,CAAA;IAC3D,OAAO,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AACzD,CAAC;AA6CD,SAAgB,gBAAgB,CAC9B,OAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEtC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,YAAY,CAAC,gBAAgB,CAAC;gBACnC,OAAO;gBACP,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC,CAAA;QACJ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,SAAS,CAAA;QAC5B,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;QAClE,KAAK,UAAU;YAGb,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC;AAyCD,SAAgB,WAAW,CAAC,KAAiB;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAA;IAET,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAGjC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC/C,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAsB,CAAA;IAC7D,CAAC;IAGD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QAElC,IAAI,QAAQ,KAAK,GAAG;YAClB,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EAAE,iEAAiE,QAAQ,QAAQ;gBACzF,UAAU;aACX,CAAC,CAAA;QAEJ,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;aAC1C;YACD,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;YACtD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aACzC;YACD,IAAI,EAAE,MAAM;SACE,CAAA;IAClB,CAAC;IAED,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QAGtC,IAAI,QAAQ,GAAG,GAAG;YAChB,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EAAE,8EAA8E,QAAQ,QAAQ;gBACtG,UAAU;aACX,CAAC,CAAA;QAEJ,MAAM,gBAAgB,GAAG,QAAQ,GAAG,GAAG,CAAA;QACvC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAKzD,IAAI,iBAAsC,CAAA;QAC1C,IAAI,cAAkC,CAAA;QAGtC,KAAK,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;YAClE,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;oBACzB,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;oBACrD,cAAc,GAAG,aAAa,CAAA;oBAC9B,MAAK;gBACP,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc;YACvC,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EACJ,iGAAiG;gBACnG,UAAU;aACX,CAAC,CAAA;QAEJ,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAC9D;gBACD,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,EAAE,gBAAgB,GAAG,GAAG,CAAC,CAC/D;aACF;YACD,QAAQ,EAAE;gBACR,iBAAiB;gBACjB,cAAc;aACf;YACD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,EAAE,CAAC,CACzD;gBACD,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAC9D;aACF;YACD,IAAI,EAAE,UAAU;SACE,CAAA;IACtB,CAAC;IAED,IACE,MAAM,KAAK,sBAAsB;QACjC,MAAM,KAAK,wBAAwB,EACnC,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QAE9C,OAAO;YACL,WAAW;YACX,KAAK;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAM,KAAK,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACxC,CAAA;IACtB,CAAC;IAED,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QAItC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAK3D,CAAA;QACD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO;YACP,QAAQ;YACR,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI;gBACvB,CAAC,CAAC;oBACE,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAA4B,CAAC;iBAC7D;gBACH,CAAC,CAAC,EAAE,CAAC;SACW,CAAA;IACtB,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC;QAC/B,MAAM,EAAE,sCAAsC,MAAM,cAAc,kBAAkB,YAAY,sBAAsB,gBAAgB,sBAAsB,mBAAmB,wBAAwB,sBAAsB,sBAAsB,aAAa;QAChQ,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAqHD,SAAgB,IAAI,CAClB,KAAyB,EACzB,OAAkC;IAElC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,KAAK,CAAU,CAAA;IAEjE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,GAAG,IAAI,KAAK;QACZ,GAAG,IAAI,KAAK;QACZ,SAAS,IAAI,KAAK;QAElB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAW,CAAA;IAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAE3B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,KAAiB,CAAA;QAClC,OAAO;YACL,GAAG,QAAQ;YACX,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAGnE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI;SACI,CAAA;IACZ,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,KAAK,UAAU;YACrB,CAAC,CAAC;gBACE,GAAG,CAAC,CAAC,CACH,OAAO,KAAK,KAAK,QAAQ;oBACzB,KAAK,KAAK,IAAI;oBACd,SAAS,IAAI,KAAK;oBAClB,KAAK,CAAC,OAAO,CACd;oBACC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;oBACnB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;oBACjE,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,MAAM,KAAK,GAAI,KAAkB,CAAC,KAAK,CAAA;wBACvC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;4BACpD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAA;wBAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,EAAE,OAAO;4BAChD,OAAO;gCACL,KAAK,EAAE,OAAO,CAAC,aAAa,CAC1B,YAAY,CAAC,gBAAgB,CAAC;oCAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oCACxB,SAAS,EAAE,KAAK,CAAC,SAAS;iCAC3B,CAAC,CACH;6BACF,CAAA;wBACH,OAAO,EAAE,CAAA;oBACX,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC,EAAE,CAAC;QACP,IAAI;KACI,CAAA;AACZ,CAAC;AAmDD,SAAgB,OAAO,CAAC,QAA8B;IACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;QAC/B,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtC,IAAI,EAAE,WAAW;SAClB,CAAA;IAEH,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;aAClC;YACD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,EAAE,MAAM;SACb,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;QAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAG/C,IAAI,iBAAsC,CAAA;QAC1C,IAAI,cAAkC,CAAA;QAGtC,KAAK,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;YAClE,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;oBACzB,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;oBACrD,cAAc,GAAG,aAAa,CAAA;oBAC9B,MAAK;gBACP,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc;YACvC,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EACJ,iGAAiG;gBACnG,UAAU,EAAE,YAAY;aACzB,CAAC,CAAA;QAEJ,OAAO;YACL,QAAQ,EAAE;gBACR,iBAAiB;gBACjB,cAAc;aACf;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;aAClC;YACD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,EAAE,UAAU;SACjB,CAAA;IACH,CAAC;IAED,IACE,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,aAAa,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,CAAC,EACtD,CAAC;QACD,MAAM,QAAQ,GAAG,QAAuB,CAAA;QACxC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAA;IACH,CAAC;IAED,IACE,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,SAAS,IAAI,QAAQ;YACpB,UAAU,IAAI,QAAQ;YACtB,YAAY,IAAI,QAAQ,CAAC,EAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,QAAuB,CAAA;QACxC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAE3B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,WAAW,CAAC,SAAS,CAAC,CACvB;YACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAA;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC;AA2BD,SAAgB,OAAO,CAKrB,QAAkB;IAClB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QACnD,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEvC,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC,IAAa,CAAA;IAGtE,IACE,WAAW,IAAI,QAAQ;QACvB,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC;QAC1B,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QACtC,QAAQ,CAAC,SAAS,KAAK,IAAI;QAC3B,GAAG,IAAI,QAAQ,CAAC,SAAS;QACzB,GAAG,IAAI,QAAQ,CAAC,SAAS;QACzB,SAAS,IAAI,QAAQ,CAAC,SAAS;QAE/B,OAAO,WAAoB,CAAA;IAG7B,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ;QAC7D,OAAO,WAAoB,CAAA;IAG7B,IACE,WAAW,IAAI,QAAQ;QACvB,SAAS,IAAI,QAAQ;QACrB,WAAW,IAAI,QAAQ;QACvB,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS;QAErC,OAAO,MAAe,CAAA;IAGxB,IACE,WAAW,IAAI,QAAQ;QACvB,UAAU,IAAI,QAAQ;QACtB,WAAW,IAAI,QAAQ;QAEvB,OAAO,UAAmB,CAAA;IAG5B,IAAI,aAAa,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ;QAClD,OAAO,UAAmB,CAAA;IAG5B,IACE,SAAS,IAAI,QAAQ;QACrB,UAAU,IAAI,QAAQ;QACtB,YAAY,IAAI,QAAQ;QAExB,OAAO,UAAmB,CAAA;IAE5B,MAAM,IAAI,aAAa,CAAC;QACtB,QAAQ;KACT,CAAC,CAAA;AACJ,CAAC;AA4BD,SAAgB,SAAS,CACvB,QAAsD,EACtD,UAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAG9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAqB,CAAA;QACvC,OAAO,GAAG,CAAC,MAAM,CACf,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EACpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAgB,CAAA;QAE7B,OAAO,GAAG,CAAC,MAAM,CACf,kBAAkB,EAClB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EACjD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QAErC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAC7B,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EACnC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CACjD,CAAA;QAED,OAAO,GAAG,CAAC,MAAM,CACf,sBAAsB,EACtB,YAAY,EACZ,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,cAAc,GAClB,QAAQ,CAAC,OAAO,KAAK,IAAI;YACvB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,wBAAwB,CAAA;QAC9B,OAAO,GAAG,CAAC,MAAM,CACf,cAAc,EACd,QAAQ,CAAC,WAAW,EACpB,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QAKrC,OAAO,GAAG,CAAC,MAAM,CACf,sBAAsB,EACtB,GAAG,CAAC,OAAO,CAAC;YACV,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC7D,CAAC,EACF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC;AA0DD,SAAgB,qBAAqB,CACnC,KAAkC;IAElC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IACxD,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,OAAO;KACR,CAAC,CAAA;IAGF,OAAO,UAAU;SACd,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,SAAS;KACV,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACpC,CAAC;AAoCD,SAAgB,KAAK,CAAC,QAA2B;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAqB,CAAA;QACvC,OAAO;YACL,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,WAAW;SAClB,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAgB,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACvD,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACvD,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACjD,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,EAAE,MAAM;SACb,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAC7B,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EACnC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CACjD,CAAA;QAED,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC3D,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC3D,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACrD,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACrD,IAAI,EAAE,UAAU;YAChB,YAAY;SACb,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAE3B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACxE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAA;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC;AA0BD,SAAgB,QAAQ,CACtB,QAA8C;IAE9C,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AA8GD,SAAgB,MAAM,CACpB,SAA4B,EAC5B,UAA6B;IAE7B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAE9B,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC,OAAO,CAAA;QACjD,IAAI,UAAU,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC5E,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAEhC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAA;QAC1B,OAAO,YAAY,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,OAAO;YACP,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;QAC5D,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,QAAQ,CAAC,OAAO;YACtB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,OAAO;YACP,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;QAC5D,OAAO,eAAe,CAAC,MAAM,CAAC;YAC5B,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,IAAI,iBAAiB,CACzB,gDAAgD,QAAQ,CAAC,IAAI,IAAI,CAClE,CAAA;AACH,CAAC;AAqBD,MAAa,aAAc,SAAQ,MAAM,CAAC,SAAS;IAEjD,YAAY,EAAE,QAAQ,EAAyB;QAC7C,KAAK,CACH,6BAA6B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oCAAoC,CAC1F,CAAA;QAJe;;;;mBAAO,iCAAiC;WAAA;IAK1D,CAAC;CACF;AAPD,sCAOC;AAKD,MAAa,sBAAuB,SAAQ,MAAM,CAAC,SAAS;IAE1D,YAAY,EACV,QAAQ,EACR,OAAO,EACP,IAAI,GAKL;QACC,KAAK,CACH,+BAA+B,IAAI,qCAAqC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC9J,CAAA;QAZe;;;;mBAAO,0CAA0C;WAAA;IAanE,CAAC;CACF;AAfD,wDAeC;AAKD,MAAa,sBAAuB,SAAQ,MAAM,CAAC,SAAS;IAE1D,YAAY,EACV,MAAM,EACN,UAAU,GAIX;QACC,KAAK,CAAC,6CAA6C,MAAM,EAAE,EAAE;YAC3D,YAAY,EAAE,CAAC,eAAe,UAAU,EAAE,CAAC;SAC5C,CAAC,CAAA;QAVc;;;;mBAAO,0CAA0C;WAAA;IAWnE,CAAC;CACF;AAbD,wDAaC;AAKD,MAAa,iBAAkB,SAAQ,MAAM,CAAC,SAAS;IAAvD;;QACoB;;;;mBAAO,qCAAqC;WAAA;IAChE,CAAC;CAAA;AAFD,8CAEC"}
|
|
1
|
+
{"version":3,"file":"SignatureEnvelope.js","sourceRoot":"","sources":["../../tempo/SignatureEnvelope.ts"],"names":[],"mappings":";;;AA8QA,wBAkFC;AA8CD,wCAYC;AA6CD,4CAqBC;AAyCD,kCAsJC;AA0JD,oBA8EC;AAmED,0BAoGC;AA2BD,0BA0DC;AA4BD,8BA+EC;AA0DD,sDAkBC;AA4CD,sBA+DC;AA0BD,4BASC;AA8GD,wBAiDC;AAnmDD,8CAA6C;AAE7C,4CAA2C;AAC3C,sCAAqC;AASrC,wCAAuC;AACvC,2CAA0C;AAE1C,sCAAqC;AACrC,qDAAoD;AACpD,kDAAiD;AAEjD,2DAA0D;AAC1D,sDAAqD;AAGrD,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACjC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,wBAAwB,GAAG,MAAM,CAAA;AACvC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAGxB,QAAA,UAAU,GACrB,oEAAoE,CAAA;AAsNzD,QAAA,KAAK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAU,CAAA;AAyB/D,SAAgB,MAAM,CAAC,QAA8C;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAqB,CAAA;QACvC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAgB,CAAA;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtE,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtE,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aACzC,CAAC;YACJ,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACrE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACvE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1E,IAAI,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aAC3C,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB;gBACtC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;YAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc;gBACnC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aAC7C,CAAC;YACJ,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACzE,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACtB,OAAM;IACR,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3E,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,eAAe;YAC5D,MAAM,IAAI,4BAA4B,CAAC;gBACrC,MAAM,EAAE,kCAAkC,cAAc,CAAC,eAAe,EAAE;aAC3E,CAAC,CAAA;QACJ,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAC3B,MAAM,IAAI,4BAA4B,CAAC;oBACrC,MAAM,EAAE,0CAA0C;iBACnD,CAAC,CAAA;YACJ,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI;gBACzC,MAAM,IAAI,4BAA4B,CAAC;oBACrC,MAAM,EAAE,qDAAqD;iBAC9D,CAAC,CAAA;YACJ,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI;YAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvD,OAAM;IACR,CAAC;AACH,CAAC;AAaD,SAAS,eAAe,CAAC,QAAkB;IACzC,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAC3B,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,OAAO,CAAA;AACpB,CAAC;AA2BD,SAAgB,cAAc,CAC5B,OAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACnC,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAClC,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,WAAW,CAAA;QACtC,OAAO,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IACnE,CAAC;IAGD,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC,OAAO,CAAA;IAC3D,OAAO,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AACzD,CAAC;AA6CD,SAAgB,gBAAgB,CAC9B,OAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEtC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,YAAY,CAAC,gBAAgB,CAAC;gBACnC,OAAO;gBACP,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC,CAAA;QACJ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,SAAS,CAAA;QAC5B,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;QAClE,KAAK,UAAU;YAGb,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC;AAyCD,SAAgB,WAAW,CAAC,KAAiB;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAA;IAET,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAGjC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC/C,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAsB,CAAA;IAC7D,CAAC;IAGD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QAElC,IAAI,QAAQ,KAAK,GAAG;YAClB,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EAAE,iEAAiE,QAAQ,QAAQ;gBACzF,UAAU;aACX,CAAC,CAAA;QAEJ,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;aAC1C;YACD,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;YACtD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aACzC;YACD,IAAI,EAAE,MAAM;SACE,CAAA;IAClB,CAAC;IAED,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QAGtC,IAAI,QAAQ,GAAG,GAAG;YAChB,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EAAE,8EAA8E,QAAQ,QAAQ;gBACtG,UAAU;aACX,CAAC,CAAA;QAEJ,MAAM,gBAAgB,GAAG,QAAQ,GAAG,GAAG,CAAA;QACvC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAKzD,IAAI,iBAAsC,CAAA;QAC1C,IAAI,cAAkC,CAAA;QAGtC,KAAK,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;YAClE,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;oBACzB,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;oBACrD,cAAc,GAAG,aAAa,CAAA;oBAC9B,MAAK;gBACP,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc;YACvC,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EACJ,iGAAiG;gBACnG,UAAU;aACX,CAAC,CAAA;QAEJ,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAC9D;gBACD,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,EAAE,gBAAgB,GAAG,GAAG,CAAC,CAC/D;aACF;YACD,QAAQ,EAAE;gBACR,iBAAiB;gBACjB,cAAc;aACf;YACD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,EAAE,CAAC,CACzD;gBACD,CAAC,EAAE,GAAG,CAAC,QAAQ,CACb,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,EAAE,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAC9D;aACF;YACD,IAAI,EAAE,UAAU;SACE,CAAA;IACtB,CAAC;IAED,IACE,MAAM,KAAK,sBAAsB;QACjC,MAAM,KAAK,wBAAwB,EACnC,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QAE9C,OAAO;YACL,WAAW;YACX,KAAK;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAM,KAAK,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACxC,CAAA;IACtB,CAAC;IAED,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QAItC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAIjD,CAAA;QACD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACrD,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EACJ,4FAA4F;gBAC9F,UAAU;aACX,CAAC,CAAA;QACJ,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO;YACP,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI;gBACN,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAA4B,CAAC,EAAE;gBAClE,CAAC,CAAC,EAAE,CAAC;SACW,CAAA;IACtB,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC;QAC/B,MAAM,EAAE,sCAAsC,MAAM,cAAc,kBAAkB,YAAY,sBAAsB,gBAAgB,sBAAsB,mBAAmB,wBAAwB,sBAAsB,sBAAsB,aAAa;QAChQ,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AA0JD,SAAgB,IAAI,CAClB,KAAyB,EACzB,OAAkC;IAElC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,KAAK,CAAU,CAAA;IAEjE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,GAAG,IAAI,KAAK;QACZ,GAAG,IAAI,KAAK;QACZ,SAAS,IAAI,KAAK;QAElB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAW,CAAA;IAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAE3B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,KAGhB,CAAA;QACD,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAA;QAEjD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAA;YACrC,IAAI,aAAa;gBAAE,OAAO,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;YAClE,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC,CAAC,EAAE,CAAA;QAIJ,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAA;QACpE,OAAO;YACL,GAAG,IAAI;YACP,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAG/D,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,IAAI;SACI,CAAA;IACZ,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAG,KAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,KAAK,UAAU;YACrB,CAAC,CAAC;gBACE,GAAG,CAAC,CAAC,CACH,OAAO,KAAK,KAAK,QAAQ;oBACzB,KAAK,KAAK,IAAI;oBACd,SAAS,IAAI,KAAK;oBAClB,KAAK,CAAC,OAAO,CACd;oBACC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;oBACnB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;oBACjE,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,MAAM,KAAK,GAAI,KAAkB,CAAC,KAAK,CAAA;wBACvC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;4BACpD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAA;wBAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,EAAE,OAAO;4BAChD,OAAO;gCACL,KAAK,EAAE,OAAO,CAAC,aAAa,CAC1B,YAAY,CAAC,gBAAgB,CAAC;oCAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oCACxB,SAAS,EAAE,KAAK,CAAC,SAAS;iCAC3B,CAAC,CACH;6BACF,CAAA;wBACH,OAAO,EAAE,CAAA;oBACX,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC,EAAE,CAAC;QACP,IAAI;KACI,CAAA;AACZ,CAAC;AAmED,SAAgB,OAAO,CAAC,QAA8B;IACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;QAC/B,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtC,IAAI,EAAE,WAAW;SAClB,CAAA;IAEH,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;aAClC;YACD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,EAAE,MAAM;SACb,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;QAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAG/C,IAAI,iBAAsC,CAAA;QAC1C,IAAI,cAAkC,CAAA;QAGtC,KAAK,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;YAClE,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;oBACzB,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;oBACrD,cAAc,GAAG,aAAa,CAAA;oBAC9B,MAAK;gBACP,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc;YACvC,MAAM,IAAI,sBAAsB,CAAC;gBAC/B,MAAM,EACJ,iGAAiG;gBACnG,UAAU,EAAE,YAAY;aACzB,CAAC,CAAA;QAEJ,OAAO;YACL,QAAQ,EAAE;gBACR,iBAAiB;gBACjB,cAAc;aACf;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;aAClC;YACD,SAAS,EAAE;gBACT,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,EAAE,UAAU;SACjB,CAAA;IACH,CAAC;IAED,IACE,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,aAAa,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,CAAC,EACtD,CAAC;QACD,MAAM,QAAQ,GAAG,QAAuB,CAAA;QACxC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAA;IACH,CAAC;IAED,IACE,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,SAAS,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,CAAC,EACnD,CAAC;QACD,MAAM,QAAQ,GAAG,QAAuB,CAAA;QACxC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;YAEzB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,WAAW,CAAC,SAAS,CAAC,CACvB;YACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAA;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC;AA2BD,SAAgB,OAAO,CAKrB,QAAkB;IAClB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QACnD,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEvC,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC,IAAa,CAAA;IAGtE,IACE,WAAW,IAAI,QAAQ;QACvB,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC;QAC1B,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QACtC,QAAQ,CAAC,SAAS,KAAK,IAAI;QAC3B,GAAG,IAAI,QAAQ,CAAC,SAAS;QACzB,GAAG,IAAI,QAAQ,CAAC,SAAS;QACzB,SAAS,IAAI,QAAQ,CAAC,SAAS;QAE/B,OAAO,WAAoB,CAAA;IAG7B,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ;QAC7D,OAAO,WAAoB,CAAA;IAG7B,IACE,WAAW,IAAI,QAAQ;QACvB,SAAS,IAAI,QAAQ;QACrB,WAAW,IAAI,QAAQ;QACvB,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS;QAErC,OAAO,MAAe,CAAA;IAGxB,IACE,WAAW,IAAI,QAAQ;QACvB,UAAU,IAAI,QAAQ;QACtB,WAAW,IAAI,QAAQ;QAEvB,OAAO,UAAmB,CAAA;IAG5B,IAAI,aAAa,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ;QAClD,OAAO,UAAmB,CAAA;IAG5B,IACE,CAAC,SAAS,IAAI,QAAQ,IAAI,eAAe,IAAI,QAAQ,CAAC;QACtD,YAAY,IAAI,QAAQ;QAExB,OAAO,UAAmB,CAAA;IAE5B,MAAM,IAAI,aAAa,CAAC;QACtB,QAAQ;KACT,CAAC,CAAA;AACJ,CAAC;AA4BD,SAAgB,SAAS,CACvB,QAAsD,EACtD,UAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAG9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAqB,CAAA;QACvC,OAAO,GAAG,CAAC,MAAM,CACf,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EACpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAgB,CAAA;QAE7B,OAAO,GAAG,CAAC,MAAM,CACf,kBAAkB,EAClB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EACjD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QAErC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAC7B,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EACnC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CACjD,CAAA;QAED,OAAO,GAAG,CAAC,MAAM,CACf,sBAAsB,EACtB,YAAY,EACZ,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAClD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,cAAc,GAClB,QAAQ,CAAC,OAAO,KAAK,IAAI;YACvB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,wBAAwB,CAAA;QAC9B,OAAO,GAAG,CAAC,MAAM,CACf,cAAc,EACd,QAAQ,CAAC,WAAW,EACpB,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QAIrC,OAAO,GAAG,CAAC,MAAM,CACf,sBAAsB,EACtB,GAAG,CAAC,OAAO,CAAC;YACV,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5D,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,EACF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC;AA0DD,SAAgB,qBAAqB,CACnC,KAAkC;IAElC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IACrC,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAC1C,eAAe,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa;QAC7C,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACjD,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAG,KAAsC,CAAC,OAAO,EAAE,CAC1E,CAAA;IAGD,OAAO,UAAU;SACd,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,SAAS;KACV,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACpC,CAAC;AA4CD,SAAgB,KAAK,CAAC,QAA2B;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAqB,CAAA;QACvC,OAAO;YACL,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,WAAW;SAClB,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAgB,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACvD,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACvD,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACjD,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,EAAE,MAAM;SACb,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAC7B,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EACnC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CACjD,CAAA;QAED,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC3D,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC3D,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACrD,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACrD,IAAI,EAAE,UAAU;YAChB,YAAY;SACb,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAoB,CAAA;QACrC,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;YAEzB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACxE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAA;IACH,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC;AA0BD,SAAgB,QAAQ,CACtB,QAA8C;IAE9C,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AA8GD,SAAgB,MAAM,CACpB,SAA4B,EAC5B,UAA6B;IAE7B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAE9B,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC,OAAO,CAAA;QACjD,IAAI,UAAU,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC5E,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAEhC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAA;QAC1B,OAAO,YAAY,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,OAAO;YACP,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;QAC5D,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,QAAQ,CAAC,OAAO;YACtB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,OAAO;YACP,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;QAC5D,OAAO,eAAe,CAAC,MAAM,CAAC;YAC5B,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,IAAI,iBAAiB,CACzB,gDAAgD,QAAQ,CAAC,IAAI,IAAI,CAClE,CAAA;AACH,CAAC;AAqBD,MAAa,aAAc,SAAQ,MAAM,CAAC,SAAS;IAEjD,YAAY,EAAE,QAAQ,EAAyB;QAC7C,KAAK,CACH,6BAA6B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oCAAoC,CAC1F,CAAA;QAJe;;;;mBAAO,iCAAiC;WAAA;IAK1D,CAAC;CACF;AAPD,sCAOC;AAKD,MAAa,sBAAuB,SAAQ,MAAM,CAAC,SAAS;IAE1D,YAAY,EACV,QAAQ,EACR,OAAO,EACP,IAAI,GAKL;QACC,KAAK,CACH,+BAA+B,IAAI,qCAAqC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC9J,CAAA;QAZe;;;;mBAAO,0CAA0C;WAAA;IAanE,CAAC;CACF;AAfD,wDAeC;AAKD,MAAa,sBAAuB,SAAQ,MAAM,CAAC,SAAS;IAE1D,YAAY,EACV,MAAM,EACN,UAAU,GAIX;QACC,KAAK,CAAC,6CAA6C,MAAM,EAAE,EAAE;YAC3D,YAAY,EAAE,CAAC,eAAe,UAAU,EAAE,CAAC;SAC5C,CAAC,CAAA;QAVc;;;;mBAAO,0CAA0C;WAAA;IAWnE,CAAC;CACF;AAbD,wDAaC;AAKD,MAAa,4BAA6B,SAAQ,MAAM,CAAC,SAAS;IAEhE,YAAY,EAAE,MAAM,EAAsB;QACxC,KAAK,CAAC,2CAA2C,MAAM,GAAG,CAAC,CAAA;QAF3C;;;;mBAAO,gDAAgD;WAAA;IAGzE,CAAC;CACF;AALD,oEAKC;AAKD,MAAa,iBAAkB,SAAQ,MAAM,CAAC,SAAS;IAAvD;;QACoB;;;;mBAAO,qCAAqC;WAAA;IAChE,CAAC;CAAA;AAFD,8CAEC"}
|
package/_cjs/version.js
CHANGED
|
@@ -3,7 +3,12 @@ import * as Errors from '../core/Errors.js';
|
|
|
3
3
|
import * as Hash from '../core/Hash.js';
|
|
4
4
|
import * as Hex from '../core/Hex.js';
|
|
5
5
|
/** Maximum number of owners allowed in a native multisig config. */
|
|
6
|
-
export const maxOwners =
|
|
6
|
+
export const maxOwners = 255;
|
|
7
|
+
/**
|
|
8
|
+
* Maximum number of native multisig signatures in one nested authorization
|
|
9
|
+
* path, including the top-level transaction signature.
|
|
10
|
+
*/
|
|
11
|
+
export const maxNestingDepth = 3;
|
|
7
12
|
/** Maximum encoded byte length for one primitive owner approval. */
|
|
8
13
|
export const maxOwnerSignatureBytes = 2049;
|
|
9
14
|
/** Tempo signature type byte for native multisig signatures. */
|
|
@@ -12,16 +17,14 @@ export const signatureTypeByte = '0x05';
|
|
|
12
17
|
export const zeroSalt = `0x${'00'.repeat(32)}`;
|
|
13
18
|
/** Domain prefix for the native multisig account address derivation. */
|
|
14
19
|
const accountDomain = 'tempo:multisig:account';
|
|
15
|
-
/** Domain prefix for the native multisig config ID derivation. */
|
|
16
|
-
const configDomain = 'tempo:multisig:config';
|
|
17
20
|
/** Domain prefix for native multisig owner approvals. */
|
|
18
21
|
const signatureDomain = 'tempo:multisig:signature';
|
|
19
22
|
/**
|
|
20
23
|
* Asserts that a native multisig {@link ox#MultisigConfig.Config} is valid.
|
|
21
24
|
*
|
|
22
|
-
* Mirrors the Tempo `
|
|
25
|
+
* Mirrors the Tempo `InitMultisig::validate` rules: owners non-empty and
|
|
23
26
|
* `<= maxOwners`, strictly ascending unique nonzero owner addresses, nonzero
|
|
24
|
-
* owner weights, `threshold >= 1`, total weight `<=
|
|
27
|
+
* owner weights, `threshold >= 1`, total weight `<= 255` (u8 max), and
|
|
25
28
|
* `threshold <= total weight`.
|
|
26
29
|
*
|
|
27
30
|
* @example
|
|
@@ -63,9 +66,9 @@ export function assert(config) {
|
|
|
63
66
|
previous = current;
|
|
64
67
|
totalWeight += Number(owner.weight);
|
|
65
68
|
}
|
|
66
|
-
if (totalWeight >
|
|
69
|
+
if (totalWeight > 0xff)
|
|
67
70
|
throw new InvalidConfigError({
|
|
68
|
-
reason: 'total owner weight exceeds
|
|
71
|
+
reason: 'total owner weight exceeds u8 max',
|
|
69
72
|
});
|
|
70
73
|
if (Number(threshold) > totalWeight)
|
|
71
74
|
throw new InvalidConfigError({
|
|
@@ -76,7 +79,7 @@ export function assert(config) {
|
|
|
76
79
|
* Normalizes a native multisig {@link ox#MultisigConfig.Config}.
|
|
77
80
|
*
|
|
78
81
|
* Sorts owners into strictly ascending `owner` address order (the canonical
|
|
79
|
-
* form required for
|
|
82
|
+
* form required for account derivation) and asserts the config is valid.
|
|
80
83
|
*
|
|
81
84
|
* @example
|
|
82
85
|
* ```ts twoslash
|
|
@@ -140,49 +143,64 @@ export function fromTuple(tuple) {
|
|
|
140
143
|
/**
|
|
141
144
|
* Derives the stable native multisig account address.
|
|
142
145
|
*
|
|
143
|
-
*
|
|
146
|
+
* Preimage (fixed-width big-endian, **not** RLP):
|
|
147
|
+
* `keccak256("tempo:multisig:account" || salt || u8(threshold) || u8(owners.length) || (owner || u8(weight)) for each owner)[12:32]`.
|
|
148
|
+
*
|
|
149
|
+
* The address is derived once from the initial (bootstrap) config and never
|
|
150
|
+
* changes — config updates do not affect it.
|
|
144
151
|
*
|
|
145
152
|
* @example
|
|
146
153
|
* ```ts twoslash
|
|
147
154
|
* import { MultisigConfig } from 'ox/tempo'
|
|
148
155
|
*
|
|
149
|
-
* const
|
|
156
|
+
* const genesisConfig = MultisigConfig.from({
|
|
150
157
|
* threshold: 1,
|
|
151
158
|
* owners: [
|
|
152
159
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
153
160
|
* ],
|
|
154
161
|
* })
|
|
155
162
|
*
|
|
156
|
-
* const address = MultisigConfig.getAddress(
|
|
163
|
+
* const address = MultisigConfig.getAddress(genesisConfig)
|
|
157
164
|
* ```
|
|
158
165
|
*
|
|
159
|
-
* @param
|
|
166
|
+
* @param config - The initial (bootstrap) multisig config.
|
|
160
167
|
* @returns The multisig account address.
|
|
161
168
|
*/
|
|
162
|
-
export function getAddress(
|
|
163
|
-
|
|
164
|
-
const hash = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain),
|
|
165
|
-
|
|
169
|
+
export function getAddress(config) {
|
|
170
|
+
assert(config);
|
|
171
|
+
const hash = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), Hex.padLeft(config.salt ?? zeroSalt, 32), Hex.fromNumber(config.threshold, { size: 1 }), Hex.fromNumber(config.owners.length, { size: 1 }), ...config.owners.flatMap((owner) => [
|
|
172
|
+
owner.owner,
|
|
173
|
+
Hex.fromNumber(owner.weight, { size: 1 }),
|
|
174
|
+
])));
|
|
175
|
+
const account = Address.from(Hex.slice(hash, 12, 32));
|
|
176
|
+
if (Hex.toBigInt(account) === 0n)
|
|
177
|
+
throw new InvalidConfigError({ reason: 'derived account cannot be zero' });
|
|
178
|
+
return account;
|
|
166
179
|
}
|
|
167
180
|
/**
|
|
168
181
|
* Computes the digest a native multisig owner approves (signs).
|
|
169
182
|
*
|
|
170
|
-
* `keccak256("tempo:multisig:signature" || inner_digest || account
|
|
183
|
+
* `keccak256("tempo:multisig:signature" || inner_digest || account)`,
|
|
171
184
|
* where `inner_digest` is the transaction sign payload
|
|
172
185
|
* ({@link ox#TxEnvelopeTempo.(getSignPayload:function)}).
|
|
173
186
|
*
|
|
187
|
+
* The digest is keyed on the permanent `account` derived from the genesis
|
|
188
|
+
* (bootstrap) config — config updates never change it, so the genesis config
|
|
189
|
+
* is the correct input even for post-update transactions.
|
|
190
|
+
*
|
|
191
|
+
* For a nested multisig owner approval, the parent digest becomes the nested
|
|
192
|
+
* approval's `payload`, with the nested multisig `account`.
|
|
193
|
+
*
|
|
174
194
|
* @example
|
|
175
195
|
* ```ts twoslash
|
|
176
196
|
* import { MultisigConfig, TxEnvelopeTempo } from 'ox/tempo'
|
|
177
197
|
*
|
|
178
|
-
* const
|
|
198
|
+
* const genesisConfig = MultisigConfig.from({
|
|
179
199
|
* threshold: 1,
|
|
180
200
|
* owners: [
|
|
181
201
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
182
202
|
* ],
|
|
183
203
|
* })
|
|
184
|
-
* const configId = MultisigConfig.toId(config)
|
|
185
|
-
* const account = MultisigConfig.getAddress({ configId })
|
|
186
204
|
*
|
|
187
205
|
* const envelope = TxEnvelopeTempo.from({
|
|
188
206
|
* chainId: 1,
|
|
@@ -191,51 +209,44 @@ export function getAddress(value) {
|
|
|
191
209
|
*
|
|
192
210
|
* const digest = MultisigConfig.getSignPayload({
|
|
193
211
|
* payload: TxEnvelopeTempo.getSignPayload(envelope),
|
|
194
|
-
*
|
|
195
|
-
* configId,
|
|
212
|
+
* genesisConfig,
|
|
196
213
|
* })
|
|
197
214
|
* ```
|
|
198
215
|
*
|
|
199
|
-
* @
|
|
200
|
-
*
|
|
201
|
-
*/
|
|
202
|
-
export function getSignPayload(value) {
|
|
203
|
-
const { payload, account, configId } = value;
|
|
204
|
-
return Hash.keccak256(Hex.concat(Hex.fromString(signatureDomain), Hex.from(payload), account, configId));
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Derives the permanent config ID for a native multisig
|
|
208
|
-
* {@link ox#MultisigConfig.Config}.
|
|
216
|
+
* @example
|
|
217
|
+
* ### From `account`
|
|
209
218
|
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
219
|
+
* If you already have the permanent `account` (for example, recovered from a
|
|
220
|
+
* stored envelope), pass it directly:
|
|
212
221
|
*
|
|
213
|
-
* @example
|
|
214
222
|
* ```ts twoslash
|
|
215
|
-
* import { MultisigConfig } from 'ox/tempo'
|
|
223
|
+
* import { MultisigConfig, TxEnvelopeTempo } from 'ox/tempo'
|
|
216
224
|
*
|
|
217
|
-
* const
|
|
225
|
+
* const genesisConfig = MultisigConfig.from({
|
|
218
226
|
* threshold: 1,
|
|
219
227
|
* owners: [
|
|
220
228
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
221
229
|
* ],
|
|
222
230
|
* })
|
|
231
|
+
* const account = MultisigConfig.getAddress(genesisConfig)
|
|
232
|
+
*
|
|
233
|
+
* const envelope = TxEnvelopeTempo.from({ chainId: 1, calls: [] })
|
|
223
234
|
*
|
|
224
|
-
* const
|
|
235
|
+
* const digest = MultisigConfig.getSignPayload({
|
|
236
|
+
* payload: TxEnvelopeTempo.getSignPayload(envelope),
|
|
237
|
+
* account
|
|
238
|
+
* })
|
|
225
239
|
* ```
|
|
226
240
|
*
|
|
227
|
-
* @param
|
|
228
|
-
* @returns The
|
|
241
|
+
* @param value - The digest derivation parameters.
|
|
242
|
+
* @returns The owner approval digest.
|
|
229
243
|
*/
|
|
230
|
-
export function
|
|
231
|
-
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
if (Hex.toBigInt(id) === 0n)
|
|
237
|
-
throw new InvalidConfigError({ reason: 'config ID cannot be zero' });
|
|
238
|
-
return id;
|
|
244
|
+
export function getSignPayload(value) {
|
|
245
|
+
const { payload } = value;
|
|
246
|
+
const account = 'account' in value && value.account
|
|
247
|
+
? value.account
|
|
248
|
+
: getAddress(value.genesisConfig);
|
|
249
|
+
return Hash.keccak256(Hex.concat(Hex.fromString(signatureDomain), Hex.from(payload), account));
|
|
239
250
|
}
|
|
240
251
|
/**
|
|
241
252
|
* Converts a {@link ox#MultisigConfig.Config} to its RLP tuple form (carried
|