@digitaldefiance/node-ecies-lib 4.23.2 → 5.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/node-ecies-lib",
3
- "version": "4.23.2",
3
+ "version": "5.0.0",
4
4
  "description": "Digital Defiance Node ECIES Library",
5
5
  "homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
6
6
  "repository": {
@@ -59,7 +59,7 @@
59
59
  "license": "MIT",
60
60
  "packageManager": "yarn@4.10.3",
61
61
  "dependencies": {
62
- "@digitaldefiance/ecies-lib": "4.23.1",
62
+ "@digitaldefiance/ecies-lib": "5.0.0",
63
63
  "@digitaldefiance/i18n-lib": "4.6.4",
64
64
  "@ethereumjs/wallet": "^2.0.4",
65
65
  "@noble/curves": "^1.4.2",
@@ -32,6 +32,8 @@ export declare enum VotingErrorType {
32
32
  InvalidPrivateKeyBufferFailedToCreate = "InvalidPrivateKeyBufferFailedToCreate",
33
33
  InstanceIdMismatch = "InstanceIdMismatch",
34
34
  InvalidCiphertextHmac = "InvalidCiphertextHmac",
35
- CiphertextNotFromThisInstance = "CiphertextNotFromThisInstance"
35
+ CiphertextNotFromThisInstance = "CiphertextNotFromThisInstance",
36
+ InvalidPublicKeyChecksum = "InvalidPublicKeyChecksum",
37
+ InvalidPrivateKeyChecksum = "InvalidPrivateKeyChecksum"
36
38
  }
37
39
  //# sourceMappingURL=voting-error-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"voting-error-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEzB,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IAGrD,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IAGnC,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,0BAA0B,+BAA+B;IAGzD,kCAAkC,uCAAuC;IACzE,mCAAmC,wCAAwC;IAC3E,2BAA2B,gCAAgC;IAG3D,8BAA8B,mCAAmC;IACjE,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;IAC3D,iCAAiC,sCAAsC;IACvE,oCAAoC,yCAAyC;IAC7E,0BAA0B,+BAA+B;IAGzD,+BAA+B,oCAAoC;IACnE,iCAAiC,sCAAsC;IACvE,4BAA4B,iCAAiC;IAC7D,uCAAuC,4CAA4C;IACnF,yCAAyC,8CAA8C;IACvF,mCAAmC,wCAAwC;IAC3E,oCAAoC,yCAAyC;IAC7E,qCAAqC,0CAA0C;IAG/E,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,6BAA6B,kCAAkC;CAChE"}
1
+ {"version":3,"file":"voting-error-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEzB,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IAGrD,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IAGnC,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,0BAA0B,+BAA+B;IAGzD,kCAAkC,uCAAuC;IACzE,mCAAmC,wCAAwC;IAC3E,2BAA2B,gCAAgC;IAG3D,8BAA8B,mCAAmC;IACjE,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;IAC3D,iCAAiC,sCAAsC;IACvE,oCAAoC,yCAAyC;IAC7E,0BAA0B,+BAA+B;IAGzD,+BAA+B,oCAAoC;IACnE,iCAAiC,sCAAsC;IACvE,4BAA4B,iCAAiC;IAC7D,uCAAuC,4CAA4C;IACnF,yCAAyC,8CAA8C;IACvF,mCAAmC,wCAAwC;IAC3E,oCAAoC,yCAAyC;IAC7E,qCAAqC,0CAA0C;IAG/E,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,6BAA6B,kCAAkC;IAG/D,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;CACxD"}
@@ -44,5 +44,8 @@ var VotingErrorType;
44
44
  VotingErrorType["InstanceIdMismatch"] = "InstanceIdMismatch";
45
45
  VotingErrorType["InvalidCiphertextHmac"] = "InvalidCiphertextHmac";
46
46
  VotingErrorType["CiphertextNotFromThisInstance"] = "CiphertextNotFromThisInstance";
47
+ // Checksum errors
48
+ VotingErrorType["InvalidPublicKeyChecksum"] = "InvalidPublicKeyChecksum";
49
+ VotingErrorType["InvalidPrivateKeyChecksum"] = "InvalidPrivateKeyChecksum";
47
50
  })(VotingErrorType || (exports.VotingErrorType = VotingErrorType = {}));
48
51
  //# sourceMappingURL=voting-error-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"voting-error-type.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,eA4CX;AA5CD,WAAY,eAAe;IACzB,wBAAwB;IACxB,oEAAiD,CAAA;IACjD,kEAA+C,CAAA;IAC/C,oEAAiD,CAAA;IACjD,4DAAyC,CAAA;IACzC,wEAAqD,CAAA;IAErD,0BAA0B;IAC1B,kEAA+C,CAAA;IAC/C,sDAAmC,CAAA;IAEnC,6BAA6B;IAC7B,sEAAmD,CAAA;IACnD,sDAAmC,CAAA;IACnC,4EAAyD,CAAA;IAEzD,sBAAsB;IACtB,4FAAyE,CAAA;IACzE,8FAA2E,CAAA;IAC3E,8EAA2D,CAAA;IAE3D,oCAAoC;IACpC,oFAAiE,CAAA;IACjE,wFAAqE,CAAA;IACrE,8EAA2D,CAAA;IAC3D,0FAAuE,CAAA;IACvE,gGAA6E,CAAA;IAC7E,4EAAyD,CAAA;IAEzD,qCAAqC;IACrC,sFAAmE,CAAA;IACnE,0FAAuE,CAAA;IACvE,gFAA6D,CAAA;IAC7D,sGAAmF,CAAA;IACnF,0GAAuF,CAAA;IACvF,8FAA2E,CAAA;IAC3E,gGAA6E,CAAA;IAC7E,kGAA+E,CAAA;IAE/E,4BAA4B;IAC5B,4DAAyC,CAAA;IACzC,kEAA+C,CAAA;IAC/C,kFAA+D,CAAA;AACjE,CAAC,EA5CW,eAAe,+BAAf,eAAe,QA4C1B"}
1
+ {"version":3,"file":"voting-error-type.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,eAgDX;AAhDD,WAAY,eAAe;IACzB,wBAAwB;IACxB,oEAAiD,CAAA;IACjD,kEAA+C,CAAA;IAC/C,oEAAiD,CAAA;IACjD,4DAAyC,CAAA;IACzC,wEAAqD,CAAA;IAErD,0BAA0B;IAC1B,kEAA+C,CAAA;IAC/C,sDAAmC,CAAA;IAEnC,6BAA6B;IAC7B,sEAAmD,CAAA;IACnD,sDAAmC,CAAA;IACnC,4EAAyD,CAAA;IAEzD,sBAAsB;IACtB,4FAAyE,CAAA;IACzE,8FAA2E,CAAA;IAC3E,8EAA2D,CAAA;IAE3D,oCAAoC;IACpC,oFAAiE,CAAA;IACjE,wFAAqE,CAAA;IACrE,8EAA2D,CAAA;IAC3D,0FAAuE,CAAA;IACvE,gGAA6E,CAAA;IAC7E,4EAAyD,CAAA;IAEzD,qCAAqC;IACrC,sFAAmE,CAAA;IACnE,0FAAuE,CAAA;IACvE,gFAA6D,CAAA;IAC7D,sGAAmF,CAAA;IACnF,0GAAuF,CAAA;IACvF,8FAA2E,CAAA;IAC3E,gGAA6E,CAAA;IAC7E,kGAA+E,CAAA;IAE/E,4BAA4B;IAC5B,4DAAyC,CAAA;IACzC,kEAA+C,CAAA;IAC/C,kFAA+D,CAAA;IAE/D,kBAAkB;IAClB,wEAAqD,CAAA;IACrD,0EAAuD,CAAA;AACzD,CAAC,EAhDW,eAAe,+BAAf,eAAe,QAgD1B"}
@@ -59,7 +59,7 @@ export interface IVotingConsts {
59
59
  /**
60
60
  * Version number for key serialization format.
61
61
  */
62
- readonly KEY_VERSION: 1;
62
+ readonly KEY_VERSION: 2;
63
63
  /**
64
64
  * Magic bytes for identifying BrightChain voting keys.
65
65
  */
@@ -76,6 +76,11 @@ export interface IVotingConsts {
76
76
  * Length of instance ID in bytes (SHA-256 output).
77
77
  */
78
78
  readonly INSTANCE_ID_LENGTH: 32;
79
+ /**
80
+ * Length of SHA-256 checksum appended to serialized keys (bytes).
81
+ * Provides integrity protection against buffer corruption.
82
+ */
83
+ readonly CHECKSUM_LENGTH: 32;
79
84
  }
80
85
  /**
81
86
  * Constants for voting operations using Paillier homomorphic encryption.
@@ -1 +1 @@
1
- {"version":3,"file":"voting-consts.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;CACjC;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,aAiBnB,CAAC"}
1
+ {"version":3,"file":"voting-consts.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,aAkBnB,CAAC"}
@@ -18,10 +18,11 @@ exports.VOTING = Object.freeze({
18
18
  KEY_RADIX: 16,
19
19
  KEY_FORMAT: 'hex',
20
20
  DIGEST_FORMAT: 'hex',
21
- KEY_VERSION: 1,
21
+ KEY_VERSION: 2,
22
22
  KEY_MAGIC: 'BCVK',
23
23
  DRBG_PRIME_ATTEMPTS: 20000,
24
24
  KEY_ID_LENGTH: 32,
25
25
  INSTANCE_ID_LENGTH: 32,
26
+ CHECKSUM_LENGTH: 32,
26
27
  });
27
28
  //# sourceMappingURL=voting-consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"voting-consts.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":";;;AA+FA;;;;GAIG;AACU,QAAA,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,kBAA2B;IAC3C,qBAAqB,EAAE,GAAY;IACnC,kBAAkB,EAAE,IAAa;IACjC,cAAc,EAAE,GAAY;IAC5B,WAAW,EAAE,EAAW;IACxB,cAAc,EAAE,QAAiB;IACjC,cAAc,EAAE,QAAiB;IACjC,UAAU,EAAE,CAAU;IACtB,SAAS,EAAE,EAAW;IACtB,UAAU,EAAE,KAAc;IAC1B,aAAa,EAAE,KAAc;IAC7B,WAAW,EAAE,CAAU;IACvB,SAAS,EAAE,MAAe;IAC1B,mBAAmB,EAAE,KAAc;IACnC,aAAa,EAAE,EAAW;IAC1B,kBAAkB,EAAE,EAAW;CAChC,CAAC,CAAC"}
1
+ {"version":3,"file":"voting-consts.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":";;;AAqGA;;;;GAIG;AACU,QAAA,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,kBAA2B;IAC3C,qBAAqB,EAAE,GAAY;IACnC,kBAAkB,EAAE,IAAa;IACjC,cAAc,EAAE,GAAY;IAC5B,WAAW,EAAE,EAAW;IACxB,cAAc,EAAE,QAAiB;IACjC,cAAc,EAAE,QAAiB;IACjC,UAAU,EAAE,CAAU;IACtB,SAAS,EAAE,EAAW;IACtB,UAAU,EAAE,KAAc;IAC1B,aAAa,EAAE,KAAc;IAC7B,WAAW,EAAE,CAAU;IACvB,SAAS,EAAE,MAAe;IAC1B,mBAAmB,EAAE,KAAc;IACnC,aAAa,EAAE,EAAW;IAC1B,kBAAkB,EAAE,EAAW;IAC/B,eAAe,EAAE,EAAW;CAC7B,CAAC,CAAC"}
@@ -56,7 +56,13 @@ export interface DeriveVotingKeysOptions {
56
56
  /**
57
57
  * Miller-Rabin primality test with deterministic witnesses
58
58
  *
59
- * SECURITY: With k=256 rounds, probability of false positive is < 2^-512
59
+ * Uses 12 small-prime deterministic witnesses, then generates additional
60
+ * deterministic witnesses derived from the candidate itself (via hashing)
61
+ * for rounds 13 through k. This ensures the test is fully deterministic
62
+ * (same candidate always gets the same witnesses) while achieving the
63
+ * configured number of rounds.
64
+ *
65
+ * SECURITY: With k=256 rounds, probability of false positive is < 4^(-256) ≈ 2^(-512)
60
66
  *
61
67
  * @param n - Number to test for primality
62
68
  * @param k - Number of rounds (witnesses to test)
@@ -210,7 +216,7 @@ export declare class VotingService implements IVotingService {
210
216
  votingPublicKeyToBuffer(publicKey: PublicKey): Buffer;
211
217
  /**
212
218
  * Deserialize a Paillier public key from buffer
213
- * Format: [magic:4][version:1][keyId:32][n_length:4][n:variable]
219
+ * Format: [magic:4][version:1][keyId:32][n_length:4][n:variable][checksum:32]
214
220
  */
215
221
  bufferToVotingPublicKey(buffer: Buffer): Promise<PublicKey>;
216
222
  /**
@@ -226,17 +232,17 @@ export declare class VotingService implements IVotingService {
226
232
  votingPrivateKeyToBuffer(privateKey: PrivateKey): Buffer;
227
233
  /**
228
234
  * Deserialize a Paillier private key from buffer
229
- * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
235
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
230
236
  */
231
237
  bufferToVotingPrivateKey(buffer: Buffer, publicKey: PublicKey): Promise<PrivateKey>;
232
238
  /**
233
239
  * Serialize an IsolatedPublicKey to Buffer
234
- * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
240
+ * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
235
241
  */
236
242
  isolatedPublicKeyToBuffer(publicKey: SharedIsolatedPublicKey): Buffer;
237
243
  /**
238
244
  * Deserialize an IsolatedPublicKey from Buffer
239
- * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
245
+ * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
240
246
  */
241
247
  bufferToIsolatedPublicKey(buffer: Buffer): Promise<SharedIsolatedPublicKey>;
242
248
  /**
@@ -246,7 +252,7 @@ export declare class VotingService implements IVotingService {
246
252
  isolatedPrivateKeyToBuffer(privateKey: SharedIsolatedPrivateKey): Buffer;
247
253
  /**
248
254
  * Deserialize an IsolatedPrivateKey from Buffer
249
- * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
255
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
250
256
  */
251
257
  bufferToIsolatedPrivateKey(buffer: Buffer, publicKey: SharedIsolatedPublicKey): Promise<SharedIsolatedPrivateKey>;
252
258
  private hexToBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"voting.service.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voting.service.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,13 @@ const isolated_public_1 = require("../isolated-public");
51
51
  /**
52
52
  * Miller-Rabin primality test with deterministic witnesses
53
53
  *
54
- * SECURITY: With k=256 rounds, probability of false positive is < 2^-512
54
+ * Uses 12 small-prime deterministic witnesses, then generates additional
55
+ * deterministic witnesses derived from the candidate itself (via hashing)
56
+ * for rounds 13 through k. This ensures the test is fully deterministic
57
+ * (same candidate always gets the same witnesses) while achieving the
58
+ * configured number of rounds.
59
+ *
60
+ * SECURITY: With k=256 rounds, probability of false positive is < 4^(-256) ≈ 2^(-512)
55
61
  *
56
62
  * @param n - Number to test for primality
57
63
  * @param k - Number of rounds (witnesses to test)
@@ -69,8 +75,21 @@ function millerRabinTest(n, k) {
69
75
  d /= 2n;
70
76
  r++;
71
77
  }
72
- // Use first k prime numbers as witnesses
73
- const witnesses = [2n, 3n, 5n, 7n, 11n, 13n, 17n, 19n, 23n, 29n, 31n, 37n];
78
+ // First 12 small-prime deterministic witnesses
79
+ const deterministicWitnesses = [
80
+ 2n,
81
+ 3n,
82
+ 5n,
83
+ 7n,
84
+ 11n,
85
+ 13n,
86
+ 17n,
87
+ 19n,
88
+ 23n,
89
+ 29n,
90
+ 31n,
91
+ 37n,
92
+ ];
74
93
  // Witness loop
75
94
  const witnessLoop = (a) => {
76
95
  let x = modPow(a, d, n);
@@ -85,12 +104,32 @@ function millerRabinTest(n, k) {
85
104
  }
86
105
  return false;
87
106
  };
88
- // Test with deterministic witnesses
89
- for (let i = 0; i < Math.min(k, witnesses.length); i++) {
90
- const a = (witnesses[i] % (n - 2n)) + 2n;
107
+ // Phase 1: Test with deterministic small-prime witnesses
108
+ const deterministicRounds = Math.min(k, deterministicWitnesses.length);
109
+ for (let i = 0; i < deterministicRounds; i++) {
110
+ const a = (deterministicWitnesses[i] % (n - 2n)) + 2n;
91
111
  if (!witnessLoop(a))
92
112
  return false;
93
113
  }
114
+ // Phase 2: Generate additional deterministic witnesses from the candidate
115
+ // Each witness is derived via HMAC-SHA256(key=candidate, data=round_counter),
116
+ // a standard PRF that ensures determinism and uniform distribution.
117
+ if (k > deterministicWitnesses.length) {
118
+ const nBytes = Buffer.from(n.toString(16), 'utf-8');
119
+ for (let i = deterministicWitnesses.length; i < k; i++) {
120
+ // HMAC-SHA256(key=hex(n), data=hex(round)) → 32 bytes
121
+ const roundBytes = Buffer.from(i.toString(16), 'utf-8');
122
+ const digest = (0, crypto_1.createHmac)('sha256', nBytes).update(roundBytes).digest();
123
+ // Interpret the 32-byte digest as a big-endian unsigned integer
124
+ let hash = 0n;
125
+ for (let j = 0; j < digest.length; j++) {
126
+ hash = (hash << 8n) | BigInt(digest[j]);
127
+ }
128
+ const a = (hash % (n - 3n)) + 2n;
129
+ if (!witnessLoop(a))
130
+ return false;
131
+ }
132
+ }
94
133
  return true;
95
134
  }
96
135
  /**
@@ -333,10 +372,31 @@ function generateDeterministicKeyPair(seed, bits = 3072, primeTestIterations = 2
333
372
  const primeBits = Math.floor(bits / 2);
334
373
  const p = generateDeterministicPrime(drbg, primeBits, primeTestIterations);
335
374
  const q = generateDeterministicPrime(drbg, primeBits, primeTestIterations);
375
+ // Safety check: p and q must be distinct for Paillier security.
376
+ // Probability of collision is ~2^(-1536), but checking is free.
377
+ if (p === q) {
378
+ throw new Error('Generated identical primes p and q — this should be astronomically unlikely. ' +
379
+ 'The DRBG may be broken or the seed has insufficient entropy.');
380
+ }
381
+ // Safety check: |p - q| must be large to resist Fermat factoring.
382
+ // For random 1536-bit primes this is overwhelmingly likely, but we verify.
383
+ const pqDiff = p > q ? p - q : q - p;
384
+ const minDistance = 1n << BigInt(Math.floor(primeBits / 2)); // 2^768
385
+ if (pqDiff < minDistance) {
386
+ throw new Error(`Primes p and q are too close: |p - q| has ${pqDiff.toString(2).length} bits, ` +
387
+ `minimum required is ${Math.floor(primeBits / 2)} bits. ` +
388
+ 'This makes the modulus vulnerable to Fermat factoring.');
389
+ }
336
390
  // Calculate n = p * q
337
391
  const n = p * q;
338
392
  // Calculate lambda = lcm(p-1, q-1) using function from this module
339
393
  const lambda = lcm(p - 1n, q - 1n);
394
+ // Safety check: gcd(n, lambda) must be 1 for Paillier correctness.
395
+ // This is a technical requirement of the Paillier cryptosystem.
396
+ if (gcd(n, lambda) !== 1n) {
397
+ throw new Error('gcd(n, λ) ≠ 1 — Paillier key construction requires gcd(n, lcm(p-1, q-1)) = 1. ' +
398
+ 'This indicates a degenerate prime pair.');
399
+ }
340
400
  // For Paillier, g = n + 1 (simplest form)
341
401
  const g = n + 1n;
342
402
  // Calculate mu = (L(g^lambda mod n^2))^-1 mod n
@@ -379,7 +439,7 @@ function generateDeterministicKeyPair(seed, bits = 3072, primeTestIterations = 2
379
439
  * @returns Paillier key pair for voting operations
380
440
  */
381
441
  function deriveVotingKeysFromECDH(ecdhPrivKey, ecdhPubKey, options = {}) {
382
- const { curveName = 'secp256k1', publicKeyMagic = 0x04, rawPublicKeyLength = 64, publicKeyLength = 65, hmacAlgorithm = 'sha512', hkdfInfo = 'PaillierPrimeGen', hkdfLength = 64, keypairBitLength = 3072, primeTestIterations = 256, } = options;
442
+ const { curveName = 'secp256k1', publicKeyMagic = 0x04, rawPublicKeyLength = 64, publicKeyLength = 65, hmacAlgorithm = 'sha512', hkdfInfo = voting_consts_1.VOTING.PRIME_GEN_INFO, hkdfLength = 64, keypairBitLength = 3072, primeTestIterations = 256, } = options;
383
443
  // Validate inputs with strict length checks
384
444
  if (!ecdhPrivKey || ecdhPrivKey.length === 0) {
385
445
  throw new Error('ECDH private key is required');
@@ -525,15 +585,19 @@ class VotingService {
525
585
  */
526
586
  votingPublicKeyToBuffer(publicKey) {
527
587
  // Generate keyId from n
588
+ // IMPORTANT: keyId is SHA-256 of the hex string encoded as UTF-8 bytes,
589
+ // NOT the hex string parsed as raw hex digits. This matches verifyKeyId()
590
+ // and IsolatedPublicKey's keyId computation.
528
591
  const nHex = publicKey.n
529
592
  .toString(voting_consts_1.VOTING.KEY_RADIX)
530
593
  .padStart(voting_consts_1.VOTING.PUB_KEY_OFFSET, '0');
531
- const nBytes = this.hexToBuffer(nHex);
532
- const keyId = this.sha256(nBytes);
594
+ const nBytesForKeyId = Buffer.from(nHex, 'utf8');
595
+ const keyId = this.sha256(nBytesForKeyId);
533
596
  // Prepare n buffer
534
597
  const nHexBytes = Buffer.from(nHex, 'utf-8');
535
- // Create buffer: magic(4) + version(1) + keyId(32) + n_length(4) + n
536
- const result = Buffer.alloc(4 + 1 + 32 + 4 + nHexBytes.length);
598
+ // Create buffer: magic(4) + version(1) + keyId(32) + n_length(4) + n + checksum(32)
599
+ const payloadLength = 4 + 1 + 32 + 4 + nHexBytes.length;
600
+ const result = Buffer.alloc(payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
537
601
  // Write magic
538
602
  const magicBytes = Buffer.from(voting_consts_1.VOTING.KEY_MAGIC, 'utf-8');
539
603
  magicBytes.copy(result, 0);
@@ -544,18 +608,21 @@ class VotingService {
544
608
  // Write n_length and n
545
609
  result.writeUInt32BE(nHexBytes.length, 37);
546
610
  nHexBytes.copy(result, 41);
611
+ // Append SHA-256 checksum of the payload
612
+ const checksum = this.sha256(result.subarray(0, payloadLength));
613
+ checksum.copy(result, payloadLength);
547
614
  return result;
548
615
  }
549
616
  /**
550
617
  * Deserialize a Paillier public key from buffer
551
- * Format: [magic:4][version:1][keyId:32][n_length:4][n:variable]
618
+ * Format: [magic:4][version:1][keyId:32][n_length:4][n:variable][checksum:32]
552
619
  */
553
620
  async bufferToVotingPublicKey(buffer) {
554
621
  // Load PublicKey class
555
622
  // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-assignment
556
623
  const { PublicKey } = require('paillier-bigint');
557
- // Minimum buffer length check
558
- if (buffer.length < 41) {
624
+ // Minimum buffer length check (header + at least 1 byte n + checksum)
625
+ if (buffer.length < 41 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
559
626
  throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyBufferTooShort);
560
627
  }
561
628
  // Verify magic
@@ -574,9 +641,16 @@ class VotingService {
574
641
  const nLength = buffer.readUInt32BE(37);
575
642
  const nHex = buffer.subarray(41, 41 + nLength).toString('utf-8');
576
643
  const n = BigInt('0x' + nHex);
577
- // Verify keyId
578
- const nBytes = this.hexToBuffer(nHex);
579
- const computedKeyId = this.sha256(nBytes);
644
+ // Verify checksum
645
+ const payloadLength = 41 + nLength;
646
+ const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
647
+ const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
648
+ if (!storedChecksum.equals(computedChecksum)) {
649
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyChecksum);
650
+ }
651
+ // Verify keyId — encode hex string as UTF-8 bytes (matching verifyKeyId)
652
+ const nBytesForKeyId = Buffer.from(nHex, 'utf8');
653
+ const computedKeyId = this.sha256(nBytesForKeyId);
580
654
  if (!keyId.equals(computedKeyId)) {
581
655
  throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyIdMismatch);
582
656
  }
@@ -605,8 +679,9 @@ class VotingService {
605
679
  const magicBytes = Buffer.from(voting_consts_1.VOTING.KEY_MAGIC, 'utf-8');
606
680
  const lambdaBytes = Buffer.from(lambdaHex, 'utf-8');
607
681
  const muBytes = Buffer.from(muHex, 'utf-8');
608
- // magic(4) + version(1) + lambda_length(4) + lambda + mu_length(4) + mu
609
- const result = Buffer.alloc(4 + 1 + 4 + lambdaBytes.length + 4 + muBytes.length);
682
+ // magic(4) + version(1) + lambda_length(4) + lambda + mu_length(4) + mu + checksum(32)
683
+ const payloadLength = 4 + 1 + 4 + lambdaBytes.length + 4 + muBytes.length;
684
+ const result = Buffer.alloc(payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
610
685
  // Write magic
611
686
  magicBytes.copy(result, 0);
612
687
  // Write version
@@ -617,18 +692,21 @@ class VotingService {
617
692
  // Write mu_length and mu
618
693
  result.writeUInt32BE(muBytes.length, 9 + lambdaBytes.length);
619
694
  muBytes.copy(result, 13 + lambdaBytes.length);
695
+ // Append SHA-256 checksum of the payload
696
+ const checksum = this.sha256(result.subarray(0, payloadLength));
697
+ checksum.copy(result, payloadLength);
620
698
  return result;
621
699
  }
622
700
  /**
623
701
  * Deserialize a Paillier private key from buffer
624
- * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
702
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
625
703
  */
626
704
  async bufferToVotingPrivateKey(buffer, publicKey) {
627
705
  // Load PrivateKey class
628
706
  // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-assignment
629
707
  const { PrivateKey } = require('paillier-bigint');
630
- // Minimum buffer length check
631
- if (buffer.length < 13) {
708
+ // Minimum buffer length check (header + at least 1 byte each + checksum)
709
+ if (buffer.length < 13 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
632
710
  throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyBufferTooShort);
633
711
  }
634
712
  // Verify magic
@@ -651,12 +729,19 @@ class VotingService {
651
729
  .subarray(13 + lambdaLength, 13 + lambdaLength + muLength)
652
730
  .toString('utf-8');
653
731
  const mu = BigInt('0x' + muHex);
732
+ // Verify checksum
733
+ const payloadLength = 13 + lambdaLength + muLength;
734
+ const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
735
+ const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
736
+ if (!storedChecksum.equals(computedChecksum)) {
737
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyChecksum);
738
+ }
654
739
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
655
740
  return new PrivateKey(lambda, mu, publicKey);
656
741
  }
657
742
  /**
658
743
  * Serialize an IsolatedPublicKey to Buffer
659
- * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
744
+ * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
660
745
  */
661
746
  isolatedPublicKeyToBuffer(publicKey) {
662
747
  const key = publicKey;
@@ -670,8 +755,9 @@ class VotingService {
670
755
  const instanceId = key.getInstanceId();
671
756
  const magicBytes = Buffer.from(voting_consts_1.VOTING.KEY_MAGIC, 'utf-8');
672
757
  const nHexBytes = Buffer.from(nHex, 'utf-8');
673
- // magic(4) + version(1) + keyId(32) + instanceId(32) + n_length(4) + n
674
- const result = Buffer.alloc(4 + 1 + 32 + 32 + 4 + nHexBytes.length);
758
+ // magic(4) + version(1) + keyId(32) + instanceId(32) + n_length(4) + n + checksum(32)
759
+ const payloadLength = 4 + 1 + 32 + 32 + 4 + nHexBytes.length;
760
+ const result = Buffer.alloc(payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
675
761
  // Write magic
676
762
  magicBytes.copy(result, 0);
677
763
  // Write version
@@ -683,15 +769,18 @@ class VotingService {
683
769
  // Write n_length and n
684
770
  result.writeUInt32BE(nHexBytes.length, 69);
685
771
  nHexBytes.copy(result, 73);
772
+ // Append SHA-256 checksum of the payload
773
+ const checksum = this.sha256(result.subarray(0, payloadLength));
774
+ checksum.copy(result, payloadLength);
686
775
  return result;
687
776
  }
688
777
  /**
689
778
  * Deserialize an IsolatedPublicKey from Buffer
690
- * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
779
+ * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
691
780
  */
692
781
  async bufferToIsolatedPublicKey(buffer) {
693
782
  // Minimum buffer length check
694
- if (buffer.length < 73) {
783
+ if (buffer.length < 73 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
695
784
  throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyBufferTooShort);
696
785
  }
697
786
  // Verify magic
@@ -712,6 +801,13 @@ class VotingService {
712
801
  const nLength = buffer.readUInt32BE(69);
713
802
  const nHex = buffer.subarray(73, 73 + nLength).toString('utf-8');
714
803
  const n = BigInt('0x' + nHex);
804
+ // Verify checksum
805
+ const payloadLength = 73 + nLength;
806
+ const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
807
+ const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
808
+ if (!storedChecksum.equals(computedChecksum)) {
809
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyChecksum);
810
+ }
715
811
  // g = n + 1 for simplified Paillier
716
812
  const g = n + 1n;
717
813
  // Create IsolatedPublicKey using fromBuffer factory method
@@ -730,7 +826,7 @@ class VotingService {
730
826
  }
731
827
  /**
732
828
  * Deserialize an IsolatedPrivateKey from Buffer
733
- * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
829
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
734
830
  */
735
831
  async bufferToIsolatedPrivateKey(buffer, publicKey) {
736
832
  const key = publicKey;
@@ -738,7 +834,7 @@ class VotingService {
738
834
  throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyNotIsolated);
739
835
  }
740
836
  // Minimum buffer length check
741
- if (buffer.length < 13) {
837
+ if (buffer.length < 13 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
742
838
  throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyBufferTooShort);
743
839
  }
744
840
  // Verify magic
@@ -761,6 +857,13 @@ class VotingService {
761
857
  .subarray(13 + lambdaLength, 13 + lambdaLength + muLength)
762
858
  .toString('utf-8');
763
859
  const mu = BigInt('0x' + muHex);
860
+ // Verify checksum
861
+ const payloadLength = 13 + lambdaLength + muLength;
862
+ const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
863
+ const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
864
+ if (!storedChecksum.equals(computedChecksum)) {
865
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyChecksum);
866
+ }
764
867
  return new isolated_private_1.IsolatedPrivateKey(lambda, mu, key);
765
868
  }
766
869
  // Helper methods for serialization
@@ -1 +1 @@
1
- {"version":3,"file":"voting.service.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voting.service.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AA4DH,0CAqEC;AAKD,wBAYC;AAKD,gCAoBC;AAKD,kBAUC;AAKD,kBAEC;AAiBD,oBAoCC;AAmFD,gEA0CC;AASD,oEA4GC;AAuBD,4DAiGC;AA9lBD,mCAA4D;AAO5D,uDAAoD;AAGpD,yEAAoE;AACpE,6CAA+C;AAC/C,+DAAqD;AACrD,0DAAyD;AACzD,wDAAuD;AA6BvD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzB,uBAAuB;IACvB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACrB,CAAC,IAAI,EAAE,CAAC;QACR,CAAC,EAAE,CAAC;IACN,CAAC;IAED,+CAA+C;IAC/C,MAAM,sBAAsB,GAAG;QAC7B,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;KACJ,CAAC;IAEF,eAAe;IACf,MAAM,WAAW,GAAG,CAAC,CAAS,EAAW,EAAE;QACzC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBAAE,OAAO,IAAI,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,yDAAyD;IACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,oEAAoE;IACpE,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,sDAAsD;YACtD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;YACxE,gEAAgE;YAChE,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,GAAW;IAC3D,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IAClB,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YACpB,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACjC,CAAC;QACD,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;QAChB,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC,CAAC;IAEX,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACX,EAAE,GAAG,CAAC,CAAC;QACP,CAAC,GAAG,EAAE,CAAC;QACP,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACjB,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,IAAI,EAAE,GAAG,EAAE;QAAE,EAAE,IAAI,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACV,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,IAAI,CAClB,MAAkB,EAClB,IAAuB,EACvB,IAAY,EACZ,MAAc,EACd,gBAAwB,QAAQ;IAEhC,mDAAmD;IACnD,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,UAAU,GACd,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mBAAU,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAE1E,oDAAoD;IACpD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAElB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,IAAI,UAAU,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IAC1B,CAAC,CAAS;IACV,CAAC,CAAS;IACD,aAAa,CAAS;IAEvC,YAAY,IAAgB,EAAE,gBAAwB,QAAQ;QAC5D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,MAAM,UAAU,GAAG,IAAA,mBAAU,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QAE7D,qBAAqB;QACrB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAExC,mBAAmB;QACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,YAAqB;QAClC,0CAA0C;QAC1C,IAAI,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAEvB,iBAAiB;QACjB,IAAI,CAAC,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAExE,IAAI,YAAY,EAAE,CAAC;YACjB,0CAA0C;YAC1C,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAEvB,iBAAiB;YACjB,IAAI,CAAC,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAC3C,MAAM,IAAI,UAAU,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAzDD,0DAyDC;AAED;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1E,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CACxC,IAA6B,EAC7B,OAAe,EACf,sBAA8B,GAAG,EACjC,cAAsB,KAAK;IAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,wBAAwB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEtC,yCAAyC;QACzC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;QAEvB,sCAAsC;QACtC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpE,mCAAmC;QACnC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,IACE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;gBACrC,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,EAChC,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,WAAW;YAAE,SAAS;QAE1B,gEAAgE;QAChE,IAAI,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAC1C,IAAgB,EAChB,OAAe,IAAI,EACnB,sBAA8B,GAAG;IAEjC,kBAAkB;IAClB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,mBAAmB,GAAG,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,yDAAyD,mBAAmB,EAAE,CAC/E,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,IAAI,SAAqD,CAAC;IAC1D,IAAI,UAAuD,CAAC;IAE5D,IAAI,CAAC;QACH,0GAA0G;QAC1G,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5C,+GAA+G;QAC/G,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,+GAA+G;QAC/G,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACjC,6DAA6D;IAC/D,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE/C,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAE3E,gEAAgE;IAChE,gEAAgE;IAChE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,8DAA8D,CACjE,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,2EAA2E;IAC3E,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IACrE,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,6CAA6C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS;YAC7E,uBAAuB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YACzD,wDAAwD,CAC3D,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhB,mEAAmE;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAEnC,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,gFAAgF;YAC9E,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAEjB,gDAAgD;IAChD,uBAAuB;IACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,kBAAkB;IAClB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAEzD,2CAA2C;IAC3C,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,wBAAwB,CACtC,WAAuB,EACvB,UAAsB,EACtB,UAAmC,EAAE;IAErC,MAAM,EACJ,SAAS,GAAG,WAAW,EACvB,cAAc,GAAG,IAAI,EACrB,kBAAkB,GAAG,EAAE,EACvB,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,QAAQ,EACxB,QAAQ,GAAG,sBAAM,CAAC,cAAc,EAChC,UAAU,GAAG,EAAE,EACf,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,GAAG,GAC1B,GAAG,OAAO,CAAC;IAEZ,4CAA4C;IAC5C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,qEAAqE;IACrE,8DAA8D;IAC9D,IAAI,iBAAiB,GAAe,WAAW,CAAC;IAChD,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,wCAAwC;QACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,0CAA0C;QACtE,iBAAiB,GAAG,MAAM,CAAC;IAC7B,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,8DAA8D,WAAW,CAAC,MAAM,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,4EAA4E;IAC5E,IAAI,UAAkB,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEnD,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;QACvC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,0BAA0B;QAEnD,wDAAwD;QACxD,iEAAiE;QACjE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;SAAM,IACL,UAAU,CAAC,MAAM,KAAK,eAAe;QACrC,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,EAChC,CAAC;QACD,wCAAwC;QACxC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACpD,uCAAuC;QACvC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,2HAA2H,UAAU,CAAC,MAAM,EAAE,CAC/I,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,0EAA0E;IAC1E,MAAM,YAAY,GAAG,qBAAS,CAAC,eAAe,CAC5C,iBAAiB,EACjB,UAAU,EACV,KAAK,CACN,CAAC;IAEF,iFAAiF;IACjF,mFAAmF;IACnF,MAAM,IAAI,GAAG,IAAI,CACf,YAAY,EACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iDAAiD;IAClE,QAAQ,EACR,UAAU,EACV,aAAa,CACd,CAAC;IAEF,kCAAkC;IAClC,OAAO,4BAA4B,CACjC,IAAI,EACJ,gBAAgB,EAChB,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAa,aAAa;IAChB,MAAM,CAAC,QAAQ,CAAiB;IAExC;;OAEG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,wBAAwB,CACnC,WAAuB,EACvB,UAAsB,EACtB,OAAiC;QAEjC,OAAO,wBAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACI,IAAI,CACT,MAAkB,EAClB,IAAuB,EACvB,IAAY,EACZ,MAAc,EACd,aAAsB;QAEtB,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,CAAS,EAAE,CAAS;QACzC,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,GAAW;QAClD,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,CAAS,EAAE,CAAS;QACpC,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,0BAA0B,CAC/B,IAA6B,EAC7B,OAAe,EACf,mBAA4B,EAC5B,WAAoB;QAEpB,OAAO,0BAA0B,CAC/B,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,4BAA4B,CACvC,IAAgB,EAChB,IAAa,EACb,mBAA4B;QAE5B,OAAO,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,UAAU,CACf,IAAgB,EAChB,aAAsB;QAEtB,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACI,uBAAuB,CAAC,SAAoB;QACjD,wBAAwB;QACxB,wEAAwE;QACxE,0EAA0E;QAC1E,6CAA6C;QAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC;aACrB,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE1C,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,oFAAoF;QACpF,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,sBAAM,CAAC,eAAe,CAAC,CAAC;QAEpE,cAAc;QACd,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAM,CAAC,WAAW,CAAC;QAE/B,cAAc;QACd,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEtB,uBAAuB;QACvB,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3B,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc;QACjD,uBAAuB;QACvB,0GAA0G;QAC1G,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjD,sEAAsE;QACtE,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,sBAAM,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,8BAA8B,CAAC,CAAC;QACxE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,gCAAgC,CAAC,CAAC;QAC1E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,SAAS;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAE9B,kBAAkB;QAClB,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CACpC,aAAa,EACb,aAAa,GAAG,sBAAM,CAAC,eAAe,CACvC,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,wBAAwB,CAAC,CAAC;QAClE,CAAC;QAED,yEAAyE;QACzE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,0BAA0B,CAAC,CAAC;QACpE,CAAC;QAED,oCAAoC;QACpC,kGAAkG;QAClG,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACI,wBAAwB,CAAC,UAAsB;QACpD,8CAA8C;QAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;aAChC,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE;aACxB,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAE5C,uFAAuF;QACvF,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,sBAAM,CAAC,eAAe,CAAC,CAAC;QAEpE,cAAc;QACd,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAM,CAAC,WAAW,CAAC;QAE/B,iCAAiC;QACjC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE5B,yBAAyB;QACzB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAE9C,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,wBAAwB,CACnC,MAAc,EACd,SAAoB;QAEpB,wBAAwB;QACxB,0GAA0G;QAC1G,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAElD,yEAAyE;QACzE,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,sBAAM,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,+BAA+B,CAAC,CAAC;QACzE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,iCAAiC,CAAC,CAAC;QAC3E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,4BAA4B,CAAC,CAAC;QACtE,CAAC;QAED,cAAc;QACd,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAExC,UAAU;QACV,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM;aACjB,QAAQ,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC;aACzD,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAEhC,kBAAkB;QAClB,MAAM,aAAa,GAAG,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CACpC,aAAa,EACb,aAAa,GAAG,sBAAM,CAAC,eAAe,CACvC,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,yBAAyB,CAAC,CAAC;QACnE,CAAC;QAED,kGAAkG;QAClG,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,yBAAyB,CAAC,SAAkC;QACjE,MAAM,GAAG,GAAG,SAAyC,CAAC;QACtD,IAAI,CAAC,mCAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;aACf,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QAEvC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,sFAAsF;QACtF,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,sBAAM,CAAC,eAAe,CAAC,CAAC;QAEpE,cAAc;QACd,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAM,CAAC,WAAW,CAAC;QAE/B,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEnC,mBAAmB;QACnB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzC,uBAAuB;QACvB,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3B,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,yBAAyB,CACpC,MAAc;QAEd,8BAA8B;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,sBAAM,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,8BAA8B,CAAC,CAAC;QACxE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,gCAAgC,CAAC,CAAC;QAC1E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,kBAAkB;QAClB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,SAAS;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAE9B,kBAAkB;QAClB,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CACpC,aAAa,EACb,aAAa,GAAG,sBAAM,CAAC,eAAe,CACvC,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,wBAAwB,CAAC,CAAC;QAClE,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAEjB,2DAA2D;QAC3D,uDAAuD;QACvD,OAAO,mCAAiB,CAAC,UAAU,CACjC,CAAC,EACD,CAAC,EACD,KAAK,EACL,UAAU,CAC2B,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,0BAA0B,CAC/B,UAAoC;QAEpC,MAAM,GAAG,GAAG,UAA2C,CAAC;QACxD,yDAAyD;QACzD,mEAAmE;QACnE,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,0BAA0B,CACrC,MAAc,EACd,SAAkC;QAElC,MAAM,GAAG,GAAG,SAAyC,CAAC;QACtD,IAAI,CAAC,mCAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,8BAA8B;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,sBAAM,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,+BAA+B,CAAC,CAAC;QACzE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,iCAAiC,CAAC,CAAC;QAC3E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,4BAA4B,CAAC,CAAC;QACtE,CAAC;QAED,cAAc;QACd,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAExC,UAAU;QACV,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM;aACjB,QAAQ,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC;aACzD,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAEhC,kBAAkB;QAClB,MAAM,aAAa,GAAG,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CACpC,aAAa,EACb,aAAa,GAAG,sBAAM,CAAC,eAAe,CACvC,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,yBAAyB,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,qCAAkB,CAC3B,MAAM,EACN,EAAE,EACF,GAAG,CACmC,CAAC;IAC3C,CAAC;IAED,mCAAmC;IAC3B,WAAW,CAAC,GAAW;QAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,iDAAiD;IAC1C,kBAAkB,CAAC,SAAoB;QAC5C,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAC/B,MAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,mBAAmB,CAAC,UAAsB;QAC/C,OAAO,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAChC,MAA2B,EAC3B,SAAoB;QAEpB,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;CACF;AArhBD,sCAqhBC"}