@wormhole-labs/cctp-executor-route 0.21.0 → 0.23.0-beta.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/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2025 Wormhole Project Contributors
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/README.md CHANGED
@@ -40,3 +40,5 @@ SEND_TRANSFER=true npm run examples:test
40
40
  > ⚠️ **Note:**
41
41
  >
42
42
  > - All relevant contract addresses and constants are defined in `src/consts`.
43
+
44
+ ⚠ This software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Or plainly spoken - this is a very complex piece of software which targets a bleeding-edge, experimental smart contract runtime. Mistakes happen, and no matter how hard you try and whether you pay someone to audit it, it may eat your tokens, set your printer on fire or startle your cat. Cryptocurrencies are a high-risk investment, no matter how fancy.
@@ -56,7 +56,7 @@ class AptosCCTPExecutor {
56
56
  refundAddr,
57
57
  details.signedQuote,
58
58
  details.relayInstructions,
59
- details.referrerFeeDbps,
59
+ Number(details.referrerFeeDbps),
60
60
  payee,
61
61
  ];
62
62
  const tx = {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/aptos/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/aptos/executor.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,31 @@ export interface StatusResponse extends RelayData {
66
66
  estimatedCost: string;
67
67
  }
68
68
  export declare function fetchStatus(network: Network, txHash: string, chain: Chain): Promise<StatusResponse[]>;
69
+ /**
70
+ * Calculate referrer fee with optional amount-based capping.
71
+ *
72
+ * Fee Structure:
73
+ * - Without threshold: Fee scales linearly with amount at the specified dBps rate
74
+ * - With threshold: Fee scales until threshold amount, then plateaus at a fixed fee
75
+ *
76
+ * Example (1 bps / 10 dBps with $1M threshold):
77
+ * ┌─────────────────┬────────────┬──────────────────────┐
78
+ * │ Transfer Amount │ Fee Amount │ Effective Rate (dBps)│
79
+ * ├─────────────────┼────────────┼──────────────────────┤
80
+ * │ $0 - $1M │ 0.01% scaling │ 10 (full rate) │
81
+ * │ $1M (threshold) │ $100 │ 10 (full rate) │
82
+ * │ $5M │ $100 │ 2 (0.2%) │
83
+ * │ $10M (max) │ $100 │ 1 (0.1%) │
84
+ * └─────────────────┴────────────┴──────────────────────┘
85
+ *
86
+ * The threshold is designed so that at the maximum expected transfer amount ($10M),
87
+ * the effective rate is still >= 1 dBps, avoiding integer division to zero.
88
+ *
89
+ * @param amount - Transfer amount in token base units (6 decimals for USDC)
90
+ * @param dBps - Referrer fee rate in tenths of basis points (10 = 1 bps = 0.01%)
91
+ * @param threshold - Optional amount threshold in whole USDC units where fee caps
92
+ * @returns Object containing fee amount, remaining amount, and effective dBps rate
93
+ */
69
94
  export declare function calculateReferrerFee(amount: bigint, dBps: bigint, threshold?: bigint): {
70
95
  referrerFee: bigint;
71
96
  remainingAmount: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/cjs/utils.js CHANGED
@@ -76,24 +76,58 @@ async function fetchStatus(network, txHash, chain) {
76
76
  }
77
77
  }
78
78
  const MAX_U16 = 65535n;
79
+ /**
80
+ * Calculate referrer fee with optional amount-based capping.
81
+ *
82
+ * Fee Structure:
83
+ * - Without threshold: Fee scales linearly with amount at the specified dBps rate
84
+ * - With threshold: Fee scales until threshold amount, then plateaus at a fixed fee
85
+ *
86
+ * Example (1 bps / 10 dBps with $1M threshold):
87
+ * ┌─────────────────┬────────────┬──────────────────────┐
88
+ * │ Transfer Amount │ Fee Amount │ Effective Rate (dBps)│
89
+ * ├─────────────────┼────────────┼──────────────────────┤
90
+ * │ $0 - $1M │ 0.01% scaling │ 10 (full rate) │
91
+ * │ $1M (threshold) │ $100 │ 10 (full rate) │
92
+ * │ $5M │ $100 │ 2 (0.2%) │
93
+ * │ $10M (max) │ $100 │ 1 (0.1%) │
94
+ * └─────────────────┴────────────┴──────────────────────┘
95
+ *
96
+ * The threshold is designed so that at the maximum expected transfer amount ($10M),
97
+ * the effective rate is still >= 1 dBps, avoiding integer division to zero.
98
+ *
99
+ * @param amount - Transfer amount in token base units (6 decimals for USDC)
100
+ * @param dBps - Referrer fee rate in tenths of basis points (10 = 1 bps = 0.01%)
101
+ * @param threshold - Optional amount threshold in whole USDC units where fee caps
102
+ * @returns Object containing fee amount, remaining amount, and effective dBps rate
103
+ */
79
104
  function calculateReferrerFee(amount, dBps, threshold) {
80
105
  if (dBps > MAX_U16) {
81
106
  throw new Error("dBps exceeds max u16");
82
107
  }
83
108
  let referrerFeeDbps = dBps;
84
- let remainingAmount = amount;
85
109
  let referrerFee = 0n;
110
+ let remainingAmount = amount;
86
111
  if (dBps > 0) {
87
112
  if (threshold !== undefined && amount > 0) {
88
- // We first need to convert the threshold value to base units
113
+ // Convert threshold from whole USDC units to base units (6 decimals)
89
114
  const thresholdAmount = sdk_base_1.amount.parse(threshold.toString(), 6);
90
- // Capped dBps is minimum of dBps and threshold/amount
91
- const cappedMax = sdk_base_1.amount.units(thresholdAmount) / amount;
92
- const cappedDBps = dBps < cappedMax ? dBps : cappedMax;
93
- referrerFee = (amount * cappedDBps) / 100000n;
94
- referrerFeeDbps = cappedDBps;
115
+ const thresholdAmountUnits = sdk_base_1.amount.units(thresholdAmount);
116
+ // Cap the amount used for fee calculation at the threshold
117
+ // This creates a fee structure where fees plateau after the threshold amount
118
+ // For amounts below threshold: normal scaling applies
119
+ // For amounts at or above threshold: fee is fixed at (threshold * dBps / 100_000)
120
+ const cappedAmount = amount < thresholdAmountUnits ? amount : thresholdAmountUnits;
121
+ referrerFee = (cappedAmount * dBps) / 100000n;
122
+ // Calculate effective dBps rate based on actual amount transferred
123
+ // This represents what rate would produce the actual fee charged
124
+ // As transfer amounts grow beyond threshold, effective rate decreases
125
+ // Example: $100 fee on $10M transfer = 1 dBps effective rate
126
+ // This value is passed to the quote API to accurately represent the fee structure
127
+ referrerFeeDbps = (referrerFee * 100000n) / amount;
95
128
  }
96
129
  else {
130
+ // Standard calculation without threshold: fee scales linearly with amount
97
131
  referrerFee = (amount * dBps) / 100000n;
98
132
  }
99
133
  remainingAmount = amount - referrerFee;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ export class AptosCCTPExecutor {
53
53
  refundAddr,
54
54
  details.signedQuote,
55
55
  details.relayInstructions,
56
- details.referrerFeeDbps,
56
+ Number(details.referrerFeeDbps),
57
57
  payee,
58
58
  ];
59
59
  const tx = {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/aptos/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/aptos/executor.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,31 @@ export interface StatusResponse extends RelayData {
66
66
  estimatedCost: string;
67
67
  }
68
68
  export declare function fetchStatus(network: Network, txHash: string, chain: Chain): Promise<StatusResponse[]>;
69
+ /**
70
+ * Calculate referrer fee with optional amount-based capping.
71
+ *
72
+ * Fee Structure:
73
+ * - Without threshold: Fee scales linearly with amount at the specified dBps rate
74
+ * - With threshold: Fee scales until threshold amount, then plateaus at a fixed fee
75
+ *
76
+ * Example (1 bps / 10 dBps with $1M threshold):
77
+ * ┌─────────────────┬────────────┬──────────────────────┐
78
+ * │ Transfer Amount │ Fee Amount │ Effective Rate (dBps)│
79
+ * ├─────────────────┼────────────┼──────────────────────┤
80
+ * │ $0 - $1M │ 0.01% scaling │ 10 (full rate) │
81
+ * │ $1M (threshold) │ $100 │ 10 (full rate) │
82
+ * │ $5M │ $100 │ 2 (0.2%) │
83
+ * │ $10M (max) │ $100 │ 1 (0.1%) │
84
+ * └─────────────────┴────────────┴──────────────────────┘
85
+ *
86
+ * The threshold is designed so that at the maximum expected transfer amount ($10M),
87
+ * the effective rate is still >= 1 dBps, avoiding integer division to zero.
88
+ *
89
+ * @param amount - Transfer amount in token base units (6 decimals for USDC)
90
+ * @param dBps - Referrer fee rate in tenths of basis points (10 = 1 bps = 0.01%)
91
+ * @param threshold - Optional amount threshold in whole USDC units where fee caps
92
+ * @returns Object containing fee amount, remaining amount, and effective dBps rate
93
+ */
69
94
  export declare function calculateReferrerFee(amount: bigint, dBps: bigint, threshold?: bigint): {
70
95
  referrerFee: bigint;
71
96
  remainingAmount: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/esm/utils.js CHANGED
@@ -60,24 +60,58 @@ export async function fetchStatus(network, txHash, chain) {
60
60
  }
61
61
  }
62
62
  const MAX_U16 = 65535n;
63
+ /**
64
+ * Calculate referrer fee with optional amount-based capping.
65
+ *
66
+ * Fee Structure:
67
+ * - Without threshold: Fee scales linearly with amount at the specified dBps rate
68
+ * - With threshold: Fee scales until threshold amount, then plateaus at a fixed fee
69
+ *
70
+ * Example (1 bps / 10 dBps with $1M threshold):
71
+ * ┌─────────────────┬────────────┬──────────────────────┐
72
+ * │ Transfer Amount │ Fee Amount │ Effective Rate (dBps)│
73
+ * ├─────────────────┼────────────┼──────────────────────┤
74
+ * │ $0 - $1M │ 0.01% scaling │ 10 (full rate) │
75
+ * │ $1M (threshold) │ $100 │ 10 (full rate) │
76
+ * │ $5M │ $100 │ 2 (0.2%) │
77
+ * │ $10M (max) │ $100 │ 1 (0.1%) │
78
+ * └─────────────────┴────────────┴──────────────────────┘
79
+ *
80
+ * The threshold is designed so that at the maximum expected transfer amount ($10M),
81
+ * the effective rate is still >= 1 dBps, avoiding integer division to zero.
82
+ *
83
+ * @param amount - Transfer amount in token base units (6 decimals for USDC)
84
+ * @param dBps - Referrer fee rate in tenths of basis points (10 = 1 bps = 0.01%)
85
+ * @param threshold - Optional amount threshold in whole USDC units where fee caps
86
+ * @returns Object containing fee amount, remaining amount, and effective dBps rate
87
+ */
63
88
  export function calculateReferrerFee(amount, dBps, threshold) {
64
89
  if (dBps > MAX_U16) {
65
90
  throw new Error("dBps exceeds max u16");
66
91
  }
67
92
  let referrerFeeDbps = dBps;
68
- let remainingAmount = amount;
69
93
  let referrerFee = 0n;
94
+ let remainingAmount = amount;
70
95
  if (dBps > 0) {
71
96
  if (threshold !== undefined && amount > 0) {
72
- // We first need to convert the threshold value to base units
97
+ // Convert threshold from whole USDC units to base units (6 decimals)
73
98
  const thresholdAmount = sdkAmount.parse(threshold.toString(), 6);
74
- // Capped dBps is minimum of dBps and threshold/amount
75
- const cappedMax = sdkAmount.units(thresholdAmount) / amount;
76
- const cappedDBps = dBps < cappedMax ? dBps : cappedMax;
77
- referrerFee = (amount * cappedDBps) / 100000n;
78
- referrerFeeDbps = cappedDBps;
99
+ const thresholdAmountUnits = sdkAmount.units(thresholdAmount);
100
+ // Cap the amount used for fee calculation at the threshold
101
+ // This creates a fee structure where fees plateau after the threshold amount
102
+ // For amounts below threshold: normal scaling applies
103
+ // For amounts at or above threshold: fee is fixed at (threshold * dBps / 100_000)
104
+ const cappedAmount = amount < thresholdAmountUnits ? amount : thresholdAmountUnits;
105
+ referrerFee = (cappedAmount * dBps) / 100000n;
106
+ // Calculate effective dBps rate based on actual amount transferred
107
+ // This represents what rate would produce the actual fee charged
108
+ // As transfer amounts grow beyond threshold, effective rate decreases
109
+ // Example: $100 fee on $10M transfer = 1 dBps effective rate
110
+ // This value is passed to the quote API to accurately represent the fee structure
111
+ referrerFeeDbps = (referrerFee * 100000n) / amount;
79
112
  }
80
113
  else {
114
+ // Standard calculation without threshold: fee scales linearly with amount
81
115
  referrerFee = (amount * dBps) / 100000n;
82
116
  }
83
117
  remainingAmount = amount - referrerFee;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,MAAM,EACN,QAAQ,EAER,SAAS,EACT,MAAM,IAAI,SAAS,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,0BAA0B,GAE3B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,oBAAoB,EACpB,WAAW,EACX,KAAK,EAGL,QAAQ,GACT,MAAM,kCAAkC,CAAC;AAG1C,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;IAC3B,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;AACrB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAkCD,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,8BAAa,CAAA;AACf,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAaD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAuB,GAAG,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,GAAG,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgB,EAChB,QAAe,EACf,QAAe,EACf,iBAAyB,CAAC,uBAAuB;;IAEjD,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAgB,GAAG,EAAE;YACpD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC7B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC7B,iBAAiB;SAClB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAOD,eAAe;AACf,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAgB,EAChB,MAAc,EACd,KAAY;IAEZ,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAmB,GAAG,EAAE;YACvD,MAAM;YACN,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,GAAG,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,MAAO,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,IAAY,EACZ,SAAkB;IAElB,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,eAAe,GAAW,IAAI,CAAC;IACnC,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,IAAI,eAAe,GAAW,MAAM,CAAC;IAErC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,qEAAqE;YACrE,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,oBAAoB,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAE9D,2DAA2D;YAC3D,6EAA6E;YAC7E,sDAAsD;YACtD,kFAAkF;YAClF,MAAM,YAAY,GAChB,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAChE,WAAW,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,OAAQ,CAAC;YAE/C,mEAAmE;YACnE,iEAAiE;YACjE,sEAAsE;YACtE,6DAA6D;YAC7D,kFAAkF;YAClF,eAAe,GAAG,CAAC,WAAW,GAAG,OAAQ,CAAC,GAAG,MAAM,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,WAAW,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,OAAQ,CAAC;QAC3C,CAAC;QACD,eAAe,GAAG,MAAM,GAAG,WAAW,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAiB,EACjB,OAAgB,EAChB,UAAkB,oBAAoB;IAEtC,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO,KAAK,CAAC,KAAK,CAChB,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,YAAY,oBAAoB,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1F,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAA8B,GAAG,CAAC,CAAC;YAEnE,kEAAkE;YAClE,iCAAiC;YACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAE9B,IAAI,WAAW,CAAC,WAAW,KAAK,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAE9C,IAAI,WAAW,CAAC,MAAM,KAAK,uBAAuB;gBAAE,OAAO,IAAI,CAAC;YAEhE,MAAM,OAAO,GAAG,0BAA0B,CACxC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CACzC,CAAC;YAEF,OAAO;gBACL,OAAO;gBACP,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,qDAAqD;gBACrD,8EAA8E;gBAC9E,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG;oBAC7D,OAAO,IAAI,CAAC;gBACd,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,IAAI,CAAC;YAC7D,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EACD,IAAI,EACJ,OAAO,EACP,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAgB,EAChB,SAAgB,EAChB,OAAc;IAEd,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,uBAAuB,YAAY,IAAI,iBAAiB,EAAE,CAAC;IAC9F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAA8B,GAAG,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAQD,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAgB,EAChB,WAA4C;IAE5C,wBAAwB;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAC/B,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EACrC,IAAI,CACL,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,KAAK,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAA2B,GAAG,CAAC,CAAC;IACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YACjE,OAAO,WAAW,CAAC,WAAW,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAChC,OAAO,EACP,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAC7C,CAAC;IAEF,OAAO,KAAK,CAAC,KAAK,CAChB,KAAK,IAAI,EAAE;QACT,MAAM,cAAc,GAAG,MAAM,sBAAsB,CACjD,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAC1C,OAAO,CACR,CAAC;QACF,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,IAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,KAAK,EAAE;YAC3D,OAAO,IAAI,CAAC;QAEd,OAAO,cAAc,CAAC;IACxB,CAAC,EACD,IAAI,EACJ,oBAAoB,EACpB,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAoC,GAAG,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,WAAoB,EACpB,SAA0B,EAC1B,OAAwB;IAExB,kCAAkC;IAClC,MAAM,uBAAuB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CACrD,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,KAAK,CAChB,CAAC;IACF,IACE,CAAC,CACC,uBAAuB;QACvB,WAAW,CACT,WAAW,EACX,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAC3D,CACF,EACD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,4CAA4C;IAC5C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,qBAAqB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC,qBAAqB;QAAE,OAAO,EAAE,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC/D,CAAC"}