@hyperlane-xyz/sdk 41.3.1 → 42.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.
Files changed (166) hide show
  1. package/dist/ccip/consts.d.ts.map +1 -1
  2. package/dist/ccip/consts.js +20 -0
  3. package/dist/ccip/consts.js.map +1 -1
  4. package/dist/consts/multisigIsm.d.ts.map +1 -1
  5. package/dist/consts/multisigIsm.js +20 -0
  6. package/dist/consts/multisigIsm.js.map +1 -1
  7. package/dist/contracts/contracts.d.ts.map +1 -1
  8. package/dist/contracts/contracts.js +15 -0
  9. package/dist/contracts/contracts.js.map +1 -1
  10. package/dist/contracts/contracts.test.d.ts +2 -0
  11. package/dist/contracts/contracts.test.d.ts.map +1 -0
  12. package/dist/contracts/contracts.test.js +88 -0
  13. package/dist/contracts/contracts.test.js.map +1 -0
  14. package/dist/core/types.d.ts +80 -2602
  15. package/dist/core/types.d.ts.map +1 -1
  16. package/dist/core/types.js +19 -1
  17. package/dist/core/types.js.map +1 -1
  18. package/dist/core/types.test.js +58 -0
  19. package/dist/core/types.test.js.map +1 -1
  20. package/dist/deploy/warp.d.ts +119 -3
  21. package/dist/deploy/warp.d.ts.map +1 -1
  22. package/dist/deploy/warp.js +696 -33
  23. package/dist/deploy/warp.js.map +1 -1
  24. package/dist/deploy/warp.test.d.ts +2 -0
  25. package/dist/deploy/warp.test.d.ts.map +1 -0
  26. package/dist/deploy/warp.test.js +358 -0
  27. package/dist/deploy/warp.test.js.map +1 -0
  28. package/dist/deploy/warpHybridPlan.d.ts +104 -0
  29. package/dist/deploy/warpHybridPlan.d.ts.map +1 -0
  30. package/dist/deploy/warpHybridPlan.js +178 -0
  31. package/dist/deploy/warpHybridPlan.js.map +1 -0
  32. package/dist/deploy/warpHybridPlan.test.d.ts +2 -0
  33. package/dist/deploy/warpHybridPlan.test.d.ts.map +1 -0
  34. package/dist/deploy/warpHybridPlan.test.js +141 -0
  35. package/dist/deploy/warpHybridPlan.test.js.map +1 -0
  36. package/dist/hook/EvmHookModule.d.ts +1 -1
  37. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  38. package/dist/hook/EvmHookModule.js +16 -3
  39. package/dist/hook/EvmHookModule.js.map +1 -1
  40. package/dist/hook/EvmHookReader.d.ts +10 -0
  41. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  42. package/dist/hook/EvmHookReader.js +92 -11
  43. package/dist/hook/EvmHookReader.js.map +1 -1
  44. package/dist/hook/EvmHookReader.test.js +155 -1
  45. package/dist/hook/EvmHookReader.test.js.map +1 -1
  46. package/dist/hook/types.d.ts +107 -1983
  47. package/dist/hook/types.d.ts.map +1 -1
  48. package/dist/hook/types.js +49 -0
  49. package/dist/hook/types.js.map +1 -1
  50. package/dist/hook/types.test.js +21 -1
  51. package/dist/hook/types.test.js.map +1 -1
  52. package/dist/hook/updates.d.ts +1 -0
  53. package/dist/hook/updates.d.ts.map +1 -1
  54. package/dist/hook/updates.js +2 -2
  55. package/dist/hook/updates.js.map +1 -1
  56. package/dist/hook/utils.d.ts +28 -1
  57. package/dist/hook/utils.d.ts.map +1 -1
  58. package/dist/hook/utils.js +89 -0
  59. package/dist/hook/utils.js.map +1 -1
  60. package/dist/ica/types.d.ts +4 -674
  61. package/dist/ica/types.d.ts.map +1 -1
  62. package/dist/index.d.ts +6 -5
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +6 -5
  65. package/dist/index.js.map +1 -1
  66. package/dist/ism/EvmIsmModule.d.ts +28 -2
  67. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  68. package/dist/ism/EvmIsmModule.hardhat-test.js +478 -3
  69. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  70. package/dist/ism/EvmIsmModule.js +224 -10
  71. package/dist/ism/EvmIsmModule.js.map +1 -1
  72. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  73. package/dist/ism/EvmIsmReader.js +77 -1
  74. package/dist/ism/EvmIsmReader.js.map +1 -1
  75. package/dist/ism/EvmIsmReader.test.js +245 -4
  76. package/dist/ism/EvmIsmReader.test.js.map +1 -1
  77. package/dist/ism/HyperlaneIsmFactory.d.ts +14 -4
  78. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  79. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +372 -3
  80. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  81. package/dist/ism/HyperlaneIsmFactory.js +80 -6
  82. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  83. package/dist/ism/delayedFlow.d.ts +31 -0
  84. package/dist/ism/delayedFlow.d.ts.map +1 -0
  85. package/dist/ism/delayedFlow.js +33 -0
  86. package/dist/ism/delayedFlow.js.map +1 -0
  87. package/dist/ism/types.d.ts +135 -4
  88. package/dist/ism/types.d.ts.map +1 -1
  89. package/dist/ism/types.js +263 -11
  90. package/dist/ism/types.js.map +1 -1
  91. package/dist/ism/types.test.js +433 -1
  92. package/dist/ism/types.test.js.map +1 -1
  93. package/dist/ism/utils.d.ts.map +1 -1
  94. package/dist/ism/utils.js +113 -3
  95. package/dist/ism/utils.js.map +1 -1
  96. package/dist/ism/utils.test.js +44 -0
  97. package/dist/ism/utils.test.js.map +1 -1
  98. package/dist/providers/MultiProviderAdapter.d.ts +3 -3
  99. package/dist/providers/MultiProviderAdapter.d.ts.map +1 -1
  100. package/dist/providers/MultiProviderAdapter.js +2 -1
  101. package/dist/providers/MultiProviderAdapter.js.map +1 -1
  102. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts.map +1 -1
  103. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js +4 -0
  104. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js.map +1 -1
  105. package/dist/providers/transactionFeeEstimators.d.ts +16 -9
  106. package/dist/providers/transactionFeeEstimators.d.ts.map +1 -1
  107. package/dist/providers/transactionFeeEstimators.js +66 -17
  108. package/dist/providers/transactionFeeEstimators.js.map +1 -1
  109. package/dist/providers/transactionFeeEstimators.test.js +153 -1
  110. package/dist/providers/transactionFeeEstimators.test.js.map +1 -1
  111. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts +14 -1
  112. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts.map +1 -1
  113. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js +46 -5
  114. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js.map +1 -1
  115. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.d.ts +2 -0
  116. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.d.ts.map +1 -0
  117. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.js +125 -0
  118. package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.test.js.map +1 -0
  119. package/dist/router/HyperlaneRouterDeployer.d.ts +3 -1
  120. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  121. package/dist/router/HyperlaneRouterDeployer.js +4 -2
  122. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  123. package/dist/router/types.d.ts +6 -1011
  124. package/dist/router/types.d.ts.map +1 -1
  125. package/dist/test/testUtils.d.ts +1 -1
  126. package/dist/test/testUtils.d.ts.map +1 -1
  127. package/dist/test/testUtils.js +17 -0
  128. package/dist/test/testUtils.js.map +1 -1
  129. package/dist/test/testUtils.test.d.ts +2 -0
  130. package/dist/test/testUtils.test.d.ts.map +1 -0
  131. package/dist/test/testUtils.test.js +28 -0
  132. package/dist/test/testUtils.test.js.map +1 -0
  133. package/dist/token/EvmWarpModule.d.ts +44 -8
  134. package/dist/token/EvmWarpModule.d.ts.map +1 -1
  135. package/dist/token/EvmWarpModule.hardhat-test.js +574 -4
  136. package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
  137. package/dist/token/EvmWarpModule.js +237 -25
  138. package/dist/token/EvmWarpModule.js.map +1 -1
  139. package/dist/token/configUtils.d.ts +17 -7
  140. package/dist/token/configUtils.d.ts.map +1 -1
  141. package/dist/token/configUtils.js +108 -0
  142. package/dist/token/configUtils.js.map +1 -1
  143. package/dist/token/configUtils.test.js +155 -1
  144. package/dist/token/configUtils.test.js.map +1 -1
  145. package/dist/token/deploy.d.ts +3 -1
  146. package/dist/token/deploy.d.ts.map +1 -1
  147. package/dist/token/deploy.hardhat-test.js +454 -3
  148. package/dist/token/deploy.hardhat-test.js.map +1 -1
  149. package/dist/token/deploy.js +25 -6
  150. package/dist/token/deploy.js.map +1 -1
  151. package/dist/token/types.d.ts +169 -2931
  152. package/dist/token/types.d.ts.map +1 -1
  153. package/dist/token/types.test.js +48 -0
  154. package/dist/token/types.test.js.map +1 -1
  155. package/dist/token/warpCheck.d.ts.map +1 -1
  156. package/dist/token/warpCheck.js +36 -1
  157. package/dist/token/warpCheck.js.map +1 -1
  158. package/dist/utils/ism.d.ts +167 -1
  159. package/dist/utils/ism.d.ts.map +1 -1
  160. package/dist/utils/ism.js +412 -2
  161. package/dist/utils/ism.js.map +1 -1
  162. package/dist/utils/ism.test.d.ts +2 -0
  163. package/dist/utils/ism.test.d.ts.map +1 -0
  164. package/dist/utils/ism.test.js +372 -0
  165. package/dist/utils/ism.test.js.map +1 -0
  166. package/package.json +10 -10
package/dist/ism/types.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { isEmptyAddress, isNullish, isValidAddressSealevel, rootLogger, } from '@hyperlane-xyz/utils';
2
+ import { addressToBytes32, isEmptyAddress, isNullish, isValidAddressSealevel, rootLogger, } from '@hyperlane-xyz/utils';
3
3
  import { ZBigNumberish, ZBytes32String, ZHash, } from '../metadata/customZodTypes.js';
4
4
  import { OwnableSchema, PausableSchema, RATE_LIMIT_DEFAULT_DURATION_SECONDS, } from '../types.js';
5
5
  import { isCompliant } from '../utils/schemas.js';
@@ -51,6 +51,15 @@ export const IsmType = {
51
51
  RATE_LIMITED: 'rateLimitedIsm',
52
52
  COMPOSITE: 'compositeIsm',
53
53
  BLACKLIST: 'blacklistIsm',
54
+ // Ownerless routing ISM that always defers to the mailbox's default ISM.
55
+ // Distinct from provider-sdk/AltVM's "default ISM" notion (the zero-address
56
+ // mailbox field): this is a deployed contract with its own address.
57
+ MAILBOX_DEFAULT: 'defaultIsm',
58
+ // Hybrid hook/ISM: one contract instance is installed as BOTH the hook and
59
+ // the ISM of a single warp router (shared bucket state). Deployed via the
60
+ // ISM config surface; the hook side is referenced by address.
61
+ NET_FLOW_RATE_LIMITED: 'netFlowRateLimitedHookIsm',
62
+ DELAYED_FLOW_ROUTER: 'delayedFlowRouterHookIsm',
54
63
  UNKNOWN: 'unknownIsm',
55
64
  };
56
65
  // ISM types that can be updated in-place on EVM chains (consumed by
@@ -65,6 +74,10 @@ export const MUTABLE_ISM_TYPE = [
65
74
  IsmType.INCREMENTAL_ROUTING,
66
75
  IsmType.RATE_LIMITED,
67
76
  IsmType.BLACKLIST,
77
+ // owner is the only mutable field; rate params force a redeploy
78
+ IsmType.NET_FLOW_RATE_LIMITED,
79
+ // owner + remote router enrollment are mutable; rate params force a redeploy
80
+ IsmType.DELAYED_FLOW_ROUTER,
68
81
  ];
69
82
  /**
70
83
  * @notice Statically deployed ISM types
@@ -80,6 +93,8 @@ export const STATIC_ISM_TYPES = [
80
93
  export const DYNAMICALLY_ROUTED_ISM_TYPES = [
81
94
  IsmType.AMOUNT_ROUTING,
82
95
  IsmType.INTERCHAIN_ACCOUNT_ROUTING,
96
+ // No static domains table: route() resolves to the mailbox's default ISM
97
+ IsmType.MAILBOX_DEFAULT,
83
98
  ];
84
99
  /** Type guard for dynamically routed ISM types */
85
100
  export function isDynamicallyRoutedIsmType(type) {
@@ -93,6 +108,7 @@ export function ismTypeToModuleType(ismType) {
93
108
  case IsmType.AMOUNT_ROUTING:
94
109
  case IsmType.INTERCHAIN_ACCOUNT_ROUTING:
95
110
  case IsmType.INCREMENTAL_ROUTING:
111
+ case IsmType.MAILBOX_DEFAULT:
96
112
  return ModuleType.ROUTING;
97
113
  case IsmType.AGGREGATION:
98
114
  case IsmType.STORAGE_AGGREGATION:
@@ -111,6 +127,8 @@ export function ismTypeToModuleType(ismType) {
111
127
  case IsmType.CCIP:
112
128
  case IsmType.RATE_LIMITED:
113
129
  case IsmType.BLACKLIST:
130
+ case IsmType.NET_FLOW_RATE_LIMITED:
131
+ case IsmType.DELAYED_FLOW_ROUTER:
114
132
  return ModuleType.NULL;
115
133
  case IsmType.ARB_L2_TO_L1:
116
134
  return ModuleType.ARB_L2_TO_L1;
@@ -186,6 +204,77 @@ export const RateLimitedIsmConfigSchema = z
186
204
  }
187
205
  return val;
188
206
  });
207
+ export const MailboxDefaultIsmConfigSchema = z.object({
208
+ type: z.literal(IsmType.MAILBOX_DEFAULT),
209
+ // No config fields: the mailbox is chain identity, supplied by the deploy
210
+ // context (like TRUSTED_RELAYER / RATE_LIMITED), not the declarative config.
211
+ });
212
+ /**
213
+ * Remote counterpart of a DelayedFlowRouterHookIsm, enrolled as a Router
214
+ * route. Accepts a 20-byte EVM address or a 32-byte hex value; normalized to
215
+ * lowercase bytes32 (the on-chain `routers(uint32)` representation) at parse
216
+ * time so config and derived on-chain state compare equal. Shared with the
217
+ * hook-side view of the same contract (../hook/types.ts).
218
+ */
219
+ export const ZRouterBytes32 = z
220
+ .string()
221
+ .regex(/^0x([0-9a-fA-F]{40}|[0-9a-fA-F]{64})$/, 'must be a 20-byte address or 32-byte hex value')
222
+ .refine((value) => !isEmptyAddress(value), {
223
+ message: 'must not be the zero address',
224
+ })
225
+ .transform((value) => addressToBytes32(value).toLowerCase());
226
+ export const NetFlowRateLimitedHookIsmConfigSchema = z
227
+ .object({
228
+ type: z.literal(IsmType.NET_FLOW_RATE_LIMITED),
229
+ /**
230
+ * Warp router this contract guards; must have it installed as hook AND
231
+ * ISM. Optional in warp-route deploy configs (defaults to the containing
232
+ * warp router, injected at deploy time like RATE_LIMITED's recipient);
233
+ * required for standalone ISM deploys (asserted in HyperlaneIsmFactory).
234
+ */
235
+ warpRouter: ZHash.optional(),
236
+ /** Net outflow allowed per `duration` window, in bps of live TVL (< 10000). */
237
+ thresholdBps: z.number().int().min(0).max(9999),
238
+ /** Refill window in seconds — must match the on-chain immutable `DURATION`. */
239
+ duration: ZBigNumberish,
240
+ owner: ZHash.optional(),
241
+ })
242
+ .refine((val) => val.duration > 0n, {
243
+ message: 'duration must be greater than 0',
244
+ path: ['duration'],
245
+ });
246
+ /**
247
+ * Operational bound for DelayedFlowRouterHookIsm waits. The contract adds the
248
+ * delay to a uint48 Unix timestamp; uint32 seconds (~136 years) exceeds any
249
+ * practical delay while leaving ample timestamp headroom.
250
+ */
251
+ export const MAX_SAFE_UINT48 = 2 ** 32 - 1;
252
+ export const DelayedFlowRouterHookIsmConfigSchema = OwnableSchema.extend({
253
+ type: z.literal(IsmType.DELAYED_FLOW_ROUTER),
254
+ /**
255
+ * Warp router this contract guards; must have it installed as hook AND
256
+ * ISM. Optional in warp-route deploy configs (defaults to the containing
257
+ * warp router, injected at deploy time like RATE_LIMITED's recipient);
258
+ * required for standalone ISM deploys (asserted in HyperlaneIsmFactory).
259
+ */
260
+ warpRouter: ZHash.optional(),
261
+ /** Bucket size per `duration` window, in bps of live TVL (delay mode permits 100%). */
262
+ thresholdBps: z.number().int().min(0).max(10000),
263
+ /** Cap on any single message's wait, in seconds. */
264
+ maxDelay: z.number().int().nonnegative().max(MAX_SAFE_UINT48),
265
+ /** Refill window in seconds — must match the on-chain immutable `DURATION`. */
266
+ duration: ZBigNumberish,
267
+ /**
268
+ * Enrolled remote counterparts, keyed by chain name; values are the remote
269
+ * DelayedFlowRouterHookIsm instances (the contract is itself a Router, so
270
+ * on-chain nomenclature keeps "router": enrollRemoteRouters/routers()).
271
+ * Omit to leave the current on-chain enrollment untouched.
272
+ */
273
+ remoteIsms: z.record(ZRouterBytes32).optional(),
274
+ }).refine((val) => val.duration > 0n, {
275
+ message: 'duration must be greater than 0',
276
+ path: ['duration'],
277
+ });
189
278
  export const CCIPIsmConfigSchema = z.object({
190
279
  type: z.literal(IsmType.CCIP),
191
280
  originChain: z.string(),
@@ -525,6 +614,9 @@ export const BaseIsmConfigSchema = z.union([
525
614
  CCIPIsmConfigSchema,
526
615
  RateLimitedIsmConfigSchema,
527
616
  BlacklistIsmConfigSchema,
617
+ NetFlowRateLimitedHookIsmConfigSchema,
618
+ DelayedFlowRouterHookIsmConfigSchema,
619
+ MailboxDefaultIsmConfigSchema,
528
620
  MultisigIsmConfigSchema,
529
621
  WeightedMultisigIsmConfigSchema,
530
622
  RoutingIsmConfigSchema,
@@ -536,12 +628,121 @@ export const BaseIsmConfigSchema = z.union([
536
628
  UnknownIsmConfigSchema,
537
629
  ]);
538
630
  /**
539
- * Validates that every blacklist ISM in the tree sits in a mandatory position:
540
- * a member of an aggregation whose threshold equals its module count, so the
541
- * blacklist verdict can never be outvoted. A blacklist ISM cannot be used
542
- * standalone, as a routing target, or under a non-exhaustive aggregation.
631
+ * ISM types that authenticate a message's origin/authorship, as opposed to
632
+ * gating on local state. Used to satisfy the composition requirement of the
633
+ * warp-route hybrid hook/ISMs, whose `moduleType()` is NULL and which
634
+ * therefore verify flow, not authenticity.
635
+ *
636
+ * MEMBERSHIP CRITERION — add a type here only if the SDK deploy path
637
+ * (HyperlaneIsmFactory) yields an instance that provably authenticates the
638
+ * message in its POST-DEPLOY state, with no window in which a third party can
639
+ * bind the authority it checks. Being named like a verifier does not qualify a
640
+ * type, and neither does canonical bytecode: what matters is whether the
641
+ * authority the contract compares against is fixed by this deploy path itself.
642
+ * A contract whose authority is installed by a public initializer or setter
643
+ * that the deploy path neither calls nor verifies is bindable by whoever
644
+ * reaches it first, and an attacker-bound instance verifies attacker messages.
645
+ *
646
+ * Evidence for each member:
647
+ * - MERKLE_ROOT_MULTISIG / MESSAGE_ID_MULTISIG: validators and threshold are
648
+ * MetaProxy metadata (StaticMultisigIsm.sol:21-25) fixed at the deterministic
649
+ * address the factory derives from them, so even a front-run deployment is
650
+ * the identical contract; verify() requires `threshold` validator signatures
651
+ * over the checkpoint digest (AbstractMultisigIsm.sol:97-115). No owner, no
652
+ * initializer.
653
+ * - STORAGE_MERKLE_ROOT_MULTISIG / STORAGE_MESSAGE_ID_MULTISIG: deployed by
654
+ * constructor (deployMultisigIsm -> handleDeploy), which sets validators and
655
+ * threshold and calls `_disableInitializers()` (StorageMultisigIsm.sol:25-32),
656
+ * so `initialize` reverts for everyone and the Ownable2Step owner stays unset
657
+ * — `setValidatorsAndThreshold` is onlyOwner and therefore uncallable. This
658
+ * membership rests on THAT deploy path, not on the contract alone: the
659
+ * on-chain `StorageMultisigIsmFactory.deploy` instead creates a MinimalProxy
660
+ * and calls `initialize(msg.sender, ...)` (StorageMultisigIsm.sol:101-112),
661
+ * and a proxy runs no constructor, so `_disableInitializers` never applies,
662
+ * the owner becomes the caller and `setValidatorsAndThreshold` is callable.
663
+ * Moving these two types onto that factory (see the TODO in
664
+ * `deployMultisigIsm`) removes the property this membership rests on, so they
665
+ * must leave this set in the same change.
666
+ * - WEIGHTED_MERKLE_ROOT_MULTISIG / WEIGHTED_MESSAGE_ID_MULTISIG: same
667
+ * MetaProxy argument, with the validator set and threshold weight in the
668
+ * metadata (WeightedMultisigIsm.sol:23-34); verify() accumulates weight from
669
+ * recovered signatures (AbstractWeightedMultisigIsm.sol:47-90).
670
+ * - TRUSTED_RELAYER: mailbox and trustedRelayer are constructor immutables
671
+ * passed by this deploy path (TrustedRelayerIsm.sol:14-29); verify() returns
672
+ * `mailbox.processor(id) == trustedRelayer`, so only the operator-chosen
673
+ * relayer can make a message pass. No initializer, nothing to bind.
674
+ *
675
+ * Deliberately absent:
676
+ * - ARB_L2_TO_L1 and CCIP: both are `AbstractMessageIdAuthorizedIsm`s whose
677
+ * `authorizedHook` is set by `setAuthorizedHook`, a PUBLIC one-shot
678
+ * `initializer` (AbstractMessageIdAuthorizedIsm.sol:60-66). This deploy path
679
+ * neither calls it (ARB is deployed with `[bridge]` alone) nor verifies it
680
+ * (CCIP resolves an address out of the CCIP cache), so between deployment
681
+ * and the operator's own binding any account can bind the ISM to a sender it
682
+ * controls and preverify arbitrary message ids. Canonical bytecode does not
683
+ * establish that missing hook identity.
684
+ * - MAILBOX_DEFAULT: delegates to whatever the mailbox's default ISM happens to
685
+ * be at verification time, which cannot be verified statically here.
686
+ * - OFFCHAIN_LOOKUP: `CCIP_READ` is an extensibility interface, not an
687
+ * authentication guarantee — the contract is deployed out of band and its
688
+ * `verify` may return true unconditionally (`TestCcipReadIsm`). Such an ISM
689
+ * may still be composed beside a hybrid; it just does not stand in as the
690
+ * authenticator.
691
+ * - A bare address string: its type is unknowable at config-parse time, so
692
+ * treating it as authenticating would let a NULL-type ISM referenced by
693
+ * address satisfy the requirement.
543
694
  */
544
- function validateBlacklistComposition(node, path, mandatoryPosition, underAggregation, ctx) {
695
+ const AUTHENTICATING_ISM_TYPES = new Set([
696
+ IsmType.MERKLE_ROOT_MULTISIG,
697
+ IsmType.MESSAGE_ID_MULTISIG,
698
+ IsmType.STORAGE_MERKLE_ROOT_MULTISIG,
699
+ IsmType.STORAGE_MESSAGE_ID_MULTISIG,
700
+ IsmType.WEIGHTED_MERKLE_ROOT_MULTISIG,
701
+ IsmType.WEIGHTED_MESSAGE_ID_MULTISIG,
702
+ IsmType.TRUSTED_RELAYER,
703
+ ]);
704
+ /**
705
+ * True if `node` authenticates on its own, or is an aggregation that cannot be
706
+ * satisfied without one of its authenticating members.
707
+ *
708
+ * The threshold is load-bearing. AbstractAggregationIsm.verify runs only the
709
+ * submodules the relayer-supplied metadata carries an entry for, and requires
710
+ * exactly `threshold` of them to pass (AbstractAggregationIsm.sol:44-67), so
711
+ * the relayer picks which `threshold` members are consulted. An aggregation
712
+ * therefore authenticates only when its non-authenticating members are too few
713
+ * to reach the threshold by themselves — otherwise the relayer satisfies it
714
+ * with, say, an unpaused PausableIsm (PausableIsm.sol:28-33, returns true
715
+ * unconditionally) and the authenticating member never executes.
716
+ */
717
+ function providesAuthentication(node) {
718
+ if (typeof node !== 'object' || node === null) {
719
+ return false;
720
+ }
721
+ if (AUTHENTICATING_ISM_TYPES.has(node.type)) {
722
+ return true;
723
+ }
724
+ if (node.type === IsmType.AGGREGATION ||
725
+ node.type === IsmType.STORAGE_AGGREGATION) {
726
+ const nonAuthenticatingCount = node.modules.filter((module) => !providesAuthentication(module)).length;
727
+ return nonAuthenticatingCount < node.threshold;
728
+ }
729
+ return false;
730
+ }
731
+ /**
732
+ * Validates the composition invariants of ISM types that are only safe in a
733
+ * mandatory position:
734
+ *
735
+ * - BLACKLIST must be a member of an aggregation whose threshold equals its
736
+ * module count, so its verdict can never be outvoted.
737
+ * - The warp-route hybrid hook/ISMs (NET_FLOW_RATE_LIMITED,
738
+ * DELAYED_FLOW_ROUTER) have the same requirement AND must be accompanied by
739
+ * an authenticating ISM. Their `moduleType()` is NULL: they meter flow, not
740
+ * message authenticity, so using one as a route's sole ISM lets any caller
741
+ * process a forged message subject only to bucket capacity (on a synthetic
742
+ * leg, minting arbitrary tokens).
743
+ */
744
+ function validateIsmComposition(node, path, context, ctx) {
745
+ const { mandatoryPosition, underAggregation, authenticated, addressModuleSibling, } = context;
545
746
  if (typeof node === 'string') {
546
747
  return;
547
748
  }
@@ -555,28 +756,79 @@ function validateBlacklistComposition(node, path, mandatoryPosition, underAggreg
555
756
  });
556
757
  }
557
758
  break;
759
+ case IsmType.NET_FLOW_RATE_LIMITED:
760
+ case IsmType.DELAYED_FLOW_ROUTER:
761
+ if (!(mandatoryPosition && underAggregation)) {
762
+ ctx.addIssue({
763
+ code: z.ZodIssueCode.custom,
764
+ message: `A ${node.type} verifies flow, not message authenticity (moduleType is NULL), so it must be a member of an aggregation whose threshold equals its module count; it cannot be used standalone, as a routing target, or under a non-exhaustive aggregation.`,
765
+ path,
766
+ });
767
+ }
768
+ else if (!authenticated) {
769
+ ctx.addIssue({
770
+ code: z.ZodIssueCode.custom,
771
+ message: `A ${node.type} must be composed with an authenticating ISM (e.g. a multisig) in the same mandatory aggregation; on its own it lets any caller process a forged message subject only to bucket capacity.` +
772
+ (addressModuleSibling
773
+ ? ` A module given as a bare address does not count — an already-deployed ISM has to be declared by type: re-declaring a static multisig with the same validators and threshold resolves to its existing address.`
774
+ : ''),
775
+ path,
776
+ });
777
+ }
778
+ break;
558
779
  case IsmType.AGGREGATION:
559
780
  case IsmType.STORAGE_AGGREGATION: {
560
781
  const childMandatory = mandatoryPosition && node.threshold === node.modules.length;
561
- node.modules.forEach((subIsm, i) => validateBlacklistComposition(subIsm, [...path, 'modules', i], childMandatory, true, ctx));
782
+ // An authenticating member only guarantees authentication when it cannot
783
+ // be outvoted, i.e. when this aggregation is itself in a mandatory
784
+ // position and its own threshold cannot be met without that member.
785
+ const childAuthenticated = authenticated || (childMandatory && providesAuthentication(node));
786
+ const childAddressModuleSibling = addressModuleSibling ||
787
+ node.modules.some((module) => typeof module === 'string');
788
+ node.modules.forEach((subIsm, i) => validateIsmComposition(subIsm, [...path, 'modules', i], {
789
+ mandatoryPosition: childMandatory,
790
+ underAggregation: true,
791
+ authenticated: childAuthenticated,
792
+ addressModuleSibling: childAddressModuleSibling,
793
+ }, ctx));
562
794
  break;
563
795
  }
564
796
  case IsmType.ROUTING:
565
797
  case IsmType.FALLBACK_ROUTING:
566
798
  case IsmType.INCREMENTAL_ROUTING:
567
799
  for (const [chain, domainIsm] of Object.entries(node.domains)) {
568
- validateBlacklistComposition(domainIsm, [...path, 'domains', chain], mandatoryPosition, false, ctx);
800
+ validateIsmComposition(domainIsm, [...path, 'domains', chain], {
801
+ mandatoryPosition,
802
+ underAggregation: false,
803
+ authenticated,
804
+ addressModuleSibling,
805
+ }, ctx);
569
806
  }
570
807
  break;
571
808
  case IsmType.AMOUNT_ROUTING:
572
- validateBlacklistComposition(node.lowerIsm, [...path, 'lowerIsm'], mandatoryPosition, false, ctx);
573
- validateBlacklistComposition(node.upperIsm, [...path, 'upperIsm'], mandatoryPosition, false, ctx);
809
+ validateIsmComposition(node.lowerIsm, [...path, 'lowerIsm'], {
810
+ mandatoryPosition,
811
+ underAggregation: false,
812
+ authenticated,
813
+ addressModuleSibling,
814
+ }, ctx);
815
+ validateIsmComposition(node.upperIsm, [...path, 'upperIsm'], {
816
+ mandatoryPosition,
817
+ underAggregation: false,
818
+ authenticated,
819
+ addressModuleSibling,
820
+ }, ctx);
574
821
  break;
575
822
  default:
576
823
  break;
577
824
  }
578
825
  }
579
- export const IsmConfigSchema = BaseIsmConfigSchema.superRefine((data, ctx) => validateBlacklistComposition(data, [], true, false, ctx));
826
+ export const IsmConfigSchema = BaseIsmConfigSchema.superRefine((data, ctx) => validateIsmComposition(data, [], {
827
+ mandatoryPosition: true,
828
+ underAggregation: false,
829
+ authenticated: false,
830
+ addressModuleSibling: false,
831
+ }, ctx));
580
832
  /**
581
833
  * Forward-compatible ISM config schema that normalizes unknown ISM types.
582
834
  * Use this instead of IsmConfigSchema when parsing configs that may contain
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ism/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ism/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4BxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,sBAAsB,EACtB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,cAAc,EACd,KAAK,GACN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,aAAa,EACb,cAAc,EACd,mCAAmC,GACpC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,gEAAgE;AAChE,uEAAuE;AACvE,yCAAyC;AACzC,wBAAwB;AACxB,MAAM,CAAN,IAAY,UAeX;AAfD,WAAY,UAAU;IACpB,+CAAU,CAAA;IACV,iDAAW,CAAA;IACX,yDAAe,CAAA;IACf,iEAAmB,CAAA;IACnB,2EAAwB,CAAA;IACxB,yEAAuB,CAAA;IACvB,2CAAQ,CAAA;IACR,qDAAa,CAAA;IACb,2DAAgB,CAAA;IAChB,6FAAiC,CAAA;IACjC,4FAAiC,CAAA;IACjC,0DAAgB,CAAA;IAChB,kDAAY,CAAA;IACZ,sDAAc,CAAA;AAChB,CAAC,EAfW,UAAU,KAAV,UAAU,QAerB;AAED,iEAAiE;AACjE,qCAAqC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,kBAAkB;IAC3B,mBAAmB,EAAE,6BAA6B;IAClD,gBAAgB,EAAE,2BAA2B;IAC7C,cAAc,EAAE,kBAAkB;IAClC,0BAA0B,EAAE,0BAA0B;IACtD,WAAW,EAAE,sBAAsB;IACnC,mBAAmB,EAAE,uBAAuB;IAC5C,oBAAoB,EAAE,uBAAuB;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,4BAA4B,EAAE,8BAA8B;IAC5D,2BAA2B,EAAE,6BAA6B;IAC1D,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,aAAa;IACvB,eAAe,EAAE,mBAAmB;IACpC,YAAY,EAAE,cAAc;IAC5B,6BAA6B,EAAE,+BAA+B;IAC9D,4BAA4B,EAAE,8BAA8B;IAC5D,IAAI,EAAE,SAAS;IACf,eAAe,EAAE,mBAAmB;IACpC,YAAY,EAAE,gBAAgB;IAC9B,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;IACzB,yEAAyE;IACzE,4EAA4E;IAC5E,oEAAoE;IACpE,eAAe,EAAE,YAAY;IAC7B,2EAA2E;IAC3E,0EAA0E;IAC1E,8DAA8D;IAC9D,qBAAqB,EAAE,2BAA2B;IAClD,mBAAmB,EAAE,0BAA0B;IAC/C,OAAO,EAAE,YAAY;CACb,CAAC;AASX,oEAAoE;AACpE,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;IACjB,gEAAgE;IAChE,OAAO,CAAC,qBAAqB;IAC7B,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,6BAA6B;IACrC,OAAO,CAAC,4BAA4B;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,0BAA0B;IAClC,yEAAyE;IACzE,OAAO,CAAC,eAAe;CACf,CAAC;AAEX,kDAAkD;AAClD,MAAM,UAAU,0BAA0B,CACxC,IAAa;IAEb,OAAQ,4BAAmD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,OAAO,CAAC;QACrB,KAAK,OAAO,CAAC,gBAAgB,CAAC;QAC9B,KAAK,OAAO,CAAC,cAAc,CAAC;QAC5B,KAAK,OAAO,CAAC,0BAA0B,CAAC;QACxC,KAAK,OAAO,CAAC,mBAAmB,CAAC;QACjC,KAAK,OAAO,CAAC,eAAe;YAC1B,OAAO,UAAU,CAAC,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,WAAW,CAAC;QACzB,KAAK,OAAO,CAAC,mBAAmB;YAC9B,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,KAAK,OAAO,CAAC,oBAAoB,CAAC;QAClC,KAAK,OAAO,CAAC,4BAA4B;YACvC,OAAO,UAAU,CAAC,oBAAoB,CAAC;QACzC,KAAK,OAAO,CAAC,mBAAmB,CAAC;QACjC,KAAK,OAAO,CAAC,2BAA2B;YACtC,OAAO,UAAU,CAAC,mBAAmB,CAAC;QACxC,KAAK,OAAO,CAAC,QAAQ,CAAC;QACtB,KAAK,OAAO,CAAC,QAAQ,CAAC;QACtB,KAAK,OAAO,CAAC,QAAQ,CAAC;QACtB,KAAK,OAAO,CAAC,MAAM,CAAC;QACpB,KAAK,OAAO,CAAC,eAAe,CAAC;QAC7B,KAAK,OAAO,CAAC,IAAI,CAAC;QAClB,KAAK,OAAO,CAAC,YAAY,CAAC;QAC1B,KAAK,OAAO,CAAC,SAAS,CAAC;QACvB,KAAK,OAAO,CAAC,qBAAqB,CAAC;QACnC,KAAK,OAAO,CAAC,mBAAmB;YAC9B,OAAO,UAAU,CAAC,IAAI,CAAC;QACzB,KAAK,OAAO,CAAC,YAAY;YACvB,OAAO,UAAU,CAAC,YAAY,CAAC;QACjC,KAAK,OAAO,CAAC,6BAA6B;YACxC,OAAO,UAAU,CAAC,6BAA6B,CAAC;QAClD,KAAK,OAAO,CAAC,4BAA4B;YACvC,OAAO,UAAU,CAAC,4BAA4B,CAAC;QACjD,KAAK,OAAO,CAAC,eAAe;YAC1B,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,OAAO,CAAC,SAAS;YACpB,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,OAAO,CAAC,OAAO;YAClB,OAAO,UAAU,CAAC,MAAM,CAAC;IAC7B,CAAC;AACH,CAAC;AAqED,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC,MAAM,CAAC;IACnE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;CACtB,CAAC,CAAC;AAgGH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,cAAc,EAAE,KAAK;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAClC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;IACrC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,KAAK,CAAC,OAAO,EAAE,8CAA8C,CAAC;IACjE;;;;OAIG;IACH,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,mCAAmC,CAAC;IACpE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;CACxB,CAAC;KACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE;IAClC,OAAO,EAAE,iCAAiC;IAC1C,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC;KACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;IACxD,OAAO,EAAE,uCAAuC;IAChD,IAAI,EAAE,CAAC,aAAa,CAAC;CACtB,CAAC;KACD,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,QAAQ,GAAG,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9D,UAAU,CAAC,IAAI,CACb,8BAA8B,GAAG,CAAC,WAAW,iCAAiC,GAAG,CAAC,QAAQ,sBAAsB,OAAO,EAAE,CAC1H,CAAC;QACF,OAAO,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;IACxC,0EAA0E;IAC1E,6EAA6E;CAC9E,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,KAAK,CACJ,uCAAuC,EACvC,gDAAgD,CACjD;KACA,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,EAAE,8BAA8B;CACxC,CAAC;KACD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC9C;;;;;OAKG;IACH,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE;IAC5B,+EAA+E;IAC/E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;CACxB,CAAC;KACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE;IAClC,OAAO,EAAE,iCAAiC;IAC1C,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,oCAAoC,GAAG,aAAa,CAAC,MAAM,CAAC;IACvE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC5C;;;;;OAKG;IACH,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE;IAC5B,uFAAuF;IACvF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IAChD,oDAAoD;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC;IAC7D,+EAA+E;IAC/E,QAAQ,EAAE,aAAa;IACvB;;;;;OAKG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE;IACpC,OAAO,EAAE,iCAAiC;IAC1C,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CAAC,MAAM,CAAC;IAChE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAClD,6BAA6B,CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC,GAAG,CACvD,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;CAClC,CAAC,CACH,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAG,uBAAuB,CAAC,GAAG,CACvE,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,KAAK;CACf,CAAC,CACH,CAAC;AAKF,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,GAAG,CAC7D,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACtC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC;QAC/C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC;KAC/C,CAAC;CACH,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,4BAA4B,CAAC,GAAG,CAC7E,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAChD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC;KAChD,CAAC;CACH,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAI/B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACd,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3B,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACvC,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,aAAa,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;YACX,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,gBAAgB;YACxB,OAAO,CAAC,mBAAmB;SAC5B,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;KACvC,CAAC;IACF,gCAAgC;CACjC,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAInC,CAAC;KACF,IAAI,CAAC,GAAG,EAAE,CACT,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;KACvC,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CACH;KACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;IACvD,OAAO,EAAE,+DAA+D;CACzE,CAAC,CAAC;AAEL,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAC7E,uEAAuE;AACvE,yCAAyC;AACzC,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;IAChD,OAAO,EAAE,iDAAiD;CAC3D,CAAC,CAAC;AACL,MAAM,QAAQ,GAAG,CAAC;KACf,MAAM,EAAE;KACR,KAAK,CACJ,qBAAqB,EACrB,+CAA+C,CAChD,CAAC;AACJ,MAAM,QAAQ,GAAG,CAAC;KACf,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,4CAA4C,CAAC,CAAC;AAE9E,MAAM,OAAO,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AAC/B,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAEjC,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtD,gFAAgF;AAChF,SAAS,sBAAsB,CAAC,GAAW,EAAE,KAAa;IACxD,OAAO,CAAC;SACL,MAAM,EAAE;SACR,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,mCAAmC,CAAC;SAC3D,MAAM;IACL,mEAAmE;IACnE,sEAAsE;IACtE,6DAA6D;IAC7D,gEAAgE;IAChE,uDAAuD;IACvD,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EACtD,EAAE,OAAO,EAAE,GAAG,KAAK,mDAAmD,EAAE,CACzE,CAAC;AACN,CAAC;AAED,sEAAsE;AACtE,yEAAyE;AACzE,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe,EAAE,gBAAgB;IACjC,mBAAmB,EAAE,mBAAmB;IACxC,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,eAAe;IAC/B,YAAY,EAAE,aAAa;IAC3B,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,iBAAiB;CAC3B,CAAC;AA2DX,MAAM,CAAC,MAAM,4BAA4B,GACvC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACV,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3B,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC;QACrD,OAAO,EAAE,eAAe;KACzB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;QACzD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,SAAS,EAAE,YAAY;KACxB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC;QACjD,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;KAC/C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;KACpB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;KACpB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC;QACpD,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE,WAAW,CAAC;QACxD,KAAK,EAAE,4BAA4B;QACnC,KAAK,EAAE,4BAA4B;KACpC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC;QAClD,WAAW,EAAE,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC;QAC3D,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;KAC/B,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC;QAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;KAC3D,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;QACtD,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;KAC3D,CAAC;CACH,CAAC,CACH,CAAC;AAOJ,wEAAwE;AACxE,SAAS,uBAAuB,CAAC,IAA4B;IAC3D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,oBAAoB,CAAC,gBAAgB;YACxC,OAAO,IAAI,CAAC;QACd,KAAK,oBAAoB,CAAC,WAAW;YACnC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpD,KAAK,oBAAoB,CAAC,cAAc;YACtC,OAAO,CACL,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CACpC,CAAC;QACJ;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAID;;;;;;GAMG;AACH,SAAS,wBAAwB,CAC/B,IAA4B,EAC5B,IAAyB,EACzB,KAAkC,EAClC,eAAwB,EACxB,GAAoB;IAEpB,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,OAAO,GAAwB,IAAI,EAAE,EAAE,CACxE,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAExE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,oBAAoB,CAAC,WAAW;YACnC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/D,QAAQ,CACN,mEAAmE,EACnE,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CACvB,CAAC;YACJ,CAAC;YACD,oEAAoE;YACpE,oEAAoE;YACpE,sEAAsE;YACtE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,QAAQ,CAAC,mDAAmD,EAAE;wBAC5D,GAAG,IAAI;wBACP,SAAS;wBACT,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAC9B,wBAAwB,CACtB,GAAG,EACH,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EACvB,KAAK,EACL,eAAe,EACf,GAAG,CACJ,CACF,CAAC;YACF,MAAM;QACR,KAAK,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClE,QAAQ,CACN,sEAAsE,EACtE,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CACvB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzB,QAAQ,CAAC,gCAAgC,SAAS,EAAE,EAAE;wBACpD,GAAG,IAAI;wBACP,YAAY;qBACb,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,oBAAoB,CAAC,YAAY;YACpC,oEAAoE;YACpE,oEAAoE;YACpE,oEAAoE;YACpE,6DAA6D;YAC7D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;gBACtE,QAAQ,CAAC,8BAA8B,EAAE,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,oCAAoC,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,QAAQ,CAAC,sDAAsD,EAAE;oBAC/D,GAAG,IAAI;oBACP,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QACR,KAAK,oBAAoB,CAAC,eAAe;YACvC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,oCAAoC,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,MAAM;QACR,KAAK,oBAAoB,CAAC,cAAc;YACtC,wBAAwB,CACtB,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAClB,KAAK,EACL,eAAe,EACf,GAAG,CACJ,CAAC;YACF,wBAAwB,CACtB,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAClB,KAAK,EACL,eAAe,EACf,GAAG,CACJ,CAAC;YACF,MAAM;QACR,KAAK,oBAAoB,CAAC,QAAQ;YAChC,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,kDAAkD,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;QACR,KAAK,oBAAoB,CAAC,OAAO,CAAC;QAClC,KAAK,oBAAoB,CAAC,gBAAgB;YACxC,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,0CAA0C,CAAC,CAAC;gBACjE,MAAM;YACR,CAAC;YACD,IACE,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,gBAAgB;gBACnD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAChC,CAAC;gBACD,QAAQ,CAAC,wCAAwC,EAAE;oBACjD,GAAG,IAAI;oBACP,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,QAAQ,CAAC,2DAA2D,CAAC,CAAC;YACxE,CAAC;YACD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,wBAAwB,CACtB,UAAU,EACV,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,MAAM;QACR,KAAK,oBAAoB,CAAC,IAAI;YAC5B,MAAM;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GACnC,aAAa,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAClC,oEAAoE;IACpE,uEAAuE;IACvE,0CAA0C;IAC1C,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,4BAA4B;CACnC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC3B,wBAAwB,CACtB,IAAI,CAAC,IAAI,EACT,CAAC,MAAM,CAAC,EACR,EAAE,YAAY,EAAE,KAAK,EAAE,EACvB,KAAK,EACL,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;CACjC,CAAC;KACD,WAAW,EAAE,CAAC;AAGjB,MAAM,aAAa,GAAa,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAC3D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAC7B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAI,MAAS;IACnD,oEAAoE;IACpE,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAM,CAAC;IACnD,CAAC;IAED,6EAA6E;IAC7E,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5E,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,UAAU,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,UAAe,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,CAAC,KAAK,CAAC;IACN,KAAK;IACL,mBAAmB;IACnB,sBAAsB;IACtB,8BAA8B;IAC9B,uBAAuB;IACvB,6BAA6B;IAC7B,mBAAmB;IACnB,0BAA0B;IAC1B,wBAAwB;IACxB,qCAAqC;IACrC,oCAAoC;IACpC,6BAA6B;IAC7B,uBAAuB;IACvB,+BAA+B;IAC/B,sBAAsB;IACtB,0BAA0B;IAC1B,wBAAwB;IACxB,wBAAwB;IACxB,6BAA6B;IAC7B,gCAAgC;IAChC,sBAAsB;CACvB,CAAC,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,wBAAwB,GAAyB,IAAI,GAAG,CAAU;IACtE,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,4BAA4B;IACpC,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,6BAA6B;IACrC,OAAO,CAAC,4BAA4B;IACpC,OAAO,CAAC,eAAe;CACxB,CAAC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB,CAAC,IAAe;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW;QACjC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,mBAAmB,EACzC,CAAC;QACD,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAChD,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAC5C,CAAC,MAAM,CAAC;QACT,OAAO,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAYD;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB,CAC7B,IAAe,EACf,IAAyB,EACzB,OAA8B,EAC9B,GAAoB;IAEpB,MAAM,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,GAAG,OAAO,CAAC;IAEZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,SAAS;YACpB,IAAI,CAAC,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EACL,uLAAuL;oBACzL,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QACR,KAAK,OAAO,CAAC,qBAAqB,CAAC;QACnC,KAAK,OAAO,CAAC,mBAAmB;YAC9B,IAAI,CAAC,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,KAAK,IAAI,CAAC,IAAI,4OAA4O;oBACnQ,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EACL,KAAK,IAAI,CAAC,IAAI,2LAA2L;wBACzM,CAAC,oBAAoB;4BACnB,CAAC,CAAC,gNAAgN;4BAClN,CAAC,CAAC,EAAE,CAAC;oBACT,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QACR,KAAK,OAAO,CAAC,WAAW,CAAC;QACzB,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACjC,MAAM,cAAc,GAClB,iBAAiB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9D,yEAAyE;YACzE,mEAAmE;YACnE,oEAAoE;YACpE,MAAM,kBAAkB,GACtB,aAAa,IAAI,CAAC,cAAc,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,MAAM,yBAAyB,GAC7B,oBAAoB;gBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CACjC,sBAAsB,CACpB,MAAM,EACN,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EACvB;gBACE,iBAAiB,EAAE,cAAc;gBACjC,gBAAgB,EAAE,IAAI;gBACtB,aAAa,EAAE,kBAAkB;gBACjC,oBAAoB,EAAE,yBAAyB;aAChD,EACD,GAAG,CACJ,CACF,CAAC;YACF,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,OAAO,CAAC;QACrB,KAAK,OAAO,CAAC,gBAAgB,CAAC;QAC9B,KAAK,OAAO,CAAC,mBAAmB;YAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9D,sBAAsB,CACpB,SAAS,EACT,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAC3B;oBACE,iBAAiB;oBACjB,gBAAgB,EAAE,KAAK;oBACvB,aAAa;oBACb,oBAAoB;iBACrB,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,MAAM;QACR,KAAK,OAAO,CAAC,cAAc;YACzB,sBAAsB,CACpB,IAAI,CAAC,QAAQ,EACb,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,EACrB;gBACE,iBAAiB;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,aAAa;gBACb,oBAAoB;aACrB,EACD,GAAG,CACJ,CAAC;YACF,sBAAsB,CACpB,IAAI,CAAC,QAAQ,EACb,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,EACrB;gBACE,iBAAiB;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,aAAa;gBACb,oBAAoB;aACrB,EACD,GAAG,CACJ,CAAC;YACF,MAAM;QACR;YACE,MAAM;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAC1B,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAC5C,sBAAsB,CACpB,IAAI,EACJ,EAAE,EACF;IACE,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,KAAK;CAC5B,EACD,GAAG,CACJ,CACF,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAClD,wBAAwB,EACxB,eAAe,CAChB,CAAC"}