@lendasat/lendaswap-sdk-pure 0.2.42 → 0.2.44
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/dist/_esm-7KJOBTZC.js +3660 -0
- package/dist/_esm-7KJOBTZC.js.map +1 -0
- package/dist/_esm-UGRDSVEV.cjs +3662 -0
- package/dist/_esm-UGRDSVEV.cjs.map +1 -0
- package/dist/api/client.d.ts +0 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/base-2KYNAFR3.cjs +109 -0
- package/dist/base-2KYNAFR3.cjs.map +1 -0
- package/dist/base-B6OGU65B.js +7 -0
- package/dist/base-B6OGU65B.js.map +1 -0
- package/dist/ccip-MPMAZOUF.js +5 -0
- package/dist/ccip-MPMAZOUF.js.map +1 -0
- package/dist/ccip-PD37NJHA.cjs +26 -0
- package/dist/ccip-PD37NJHA.cjs.map +1 -0
- package/dist/cctp-bridge/index.cjs +67 -0
- package/dist/cctp-bridge/index.cjs.map +1 -0
- package/dist/cctp-bridge/index.js +51 -15
- package/dist/cctp-bridge/index.js.map +1 -1
- package/dist/cctp-inbound/client.d.ts +21 -19
- package/dist/cctp-inbound/client.d.ts.map +1 -1
- package/dist/cctp-inbound/smartAccount.d.ts +21 -19
- package/dist/cctp-inbound/smartAccount.d.ts.map +1 -1
- package/dist/chunk-3JWT4OW2.js +369 -0
- package/dist/chunk-3JWT4OW2.js.map +1 -0
- package/dist/chunk-A4GKKURK.cjs +430 -0
- package/dist/chunk-A4GKKURK.cjs.map +1 -0
- package/dist/chunk-BZU3R5DJ.cjs +554 -0
- package/dist/chunk-BZU3R5DJ.cjs.map +1 -0
- package/dist/chunk-C4YXYD24.js +418 -0
- package/dist/chunk-C4YXYD24.js.map +1 -0
- package/dist/chunk-CZNQYFDP.js +6141 -0
- package/dist/chunk-CZNQYFDP.js.map +1 -0
- package/dist/chunk-DKTFDGIU.js +2207 -0
- package/dist/chunk-DKTFDGIU.js.map +1 -0
- package/dist/chunk-DNSJDKTP.cjs +96 -0
- package/dist/chunk-DNSJDKTP.cjs.map +1 -0
- package/dist/chunk-EPKFLKTM.js +47093 -0
- package/dist/chunk-EPKFLKTM.js.map +1 -0
- package/dist/chunk-JBVKWKD4.cjs +50 -0
- package/dist/chunk-JBVKWKD4.cjs.map +1 -0
- package/dist/chunk-NPFJAXKV.js +551 -0
- package/dist/chunk-NPFJAXKV.js.map +1 -0
- package/dist/chunk-PKDJZJMV.cjs +2214 -0
- package/dist/chunk-PKDJZJMV.cjs.map +1 -0
- package/dist/chunk-PLDDJCW6.js +43 -0
- package/dist/chunk-PLDDJCW6.js.map +1 -0
- package/dist/chunk-RIOT5VOJ.cjs +47240 -0
- package/dist/chunk-RIOT5VOJ.cjs.map +1 -0
- package/dist/chunk-WVZSHRV7.cjs +431 -0
- package/dist/chunk-WVZSHRV7.cjs.map +1 -0
- package/dist/chunk-YEZOPVAH.js +86 -0
- package/dist/chunk-YEZOPVAH.js.map +1 -0
- package/dist/chunk-YLWPBHMV.cjs +6311 -0
- package/dist/chunk-YLWPBHMV.cjs.map +1 -0
- package/dist/client.d.ts +68 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/compose-quote.d.ts +77 -0
- package/dist/compose-quote.d.ts.map +1 -0
- package/dist/delegate.cjs +23 -0
- package/dist/delegate.cjs.map +1 -0
- package/dist/delegate.js +5 -269
- package/dist/delegate.js.map +1 -1
- package/dist/dist-NE2R4YCX.js +5 -0
- package/dist/dist-NE2R4YCX.js.map +1 -0
- package/dist/dist-VEHYC67F.cjs +550 -0
- package/dist/dist-VEHYC67F.cjs.map +1 -0
- package/dist/esplora.d.ts +14 -0
- package/dist/esplora.d.ts.map +1 -1
- package/dist/generated/api.d.ts +235 -38
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/index.cjs +35461 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35309 -32
- package/dist/index.js.map +1 -1
- package/dist/mine.wasm-JJEJEODX.js +9 -0
- package/dist/mine.wasm-JJEJEODX.js.map +1 -0
- package/dist/mine.wasm-Z3ORSBKN.cjs +12 -0
- package/dist/mine.wasm-Z3ORSBKN.cjs.map +1 -0
- package/dist/node.cjs +166 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.js +157 -18
- package/dist/node.js.map +1 -1
- package/dist/secp256k1-PJCSE4N6.cjs +30 -0
- package/dist/secp256k1-PJCSE4N6.cjs.map +1 -0
- package/dist/secp256k1-VZNNVEPN.js +5 -0
- package/dist/secp256k1-VZNNVEPN.js.map +1 -0
- package/dist/tokens.d.ts +2 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/types/chain-config.d.ts +50 -0
- package/dist/types/chain-config.d.ts.map +1 -0
- package/dist/types/chain.d.ts +11 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/dex-quote.d.ts +85 -0
- package/dist/types/dex-quote.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/network-fees.d.ts +43 -0
- package/dist/types/network-fees.d.ts.map +1 -0
- package/dist/types/quote.d.ts +87 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/swap-pairs.d.ts +37 -0
- package/dist/types/swap-pairs.d.ts.map +1 -0
- package/dist/version.d.ts +2 -2
- package/dist/wallet-SCGRX3EN.js +4 -0
- package/dist/wallet-SCGRX3EN.js.map +1 -0
- package/dist/wallet-SZJDXAY7.cjs +45 -0
- package/dist/wallet-SZJDXAY7.cjs.map +1 -0
- package/package.json +23 -10
- package/dist/api/client.js +0 -13
- package/dist/api/client.js.map +0 -1
- package/dist/arkade-network.js +0 -40
- package/dist/arkade-network.js.map +0 -1
- package/dist/arkade.js +0 -61
- package/dist/arkade.js.map +0 -1
- package/dist/cctp/attestation.js +0 -149
- package/dist/cctp/attestation.js.map +0 -1
- package/dist/cctp/constants.js +0 -92
- package/dist/cctp/constants.js.map +0 -1
- package/dist/cctp/fee.js +0 -70
- package/dist/cctp/fee.js.map +0 -1
- package/dist/cctp/index.js +0 -13
- package/dist/cctp/index.js.map +0 -1
- package/dist/cctp/types.js +0 -5
- package/dist/cctp/types.js.map +0 -1
- package/dist/cctp/utils.js +0 -91
- package/dist/cctp/utils.js.map +0 -1
- package/dist/cctp-bridge/bridge.js +0 -74
- package/dist/cctp-bridge/bridge.js.map +0 -1
- package/dist/cctp-inbound/approveAndBurn.js +0 -95
- package/dist/cctp-inbound/approveAndBurn.js.map +0 -1
- package/dist/cctp-inbound/burn.js +0 -66
- package/dist/cctp-inbound/burn.js.map +0 -1
- package/dist/cctp-inbound/chainMap.js +0 -128
- package/dist/cctp-inbound/chainMap.js.map +0 -1
- package/dist/cctp-inbound/client.js +0 -125
- package/dist/cctp-inbound/client.js.map +0 -1
- package/dist/cctp-inbound/eip2612.js +0 -95
- package/dist/cctp-inbound/eip2612.js.map +0 -1
- package/dist/cctp-inbound/evmSignerAdapter.js +0 -82
- package/dist/cctp-inbound/evmSignerAdapter.js.map +0 -1
- package/dist/cctp-inbound/fundSwap.js +0 -95
- package/dist/cctp-inbound/fundSwap.js.map +0 -1
- package/dist/cctp-inbound/index.js +0 -34
- package/dist/cctp-inbound/index.js.map +0 -1
- package/dist/cctp-inbound/permit2.js +0 -32
- package/dist/cctp-inbound/permit2.js.map +0 -1
- package/dist/cctp-inbound/preflight.js +0 -84
- package/dist/cctp-inbound/preflight.js.map +0 -1
- package/dist/cctp-inbound/recover.js +0 -177
- package/dist/cctp-inbound/recover.js.map +0 -1
- package/dist/cctp-inbound/smartAccount.js +0 -117
- package/dist/cctp-inbound/smartAccount.js.map +0 -1
- package/dist/cctp-inbound/submit.js +0 -136
- package/dist/cctp-inbound/submit.js.map +0 -1
- package/dist/cctp-inbound/types.js +0 -5
- package/dist/cctp-inbound/types.js.map +0 -1
- package/dist/cctp-inbound/userOp.js +0 -151
- package/dist/cctp-inbound/userOp.js.map +0 -1
- package/dist/client.js +0 -4126
- package/dist/client.js.map +0 -1
- package/dist/create/arkade-to-lightning.js +0 -76
- package/dist/create/arkade-to-lightning.js.map +0 -1
- package/dist/create/arkade.js +0 -86
- package/dist/create/arkade.js.map +0 -1
- package/dist/create/bitcoin-to-arkade.js +0 -76
- package/dist/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/create/bitcoin.js +0 -77
- package/dist/create/bitcoin.js.map +0 -1
- package/dist/create/evm-to-arkade.js +0 -80
- package/dist/create/evm-to-arkade.js.map +0 -1
- package/dist/create/evm-to-bitcoin.js +0 -82
- package/dist/create/evm-to-bitcoin.js.map +0 -1
- package/dist/create/evm-to-lightning.js +0 -89
- package/dist/create/evm-to-lightning.js.map +0 -1
- package/dist/create/index.js +0 -21
- package/dist/create/index.js.map +0 -1
- package/dist/create/lightning-to-arkade.js +0 -69
- package/dist/create/lightning-to-arkade.js.map +0 -1
- package/dist/create/lightning.js +0 -61
- package/dist/create/lightning.js.map +0 -1
- package/dist/create/retry.js +0 -71
- package/dist/create/retry.js.map +0 -1
- package/dist/create/types.js +0 -5
- package/dist/create/types.js.map +0 -1
- package/dist/escrow/index.js +0 -115
- package/dist/escrow/index.js.map +0 -1
- package/dist/esplora.js +0 -47
- package/dist/esplora.js.map +0 -1
- package/dist/evm/coordinator.js +0 -714
- package/dist/evm/coordinator.js.map +0 -1
- package/dist/evm/htlc.js +0 -278
- package/dist/evm/htlc.js.map +0 -1
- package/dist/evm/index.js +0 -10
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/signing.js +0 -70
- package/dist/evm/signing.js.map +0 -1
- package/dist/evm/wallet.js +0 -133
- package/dist/evm/wallet.js.map +0 -1
- package/dist/generated/api.js +0 -6
- package/dist/generated/api.js.map +0 -1
- package/dist/logging.js +0 -130
- package/dist/logging.js.map +0 -1
- package/dist/price-calculations.js +0 -135
- package/dist/price-calculations.js.map +0 -1
- package/dist/redeem/arkade.js +0 -416
- package/dist/redeem/arkade.js.map +0 -1
- package/dist/redeem/ethereum.js +0 -206
- package/dist/redeem/ethereum.js.map +0 -1
- package/dist/redeem/gasless.js +0 -73
- package/dist/redeem/gasless.js.map +0 -1
- package/dist/redeem/index.js +0 -189
- package/dist/redeem/index.js.map +0 -1
- package/dist/redeem/types.js +0 -36
- package/dist/redeem/types.js.map +0 -1
- package/dist/refund/arkade.js +0 -200
- package/dist/refund/arkade.js.map +0 -1
- package/dist/refund/collab-arkade-evm.js +0 -307
- package/dist/refund/collab-arkade-evm.js.map +0 -1
- package/dist/refund/collab-arkade-lightning.js +0 -245
- package/dist/refund/collab-arkade-lightning.js.map +0 -1
- package/dist/refund/index.js +0 -12
- package/dist/refund/index.js.map +0 -1
- package/dist/refund/onchain.js +0 -366
- package/dist/refund/onchain.js.map +0 -1
- package/dist/signer/index.js +0 -249
- package/dist/signer/index.js.map +0 -1
- package/dist/storage/idb.js +0 -236
- package/dist/storage/idb.js.map +0 -1
- package/dist/storage/index.js +0 -98
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/sqlite.js +0 -206
- package/dist/storage/sqlite.js.map +0 -1
- package/dist/storage/types.js +0 -9
- package/dist/storage/types.js.map +0 -1
- package/dist/tokens.js +0 -322
- package/dist/tokens.js.map +0 -1
- package/dist/usd-price.js +0 -96
- package/dist/usd-price.js.map +0 -1
- package/dist/usdt0-bridge/constants.js +0 -71
- package/dist/usdt0-bridge/constants.js.map +0 -1
- package/dist/usdt0-bridge/index.js +0 -11
- package/dist/usdt0-bridge/index.js.map +0 -1
- package/dist/usdt0-bridge/tracking.js +0 -123
- package/dist/usdt0-bridge/tracking.js.map +0 -1
- package/dist/usdt0-bridge/utils.js +0 -51
- package/dist/usdt0-bridge/utils.js.map +0 -1
- package/dist/version.js +0 -6
- package/dist/version.js.map +0 -1
- package/dist/ws.js +0 -145
- package/dist/ws.js.map +0 -1
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compose the `executeBatch` calldata for a CCTP-inbound UserOperation.
|
|
3
|
-
*
|
|
4
|
-
* The smart account's batch atomically runs:
|
|
5
|
-
* 1. `MessageTransmitter.receiveMessage(message, attestation)` — mints
|
|
6
|
-
* USDC to the smart account.
|
|
7
|
-
* 2. `USDC.approve(Permit2, max)` — idempotent.
|
|
8
|
-
* 3. `HTLCCoordinator.executeAndCreateWithPermit2(...)` — uses an
|
|
9
|
-
* ERC-1271 signature from the smart account as `depositor`.
|
|
10
|
-
*
|
|
11
|
-
* All three calls execute with `msg.sender = smartAccount`, so CCTPv2's
|
|
12
|
-
* `destinationCaller` gate (pinned to the same address on the burn) is
|
|
13
|
-
* satisfied.
|
|
14
|
-
*/
|
|
15
|
-
import { encodeAbiParameters, encodeFunctionData, isErc6492Signature, maxUint256, parseAbi, parseErc6492Signature, } from "viem";
|
|
16
|
-
import { buildPermit2TypedData } from "../evm/coordinator.js";
|
|
17
|
-
/** MessageTransmitter v2 — same on every CCTPv2 EVM chain. */
|
|
18
|
-
const MESSAGE_TRANSMITTER_V2 = "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64";
|
|
19
|
-
/** Canonical Permit2 deployment — same on all EVM chains. */
|
|
20
|
-
const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
21
|
-
const MESSAGE_TRANSMITTER_ABI = parseAbi([
|
|
22
|
-
"function receiveMessage(bytes message, bytes attestation) external returns (bool)",
|
|
23
|
-
]);
|
|
24
|
-
const ERC20_APPROVE_ABI = parseAbi([
|
|
25
|
-
"function approve(address spender, uint256 amount) external returns (bool)",
|
|
26
|
-
]);
|
|
27
|
-
const HTLC_COORDINATOR_ABI = parseAbi([
|
|
28
|
-
"struct TokenPermissions { address token; uint256 amount; }",
|
|
29
|
-
"struct PermitTransferFrom { TokenPermissions permitted; uint256 nonce; uint256 deadline; }",
|
|
30
|
-
"struct Call { address target; uint256 value; bytes callData; }",
|
|
31
|
-
"function executeAndCreateWithPermit2(Call[] calls, bytes32 preimageHash, address token, address claimAddress, uint256 timelock, address depositor, PermitTransferFrom permit, bytes signature) external",
|
|
32
|
-
]);
|
|
33
|
-
/**
|
|
34
|
-
* Returns the list of calls the smart account's `executeBatch` will run.
|
|
35
|
-
* The Permit2 signature is produced via the Kernel smart account's
|
|
36
|
-
* `signTypedData` — Kernel wraps the hash before signing so the sig
|
|
37
|
-
* passes its own ERC-1271 verification once the account is deployed.
|
|
38
|
-
*/
|
|
39
|
-
export async function buildCctpInboundBatch(params) {
|
|
40
|
-
const { server, smartAccountAddress, signTypedData, cctpMessage, cctpAttestation, chainId, skipReceiveMessage, } = params;
|
|
41
|
-
const calls = [];
|
|
42
|
-
// 1. receiveMessage — skip if USDC already landed (front-runner / retry).
|
|
43
|
-
if (!skipReceiveMessage) {
|
|
44
|
-
const receiveMessageData = encodeFunctionData({
|
|
45
|
-
abi: MESSAGE_TRANSMITTER_ABI,
|
|
46
|
-
functionName: "receiveMessage",
|
|
47
|
-
args: [cctpMessage, cctpAttestation],
|
|
48
|
-
});
|
|
49
|
-
calls.push({
|
|
50
|
-
to: MESSAGE_TRANSMITTER_V2,
|
|
51
|
-
data: receiveMessageData,
|
|
52
|
-
value: 0n,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
// 2. USDC.approve(Permit2, max) — idempotent; lets Permit2 pull from us.
|
|
56
|
-
const approveData = encodeFunctionData({
|
|
57
|
-
abi: ERC20_APPROVE_ABI,
|
|
58
|
-
functionName: "approve",
|
|
59
|
-
args: [PERMIT2_ADDRESS, maxUint256],
|
|
60
|
-
});
|
|
61
|
-
calls.push({
|
|
62
|
-
to: server.source_token_address,
|
|
63
|
-
data: approveData,
|
|
64
|
-
value: 0n,
|
|
65
|
-
});
|
|
66
|
-
// 3. Permit2 witness signature, produced via the smart account.
|
|
67
|
-
// Kernel's signTypedData applies its message-marker wrap so the
|
|
68
|
-
// resulting sig passes ERC-1271 when Permit2 calls back into the
|
|
69
|
-
// (by then-deployed) account.
|
|
70
|
-
const nonceBytes = new Uint8Array(32);
|
|
71
|
-
crypto.getRandomValues(nonceBytes);
|
|
72
|
-
const permit2Nonce = BigInt(`0x${Array.from(nonceBytes)
|
|
73
|
-
.map((b) => b.toString(16).padStart(2, "0"))
|
|
74
|
-
.join("")}`);
|
|
75
|
-
const permit2Deadline = BigInt(Math.floor(Date.now() / 1000) + 30 * 60);
|
|
76
|
-
const sourceAmount = BigInt(server.source_amount);
|
|
77
|
-
const typedData = buildPermit2TypedData({
|
|
78
|
-
chainId,
|
|
79
|
-
coordinatorAddress: server.coordinator_address,
|
|
80
|
-
sourceToken: server.source_token_address,
|
|
81
|
-
sourceAmount,
|
|
82
|
-
preimageHash: server.preimage_hash,
|
|
83
|
-
lockToken: server.lock_token_address,
|
|
84
|
-
claimAddress: server.claim_address,
|
|
85
|
-
refundAddress: server.coordinator_address,
|
|
86
|
-
timelock: server.timelock,
|
|
87
|
-
callsHash: server.calls_hash,
|
|
88
|
-
nonce: permit2Nonce,
|
|
89
|
-
deadline: permit2Deadline,
|
|
90
|
-
});
|
|
91
|
-
const rawSignature = (await signTypedData({
|
|
92
|
-
domain: typedData.domain,
|
|
93
|
-
types: typedData.types,
|
|
94
|
-
primaryType: typedData.primaryType,
|
|
95
|
-
message: typedData.message,
|
|
96
|
-
}));
|
|
97
|
-
// viem's `toSmartAccount` auto-wraps `signTypedData` output in ERC-6492
|
|
98
|
-
// whenever the account's factory/factoryData are non-empty. Permit2 is
|
|
99
|
-
// not ERC-6492-aware, so strip the wrapper and pass the raw Kernel
|
|
100
|
-
// signature. The account will be deployed by factoryData during the
|
|
101
|
-
// UserOp *before* Permit2 verifies, so Permit2 takes the ERC-1271
|
|
102
|
-
// path and Kernel's `isValidSignature` accepts the raw sig.
|
|
103
|
-
const permit2Signature = isErc6492Signature(rawSignature)
|
|
104
|
-
? parseErc6492Signature(rawSignature).signature
|
|
105
|
-
: rawSignature;
|
|
106
|
-
// 4. executeAndCreateWithPermit2
|
|
107
|
-
const dexCalls = server.calls.map((c) => ({
|
|
108
|
-
target: c.target,
|
|
109
|
-
value: BigInt(c.value),
|
|
110
|
-
callData: c.call_data,
|
|
111
|
-
}));
|
|
112
|
-
const executeData = encodeFunctionData({
|
|
113
|
-
abi: HTLC_COORDINATOR_ABI,
|
|
114
|
-
functionName: "executeAndCreateWithPermit2",
|
|
115
|
-
args: [
|
|
116
|
-
dexCalls,
|
|
117
|
-
server.preimage_hash,
|
|
118
|
-
server.lock_token_address,
|
|
119
|
-
server.claim_address,
|
|
120
|
-
BigInt(server.timelock),
|
|
121
|
-
smartAccountAddress,
|
|
122
|
-
{
|
|
123
|
-
permitted: {
|
|
124
|
-
token: server.source_token_address,
|
|
125
|
-
amount: sourceAmount,
|
|
126
|
-
},
|
|
127
|
-
nonce: permit2Nonce,
|
|
128
|
-
deadline: permit2Deadline,
|
|
129
|
-
},
|
|
130
|
-
permit2Signature,
|
|
131
|
-
],
|
|
132
|
-
});
|
|
133
|
-
calls.push({
|
|
134
|
-
to: server.coordinator_address,
|
|
135
|
-
data: executeData,
|
|
136
|
-
value: 0n,
|
|
137
|
-
});
|
|
138
|
-
return {
|
|
139
|
-
calls,
|
|
140
|
-
permit2Nonce,
|
|
141
|
-
permit2Deadline,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Convert an EVM address (20 bytes) into the bytes32 form CCTPv2's
|
|
146
|
-
* `depositForBurn` expects for `mintRecipient` and `destinationCaller`.
|
|
147
|
-
*/
|
|
148
|
-
export function addressToBytes32Hex(address) {
|
|
149
|
-
return encodeAbiParameters([{ type: "address" }], [address]);
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=userOp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userOp.js","sourceRoot":"","sources":["../../src/cctp-inbound/userOp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,qBAAqB,GACtB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,8DAA8D;AAC9D,MAAM,sBAAsB,GAC1B,4CAAqD,CAAC;AAExD,6DAA6D;AAC7D,MAAM,eAAe,GAAG,4CAAqD,CAAC;AAE9E,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IACvC,mFAAmF;CACpF,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACjC,2EAA2E;CAC5E,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IACpC,4DAA4D;IAC5D,4FAA4F;IAC5F,gEAAgE;IAChE,yMAAyM;CAC1M,CAAC,CAAC;AAoEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmC;IAEnC,MAAM,EACJ,MAAM,EACN,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,OAAO,EACP,kBAAkB,GACnB,GAAG,MAAM,CAAC;IAEX,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,0EAA0E;IAC1E,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;YAC5C,GAAG,EAAE,uBAAuB;YAC5B,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;SACrC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,sBAAiC;YACrC,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,GAAG,EAAE,iBAAiB;QACtB,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,eAA0B,EAAE,UAAU,CAAC;KAC/C,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,MAAM,CAAC,oBAA+B;QAC1C,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IAEH,gEAAgE;IAChE,mEAAmE;IACnE,oEAAoE;IACpE,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,CACzB,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,EAAE,CACd,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,qBAAqB,CAAC;QACtC,OAAO;QACP,kBAAkB,EAAE,MAAM,CAAC,mBAAmB;QAC9C,WAAW,EAAE,MAAM,CAAC,oBAAoB;QACxC,YAAY;QACZ,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,SAAS,EAAE,MAAM,CAAC,kBAAkB;QACpC,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,aAAa,EAAE,MAAM,CAAC,mBAAmB;QACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,MAAM,aAAa,CAAC;QACxC,MAAM,EAAE,SAAS,CAAC,MAAyB;QAC3C,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAQ,CAAC;IAEX,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,CAAC;QACvD,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,SAAS;QAC/C,CAAC,CAAC,YAAY,CAAC;IAEjB,iCAAiC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,EAAE,CAAC,CAAC,MAAiB;QAC3B,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtB,QAAQ,EAAE,CAAC,CAAC,SAAgB;KAC7B,CAAC,CAAC,CAAC;IAEJ,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,6BAA6B;QAC3C,IAAI,EAAE;YACJ,QAAQ;YACR,MAAM,CAAC,aAAoB;YAC3B,MAAM,CAAC,kBAA6B;YACpC,MAAM,CAAC,aAAwB;YAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvB,mBAAmB;YACnB;gBACE,SAAS,EAAE;oBACT,KAAK,EAAE,MAAM,CAAC,oBAA+B;oBAC7C,MAAM,EAAE,YAAY;iBACrB;gBACD,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,eAAe;aAC1B;YACD,gBAAgB;SACjB;KACF,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,MAAM,CAAC,mBAA8B;QACzC,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAQ,CAAC;AACtE,CAAC"}
|